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)"));
317inline bool operator ==(
const real &r,
const idotprecision &a)
noexcept {
return(r==a.inf && r==a.sup); }
318inline bool operator !=(
const real &r,
const idotprecision &a)
noexcept {
return(r!=a.inf || r!=a.sup); }
319inline bool operator ==(
const idotprecision &a,
const real &r)
noexcept {
return(r==a.inf && r==a.sup); }
320inline bool operator !=(
const idotprecision &a,
const real &r)
noexcept {
return(r!=a.inf || r!=a.sup); }
322inline bool operator ==(
const interval &a,
const idotprecision &b)
noexcept {
return(Inf(a)==b.inf && Sup(a)==b.sup); }
323inline bool operator !=(
const interval &a,
const idotprecision &b)
noexcept {
return(Inf(a)!=b.inf || Sup(a)!=b.sup); }
324inline bool operator ==(
const idotprecision &a,
const interval &b)
noexcept {
return(a.inf==Inf(b) && a.sup==Sup(b)); }
325inline 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));
477inline bool IsEmpty(
const idotprecision &a)
noexcept {
return (a.inf>a.sup); }
484 if (IsEmpty(a))
return a;
495inline 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.