49 : reinf(a), resup(reinf),
50 iminf(0), imsup(iminf), k(0)
55 : reinf(a), resup(reinf),
56 iminf(0), imsup(iminf)
62 : reinf(
Re(a)), resup(reinf),
63 iminf(
Im(a)), imsup(iminf), k(0)
68 : reinf(
Re(a)), resup(reinf),
69 iminf(
Im(a)), imsup(iminf)
75 : reinf(
Inf(a)), resup(
Sup(a)),
76 iminf(0), imsup(iminf), k(0)
81 : reinf(
Inf(a)), resup(
Sup(a)),
82 iminf(0), imsup(iminf)
94 : reinf(a.reinf), resup(a.resup),
95 iminf(a.iminf), imsup(a.imsup)
101 : reinf(
Inf(a)), resup(
Sup(a)),
102 iminf(
Inf(b)), imsup(
Sup(b))
206 tmp.reinf=
Inf(
Re(a));
207 tmp.resup=
Sup(
Re(a));
208 tmp.iminf=
Inf(
Im(a));
209 tmp.imsup=
Sup(
Im(a));
240 if(tmp.reinf>tmp.resup || tmp.iminf>tmp.imsup)
241 cxscthrow(ERROR_CIDOTPRECISION_EMPTY_INTERVAL(
"inline cidotprecision _cidotprecision(const cdotprecision & a,const cdotprecision & b)"));
255 tmp.iminf=tmp.imsup=b;
271 if(tmp.reinf>tmp.resup || tmp.iminf>tmp.imsup)
272 cxscthrow(ERROR_CIDOTPRECISION_EMPTY_INTERVAL(
"inline cidotprecision _cidotprecision(const cdotprecision & a,const dotprecision & b)"));
284 tmp.reinf=tmp.resup=a;
302 if(tmp.reinf>tmp.resup || tmp.iminf>tmp.imsup)
303 cxscthrow(ERROR_CIDOTPRECISION_EMPTY_INTERVAL(
"inline cidotprecision _cidotprecision(const dotprecision & a,const cdotprecision & b)"));
315 tmp.reinf=tmp.resup=
Re(a);
316 tmp.iminf=tmp.imsup=
Im(a);
330 tmp.iminf=tmp.imsup=0.0;
342 tmp.reinf=tmp.resup=a;
343 tmp.iminf=tmp.imsup=0.0;
481 if(tmp.reinf>b.reinf)
483 if(tmp.iminf>b.iminf)
485 if(tmp.resup<b.resup)
487 if(tmp.imsup<b.imsup)
495 if(tmp.reinf<b.reinf)
497 if(tmp.iminf<b.iminf)
499 if(tmp.resup>b.resup)
501 if(tmp.imsup>b.imsup)
504 if (tmp.reinf >tmp.resup || tmp.iminf > tmp.imsup)
505 cxscthrow(ERROR_CIDOTPRECISION_EMPTY_INTERVAL(
"inline cidotprecision operator &(const cidotprecision & a,const cidotprecision & b)"));
552 if (a.reinf >a.resup || a.iminf > a.imsup)
553 cxscthrow(ERROR_CIDOTPRECISION_EMPTY_INTERVAL(
"inline cidotprecision operator &=(cidotprecision & a,const cidotprecision & b)"));
855 if(
Sup(
Re(b))>a.resup)
857 if(
Inf(
Re(b))<a.reinf)
859 if(
Sup(
Im(b))>a.imsup)
861 if(
Inf(
Im(b))<a.iminf)
868 if(
Sup(
Re(b))<a.resup)
870 if(
Inf(
Re(b))>a.reinf)
872 if(
Sup(
Im(b))<a.imsup)
874 if(
Inf(
Im(b))>a.iminf)
877 if (a.reinf >a.resup || a.iminf > a.imsup)
878 cxscthrow(ERROR_CIDOTPRECISION_EMPTY_INTERVAL(
"inline cidotprecision operator &=(cidotprecision & a,const cinterval & b)"));
971 if (a.reinf >a.resup || a.iminf > a.imsup)
972 cxscthrow(ERROR_CIDOTPRECISION_EMPTY_INTERVAL(
"inline cidotprecision operator &=(cidotprecision & a,const dotprecision & b)"));
1069 if (a.reinf >a.resup || a.iminf > a.imsup)
1070 cxscthrow(ERROR_CIDOTPRECISION_EMPTY_INTERVAL(
"inline cidotprecision operator &=(cidotprecision & a,const cdotprecision & b)"));
1164 if (a.reinf >a.resup || a.iminf > a.imsup)
1165 cxscthrow(ERROR_CIDOTPRECISION_EMPTY_INTERVAL(
"inline cidotprecision operator &=(cidotprecision & a,const idotprecision & b)"));
1174 return a.reinf<=0. && a.resup>=0. && a.iminf<=0. && a.imsup>=0.;
1187 return a.reinf==b.reinf && a.resup==b.resup && a.iminf==b.iminf && a.imsup==b.imsup;
1192 return a.reinf!=b.reinf || a.resup!=b.resup || a.iminf!=b.iminf || a.imsup!=b.imsup;
1199 return a.reinf==b && a.resup==b && a.iminf==0. && a.imsup==0.;
1204 return b.reinf==a && b.resup==a && b.iminf==0. && b.imsup==0.;
1209 return a.reinf!=b || a.resup!=b || a.iminf!=0. || a.imsup!=0.;
1214 return b.reinf!=a || b.resup!=a || b.iminf!=0. || b.imsup!=0.;
1221 return a.reinf==
Re(b) && a.resup==
Re(b) && a.iminf==
Im(b) && a.imsup==
Im(b);
1226 return b.reinf==
Re(a) && b.resup==
Re(a) && b.iminf==
Im(a) && b.imsup==
Im(a);
1231 return a.reinf!=
Re(b) || a.resup!=
Re(b) || a.iminf!=
Im(a) || a.imsup!=
Im(a);
1236 return b.reinf!=
Re(a) || b.resup!=
Re(a) || b.iminf!=
Im(a) || b.imsup!=
Im(a);
1243 return a.reinf==
Inf(b) && a.resup==
Sup(b) && a.iminf==0. && a.imsup==0.;
1248 return b.reinf==
Inf(a) && b.resup==
Sup(a) && b.iminf==0. && b.imsup==0.;
1253 return a.reinf!=
Inf(b) || a.resup!=
Sup(b) || a.iminf!=0. || a.imsup!=0.;
1258 return b.reinf!=
Inf(a) || b.resup!=
Sup(b) || b.iminf!=0. || b.imsup!=0.;
1265 return a.reinf==
Inf(
Re(b)) && a.resup==
Sup(
Re(b)) && a.iminf==
Inf(
Im(b)) && a.imsup==
Sup(
Im(b));
1270 return b.reinf==
Inf(
Re(a)) && b.resup==
Sup(
Re(a)) && b.iminf==
Inf(
Im(a)) && b.imsup==
Sup(
Im(a));
1275 return a.reinf!=
Inf(
Re(b)) || a.resup!=
Sup(
Re(b)) || a.iminf!=
Inf(
Im(a)) || a.imsup!=
Sup(
Im(a));
1280 return b.reinf!=
Inf(
Re(a)) || b.resup!=
Sup(
Re(b)) || b.iminf!=
Inf(
Im(a)) || b.imsup!=
Sup(
Im(a));
1287 return a.reinf==b && a.resup==b && a.iminf==0. && a.imsup==0.;
1292 return b.reinf==a && b.resup==a && b.iminf==0. && b.imsup==0.;
1297 return a.reinf!=b || a.resup!=b || a.iminf!=0. || a.imsup!=0.;
1302 return b.reinf!=a || b.resup!=b || b.iminf!=0. || b.imsup!=0.;
1310 return a.reinf==
Re(b) && a.resup==
Re(b) && a.iminf==
Im(b) && a.imsup==
Im(b);
1315 return b.reinf==
Re(a) && b.resup==
Re(a) && b.iminf==
Im(a) && b.imsup==
Im(a);
1320 return a.reinf!=
Re(b) || a.resup!=
Re(b) || a.iminf!=
Im(a) || a.imsup!=
Im(a);
1325 return b.reinf!=
Re(a) || b.resup!=
Re(b) || b.iminf!=
Im(a) || b.imsup!=
Im(a);
1332 return a.reinf==
Inf(b) && a.resup==
Sup(b) && a.iminf==0. && a.imsup==0.;
1337 return b.reinf==
Inf(a) && b.resup==
Sup(a) && b.iminf==0. && b.imsup==0.;
1342 return a.reinf!=
Inf(b) || a.resup!=
Sup(b) || a.iminf!=0. || a.imsup!=0.;
1347 return b.reinf!=
Inf(a) || b.resup!=
Sup(b) || b.iminf!=0. || b.imsup!=0.;
1353 return a.reinf>b.reinf && a.resup<b.resup && a.iminf>b.iminf && a.imsup<b.imsup;
1358 return a.reinf<b.reinf && a.resup>b.resup && a.iminf<b.iminf && a.imsup>b.imsup;
1363 return a.reinf>=b.reinf && a.resup<=b.resup && a.iminf>=b.iminf && a.imsup<=b.imsup;
1368 return a.reinf<=b.reinf && a.resup>=b.resup && a.iminf<=b.iminf && a.imsup>=b.imsup;
1421 return Inf(
Re(a))>=b.reinf &&
Sup(
Re(a))<=b.resup &&
Inf(
Im(a))>=b.iminf &&
Sup(
Im(a))<=b.imsup;
1426 return Inf(Re(a))<=b.reinf && Sup(Re(a))>=b.resup && Inf(Im(a))<=b.iminf && Sup(Im(a))>=b.imsup;
1441 return Inf(
Re(b))<=a.reinf &&
Sup(
Re(b))>=a.resup &&
Inf(
Im(b))<=a.iminf &&
Sup(
Im(b))>=a.imsup;
1446 return Inf(
Re(b))>=a.reinf &&
Sup(
Re(b))<=a.resup &&
Inf(
Im(b))>=a.iminf &&
Sup(
Im(b))<=a.imsup;
1453 return a>b.reinf && a<b.resup && 0.>b.iminf && 0.<b.imsup;
1463 return a>=b.reinf && a<=b.resup && 0.>=b.iminf && 0.<=b.imsup;
1478 return b>a.reinf && b<a.resup && 0.>a.iminf && 0.<a.imsup;
1488 return b>=a.reinf && b<=a.resup && 0.>=a.iminf && 0.<=a.imsup;
1496 return Re(a)>b.reinf &&
Re(a)<b.resup &&
Im(a)>b.iminf &&
Im(a)<b.imsup;
1506 return Re(a)>=b.reinf &&
Re(a)<=b.resup &&
Im(a)>=b.iminf &&
Im(a)<=b.imsup;
1521 return Re(b)>a.reinf &&
Re(b)<a.resup &&
Im(b)>a.iminf &&
Im(b)<a.imsup;
1531 return Re(b)>=a.reinf &&
Re(b)<=a.resup &&
Im(a)>=a.iminf &&
Im(a)<=a.imsup;
1538 return Inf(a)>b.reinf &&
Sup(a)<b.resup && 0.>b.iminf && 0.<b.imsup;
1548 return Inf(a)>=b.reinf &&
Sup(a)<=b.resup && 0.>=b.iminf && 0.<=b.imsup;
1553 return Inf(a)<=b.reinf &&
Sup(a)>=b.resup && b.iminf==0. && b.imsup==0.;
1563 return Inf(b)>a.reinf &&
Sup(b)<a.resup && 0.>a.iminf && 0.<a.imsup;
1568 return Inf(b)<=a.reinf &&
Sup(b)>=a.resup && a.iminf==0. && a.imsup==0.;
1573 return Inf(b)>=a.reinf &&
Sup(b)<=a.resup && 0.>=a.iminf && 0.<=a.imsup;
1586 if (a.reinf >a.resup || a.iminf > a.imsup)
1587 cxscthrow(ERROR_CIDOTPRECISION_EMPTY_INTERVAL(
"inline cidotprecision & SetInf(cidotprecision & a,const cdotprecision & b)"));
1597 if (a.reinf >a.resup || a.iminf > a.imsup)
1598 cxscthrow(ERROR_CIDOTPRECISION_EMPTY_INTERVAL(
"inline cidotprecision & SetSup(cidotprecision & a,const cdotprecision & b)"));
1608 if (a.reinf >a.resup || a.iminf > a.imsup)
1609 cxscthrow(ERROR_CIDOTPRECISION_EMPTY_INTERVAL(
"inline cidotprecision & SetInf(cidotprecision & a,const dotprecision & b)"));
1619 if (a.reinf >a.resup || a.iminf > a.imsup)
1620 cxscthrow(ERROR_CIDOTPRECISION_EMPTY_INTERVAL(
"inline cidotprecision & SetInf(cidotprecision & a,const dotprecision & b)"));
1630 if (a.reinf >a.resup || a.iminf > a.imsup)
1631 cxscthrow(ERROR_CIDOTPRECISION_EMPTY_INTERVAL(
"inline cidotprecision & SetInf(cidotprecision & a,const complex & b)"));
1641 if (a.reinf >a.resup || a.iminf > a.imsup)
1642 cxscthrow(ERROR_CIDOTPRECISION_EMPTY_INTERVAL(
"inline cidotprecision & SetSup(cidotprecision & a,const complex & b)"));
1652 if (a.reinf >a.resup || a.iminf > a.imsup)
1653 cxscthrow(ERROR_CIDOTPRECISION_EMPTY_INTERVAL(
"inline cidotprecision & SetInf(cidotprecision & a,const real & b)"));
1663 if (a.reinf >a.resup || a.iminf > a.imsup)
1664 cxscthrow(ERROR_CIDOTPRECISION_EMPTY_INTERVAL(
"inline cidotprecision & SetInf(cidotprecision & a,const real & b)"));
1797 SetRe(c,rnd(a.reinf,RND_DOWN));
1798 SetIm(c,rnd(a.iminf,RND_DOWN));
1799 UncheckedSetInf(b,c);
1800 SetRe(c,rnd(a.resup,RND_UP));
1801 SetIm(c,rnd(a.imsup,RND_UP));
1802 UncheckedSetSup(b,c);
1805cinterval rnd(
const cidotprecision & a)
noexcept
The Data Type cdotprecision.
The Data Type cidotprecision.
friend cidotprecision & UncheckedSetInf(cidotprecision &, const cdotprecision &) noexcept
Returns the complex dotprecison interval with the unchecked new given infimum value.
cidotprecision()
Constructor of class cidotprecision.
friend void accumulate(cidotprecision &, const cinterval &, const cinterval &) noexcept
The accurate scalar product of the last two arguments added to the value of the first argument.
friend cdotprecision Sup(const cidotprecision &) noexcept
Returns the supremum of a complex dotprecison interval.
friend const dotprecision & InfIm(const cidotprecision &) noexcept
Returns the infimum of the imaginary part of the complex dotprecision interval.
friend cdotprecision Inf(const cidotprecision &) noexcept
Returns the infimum of a complex dotprecison interval.
friend cidotprecision & UncheckedSetSup(cidotprecision &, const cdotprecision &) noexcept
Returns the complex dotprecison interval with the unchecked new given supremum value.
friend idotprecision Re(const cidotprecision &) noexcept
Returns the real part of the complex dotprecision interval.
friend const dotprecision & SupRe(const cidotprecision &) noexcept
Returns the supremum of the real part of the complex dotprecision interval.
void set_k(unsigned int i)
Set precision for computation of dot products.
friend const dotprecision & SupIm(const cidotprecision &) noexcept
Returns the supremum of the imaginary part of the complex dotprecision interval.
friend const dotprecision & InfRe(const cidotprecision &) noexcept
Returns the infimum of the real part of the complex dotprecision interval.
friend idotprecision Im(const cidotprecision &) noexcept
Returns the imaginary part of the complex dotprecision interval.
friend cidotprecision & SetRe(cidotprecision &, const idotprecision &) noexcept
Sets the real part of the complex dotprecision interval.
friend cidotprecision & SetInf(cidotprecision &, const cdotprecision &)
Returns the complex dotprecison interval with the new given infimum value.
friend cidotprecision & SetSup(cidotprecision &, const cdotprecision &)
Returns the complex dotprecison interval with the new given supremum value.
friend cidotprecision & SetIm(cidotprecision &, const idotprecision &) noexcept
Sets the imaginary part of the complex dotprecision interval.
The Scalar Type cinterval.
The Data Type dotprecision.
The Data Type idotprecision.
The Scalar Type interval.
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.
cidotprecision _unchecked_cidotprecision(const complex &a, const complex &b) noexcept
cidotprecision _cidotprecision(const complex &, const complex &) noexcept
cinterval _cinterval(const real &a) noexcept