C-XSC - A C++ Class Library for Extended Scientific Computing  2.5.4
interval.hpp
1 /*
2 ** CXSC is a C++ library for eXtended Scientific Computing (V 2.5.4)
3 **
4 ** Copyright (C) 1990-2000 Institut fuer Angewandte Mathematik,
5 ** Universitaet Karlsruhe, Germany
6 ** (C) 2000-2014 Wiss. Rechnen/Softwaretechnologie
7 ** Universitaet Wuppertal, Germany
8 **
9 ** This library is free software; you can redistribute it and/or
10 ** modify it under the terms of the GNU Library General Public
11 ** License as published by the Free Software Foundation; either
12 ** version 2 of the License, or (at your option) any later version.
13 **
14 ** This library is distributed in the hope that it will be useful,
15 ** but WITHOUT ANY WARRANTY; without even the implied warranty of
16 ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17 ** Library General Public License for more details.
18 **
19 ** You should have received a copy of the GNU Library General Public
20 ** License along with this library; if not, write to the Free
21 ** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
22 */
23 
24 /* CVS $Id: interval.hpp,v 1.48 2014/01/30 18:13:52 cxsc Exp $ */
25 
26 #ifndef _CXSC_INTERVAL_H_INCLUDED
27 #define _CXSC_INTERVAL_H_INCLUDED
28 
29 #include <iostream>
30 #include <string>
31 #include "real.hpp"
32 #include "except.hpp"
33 
34 namespace cxsc {
35 
36 class ivector;
37 class ivector_slice;
38 class imatrix;
39 class imatrix_slice;
40 
41 
43 
54 class interval
55 {
56  private:
57  // ---- Datenelemente ---------------------------------------
58  real inf;
59  real sup;
60 
61  public:
62  // ---- Konstruktoren ---------------------------------------
64  interval() {}
66  inline interval(const real&, const real&);
68  inline interval& operator= (const real& a);
69 
70  // ---- Typecasts ---------------------------------------
71 
73  explicit inline interval(const real &r) noexcept :inf(r),sup(r) { }
74 
76  friend inline interval _unchecked_interval(const real&, const real&);
77 
78 #if(CXSC_INDEX_CHECK)
79  explicit INLINE interval(const ivector &);
82  explicit INLINE interval(const ivector_slice &);
84  explicit INLINE interval(const imatrix &m);
86  explicit INLINE interval(const imatrix_slice &m);
88  friend INLINE interval _interval(const ivector &);
90  friend INLINE interval _interval(const ivector_slice &);
92  friend INLINE interval _interval(const imatrix &m);
94  friend INLINE interval _interval(const imatrix_slice &m);
95 #else
96  explicit INLINE interval(const ivector &) noexcept;
99  explicit INLINE interval(const ivector_slice &) noexcept;
101  explicit INLINE interval(const imatrix &m) noexcept;
103  explicit INLINE interval(const imatrix_slice &m) noexcept;
105  friend INLINE interval _interval(const ivector &) noexcept;
107  friend INLINE interval _interval(const ivector_slice &) noexcept;
109  friend INLINE interval _interval(const imatrix &m) noexcept;
111  friend INLINE interval _interval(const imatrix_slice &m) noexcept;
112 #endif
113  explicit interval(const l_real &) noexcept; // in l_real.cpp
116  interval(const l_real &,const l_real &);
118  explicit interval(const l_interval &) noexcept; // in l_interval.cpp
120  explicit interval(const dotprecision &) noexcept;
122  interval(const dotprecision &,const dotprecision &);
124  explicit interval(const idotprecision &) noexcept;
125 
127  friend inline interval _interval(const l_real &a) noexcept; // in l_interval.inl
129  friend inline interval _interval(const l_real &a,const l_real &b) { return interval(a,b); }
131  friend interval _interval(const l_interval &a) noexcept; // in l_interv.inl
132 // friend inline interval _interval(const dotprecision &a) noexcept { return interval(a); }
133 // friend inline interval _interval(const dotprecision &a,const dotprecision &b) { return interval(a,b); }
134 // friend inline interval _interval(const idotprecision &a) noexcept { return interval(a); }
135 
136  // interval & operator= (const interval& a); Default passt
138  interval & operator =(const l_real &) noexcept;
140  interval & operator =(const l_interval &) noexcept;
142  interval & operator = (const lx_interval &) noexcept;
144  interval & operator =(const dotprecision &) noexcept;
146  interval & operator =(const idotprecision &) noexcept;
147 
148  // ---- Destruktor ----
149  // ~interval() {} unnoetig
150 
151  // ---- Typwandlungen ----
152 
153  // ---- Ausgabefunkt. ---------------------------------------
155  friend std::istream& operator >> (std::istream &, interval &) noexcept;
157  friend std::ostream& operator << (std::ostream &, const interval &) noexcept;
159  friend std::string & operator >> (std::string &, interval &) noexcept;
161  friend std::string & operator << (std::string &, const interval &) noexcept;
163  friend void operator >> (const std::string&,interval &) noexcept;
165  friend void operator >> (const char *,interval &) noexcept;
166 
167  // ---- Standardfunkt ---- (arithmetische Operatoren)
169  friend inline interval operator -(const interval &) noexcept;
171  friend inline interval operator +(const interval &) noexcept;
172 
174  friend inline interval operator +(const interval &,const interval &) noexcept;
176  friend inline interval operator -(const interval &,const interval &) noexcept;
178  friend inline interval operator *(const interval &,const interval &) noexcept;
180  friend inline interval operator /(const interval &,const interval &);
182  friend inline interval operator |(const interval &,const interval &) noexcept;
184  friend inline interval operator &(const interval &,const interval &);
185 
187  friend inline interval operator +(const interval &,const real &) noexcept;
189  friend inline interval operator +(const real &,const interval &) noexcept;
191  friend inline interval operator -(const interval &,const real &) noexcept;
193  friend inline interval operator -(const real &,const interval &) noexcept;
195  friend inline interval operator *(const interval &,const real &) noexcept;
197  friend inline interval operator *(const real &,const interval &) noexcept;
199  friend inline interval operator /(const interval &,const real &) noexcept;
201  friend inline interval operator /(const real &,const interval &) noexcept;
203  friend inline interval operator |(const real &,const interval &) noexcept;
205  friend inline interval operator |(const interval &,const real &) noexcept;
207  friend inline interval operator |(const real &,const real &) noexcept;
209  friend inline interval operator &(const real &,const interval &);
211  friend inline interval operator &(const interval &,const real &);
212 
213 
215  friend inline idotprecision operator +(const idotprecision &,const interval &) noexcept;
217  friend inline idotprecision operator +(const interval &,const idotprecision &) noexcept;
219  friend inline idotprecision operator -(const idotprecision &,const interval &) noexcept;
221  friend inline idotprecision operator -(const interval &,const idotprecision &) noexcept;
223  friend inline idotprecision operator |(const interval &,const idotprecision &) noexcept;
225  friend inline idotprecision operator |(const idotprecision &,const interval &) noexcept;
227  friend inline idotprecision operator &(const interval &,const idotprecision &);
229  friend inline idotprecision operator &(const idotprecision &,const interval &);
230 
232  friend inline interval & operator +=(interval &,const interval &) noexcept;
234  friend inline interval & operator -=(interval &,const interval &) noexcept;
236  friend inline interval & operator *=(interval &,const interval &) noexcept;
238  friend inline interval & operator /=(interval &,const interval &) noexcept;
240  friend inline interval & operator |=(interval &,const interval &) noexcept;
242  friend inline interval & operator &=(interval &,const interval &);
243 
245  friend inline interval & operator +=(interval &,const real &) noexcept;
247  friend inline interval & operator -=(interval &,const real &) noexcept;
249  friend inline interval & operator *=(interval &,const real &) noexcept;
251  friend inline interval & operator /=(interval &,const real &) noexcept;
253  friend inline interval & operator |=(interval &,const real &) noexcept;
255  friend inline interval & operator &=(interval &,const real &);
256 
257  // ---- Vergleichsop. ----
258 
260  friend inline bool operator ==(const interval &,const interval &) noexcept;
262  friend inline bool operator !=(const interval &,const interval &) noexcept;
263 
265  friend inline bool operator !(const interval &) noexcept;
266 // inline operator void*(void) const noexcept { return (void*)(!(!*this)); }
267 
269  friend inline bool operator ==(const real &,const interval &) noexcept;
271  friend inline bool operator !=(const real &,const interval &) noexcept;
272 
274  friend inline bool operator ==(const interval &,const real &) noexcept;
276  friend inline bool operator !=(const interval &,const real &) noexcept;
277 
279  friend bool operator ==(const dotprecision &,const interval &) noexcept;
281  friend bool operator !=(const dotprecision &,const interval &) noexcept;
282 
284  friend bool operator ==(const interval &,const dotprecision &) noexcept;
286  friend bool operator !=(const interval &,const dotprecision &) noexcept;
287 
289  friend inline bool operator ==(const int &,const interval &) noexcept;
291  friend inline bool operator !=(const int &,const interval &) noexcept;
292 
294  friend inline bool operator ==(const interval &,const int &) noexcept;
296  friend inline bool operator !=(const interval &,const int &) noexcept;
297 
299  friend inline bool operator ==(const long &,const interval &) noexcept;
301  friend inline bool operator !=(const long &,const interval &) noexcept;
302 
304  friend inline bool operator ==(const interval &,const long &) noexcept;
306  friend inline bool operator !=(const interval &,const long &) noexcept;
307 
309  friend inline bool operator ==(const double &,const interval &) noexcept;
311  friend inline bool operator !=(const double &,const interval &) noexcept;
312 
314  friend inline bool operator ==(const interval &,const double &) noexcept;
316  friend inline bool operator !=(const interval &,const double &) noexcept;
317 
318  // ---- Mengenvergle. ----
319 
321  friend inline bool operator <(const interval &,const interval &) noexcept;
323  friend inline bool operator >(const interval &,const interval &) noexcept;
325  friend inline bool operator <=(const interval &,const interval &) noexcept;
327  friend inline bool operator >=(const interval &,const interval &) noexcept;
328 
330  friend inline bool operator <(const real &,const interval &) noexcept;
332  friend inline bool operator >(const real &,const interval &) noexcept { return false; }
334  friend inline bool operator <=(const real &,const interval &) noexcept;
336  friend inline bool operator >=(const real &,const interval &) noexcept;
337 
339  friend inline bool operator <(const interval &,const real &) noexcept { return false; }
341  friend inline bool operator >(const interval &,const real &) noexcept;
343  friend inline bool operator <=(const interval &,const real &) noexcept;
345  friend inline bool operator >=(const interval &,const real &) noexcept;
346 
348  friend bool operator <(const dotprecision &,const interval &) noexcept;
350  friend bool operator >(const dotprecision &,const interval &) noexcept { return false; }
352  friend bool operator <=(const dotprecision &,const interval &) noexcept;
354  friend bool operator >=(const dotprecision &,const interval &) noexcept;
355 
357  friend bool operator <(const interval &,const dotprecision &) noexcept { return false; }
359  friend bool operator >(const interval &,const dotprecision &) noexcept;
361  friend bool operator <=(const interval &,const dotprecision &) noexcept;
363  friend bool operator >=(const interval &,const dotprecision &) noexcept;
364 
365  // ---- Funktionen ----
366 
368  friend inline real & Inf (interval &) noexcept;
370  friend inline const real & Inf (const interval &) noexcept;
372  friend inline real & Sup (interval &) noexcept;
374  friend inline const real & Sup (const interval &) noexcept;
375 
377  friend inline interval& SetInf (interval &, const real &) noexcept;
379  friend inline interval& SetSup (interval &, const real &) noexcept;
381  friend inline interval& UncheckedSetInf (interval &, const real &) noexcept;
383  friend inline interval& UncheckedSetSup (interval &, const real &) noexcept;
384 
386  friend inline bool IsEmpty (const interval &) noexcept;
387 
389  friend inline interval abs (const interval &) noexcept;
391  friend real mid (const interval &) noexcept;
392  // Returns the rounded middle of the interval (faster version for tests)
393  friend real Mid (const interval &) noexcept;
395  friend inline real diam (const interval &) noexcept;
397  friend inline void times2pown(interval &, const int&) noexcept; // Blomquist, 28.11.02
398 };
399 
405 inline interval _interval(const real & r) noexcept { return interval(r); }
411 inline interval _interval(const real & a, const real & b) { return interval(a,b); }
417 inline interval _interval(const dotprecision &a) noexcept { return interval(a); }
423 inline interval _interval(const dotprecision &a,const dotprecision &b) { return interval(a,b); }
429 inline interval _interval(const idotprecision &a) noexcept { return interval(a); }
430 
431 // for compatibility with CToolbox library - from former i_util.hpp
433 extern int in ( const real&, const interval& );
435 extern int in ( const interval&, const interval& );
436 //extern void rnd ( const dotprecision&, interval& );
438 extern interval Blow ( const interval&, const real& );
440 extern int Disjoint ( const interval&, const interval& );
442 extern real AbsMin ( const interval& );
444 extern real AbsMax ( const interval& );
446 extern real RelDiam ( const interval& );
448 extern int UlpAcc ( const interval&, int );
449 
450 // Additional declaration of friend functions outside class interval
451 real mid (const interval& a) noexcept;
452 
453 // Interval constants, optimal inclusions:
455 extern const interval Pi_interval; // Pi
457 extern const interval Pi2_interval; // 2*Pi
459 extern const interval Pi3_interval; // 3*Pi
461 extern const interval Pid2_interval; // Pi/2
463 extern const interval Pid3_interval; // Pi/3
465 extern const interval Pid4_interval; // Pi/4
467 extern const interval Pir_interval; // 1/Pi
469 extern const interval Pi2r_interval; // 1/(2*Pi)
471 extern const interval Pip2_interval; // Pi^2
473 extern const interval SqrtPi_interval; // sqrt(Pi)
475 extern const interval Sqrt2Pi_interval; // sqrt(2Pi)
477 extern const interval SqrtPir_interval; // 1/sqrt(Pi)
479 extern const interval Sqrt2Pir_interval; // 1/sqrt(2Pi)
481 extern const interval Sqrt2_interval; // sqrt(2)
483 extern const interval Sqrt5_interval; // sqrt(5)
485 extern const interval Sqrt7_interval; // sqrt(7)
487 extern const interval Sqrt2r_interval; // 1/sqrt(2)
489 extern const interval Sqrt3_interval; // sqrt(3)
491 extern const interval Sqrt3d2_interval; // sqrt(3)/2
493 extern const interval Sqrt3r_interval; // 1/sqrt(3)
495 extern const interval Ln2_interval; // ln(2)
497 extern const interval Ln2r_interval; // 1/ln(2)
499 extern const interval Ln10_interval; // ln(10)
501 extern const interval Ln10r_interval; // 1/ln(10)
503 extern const interval LnPi_interval; // ln(Pi)
505 extern const interval Ln2Pi_interval; // ln(2Pi)
507 extern const interval E_interval; // e
509 extern const interval Er_interval; // 1/e
511 extern const interval Ep2_interval; // e^2
513 extern const interval Ep2r_interval; // 1/e^2
515 extern const interval EpPi_interval; // e^(Pi)
517 extern const interval Ep2Pi_interval; // e^(2Pi)
519 extern const interval EpPid2_interval; // e^(Pi/2)
521 extern const interval EpPid4_interval; // e^(Pi/4)
522 
523 
524 } // namespace cxsc
525 
526 #include "interval.inl"
527 #include "imath.hpp"
528 
529 #endif // _CXSC_INTERVAL_H_INCLUDED
cxsc::interval::operator+=
friend interval & operator+=(interval &, const interval &) noexcept
Implementation of standard algebraic addition and allocation operation.
Definition: interval.inl:80
cxsc::Sqrt3r_interval
const interval Sqrt3r_interval
Enclosure-Interval for .
Definition: interval.cpp:416
cxsc::AbsMax
real AbsMax(const interval &x)
Computes the greatest absolute value .
Definition: interval.cpp:303
cxsc::mid
cvector mid(const cimatrix_subv &mv) noexcept
Returns the middle of the matrix.
Definition: cimatrix.inl:739
cxsc::E_interval
const interval E_interval
Enclosure-Interval for .
Definition: interval.cpp:440
cxsc::interval::_unchecked_interval
friend interval _unchecked_interval(const real &, const real &)
Deprecated typecast, which only exist for the reason of compatibility with older versions of C-XSC.
Definition: interval.inl:66
cxsc::interval::operator/=
friend interval & operator/=(interval &, const interval &) noexcept
Implementation of standard algebraic division and allocation operation.
Definition: interval.inl:86
cxsc::Ln2_interval
const interval Ln2_interval
Enclosure-Interval for .
Definition: interval.cpp:420
cxsc::interval::operator|
friend interval operator|(const interval &, const interval &) noexcept
Returns the convex hull of the arguments.
Definition: interval.inl:90
cxsc::interval::_interval
friend interval _interval(const imatrix_slice &m) noexcept
Deprecated typecast, which only exist for the reason of compatibility with older versions of C-XSC.
cxsc::interval::_interval
friend interval _interval(const imatrix &m) noexcept
Deprecated typecast, which only exist for the reason of compatibility with older versions of C-XSC.
cxsc::interval::operator|=
friend interval & operator|=(interval &, const interval &) noexcept
Allocates the convex hull of the arguments to the first argument.
Definition: interval.inl:119
cxsc::imatrix_slice
The Data Type imatrix_slice.
Definition: imatrix.hpp:1442
cxsc::interval::interval
interval(const imatrix_slice &m) noexcept
Constructor of class interval.
cxsc::SqrtPir_interval
const interval SqrtPir_interval
Enclosure-Interval for .
Definition: interval.cpp:384
cxsc::interval::Sup
friend real & Sup(interval &) noexcept
Returns the supremum of an interval.
Definition: interval.inl:216
cxsc::Ln10r_interval
const interval Ln10r_interval
Enclosure-Interval for .
Definition: interval.cpp:429
cxsc::SqrtPi_interval
const interval SqrtPi_interval
Enclosure-Interval for .
Definition: interval.cpp:376
cxsc::interval::UncheckedSetInf
friend interval & UncheckedSetInf(interval &, const real &) noexcept
Returns the interval with the unchecked new given infimum value.
Definition: interval.inl:221
cxsc::Ln2r_interval
const interval Ln2r_interval
Enclosure-Interval for .
Definition: interval.cpp:423
cxsc::interval
The Scalar Type interval.
Definition: interval.hpp:55
cxsc::Pi2r_interval
const interval Pi2r_interval
Enclosure-Interval for .
Definition: interval.cpp:369
cxsc::interval::operator<=
friend bool operator<=(const interval &, const interval &) noexcept
Implementation of standard less-or-equal-than operation.
Definition: interval.inl:169
cxsc::interval::abs
friend interval abs(const interval &) noexcept
Returns the absolute value of the interval.
Definition: interval.inl:226
cxsc::interval::operator>
friend bool operator>(const interval &, const interval &) noexcept
Implementation of standard greater-than operation.
Definition: interval.inl:181
cxsc::Sqrt3d2_interval
const interval Sqrt3d2_interval
Enclosure-Interval for .
Definition: interval.cpp:412
cxsc::interval::operator=
interval & operator=(const real &a)
Implementation of standard assigning operator.
Definition: interval.inl:52
cxsc::interval::operator*
friend interval operator*(const interval &, const interval &) noexcept
Implementation of standard algebraic multiplication operation.
Definition: interval.inl:311
cxsc::interval::operator&=
friend interval & operator&=(interval &, const interval &)
Allocates the intersection of the arguments to the first argument.
Definition: interval.inl:124
cxsc::interval::IsEmpty
friend bool IsEmpty(const interval &) noexcept
Returns true if the interval is empty.
Definition: interval.inl:224
cxsc::Ln2Pi_interval
const interval Ln2Pi_interval
Enclosure-Interval for .
Definition: interval.cpp:436
cxsc::interval::times2pown
friend void times2pown(interval &, const int &) noexcept
Multiplication of interval with .
Definition: interval.inl:250
cxsc::idotprecision
The Data Type idotprecision.
Definition: idot.hpp:48
cxsc::interval::_interval
friend interval _interval(const ivector &) noexcept
Deprecated typecast, which only exist for the reason of compatibility with older versions of C-XSC.
cxsc::Pir_interval
const interval Pir_interval
Enclosure-Interval for .
Definition: interval.cpp:366
cxsc::Blow
cinterval Blow(cinterval x, const real &eps)
Performs an epsilon inflation.
Definition: cinterval.cpp:665
cxsc::interval::_interval
friend interval _interval(const l_real &a, const l_real &b)
Deprecated typecast, which only exist for the reason of compatibility with older versions of C-XSC.
Definition: interval.hpp:129
cxsc::EpPid2_interval
const interval EpPid2_interval
Enclosure-Interval for .
Definition: interval.cpp:459
cxsc::in
int in(const cinterval &x, const cinterval &y)
Checks if first argument is part of second argument.
Definition: cinterval.cpp:654
cxsc::interval::SetSup
friend interval & SetSup(interval &, const real &) noexcept
Returns the interval with the new given supremum value.
Definition: interval.inl:220
cxsc::Pi_interval
const interval Pi_interval
Enclosure-Interval for .
Definition: interval.cpp:348
cxsc::ivector_slice
The Data Type ivector_slice.
Definition: ivector.hpp:963
cxsc::interval::operator>>
friend std::istream & operator>>(std::istream &, interval &) noexcept
Implementation of standard input method.
Definition: interval.cpp:157
cxsc::Sqrt2Pi_interval
const interval Sqrt2Pi_interval
Enclosure-Interval for .
Definition: interval.cpp:380
cxsc::imatrix
The Data Type imatrix.
Definition: imatrix.hpp:660
cxsc::interval::diam
friend real diam(const interval &) noexcept
Returns the rounded diameter of the interval.
Definition: interval.inl:240
cxsc::Sqrt2r_interval
const interval Sqrt2r_interval
Enclosure-Interval for .
Definition: interval.cpp:404
cxsc::Pi2_interval
const interval Pi2_interval
Enclosure-Interval for .
Definition: interval.cpp:351
cxsc::Ep2r_interval
const interval Ep2r_interval
Enclosure-Interval for .
Definition: interval.cpp:449
cxsc::dotprecision
The Data Type dotprecision.
Definition: dot.hpp:112
cxsc::interval::operator<
friend bool operator<(const interval &, const interval &) noexcept
Implementation of standard less-than operation.
Definition: interval.inl:177
cxsc::l_interval
The Multiple-Precision Data Type l_interval.
Definition: l_interval.hpp:72
cxsc::interval::operator*=
friend interval & operator*=(interval &, const interval &) noexcept
Implementation of standard algebraic multiplication and allocation operation.
Definition: interval.inl:84
cxsc::ivector
The Data Type ivector.
Definition: ivector.hpp:55
cxsc::LnPi_interval
const interval LnPi_interval
Enclosure-Interval for .
Definition: interval.cpp:433
cxsc::Ep2_interval
const interval Ep2_interval
Enclosure-Interval for .
Definition: interval.cpp:446
cxsc::Pid2_interval
const interval Pid2_interval
Enclosure-Interval for .
Definition: interval.cpp:357
cxsc::interval::_interval
friend interval _interval(const ivector_slice &) noexcept
Deprecated typecast, which only exist for the reason of compatibility with older versions of C-XSC.
cxsc::interval::operator-=
friend interval & operator-=(interval &, const interval &) noexcept
Implementation of standard algebraic subtraction and allocation operation.
Definition: interval.inl:82
cxsc::Pip2_interval
const interval Pip2_interval
Enclosure-Interval for .
Definition: interval.cpp:373
cxsc::Sqrt5_interval
const interval Sqrt5_interval
Enclosure-Interval for .
Definition: interval.cpp:396
cxsc::Ln10_interval
const interval Ln10_interval
Enclosure-Interval for .
Definition: interval.cpp:426
cxsc
The namespace cxsc, providing all functionality of the class library C-XSC.
Definition: cdot.cpp:29
cxsc::interval::operator!=
friend bool operator!=(const interval &, const interval &) noexcept
Implementation of standard negated equality operation.
Definition: interval.inl:146
cxsc::l_real
The Multiple-Precision Data Type l_real.
Definition: l_real.hpp:78
cxsc::Pid4_interval
const interval Pid4_interval
Enclosure-Interval for .
Definition: interval.cpp:363
cxsc::UlpAcc
int UlpAcc(const interval &x, int n)
Checks if the diameter of the interval is ulps.
Definition: interval.cpp:335
cxsc::interval::operator-
friend interval operator-(const interval &) noexcept
Implementation of standard algebraic negative sign operation.
Definition: interval.inl:77
cxsc::interval::interval
interval(const real &r) noexcept
Typecast for converting a real value in an interval.
Definition: interval.hpp:73
cxsc::interval::mid
friend real mid(const interval &) noexcept
Returns the rounded middle of the interval.
Definition: interval.cpp:216
cxsc::interval::operator!
friend bool operator!(const interval &) noexcept
Implementation of standard negation operation.
Definition: interval.inl:212
cxsc::Er_interval
const interval Er_interval
Enclosure-Interval for .
Definition: interval.cpp:443
cxsc::Pi3_interval
const interval Pi3_interval
Enclosure-Interval for .
Definition: interval.cpp:354
cxsc::interval::UncheckedSetSup
friend interval & UncheckedSetSup(interval &, const real &) noexcept
Returns the interval with the unchecked new given supremum value.
Definition: interval.inl:222
cxsc::RelDiam
real RelDiam(const interval &x)
Computes the relative diameter .
Definition: interval.cpp:316
cxsc::Sqrt3_interval
const interval Sqrt3_interval
Enclosure-Interval for .
Definition: interval.cpp:408
cxsc::interval::SetInf
friend interval & SetInf(interval &, const real &) noexcept
Returns the interval with the new given infimum value.
Definition: interval.inl:219
cxsc::interval::operator&
friend interval operator&(const interval &, const interval &)
Returns the intersection of the arguments.
Definition: interval.inl:94
cxsc::Pid3_interval
const interval Pid3_interval
Enclosure-Interval for .
Definition: interval.cpp:360
cxsc::interval::Inf
friend real & Inf(interval &) noexcept
Returns the infimum of an interval.
Definition: interval.inl:214
cxsc::AbsMin
real AbsMin(const interval &x)
Computes the smallest absolute value .
Definition: interval.cpp:293
cxsc::Disjoint
int Disjoint(const interval &a, const interval &b)
Checks arguments for disjointness.
Definition: interval.cpp:288
cxsc::EpPi_interval
const interval EpPi_interval
Enclosure-Interval for .
Definition: interval.cpp:452
cxsc::Sqrt7_interval
const interval Sqrt7_interval
Enclosure-Interval for .
Definition: interval.cpp:400
cxsc::EpPid4_interval
const interval EpPid4_interval
Enclosure-Interval for .
Definition: interval.cpp:463
cxsc::Sqrt2_interval
const interval Sqrt2_interval
Enclosure-Interval for .
Definition: interval.cpp:392
cxsc::interval::operator/
friend interval operator/(const interval &, const interval &)
Implementation of standard algebraic division operation.
Definition: interval.inl:387
cxsc::interval::operator==
friend bool operator==(const interval &, const interval &) noexcept
Implementation of standard equality operation.
Definition: interval.inl:145
cxsc::Sqrt2Pir_interval
const interval Sqrt2Pir_interval
Enclosure-Interval for .
Definition: interval.cpp:388
cxsc::interval::operator>=
friend bool operator>=(const interval &, const interval &) noexcept
Implementation of standard greater-or-equal-than operation.
Definition: interval.inl:173
cxsc::interval::operator+
friend interval operator+(const interval &) noexcept
Implementation of standard algebraic positive sign operation.
Definition: interval.inl:78
cxsc::interval::operator<<
friend std::ostream & operator<<(std::ostream &, const interval &) noexcept
Implementation of standard output method.
Definition: interval.cpp:137
cxsc::Ep2Pi_interval
const interval Ep2Pi_interval
Enclosure-Interval for .
Definition: interval.cpp:455
cxsc::interval::interval
interval()
Constructor of class interval.
Definition: interval.hpp:64
cxsc::real
The Scalar Type real.
Definition: real.hpp:114