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