37inline int StagPrec(
const lx_interval &a)
noexcept
38{
return StagPrec(a.li); }
40inline real expo(
const lx_interval &a)
noexcept
43inline l_interval li_part(
const lx_interval &a)
noexcept
46inline int Disjoint(
const lx_interval& a,
const lx_interval& b)
47{
return (Inf(a)>Sup(b) || Inf(b)>Sup(a)); }
49inline int in(
const lx_interval& x,
const lx_interval& y)
50{
return ( (Inf(y) < Inf(x)) && (Sup(x) < Sup(y)) ); }
53{
return ( (Inf(y) < Inf(x)) && (Sup(x) < Sup(y)) ); }
56{
return ( (Inf(y) < Inf(x)) && (Sup(x) < Sup(y)) ); }
58inline int in(
const lx_real& x,
const lx_interval& y )
59{
return ( (Inf(y) <= x) && (x <= Sup(y)) ); }
61inline int in(
const l_real& x,
const lx_interval& y )
62{
return ( (Inf(y) <= x) && (x <= Sup(y)) ); }
64inline int in(
const real& x,
const lx_interval& y )
65{
return ( (Inf(y) <= x) && (x <= Sup(y)) ); }
67inline lx_interval
Blow(
const lx_interval& a)
noexcept
86 res = lx_interval(Max_Int_N,al);
92inline lx_interval
Blow(
const lx_interval& x,
const real& eps )
95 return lx_interval( expo(x),
Blow(y,eps) );
98inline lx_real
AbsMin (
const lx_interval &x)
100 if (
in(0.0,x) )
return lx_real(0.0);
104 if (y > 0.0)
return y;
109inline lx_real
AbsMax (
const lx_interval &x)
122inline lx_interval & lx_interval::operator = (
const lx_interval &a)
noexcept
129inline lx_interval & lx_interval::operator = (
const lx_real &a)
noexcept
136inline lx_interval & lx_interval::operator = (
const l_interval &a)
noexcept
143inline lx_interval & lx_interval::operator = (
const l_real & a)
noexcept
150inline lx_interval & lx_interval::operator = (
const real & a)
noexcept
157inline lx_interval & lx_interval::operator = (
const interval & a)
noexcept
164inline lx_interval operator+(
const lx_interval & a)
noexcept {
return a; }
165inline lx_interval operator-(
const lx_interval & a)
noexcept
166{
return lx_interval(a.ex,-a.li); }
168inline lx_interval operator + (
const lx_interval &a,
const l_interval &b)
noexcept
169{
return a + lx_interval(b); }
171inline lx_interval operator + (
const l_interval &a,
const lx_interval &b)
noexcept
172{
return lx_interval(a) + b; }
174inline lx_interval operator + (
const lx_interval &a,
const l_real &b)
noexcept
175{
return a + lx_interval(b); }
177inline lx_interval operator + (
const l_real &a,
const lx_interval &b)
noexcept
178{
return lx_interval(a) + b; }
180inline lx_interval operator + (
const lx_interval &a,
const lx_real &b)
noexcept
181{
return a + lx_interval(b); }
183inline lx_interval operator + (
const lx_real &a,
const lx_interval &b)
noexcept
184{
return lx_interval(a) + b; }
186inline lx_interval operator + (
const lx_interval &a,
const real &b)
noexcept
187{
return a + lx_interval(b); }
189inline lx_interval operator + (
const real &a,
const lx_interval &b)
noexcept
190{
return lx_interval(a) + b; }
192inline lx_interval operator + (
const lx_interval &a,
const interval &b)
noexcept
193{
return a + lx_interval(b); }
195inline lx_interval operator + (
const interval &a,
const lx_interval &b)
noexcept
196{
return lx_interval(a) + b; }
198inline lx_interval &
operator +=(lx_interval &a,
const lx_interval &b)
noexcept
207inline lx_interval &
operator +=(lx_interval &a,
const lx_real &b)
noexcept
216inline lx_interval operator - (
const lx_interval &a,
const lx_interval &b)
noexcept
217{
return a + lx_interval(-b); }
219inline lx_interval operator - (
const lx_interval &a,
const l_interval &b)
noexcept
220{
return a + lx_interval(-b); }
222inline lx_interval operator - (
const l_interval &a,
const lx_interval &b)
noexcept
223{
return lx_interval(a) + (-b); }
225inline lx_interval operator - (
const lx_interval &a,
const l_real &b)
noexcept
226{
return a + lx_interval(-b); }
228inline lx_interval operator - (
const l_real &a,
const lx_interval &b)
noexcept
229{
return lx_interval(a) + (-b); }
231inline lx_interval operator - (
const lx_interval &a,
const lx_real &b)
noexcept
232{
return a + lx_interval(-b); }
234inline lx_interval operator - (
const lx_real &a,
const lx_interval &b)
noexcept
235{
return lx_interval(a) + (-b); }
237inline lx_interval operator - (
const lx_interval &a,
const real &b)
noexcept
238{
return a + lx_interval(-b); }
240inline lx_interval operator - (
const real &a,
const lx_interval &b)
noexcept
241{
return lx_interval(a) + (-b); }
243inline lx_interval operator - (
const lx_interval &a,
const interval &b)
noexcept
244{
return a + lx_interval(-b); }
246inline lx_interval operator - (
const interval &a,
const lx_interval &b)
noexcept
247{
return lx_interval(a) + (-b); }
249inline lx_interval & operator -=(lx_interval &a,
const lx_interval &b)
noexcept
251inline lx_interval & operator -=(lx_interval &a,
const l_interval &b)
noexcept
253inline lx_interval & operator -=(lx_interval &a,
const l_real &b)
noexcept
255inline lx_interval & operator -=(lx_interval &a,
const lx_real &b)
noexcept
257inline lx_interval & operator -=(lx_interval &a,
const real &b)
noexcept
259inline lx_interval & operator -=(lx_interval &a,
const interval &b)
noexcept
264{
return a * lx_interval(b); }
268{
return lx_interval(a) * b; }
271{
return a * lx_interval(b); }
274{
return lx_interval(a) * b; }
276inline lx_interval
operator * (
const lx_interval &a,
const lx_real &b)
noexcept
277{
return a * lx_interval(b); }
279inline lx_interval
operator * (
const lx_real &a,
const lx_interval &b)
noexcept
280{
return lx_interval(a) * b; }
283{
return a * lx_interval(b); }
286{
return lx_interval(a) * b; }
289{
return a * lx_interval(b); }
292{
return lx_interval(a) * b; }
294inline lx_interval &
operator *=(lx_interval &a,
const lx_interval &b)
noexcept
300inline lx_interval &
operator *=(lx_interval &a,
const lx_real &b)
noexcept
309{
return a / lx_interval(b); }
313{
return lx_interval(a) / b; }
317{
return a / lx_interval(b); }
321{
return lx_interval(a) / b; }
325{
return a / lx_interval(b); }
329{
return lx_interval(a) / b; }
333{
return a / lx_interval(b); }
337{
return lx_interval(a) / b; }
339inline lx_interval
operator / (
const lx_interval &a,
const lx_real &b)
341{
return a / lx_interval(b); }
343inline lx_interval
operator / (
const lx_real &a,
const lx_interval &b)
345{
return lx_interval(a) / b; }
348inline lx_interval &
operator /=(lx_interval &a,
const lx_interval &b)
noexcept
358inline lx_interval &
operator /=(lx_interval &a,
const lx_real &b)
noexcept
363inline bool operator ! (
const lx_interval& a)
noexcept
366inline bool operator == (
const lx_interval &a,
const lx_interval &b)
noexcept
370 real na(expo(a)), nb(expo(b)), d;
371 bool a_0(exa<-100000), b_0(exb<-100000), res;
373 if (a_0 || b_0) res = (a_0 == b_0);
388 res = (na==nb && al==bl);
393inline bool operator == (
const lx_interval &a,
const l_interval &b)
noexcept
394{
return (a == lx_interval(b)); }
396inline bool operator == (
const l_interval &a,
const lx_interval &b)
noexcept
397{
return ( lx_interval(a) == b); }
399inline bool operator == (
const lx_interval &a,
const interval &b)
noexcept
400{
return (a == lx_interval(b)); }
402inline bool operator == (
const interval &a,
const lx_interval &b)
noexcept
403{
return ( lx_interval(a) == b); }
405inline bool operator == (
const lx_interval &a,
const real &b)
noexcept
406{
return ( a == lx_interval(b)); }
408inline bool operator == (
const lx_interval &a,
const l_real &b)
noexcept
409{
return ( a == lx_interval(b)); }
411inline bool operator == (
const real &a,
const lx_interval &b)
noexcept
412{
return ( lx_interval(a) == b); }
414inline bool operator == (
const l_real &a,
const lx_interval &b)
noexcept
415{
return ( lx_interval(a) == b); }
417inline bool operator == (
const lx_interval &a,
const lx_real &b)
noexcept
418{
return ( a == lx_interval(b)); }
420inline bool operator == (
const lx_real &a,
const lx_interval &b)
noexcept
421{
return ( lx_interval(a) == b); }
423inline bool operator != (
const lx_interval &a,
const lx_interval &b)
noexcept
426inline bool operator != (
const lx_interval &a,
const l_interval &b)
noexcept
427{
return !(a==lx_interval(b)); }
429inline bool operator != (
const l_interval &a,
const lx_interval &b)
noexcept
430{
return !(lx_interval(a) == b); }
432inline bool operator != (
const lx_interval &a,
const interval &b)
noexcept
433{
return !(a==lx_interval(b)); }
435inline bool operator != (
const interval &a,
const lx_interval &b)
noexcept
436{
return !(lx_interval(a) == b); }
438inline bool operator != (
const lx_interval &a,
const real &b)
noexcept
439{
return !(a == lx_interval(b)); }
441inline bool operator != (
const real &a,
const lx_interval &b)
noexcept
442{
return !(lx_interval(a) == b); }
444inline bool operator != (
const lx_interval &a,
const l_real &b)
noexcept
445{
return !(a == lx_interval(b)); }
447inline bool operator != (
const l_real &a,
const lx_interval &b)
noexcept
448{
return !(lx_interval(a) == b); }
450inline bool operator != (
const lx_interval &a,
const lx_real &b)
noexcept
451{
return !(a == lx_interval(b)); }
453inline bool operator != (
const lx_real &a,
const lx_interval &b)
noexcept
454{
return !(lx_interval(a) == b); }
461inline bool operator < (
const lx_interval &a,
const lx_interval &b)
noexcept
462{
return( Inf(a)>Inf(b) && Sup(a)<Sup(b) ); }
463inline bool operator <= (
const lx_interval &a,
const lx_interval &b)
noexcept
464{
return( Inf(a)>=Inf(b) && Sup(a)<=Sup(b) ); }
465inline bool operator > (
const lx_interval& a,
const lx_interval& b)
noexcept
466{
return(Inf(a)<Inf(b) && Sup(a)>Sup(b)); }
467inline bool operator >= (
const lx_interval& a,
const lx_interval& b)
noexcept
468{
return(Inf(a)<=Inf(b) && Sup(a)>=Sup(b)); }
471inline bool operator < (
const lx_interval &a,
const l_interval &b)
noexcept
472{
return( Inf(a)>Inf(b) && Sup(a)<Sup(b) ); }
473inline bool operator <= (
const lx_interval &a,
const l_interval &b)
noexcept
474{
return( Inf(a)>=Inf(b) && Sup(a)<=Sup(b) ); }
475inline bool operator < (
const l_interval &a,
const lx_interval &b)
noexcept
476{
return( Inf(a)>Inf(b) && Sup(a)<Sup(b) ); }
477inline bool operator <= (
const l_interval &a,
const lx_interval &b)
noexcept
478{
return( Inf(a)>=Inf(b) && Sup(a)<=Sup(b) ); }
479inline bool operator > (
const lx_interval& a,
const l_interval& b)
noexcept
480{
return(Inf(a)<Inf(b) && Sup(a)>Sup(b)); }
481inline bool operator >= (
const lx_interval& a,
const l_interval& b)
noexcept
482{
return(Inf(a)<=Inf(b) && Sup(a)>=Sup(b)); }
483inline bool operator > (
const l_interval& a,
const lx_interval& b)
noexcept
484{
return(Inf(a)<Inf(b) && Sup(a)>Sup(b)); }
485inline bool operator >= (
const l_interval& a,
const lx_interval& b)
noexcept
486{
return(Inf(a)<=Inf(b) && Sup(a)>=Sup(b)); }
489inline bool operator < (
const lx_interval &a,
const interval &b)
noexcept
490{
return( Inf(a)>Inf(b) && Sup(a)<Sup(b) ); }
491inline bool operator <= (
const lx_interval &a,
const interval &b)
noexcept
492{
return( Inf(a)>=Inf(b) && Sup(a)<=Sup(b) ); }
493inline bool operator < (
const interval &a,
const lx_interval &b)
noexcept
494{
return( Inf(a)>Inf(b) && Sup(a)<Sup(b) ); }
495inline bool operator <= (
const interval &a,
const lx_interval &b)
noexcept
496{
return( Inf(a)>=Inf(b) && Sup(a)<=Sup(b) ); }
497inline bool operator > (
const lx_interval& a,
const interval& b)
noexcept
498{
return(Inf(a)<Inf(b) && Sup(a)>Sup(b)); }
499inline bool operator >= (
const lx_interval& a,
const interval& b)
noexcept
500{
return(Inf(a)<=Inf(b) && Sup(a)>=Sup(b)); }
501inline bool operator > (
const interval& a,
const lx_interval& b)
noexcept
502{
return(Inf(a)<Inf(b) && Sup(a)>Sup(b)); }
503inline bool operator >= (
const interval& a,
const lx_interval& b)
noexcept
504{
return(Inf(a)<=Inf(b) && Sup(a)>=Sup(b)); }
507inline bool operator < (
const real &a,
const lx_interval &b)
noexcept
508{
return( a>Inf(b) && a<Sup(b) ); }
509inline bool operator <= (
const real &a,
const lx_interval &b)
noexcept
510{
return( a>=Inf(b) && a<=Sup(b) ); }
511inline bool operator > (
const lx_interval &a,
const real &b)
noexcept
512{
return( b>Inf(a) && b<Sup(a) ); }
513inline bool operator >= (
const lx_interval &a,
const real &b)
noexcept
514{
return( b>=Inf(a) && b<=Sup(a) ); }
517inline bool operator < (
const l_real &a,
const lx_interval &b)
noexcept
518{
return( a>Inf(b) && a<Sup(b) ); }
519inline bool operator <= (
const l_real &a,
const lx_interval &b)
noexcept
520{
return( a>=Inf(b) && a<=Sup(b) ); }
521inline bool operator > (
const lx_interval &a,
const l_real &b)
noexcept
522{
return( b>Inf(a) && b<Sup(a) ); }
523inline bool operator >= (
const lx_interval &a,
const l_real &b)
noexcept
524{
return( b>=Inf(a) && b<=Sup(a) ); }
527inline bool operator < (
const lx_real &a,
const lx_interval &b)
noexcept
528{
return( a>Inf(b) && a<Sup(b) ); }
529inline bool operator <= (
const lx_real &a,
const lx_interval &b)
noexcept
530{
return( a>=Inf(b) && a<=Sup(b) ); }
531inline bool operator > (
const lx_interval &a,
const lx_real &b)
noexcept
532{
return( b>Inf(a) && b<Sup(a) ); }
533inline bool operator >= (
const lx_interval &a,
const lx_real &b)
noexcept
534{
return( b>=Inf(a) && b<=Sup(a) ); }
537inline lx_interval adjust(
const lx_interval &a)
noexcept
538{
return lx_interval(a.ex,adjust(a.li)); }
540inline lx_interval
abs(
const lx_interval &a)
noexcept
541{
return lx_interval(a.ex,
abs(a.li)); }
543inline bool point_intv(
const lx_interval &a)
544{
return point_intv(a.li); }
546inline void times2pown(lx_interval &a,
const real& n)
noexcept
547{ a = lx_interval(
add_real(n,a.ex),a.li); }
549inline void times2pown_neg(lx_interval& a,
const real& n)
noexcept
557 l_interval lia(a.li);
563 if (exa < -Max_Int_R - n)
567 d = -Max_Int_R - exa;
573 if (n_d < -2147483647)
584 k = (int) _double(n_d);
587 a = lx_interval(-Max_Int_R,lia);
591 a = lx_interval(n+a.ex,lia);
595inline lx_real Inf(
const lx_interval &a)
noexcept
596{
return lx_real(a.ex,Inf(a.li)); }
598inline lx_real Sup(
const lx_interval &a)
noexcept
599{
return lx_real(a.ex,Sup(a.li)); }
601inline lx_real
RelDiam(
const lx_interval &a )
605 x = lx_real(a.ex,
RelDiam(a.li));
610inline lx_real
diam(
const lx_interval &a)
noexcept
611{
return lx_real(a.ex,
diam(a.li)); }
613inline lx_real
mid(
const lx_interval& a)
noexcept
614{
return lx_real(a.ex,
mid(a.li)); }
616inline bool IsEmpty(
const lx_interval& a)
noexcept
617{
return Inf(a.li) > Sup(a.li); }
621inline lx_interval operator |(
const lx_interval &a,
const lx_interval &b)
noexcept
623 return lx_interval( (Inf(a)<Inf(b)) ? Inf(a) : Inf(b),
624 (Sup(a)>Sup(b)) ? Sup(a) : Sup(b) );
627inline lx_interval operator |(
const lx_interval &a,
const l_interval &b)
noexcept
629 lx_interval
Lb(0.0,b);
630 return lx_interval( (Inf(a)<Inf(
Lb)) ? Inf(a) : Inf(
Lb),
631 (Sup(a)>Sup(
Lb)) ? Sup(a) : Sup(
Lb) );
634inline lx_interval operator |(
const l_interval &a,
const lx_interval &b)
noexcept
636 lx_interval La(0.0,a);
637 return lx_interval( (Inf(La)<Inf(b)) ? Inf(La) : Inf(b),
638 (Sup(La)>Sup(b)) ? Sup(La) : Sup(b) );
641inline lx_interval operator |(
const lx_interval &a,
const interval &b)
noexcept
644 return lx_interval( (Inf(a)<Inf(
Lb)) ? Inf(a) : Inf(
Lb),
645 (Sup(a)>Sup(
Lb)) ? Sup(a) : Sup(
Lb) );
648inline lx_interval operator |(
const interval &a,
const lx_interval &b)
noexcept
651 return lx_interval( (Inf(La)<Inf(b)) ? Inf(La) : Inf(b),
652 (Sup(La)>Sup(b)) ? Sup(La) : Sup(b) );
655inline lx_interval & operator |= (lx_interval &a,
const lx_interval &b)
noexcept
657 Inf(a)=(Inf(a)<Inf(b))?Inf(a):Inf(b),Sup(a)=(Sup(a)>Sup(b))?Sup(a):Sup(b);
661inline lx_interval & operator |= (lx_interval &a,
const l_interval &b)
noexcept
664 Inf(a) = (Inf(a)<Inf(
Lb)) ? Inf(a) : Inf(
Lb),
665 Sup(a) = (Sup(a)>Sup(
Lb)) ? Sup(a) : Sup(
Lb);
669inline lx_interval & operator |= (lx_interval &a,
const interval &b)
noexcept
672 Inf(a) = (Inf(a)<Inf(
Lb)) ? Inf(a) : Inf(
Lb),
673 Sup(a) = (Sup(a)>Sup(
Lb)) ? Sup(a) : Sup(
Lb);
677inline lx_interval operator | (
const lx_real &a,
const lx_interval &b)
noexcept
679 return lx_interval( (a<Inf(b)) ? a : Inf(b),
680 (a>Sup(b)) ? a : Sup(b) );
683inline lx_interval operator | (
const real &a,
const lx_interval &b)
noexcept
686 return lx_interval( (La<Inf(b)) ? La : Inf(b),
687 (La>Sup(b)) ? La : Sup(b) );
690inline lx_interval operator | (
const l_real &a,
const lx_interval &b)
noexcept
693 return lx_interval( (La<Inf(b)) ? La : Inf(b),
694 (La>Sup(b)) ? La : Sup(b) );
697inline lx_interval operator | (
const lx_interval &a,
const lx_real &b)
noexcept
699 return lx_interval( (Inf(a)<b) ? Inf(a) : b,
700 (Sup(a)>b) ? Sup(a) : b );
703inline lx_interval operator | (
const lx_interval &a,
const real &b)
noexcept
706 return lx_interval( (Inf(a)<
Lb) ? Inf(a) :
Lb,
707 (Sup(a)>
Lb) ? Sup(a) :
Lb );
710inline lx_interval operator | (
const lx_interval &a,
const l_real &b)
noexcept
713 return lx_interval( (Inf(a)<
Lb) ? Inf(a) :
Lb,
714 (Sup(a)>
Lb) ? Sup(a) :
Lb );
717inline lx_interval & operator |= (lx_interval &a,
const real &b)
noexcept
720 Inf(a) = (Inf(a)<
Lb) ? Inf(a) :
Lb, Sup(a) = (Sup(a)>
Lb) ? Sup(a) :
Lb;
724inline lx_interval & operator |= (lx_interval &a,
const l_real &b)
noexcept
727 Inf(a) = (Inf(a)<
Lb) ? Inf(a) :
Lb, Sup(a) = (Sup(a)>
Lb) ? Sup(a) :
Lb;
732inline lx_interval & operator |= (lx_interval &a,
const lx_real &b)
noexcept
734 Inf(a) = (Inf(a)<b) ? Inf(a) : b, Sup(a) = (Sup(a)>b) ? Sup(a) : b;
738inline lx_interval operator |(
const lx_real &a,
const lx_real &b)
noexcept
740 if(a>b)
return lx_interval(b,a);
741 else return lx_interval(a,b);
746inline lx_interval operator & (
const lx_interval &a,
const lx_interval &b)
749 return lx_interval( (Inf(a)>Inf(b)) ? Inf(a) : Inf(b),
750 (Sup(a)<Sup(b)) ? Sup(a) : Sup(b));
753inline lx_interval operator & (
const lx_interval &a,
const l_interval &b)
756 lx_interval
Lb(0.0,b);
757 return lx_interval( (Inf(a)>Inf(
Lb)) ? Inf(a) : Inf(
Lb),
758 (Sup(a)<Sup(
Lb)) ? Sup(a) : Sup(
Lb));
761inline lx_interval & operator &= (lx_interval &a,
const l_interval &b)
764 lx_interval
Lb(0.0,b);
765 Inf(a) = (Inf(a)>Inf(
Lb)) ? Inf(a) : Inf(
Lb),
766 Sup(a) = (Sup(a)<Sup(
Lb)) ? Sup(a) : Sup(
Lb);
768 cxscthrow(ERROR_LINTERVAL_EMPTY_INTERVAL(
"lx_interval & operator &=(lx_interval &a,const l_interval &b)"));
772inline lx_interval operator & (
const l_interval &a,
const lx_interval &b)
775 lx_interval La(0.0,a);
776 return lx_interval( (Inf(La)>Inf(b)) ? Inf(La) : Inf(b),
777 (Sup(La)<Sup(b)) ? Sup(La) : Sup(b));
780inline lx_interval operator & (
const lx_interval &a,
const interval &b)
784 return lx_interval( (Inf(a)>Inf(
Lb)) ? Inf(a) : Inf(
Lb),
785 (Sup(a)<Sup(
Lb)) ? Sup(a) : Sup(
Lb));
788inline lx_interval & operator &= (lx_interval &a,
const interval &b)
792 Inf(a) = (Inf(a)>Inf(
Lb)) ? Inf(a) : Inf(
Lb),
793 Sup(a) = (Sup(a)<Sup(
Lb)) ? Sup(a) : Sup(
Lb);
795 cxscthrow(ERROR_LINTERVAL_EMPTY_INTERVAL(
"lx_interval & operator &=(lx_interval &a,const interval &b)"));
799inline lx_interval operator & (
const interval &a,
const lx_interval &b)
803 return lx_interval( (Inf(La)>Inf(b)) ? Inf(La) : Inf(b),
804 (Sup(La)<Sup(b)) ? Sup(La) : Sup(b));
807inline lx_interval & operator &= (lx_interval &a,
const lx_interval &b)
810 Inf(a)=(Inf(a)>Inf(b))?Inf(a):Inf(b),Sup(a)=(Sup(a)<Sup(b))?Sup(a):Sup(b);
812 cxscthrow(ERROR_LINTERVAL_EMPTY_INTERVAL(
"lx_interval & operator &=(lx_interval &a,const lx_interval &b)"));
816inline lx_interval operator & (
const lx_interval &a,
const lx_real &b)
819 return lx_interval( (Inf(a)>b) ? Inf(a) : b,
820 (Sup(a)<b) ? Sup(a) : b );
823inline lx_interval operator & (
const lx_interval &a,
const real &b)
827 return lx_interval( (Inf(a)>
Lb) ? Inf(a) :
Lb,
828 (Sup(a)<
Lb) ? Sup(a) :
Lb );
831inline lx_interval operator & (
const lx_interval &a,
const l_real &b)
835 return lx_interval( (Inf(a)>
Lb) ? Inf(a) :
Lb,
836 (Sup(a)<
Lb) ? Sup(a) :
Lb );
839inline lx_interval operator & (
const lx_real &a,
const lx_interval &b)
842 return lx_interval( (a>Inf(b)) ? a : Inf(b),
843 (a<Sup(b)) ? a : Sup(b) );
846inline lx_interval operator & (
const real &a,
const lx_interval &b)
850 return lx_interval( (La>Inf(b)) ? La : Inf(b),
851 (La<Sup(b)) ? La : Sup(b) );
854inline lx_interval operator & (
const l_real &a,
const lx_interval &b)
858 return lx_interval( (La>Inf(b)) ? La : Inf(b),
859 (La<Sup(b)) ? La : Sup(b) );
862inline lx_interval & operator &= (lx_interval &a,
const lx_real &b)
865 Inf(a) = (Inf(a)>b) ? Inf(a) : b, Sup(a) = (Sup(a)<b) ? Sup(a) : b;
867 cxscthrow(ERROR_LINTERVAL_EMPTY_INTERVAL(
"lx_interval & operator &=(lx_interval &a,const lx_real &b)"));
871inline lx_interval & operator &= (lx_interval &a,
const real &b)
875 Inf(a) = (Inf(a)>
Lb) ? Inf(a) :
Lb, Sup(a) = (Sup(a)<
Lb) ? Sup(a) :
Lb;
877 cxscthrow(ERROR_LINTERVAL_EMPTY_INTERVAL(
"lx_interval & operator &=(lx_interval &a,const real &b)"));
881inline lx_interval & operator &= (lx_interval &a,
const l_real &b)
885 Inf(a) = (Inf(a)>
Lb) ? Inf(a) :
Lb, Sup(a) = (Sup(a)<
Lb) ? Sup(a) :
Lb;
887 cxscthrow(ERROR_LINTERVAL_EMPTY_INTERVAL(
"lx_interval & operator &=(lx_interval &a,const l_real &b)"));
893inline lx_interval & SetInf(lx_interval& a,
const lx_real& b)
896 return a = lx_interval(b,Sup(a));
899inline lx_interval & SetInf(lx_interval& a,
const l_real& b)
902 return a = lx_interval(lx_real(0.0,b),Sup(a));
905inline lx_interval & SetInf(lx_interval& a,
const real& b)
908 return a = lx_interval(lx_real(0.0,
l_real(b)),Sup(a));
911inline lx_interval & SetSup(lx_interval& a,
const lx_real& b)
914 return a = lx_interval(Inf(a),b);
917inline lx_interval & SetSup(lx_interval& a,
const l_real& b)
920 return a = lx_interval(Inf(a),lx_real(0.0,b));
923inline lx_interval & SetSup(lx_interval& a,
const real& b)
926 return a = lx_interval(Inf(a),lx_real(0.0,
l_real(b)));
The Scalar Type interval.
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.
const real MaxReal
Greatest representable floating-point number.
int Disjoint(const interval &a, const interval &b)
Checks arguments for disjointness.
civector operator/(const cimatrix_subv &rv, const cinterval &s) noexcept
Implementation of division operation.
int expo_gr(const l_interval &x)
cvector diam(const cimatrix_subv &mv) noexcept
Returns the diameter of the matrix.
const real minreal
Smallest positive denormalized representable floating-point number.
real RelDiam(const interval &x)
Computes the relative diameter .
int in(const cinterval &x, const cinterval &y)
Checks if first argument is part of second argument.
real add_real(const real &a, const real &b) noexcept
Returns a,b must be integers with .
cimatrix & operator*=(cimatrix &m, const cinterval &c) noexcept
Implementation of multiplication and allocation operation.
real AbsMax(const interval &x)
Computes the greatest absolute value .
ivector abs(const cimatrix_subv &mv) noexcept
Returns the absolute value of the matrix.
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.
int Lb(const cimatrix &rm, const int &i) noexcept
Returns the lower bound index.
cinterval Blow(cinterval x, const real &eps)
Performs an epsilon inflation.
real AbsMin(const interval &x)
Computes the smallest absolute value .
cimatrix & operator/=(cimatrix &m, const cinterval &c) noexcept
Implementation of division and allocation operation.