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