35 inline lx_real Re(
const lx_complex &a)
38 inline lx_real Im(
const lx_complex &a)
41 inline int StagPrec(
const lx_complex &a)
throw()
42 {
return StagPrec(a.re); }
44 inline real expoRe(
const lx_complex &a)
throw()
45 {
return expo(a.re); }
47 inline real expoIm(
const lx_complex &a)
throw()
48 {
return expo(a.im); }
50 inline l_real lr_partRe(
const lx_complex &a)
throw()
51 {
return lr_part(a.re); }
53 inline l_real lr_partIm(
const lx_complex &a)
throw()
54 {
return lr_part(a.im); }
56 inline lx_complex & SetRe(lx_complex &a,
const lx_real &b)
57 { a.re = b;
return a; }
58 inline lx_complex & SetRe(lx_complex &a,
const l_real &b)
59 { a.re = b;
return a; }
60 inline lx_complex & SetRe(lx_complex &a,
const real &b)
61 { a.re = b;
return a; }
63 inline lx_complex & SetIm(lx_complex &a,
const lx_real &b)
64 { a.im = b;
return a; }
65 inline lx_complex & SetIm(lx_complex &a,
const l_real &b)
66 { a.im = b;
return a; }
67 inline lx_complex & SetIm(lx_complex &a,
const real &b)
68 { a.im = b;
return a; }
70 inline lx_complex conj(
const lx_complex& a)
throw()
71 {
return lx_complex(a.re, -a.im); }
73 inline bool operator ! (
const lx_complex& a)
throw()
74 {
return !a.re && !a.im; }
76 inline bool operator == (
const lx_complex &a,
const lx_complex &b)
77 throw() {
return (a.re == b.re && a.im == b.im); }
79 inline bool operator == (
const lx_complex &a,
const l_complex &b)
80 throw() {
return (a.re == Re(b) && a.im == Im(b)); }
81 inline bool operator == (
const lx_complex &a,
const complex &b)
82 throw() {
return (a.re == Re(b) && a.im == Im(b)); }
83 inline bool operator == (
const l_complex &a,
const lx_complex &b)
84 throw() {
return b == a; }
85 inline bool operator == (
const complex &a,
const lx_complex &b)
86 throw() {
return (b == a); }
88 inline bool operator == (
const lx_complex &a,
const lx_real &b)
throw()
89 {
return a.re == b && a.im == 0.0; }
90 inline bool operator == (
const lx_complex &a,
const l_real &b)
throw()
91 {
return a.re == b && a.im == 0.0; }
92 inline bool operator == (
const lx_complex &a,
const real &b)
throw()
93 {
return a.re == b && a.im == 0.0; }
95 inline bool operator == (
const lx_real &a,
const lx_complex &b)
throw()
96 {
return a == b.re && b.im == 0.0; }
97 inline bool operator == (
const l_real &a,
const lx_complex &b)
throw()
98 {
return a == b.re && b.im == 0.0; }
99 inline bool operator == (
const real &a,
const lx_complex &b)
throw()
100 {
return a == b.re && b.im == 0.0; }
102 inline bool operator != (
const lx_complex &a,
const lx_complex &b)
throw()
103 {
return !(a == b); }
105 inline bool operator != (
const lx_complex &a,
const l_complex &b)
throw()
106 {
return !(a == b); }
107 inline bool operator != (
const lx_complex &a,
const complex &b)
throw()
108 {
return !(a == b); }
109 inline bool operator != (
const l_complex &a,
const lx_complex &b)
throw()
110 {
return !(a == b); }
111 inline bool operator != (
const complex &a,
const lx_complex &b)
throw()
112 {
return !(a == b); }
114 inline bool operator != (
const lx_complex &a,
const lx_real &b)
throw()
115 {
return !(a == b); }
116 inline bool operator != (
const lx_complex &a,
const l_real &b)
throw()
117 {
return !(a == b); }
118 inline bool operator != (
const lx_complex &a,
const real &b)
throw()
119 {
return !(a == b); }
120 inline bool operator != (
const lx_real &a,
const lx_complex &b)
throw()
121 {
return !(a == b); }
122 inline bool operator != (
const l_real &a,
const lx_complex &b)
throw()
123 {
return !(a == b); }
124 inline bool operator != (
const real &a,
const lx_complex &b)
throw()
125 {
return !(a == b); }
127 inline lx_complex operator + (
const lx_complex &a)
throw()
129 inline lx_complex operator - (
const lx_complex &a)
throw()
130 {
return lx_complex(-a.re,-a.im); }
132 inline lx_complex operator + (
const lx_complex& a,
const lx_complex& b)
throw()
133 {
return lx_complex(a.re+b.re,a.im+b.im); }
135 inline lx_complex operator + (
const lx_complex& a,
const l_complex& b)
throw()
136 {
return a + lx_complex(b); }
137 inline lx_complex operator + (
const lx_complex& a,
const complex& b)
throw()
138 {
return a + lx_complex(b); }
139 inline lx_complex operator + (
const l_complex& a,
const lx_complex& b)
throw()
140 {
return lx_complex(a) + b; }
141 inline lx_complex operator + (
const complex& a,
const lx_complex& b)
throw()
142 {
return lx_complex(a) + b; }
143 inline lx_complex operator + (
const lx_complex& a,
const lx_real& b)
throw()
144 {
return lx_complex(a.re + b, Im(a)); }
145 inline lx_complex operator + (
const lx_real& a,
const lx_complex& b)
throw()
146 {
return lx_complex(b.re + a, Im(b)); }
147 inline lx_complex operator + (
const lx_complex& a,
const l_real& b)
throw()
148 {
return lx_complex(a.re + b, Im(a)); }
149 inline lx_complex operator + (
const l_real& a,
const lx_complex& b)
throw()
150 {
return lx_complex(b.re + a, Im(b)); }
151 inline lx_complex operator + (
const lx_complex& a,
const real& b)
throw()
152 {
return lx_complex(a.re + b, Im(a)); }
153 inline lx_complex operator + (
const real& a,
const lx_complex& b)
throw()
154 {
return lx_complex(b.re + a, Im(b)); }
156 inline lx_complex &
operator +=(lx_complex& a,
const lx_complex& b)
throw()
162 inline lx_complex &
operator +=(lx_complex& a,
const lx_real& b)
throw()
169 inline lx_complex operator - (
const lx_complex& a,
const lx_complex& b)
throw()
171 inline lx_complex operator - (
const lx_complex& a,
const l_complex& b)
throw()
173 inline lx_complex operator - (
const lx_complex& a,
const complex& b)
throw()
175 inline lx_complex operator - (
const l_complex& a,
const lx_complex& b)
throw()
177 inline lx_complex operator - (
const complex& a,
const lx_complex& b)
throw()
179 inline lx_complex operator - (
const lx_complex& a,
const lx_real& b)
throw()
181 inline lx_complex operator - (
const lx_complex& a,
const l_real& b)
throw()
183 inline lx_complex operator - (
const lx_complex& a,
const real& b)
throw()
185 inline lx_complex operator - (
const lx_real& a,
const lx_complex& b)
throw()
187 inline lx_complex operator - (
const l_real& a,
const lx_complex& b)
throw()
189 inline lx_complex operator - (
const real& a,
const lx_complex& b)
throw()
192 inline lx_complex & operator -=(lx_complex& a,
const lx_complex& b)
throw()
194 inline lx_complex & operator -=(lx_complex& a,
const l_complex& b)
throw()
196 inline lx_complex & operator -=(lx_complex& a,
const complex& b)
throw()
198 inline lx_complex & operator -=(lx_complex& a,
const lx_real& b)
throw()
200 inline lx_complex & operator -=(lx_complex& a,
const l_real& b)
throw()
202 inline lx_complex & operator -=(lx_complex& a,
const real& b)
throw()
206 inline lx_complex
operator * (
const lx_complex& a,
const lx_complex& b)
throw()
210 x = a.re*b.re - a.im*b.im;
211 y = a.im*b.re + a.re*b.im;
213 return lx_complex(x,y);
216 {
return a*lx_complex(b); }
218 {
return a*lx_complex(b); }
220 {
return lx_complex(a)*b; }
222 {
return lx_complex(a)*b; }
223 inline lx_complex
operator * (
const lx_complex& a,
const lx_real& b)
throw()
224 {
return a*lx_complex(b); }
226 {
return a*lx_complex(b); }
228 {
return a*lx_complex(b); }
229 inline lx_complex
operator * (
const lx_real& a,
const lx_complex& b)
throw()
230 {
return lx_complex(a)*b; }
232 {
return lx_complex(a)*b; }
234 {
return lx_complex(a)*b; }
236 inline lx_complex &
operator *=(lx_complex& a,
const lx_complex& b)
throw()
242 inline lx_complex &
operator *=(lx_complex& a,
const lx_real& b)
throw()
250 inline lx_complex
operator / (
const lx_complex& a,
const lx_complex& b)
throw()
254 Ne = b.re*b.re + b.im*b.im;
255 x = (a.re*b.re + a.im*b.im) / Ne;
256 y = (a.im*b.re - a.re*b.im) / Ne;
257 return lx_complex(x,y);
260 {
return a/lx_complex(b); }
262 {
return a/lx_complex(b); }
264 {
return lx_complex(a)/b; }
266 {
return lx_complex(a)/b; }
267 inline lx_complex
operator / (
const lx_complex& a,
const lx_real& b)
throw()
268 {
return a/lx_complex(b); }
270 {
return a/lx_complex(b); }
272 {
return a/lx_complex(b); }
273 inline lx_complex
operator / (
const lx_real& a,
const lx_complex& b)
throw()
274 {
return lx_complex(a)/b; }
276 {
return lx_complex(a)/b; }
278 {
return lx_complex(a)/b; }
280 inline lx_complex &
operator /=(lx_complex& a,
const lx_complex& b)
throw()
286 inline lx_complex &
operator /=(lx_complex& a,
const lx_real& b)
throw()
295 inline std::ostream& operator << (std::ostream& s,
const lx_complex& a)
308 inline std::string & operator << (std::string &s,
const lx_complex& a)
throw()
cimatrix & operator/=(cimatrix &m, const cinterval &c)
Implementation of division and allocation operation.
The Multiple-Precision Data Type l_real.
The namespace cxsc, providing all functionality of the class library C-XSC.
civector operator*(const cimatrix_subv &rv, const cinterval &s)
Implementation of multiplication operation.
The Multiple-Precision Data Type l_complex.
cdotprecision & operator+=(cdotprecision &cd, const l_complex &lc)
Implementation of standard algebraic addition and allocation operation.
civector operator/(const cimatrix_subv &rv, const cinterval &s)
Implementation of division operation.
cimatrix & operator*=(cimatrix &m, const cinterval &c)
Implementation of multiplication and allocation operation.