27 inline cidotprecision
_cidotprecision(
const complex &,
const complex &) noexcept;
28 inline cidotprecision
_cidotprecision(
const complex &,
const real &) noexcept;
29 inline cidotprecision
_cidotprecision(
const real &,
const complex &) noexcept;
30 inline cidotprecision
_cidotprecision(
const interval &,
const interval &) noexcept;
31 inline cidotprecision
_cidotprecision(
const interval &,
const real &) noexcept;
32 inline cidotprecision
_cidotprecision(
const real &,
const interval &) noexcept;
38 inline cidotprecision
_cidotprecision(
const idotprecision &,
const idotprecision &) noexcept;
39 inline cidotprecision
_cidotprecision(
const cdotprecision &,
const cdotprecision &);
40 inline cidotprecision
_cidotprecision(
const idotprecision &,
const dotprecision &) noexcept;
41 inline cidotprecision
_cidotprecision(
const cdotprecision &,
const dotprecision &);
42 inline cidotprecision
_cidotprecision(
const dotprecision &,
const idotprecision &) noexcept;
43 inline cidotprecision
_cidotprecision(
const dotprecision &,
const cdotprecision&);
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)
88 : reinf(InfRe(a)), resup(SupRe(a)),
89 iminf(InfIm(a)), imsup(SupIm(a)), k(0)
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;
1411 return Inf(Re(a))>b.reinf && Sup(Re(a))<b.resup && Inf(Im(a))>b.iminf && Sup(Im(a))<b.imsup;
1416 return Inf(Re(a))<b.reinf && Sup(Re(a))>b.resup && Inf(Im(a))<b.iminf && Sup(Im(a))>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;
1431 return Inf(Re(b))<a.reinf && Sup(Re(b))>a.resup && Inf(Im(b))<a.iminf && Sup(Im(b))>a.imsup;
1436 return Inf(Re(b))>a.reinf && Sup(Re(b))<a.resup && Inf(Im(b))>a.iminf && Sup(Im(b))<a.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);
1805 cinterval rnd(
const cidotprecision & a) noexcept