11 #ifndef COMPLEX_OPS_H_SEEN 12 #define COMPLEX_OPS_H_SEEN 21 template<
typename _Tp,
typename _S>
23 operator+(
const complex<_Tp>& __x,
const _S& __y) {
24 complex<_Tp> __r = __x;
29 template<
typename _Tp,
typename _S>
31 operator+(
const _S& __x,
const complex<_Tp>& __y) {
32 complex<_Tp> __r = __y;
38 template<
typename _Tp,
typename _S>
40 operator*(
const complex<_Tp>& __x,
const _S& __y) {
41 complex<_Tp> __r = __x;
46 template<
typename _Tp,
typename _S>
48 operator*(
const _S& __x,
const complex<_Tp>& __y) {
49 complex<_Tp> __r = __y;
55 template<
typename _Tp,
typename _S>
57 operator-(
const complex<_Tp>& __x,
const _S& __y) {
58 complex<_Tp> __r = __x;
64 template<
typename _Tp,
typename _S>
66 operator-(
const _S& __x,
const complex<_Tp>& __y) {
67 complex<_Tp> __r(__x - __y.real(), - __y.imag());
74 template<
typename _Tp,
typename _S>
76 operator/(
const complex<_Tp>& __x,
const _S& __y) {
77 complex<_Tp> __r = __x;
82 template<
typename _Tp,
typename _S>
84 operator/(
const _S& __x,
const complex<_Tp>& __y) {
85 complex<_Tp> __r = __x;
93 inline complex<long double>
94 operator+(
const complex<long double>& __x,
const complex<double>& __y) {
95 complex<long double> __r = __x;
99 inline complex<long double>
100 operator+(
const complex<double>& __x,
const complex<long double>& __y) {
101 complex<long double> __r = __y;
106 inline complex<long double>
107 operator-(
const complex<long double>& __x,
const complex<double>& __y) {
108 complex<long double> __r = __x;
112 inline complex<long double>
113 operator-(
const complex<double>& __x,
const complex<long double>& __y) {
114 complex<long double> __r = - __y;
119 inline complex<long double>
120 operator*(
const complex<long double>& __x,
const complex<double>& __y) {
121 complex<long double> __r = __x;
125 inline complex<long double>
126 operator*(
const complex<double>& __x,
const complex<long double>& __y) {
127 complex<long double> __r = __y;
132 inline complex<long double>
133 operator/(
const complex<long double>& __x,
const complex<double>& __y) {
134 complex<long double> __r = __x;
138 inline complex<long double>
139 operator/(
const complex<double>& __x,
const complex<long double>& __y) {
140 complex<long double> __r = 1/__y;
Definition: complex_ops.h:15