23 #ifndef LIBCOMPLEXOP_H_INCLUDED 24 #define LIBCOMPLEXOP_H_INCLUDED 38 inline std::complex<__float128>
operator+(
39 std::complex<__float128>
const&c,
43 return c + std::complex<__float128>(a);
45 inline std::complex<__float128>
operator+(
47 std::complex<__float128>
const&c
50 return c + std::complex<__float128>(a);
53 inline std::complex<__float128>
operator*(
54 std::complex<__float128>
const&c,
58 return c * std::complex<__float128>(a);
60 inline std::complex<__float128>
operator*(
62 std::complex<__float128>
const&c
65 return c * std::complex<__float128>(a);
68 inline std::complex<__float128> operator-(
69 std::complex<__float128>
const&c,
73 return c - std::complex<__float128>(a);
75 inline std::complex<__float128> operator-(
77 std::complex<__float128>
const&c
80 return std::complex<__float128>(a) - c;
83 inline std::complex<__float128>
operator/(
84 std::complex<__float128>
const&c,
88 return c / std::complex<__float128>(a);
90 inline std::complex<__float128>
operator/(
92 std::complex<__float128>
const&c
95 return std::complex<__float128>(a) / c;
100 inline std::complex<__float128>
operator+(
101 std::complex<__float128>
const&c,
102 std::complex<double>
const&a
105 return c + std::complex<__float128>(a);
107 inline std::complex<__float128>
operator+(
108 std::complex<double>
const&a,
109 std::complex<__float128>
const&c
112 return c + std::complex<__float128>(a);
115 inline std::complex<__float128>
operator*(
116 std::complex<__float128>
const&c,
117 std::complex<double>
const&a
120 return c * std::complex<__float128>(a);
122 inline std::complex<__float128>
operator*(
123 std::complex<double>
const&a,
124 std::complex<__float128>
const&c
127 return c * std::complex<__float128>(a);
130 inline std::complex<__float128> operator-(
131 std::complex<__float128>
const&c,
132 std::complex<double>
const&a
135 return c - std::complex<__float128>(a);
137 inline std::complex<__float128> operator-(
138 std::complex<double>
const&a,
139 std::complex<__float128>
const&c
142 return std::complex<__float128>(a) - c;
145 inline std::complex<__float128>
operator/(
146 std::complex<__float128>
const&c,
147 std::complex<double>
const&a
150 return c / std::complex<__float128>(a);
152 inline std::complex<__float128>
operator/(
153 std::complex<double>
const&a,
154 std::complex<__float128>
const&c
157 return std::complex<__float128>(a) / c;
164 inline std::complex<__float128>
operator+(
165 std::complex<__float128>
const&c,
169 return c + std::complex<__float128>(a);
171 inline std::complex<__float128>
operator+(
173 std::complex<__float128>
const&c
176 return c + std::complex<__float128>(a);
179 inline std::complex<__float128>
operator*(
180 std::complex<__float128>
const&c,
184 return c * std::complex<__float128>(a);
186 inline std::complex<__float128>
operator*(
188 std::complex<__float128>
const&c
191 return c * std::complex<__float128>(a);
194 inline std::complex<__float128> operator-(
195 std::complex<__float128>
const&c,
199 return c - std::complex<__float128>(a);
201 inline std::complex<__float128> operator-(
203 std::complex<__float128>
const&c
206 return std::complex<__float128>(a) - c;
209 inline std::complex<__float128>
operator/(
210 std::complex<__float128>
const&c,
214 return c / std::complex<__float128>(a);
216 inline std::complex<__float128>
operator/(
218 std::complex<__float128>
const&c
221 return std::complex<__float128>(a) / c;
226 inline std::complex<__float128>
operator+(
227 std::complex<__float128>
const&c,
228 std::complex<int>
const&a
231 return c + std::complex<__float128>(a);
233 inline std::complex<__float128>
operator+(
234 std::complex<int>
const&a,
235 std::complex<__float128>
const&c
238 return c + std::complex<__float128>(a);
241 inline std::complex<__float128>
operator*(
242 std::complex<__float128>
const&c,
243 std::complex<int>
const&a
246 return c * std::complex<__float128>(a);
248 inline std::complex<__float128>
operator*(
249 std::complex<int>
const&a,
250 std::complex<__float128>
const&c
253 return c * std::complex<__float128>(a);
256 inline std::complex<__float128> operator-(
257 std::complex<__float128>
const&c,
258 std::complex<int>
const&a
261 return c - std::complex<__float128>(a);
263 inline std::complex<__float128> operator-(
264 std::complex<int>
const&a,
265 std::complex<__float128>
const&c
268 return std::complex<__float128>(a) - c;
271 inline std::complex<__float128>
operator/(
272 std::complex<__float128>
const&c,
273 std::complex<int>
const&a
276 return c / std::complex<__float128>(a);
278 inline std::complex<__float128>
operator/(
279 std::complex<int>
const&a,
280 std::complex<__float128>
const&c
283 return std::complex<__float128>(a) / c;
286 inline std::ostream &operator<<(
295 inline std::ostream &operator<<(
300 out <<
"(" << crealq(z) <<
" + i*" << cimagq(z) <<
")";
311 std::complex<double>
const&c,
315 return c + std::complex<double>(a);
319 std::complex<double>
const&c
322 return c + std::complex<double>(a);
326 std::complex<double>
const&c,
330 return c * std::complex<double>(a);
334 std::complex<double>
const&c
337 return c * std::complex<double>(a);
340 inline std::complex<double> operator-(
341 std::complex<double>
const&c,
345 return c - std::complex<double>(a);
347 inline std::complex<double> operator-(
349 std::complex<double>
const&c
352 return std::complex<double>(a) - c;
356 std::complex<double>
const&c,
360 return c / std::complex<double>(a);
364 std::complex<double>
const&c
367 return std::complex<double>(a) / c;
373 std::complex<double>
const&c,
374 std::complex<int>
const&a
377 return c + std::complex<double>(a.real(), a.imag());
380 std::complex<int>
const&a,
381 std::complex<double>
const&c
384 return c + std::complex<double>(a.real(), a.imag());
388 std::complex<double>
const&c,
389 std::complex<int>
const&a
392 return c * std::complex<double>(a.real(), a.imag());
395 std::complex<int>
const&a,
396 std::complex<double>
const&c
399 return c * std::complex<double>(a.real(), a.imag());
402 inline std::complex<double> operator-(
403 std::complex<double>
const&c,
404 std::complex<int>
const&a
407 return c - std::complex<double>(a.real(), a.imag());
409 inline std::complex<double> operator-(
410 std::complex<int>
const&a,
411 std::complex<double>
const&c
414 return std::complex<double>(a.real(), a.imag()) - c;
418 std::complex<double>
const&c,
419 std::complex<int>
const&a
422 return c / std::complex<double>(a.real(), a.imag());
425 std::complex<int>
const&a,
426 std::complex<double>
const&c
429 return std::complex<double>(a.real(), a.imag()) / c;
Expr operator+(const Expr &a, const Expr &b)
Shortcut function that allows to use arithmetic operator + with Expr (== shared_ptr<Abstract>).
Definition: abstract.cpp:1298
Expr operator/(const Expr &a, const Expr &b)
Shortcut function that allows to use arithmetic operator / with Expr (== shared_ptr<Abstract>).
Definition: abstract.cpp:1372
Expr operator*(const Expr &a, const Expr &b)
Shortcut function that allows to use arithmetic operator * with Expr (== shared_ptr<Abstract>).
Definition: abstract.cpp:1351