31 : inf(a), sup(b), k(0)
34 cxscthrow(ERROR_IDOTPRECISION_EMPTY_INTERVAL(
"inline idotprecision::idotprecision(const dotprecision &a,const dotprecision &b)"));
40 : inf(a.inf), sup(a.sup), k(a.k)
116 return idotprecision((a.inf<b.inf)?a.inf:b.inf,(a.sup>b.sup)?a.sup:b.sup);
164 return idotprecision((a.inf>b.inf)?a.inf:b.inf,(a.sup<b.sup)?a.sup:b.sup);
287 cxscthrow(ERROR_IDOTPRECISION_EMPTY_INTERVAL(
"inline idotprecision & operator &=(idotprecision &a,const idotprecision &b)"));
305 cxscthrow(ERROR_IDOTPRECISION_EMPTY_INTERVAL(
"inline idotprecision & operator &=(idotprecision &a,const dotprecision &b)"));
317 inline bool operator ==(
const real &r,
const idotprecision &a) noexcept {
return(r==a.inf && r==a.sup); }
318 inline bool operator !=(
const real &r,
const idotprecision &a) noexcept {
return(r!=a.inf || r!=a.sup); }
319 inline bool operator ==(
const idotprecision &a,
const real &r) noexcept {
return(r==a.inf && r==a.sup); }
320 inline bool operator !=(
const idotprecision &a,
const real &r) noexcept {
return(r!=a.inf || r!=a.sup); }
322 inline bool operator ==(
const interval &a,
const idotprecision &b) noexcept {
return(Inf(a)==b.inf && Sup(a)==b.sup); }
323 inline bool operator !=(
const interval &a,
const idotprecision &b) noexcept {
return(Inf(a)!=b.inf || Sup(a)!=b.sup); }
324 inline bool operator ==(
const idotprecision &a,
const interval &b) noexcept {
return(a.inf==Inf(b) && a.sup==Sup(b)); }
325 inline bool operator !=(
const idotprecision &a,
const interval &b) noexcept {
return(a.inf!=Inf(b) || a.sup!=Sup(b)); }
331 return(a.inf>=b.inf && a.sup<=b.sup);
335 return(a.inf<=b.inf && a.sup>=b.sup);
339 return(a.inf>b.inf && a.sup<b.sup);
343 return(a.inf<b.inf && a.sup>b.sup);
348 return(a>=b.inf && a<=b.sup);
352 return(a<=b.inf && a>=b.sup);
356 return(a>b.inf && a<b.sup);
361 return(a.inf>=b && a.sup<=b);
365 return(a.inf<=b && a.sup>=b);
369 return(a.inf<b && a.sup>b);
374 return(a>=b.inf && a<=b.sup);
378 return(a<=b.inf && a>=b.sup);
382 return(a>b.inf && a<b.sup);
387 return(a.inf>=b && a.sup<=b);
391 return(a.inf<=b && a.sup>=b);
395 return(a.inf<b && a.sup>b);
400 return(Inf(a)>=b.inf && Sup(a)<=b.sup);
404 return(Inf(a)<=b.inf && Sup(a)>=b.sup);
408 return(Inf(a)>b.inf && Sup(a)<b.sup);
412 return(Inf(a)<b.inf && Sup(a)>b.sup);
417 return(a.inf>=Inf(b) && a.sup<=Sup(b));
421 return(a.inf<=Inf(b) && a.sup>=Sup(b));
425 return(a.inf>Inf(b) && a.sup<Sup(b));
429 return(a.inf<Inf(b) && a.sup>Sup(b));
477 inline bool IsEmpty(
const idotprecision &a) noexcept {
return (a.inf>a.sup); }
484 if (IsEmpty(a))
return a;
495 inline void accumulate (
idotprecision & a,
const real & b,
const real & c) noexcept { accumulate(a,_interval(b),_interval(c)); }
The Data Type dotprecision.
void set_k(unsigned int i)
Set precision for computation of dot products.
The Data Type idotprecision.
idotprecision()
Constructor of class 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.
idotprecision _unchecked_idotprecision(const real &a, const real &b)
idotprecision _idotprecision(const real &a)
ivector abs(const cimatrix_subv &mv) noexcept
Returns the absolute value of the matrix.