50 cxscthrow(ERROR_CINTERVAL_EMPTY_INTERVAL(
"l_cinterval::l_cinterval(const complex & a,const complex & b)"));
59 cxscthrow(ERROR_CINTERVAL_EMPTY_INTERVAL(
"l_cinterval::l_cinterval(const complex & a,const complex & b)"));
69 noexcept : re(a), im(0,0) {}
71 noexcept : re(a), im(0,0) {}
73 noexcept : re(Re(a),Re(a)),im(Im(a),Im(a)) {}
75 noexcept : re(Re(a),Re(a)),im(Im(a),Im(a)) {}
77 noexcept : re(Inf(Re(a)),Sup(Re(a))),im(Inf(Im(a)),Sup(Im(a))) {}
168 return !a.re && !a.im;
188 y = Inf(a.re); x = Inf(b.re);
191 y = Inf(a.im); x = Inf(b.im);
194 y = Sup(a.re); x = Sup(b.re);
197 y = Sup(a.im); x = Sup(b.im);
200 if (Inf(tmp.re) > Sup(tmp.re) || Inf(tmp.im) > Sup(tmp.im))
201 cxscthrow(ERROR_CINTERVAL_EMPTY_INTERVAL(
"inline l_cinterval operator &(const l_cinterval & a,const l_cinterval & b)"));
210 y = Inf(a.re); x = Inf(b.re);
213 y = Inf(a.im); x = Inf(b.im);
216 y = Sup(a.re); x = Sup(b.re);
219 y = Sup(a.im); x = Sup(b.im);
226 noexcept {
return a = a+b; }
228 noexcept {
return a = a-b; }
230 noexcept {
return a = a*b; }
232 noexcept {
return a = a/b; }
234 noexcept {
return a = a|b; }
270 {
return a = a * b; }
272 {
return a = a / b; }
310 {
return a = a * b; }
312 {
return a = a / b; }
678 return a.re==b.re && a.im==b.im;
682 return a.re!=b.re || a.im!=b.im;
767 if (Inf(a.re) <= Inf(b.re) || Sup(a.re) >= Sup(b.re))
769 if (Inf(a.im) <= Inf(b.im) || Sup(a.im) >= Sup(b.im))
780 if (Inf(a.re) < Inf(b.re) || Sup(a.re) > Sup(b.re))
782 if (Inf(a.im) < Inf(b.im) || Sup(a.im) > Sup(b.im))
935 {
return l_complex(Inf(a.re),Inf(a.im)); }
937 {
return l_complex(Sup(a.re),Sup(a.im)); }
945 if (Inf(a.re) > Sup(a.re) || Inf(a.im) > Sup(a.im))
946 cxscthrow(ERROR_CINTERVAL_EMPTY_INTERVAL(
"inline l_cinterval & SetInf(l_cinterval & a, const complex & b)"));
957 if (Inf(a.re) > Sup(a.re) || Inf(a.im) > Sup(a.im))
958 cxscthrow(ERROR_CINTERVAL_EMPTY_INTERVAL(
"inline l_cinterval & SetSup(l_cinterval & a, const complex & b)"));
969 if (Inf(a.re) > Sup(a.re) || Inf(a.im) > Sup(a.im))
970 cxscthrow(ERROR_CINTERVAL_EMPTY_INTERVAL(
"inline l_cinterval & SetInf(l_cinterval & a, const l_complex & b)"));
981 if (Inf(a.re) > Sup(a.re) || Inf(a.im) > Sup(a.im))
982 cxscthrow(ERROR_CINTERVAL_EMPTY_INTERVAL(
"inline l_cinterval & SetSup(l_cinterval & a, const l_complex & b)"));
993 if (Inf(a.re) > Sup(a.re) || Inf(a.im) > Sup(a.im))
994 cxscthrow(ERROR_CINTERVAL_EMPTY_INTERVAL(
"inline l_cinterval & SetSup(l_cinterval & a, const real & b)"));
1005 if (Inf(a.re) > Sup(a.re) || Inf(a.im) > Sup(a.im))
1006 cxscthrow(ERROR_CINTERVAL_EMPTY_INTERVAL(
"inline l_cinterval & SetSup(l_cinterval & a, const real & b)"));
1017 if (Inf(a.re) > Sup(a.re) || Inf(a.im) > Sup(a.im))
1018 cxscthrow(ERROR_CINTERVAL_EMPTY_INTERVAL(
"inline l_cinterval & SetSup(l_cinterval & a, const l_real & b)"));
1029 if (Inf(a.re) > Sup(a.re) || Inf(a.im) > Sup(a.im))
1030 cxscthrow(ERROR_CINTERVAL_EMPTY_INTERVAL(
"inline l_cinterval & SetSup(l_cinterval & a, const l_real & b)"));
1120 if ( n<-1074 || n>1023 )
1121 { std::cerr <<
"Error in: "
1122 <<
"times2pown(l_cinterval& x, const int& n): " << std::endl
1123 <<
" -1074 <= n <= +1023 not fulfilled" << std::endl; exit(0);
The Data Type cdotprecision.
The Data Type cidotprecision.
The Scalar Type cinterval.
The Data Type dotprecision.
The Data Type idotprecision.
The Scalar Type interval.
The Multiple-Precision Data Type l_cinterval.
friend l_complex Inf(const l_cinterval &) noexcept
Returns the infimum of an interval.
friend l_complex Sup(const l_cinterval &) noexcept
Returns the supremum of an interval.
l_cinterval(void) noexcept
Constructor of class l_cinterval.
The Multiple-Precision Data Type l_complex.
The Multiple-Precision Data Type l_interval.
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.
cvector diam(const cimatrix_subv &mv) noexcept
Returns the diameter of the matrix.
cimatrix & operator*=(cimatrix &m, const cinterval &c) noexcept
Implementation of multiplication and allocation operation.
void times2pown(cinterval &x, int n) noexcept
Fast multiplication of reference parameter [z] with .
cvector mid(const cimatrix_subv &mv) noexcept
Returns the middle of the matrix.
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.