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&) throw(ERROR_INTERVAL_EMPTY_INTERVAL);
68  inline interval& operator= (const real& a);
69 
70  // ---- Typecasts ---------------------------------------
71 
73  explicit inline interval(const real &r) throw() :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 &) throw(ERROR_IVECTOR_TYPE_CAST_OF_THICK_OBJ,ERROR_IVECTOR_USE_OF_UNINITIALIZED_OBJ);
82  explicit INLINE interval(const ivector_slice &) throw(ERROR_IVECTOR_TYPE_CAST_OF_THICK_OBJ,ERROR_IVECTOR_USE_OF_UNINITIALIZED_OBJ);
84  explicit INLINE interval(const imatrix &m) throw(ERROR_IMATRIX_TYPE_CAST_OF_THICK_OBJ,ERROR_IMATRIX_USE_OF_UNINITIALIZED_OBJ);
86  explicit INLINE interval(const imatrix_slice &m) throw(ERROR_IMATRIX_TYPE_CAST_OF_THICK_OBJ,ERROR_IMATRIX_USE_OF_UNINITIALIZED_OBJ);
88  friend INLINE interval _interval(const ivector &) throw(ERROR_IVECTOR_TYPE_CAST_OF_THICK_OBJ,ERROR_IVECTOR_USE_OF_UNINITIALIZED_OBJ);
90  friend INLINE interval _interval(const ivector_slice &) throw(ERROR_IVECTOR_TYPE_CAST_OF_THICK_OBJ,ERROR_IVECTOR_USE_OF_UNINITIALIZED_OBJ);
92  friend INLINE interval _interval(const imatrix &m) throw(ERROR_IMATRIX_TYPE_CAST_OF_THICK_OBJ,ERROR_IMATRIX_USE_OF_UNINITIALIZED_OBJ);
94  friend INLINE interval _interval(const imatrix_slice &m) throw(ERROR_IMATRIX_TYPE_CAST_OF_THICK_OBJ,ERROR_IMATRIX_USE_OF_UNINITIALIZED_OBJ);
95 #else
96  explicit INLINE interval(const ivector &) throw();
99  explicit INLINE interval(const ivector_slice &) throw();
101  explicit INLINE interval(const imatrix &m) throw();
103  explicit INLINE interval(const imatrix_slice &m) throw();
105  friend INLINE interval _interval(const ivector &) throw();
107  friend INLINE interval _interval(const ivector_slice &) throw();
109  friend INLINE interval _interval(const imatrix &m) throw();
111  friend INLINE interval _interval(const imatrix_slice &m) throw();
112 #endif
113  explicit interval(const l_real &) throw(); // in l_real.cpp
116  interval(const l_real &,const l_real &) throw(ERROR_INTERVAL_EMPTY_INTERVAL);
118  explicit interval(const l_interval &) throw(); // in l_interval.cpp
120  explicit interval(const dotprecision &) throw();
122  interval(const dotprecision &,const dotprecision &) throw(ERROR_INTERVAL_EMPTY_INTERVAL);
124  explicit interval(const idotprecision &) throw();
125 
127  friend inline interval _interval(const l_real &a) throw(); // in l_interval.inl
129  friend inline interval _interval(const l_real &a,const l_real &b) throw(ERROR_INTERVAL_EMPTY_INTERVAL) { return interval(a,b); }
131  friend interval _interval(const l_interval &a) throw(); // in l_interv.inl
132 // friend inline interval _interval(const dotprecision &a) throw() { return interval(a); }
133 // friend inline interval _interval(const dotprecision &a,const dotprecision &b) throw(ERROR_INTERVAL_EMPTY_INTERVAL) { return interval(a,b); }
134 // friend inline interval _interval(const idotprecision &a) throw() { return interval(a); }
135 
136  // interval & operator= (const interval& a); Default passt
138  interval & operator =(const l_real &) throw();
140  interval & operator =(const l_interval &) throw();
142  interval & operator = (const lx_interval &) throw();
144  interval & operator =(const dotprecision &) throw();
146  interval & operator =(const idotprecision &) throw();
147 
148  // ---- Destruktor ----
149  // ~interval() {} unnoetig
150 
151  // ---- Typwandlungen ----
152 
153  // ---- Ausgabefunkt. ---------------------------------------
155  friend std::istream& operator >> (std::istream &, interval &) throw();
157  friend std::ostream& operator << (std::ostream &, const interval &) throw();
159  friend std::string & operator >> (std::string &, interval &) throw();
161  friend std::string & operator << (std::string &, const interval &) throw();
163  friend void operator >> (const std::string&,interval &) throw();
165  friend void operator >> (const char *,interval &) throw();
166 
167  // ---- Standardfunkt ---- (arithmetische Operatoren)
169  friend inline interval operator -(const interval &) throw();
171  friend inline interval operator +(const interval &) throw();
172 
174  friend inline interval operator +(const interval &,const interval &) throw();
176  friend inline interval operator -(const interval &,const interval &) throw();
178  friend inline interval operator *(const interval &,const interval &) throw();
180  friend inline interval operator /(const interval &,const interval &) throw(DIV_BY_ZERO);
182  friend inline interval operator |(const interval &,const interval &) throw();
184  friend inline interval operator &(const interval &,const interval &) throw(ERROR_INTERVAL_EMPTY_INTERVAL);
185 
187  friend inline interval operator +(const interval &,const real &) throw();
189  friend inline interval operator +(const real &,const interval &) throw();
191  friend inline interval operator -(const interval &,const real &) throw();
193  friend inline interval operator -(const real &,const interval &) throw();
195  friend inline interval operator *(const interval &,const real &) throw();
197  friend inline interval operator *(const real &,const interval &) throw();
199  friend inline interval operator /(const interval &,const real &) throw();
201  friend inline interval operator /(const real &,const interval &) throw();
203  friend inline interval operator |(const real &,const interval &) throw();
205  friend inline interval operator |(const interval &,const real &) throw();
207  friend inline interval operator |(const real &,const real &) throw();
209  friend inline interval operator &(const real &,const interval &) throw(ERROR_INTERVAL_EMPTY_INTERVAL);
211  friend inline interval operator &(const interval &,const real &) throw(ERROR_INTERVAL_EMPTY_INTERVAL);
212 
213 
215  friend inline idotprecision operator +(const idotprecision &,const interval &) throw();
217  friend inline idotprecision operator +(const interval &,const idotprecision &) throw();
219  friend inline idotprecision operator -(const idotprecision &,const interval &) throw();
221  friend inline idotprecision operator -(const interval &,const idotprecision &) throw();
223  friend inline idotprecision operator |(const interval &,const idotprecision &) throw();
225  friend inline idotprecision operator |(const idotprecision &,const interval &) throw();
227  friend inline idotprecision operator &(const interval &,const idotprecision &) throw(ERROR_IDOTPRECISION_EMPTY_INTERVAL);
229  friend inline idotprecision operator &(const idotprecision &,const interval &) throw(ERROR_IDOTPRECISION_EMPTY_INTERVAL);
230 
232  friend inline interval & operator +=(interval &,const interval &) throw();
234  friend inline interval & operator -=(interval &,const interval &) throw();
236  friend inline interval & operator *=(interval &,const interval &) throw();
238  friend inline interval & operator /=(interval &,const interval &) throw();
240  friend inline interval & operator |=(interval &,const interval &) throw();
242  friend inline interval & operator &=(interval &,const interval &) throw(ERROR_INTERVAL_EMPTY_INTERVAL);
243 
245  friend inline interval & operator +=(interval &,const real &) throw();
247  friend inline interval & operator -=(interval &,const real &) throw();
249  friend inline interval & operator *=(interval &,const real &) throw();
251  friend inline interval & operator /=(interval &,const real &) throw();
253  friend inline interval & operator |=(interval &,const real &) throw();
255  friend inline interval & operator &=(interval &,const real &) throw(ERROR_INTERVAL_EMPTY_INTERVAL);
256 
257  // ---- Vergleichsop. ----
258 
260  friend inline bool operator ==(const interval &,const interval &) throw();
262  friend inline bool operator !=(const interval &,const interval &) throw();
263 
265  friend inline bool operator !(const interval &) throw();
266 // inline operator void*(void) const throw() { return (void*)(!(!*this)); }
267 
269  friend inline bool operator ==(const real &,const interval &) throw();
271  friend inline bool operator !=(const real &,const interval &) throw();
272 
274  friend inline bool operator ==(const interval &,const real &) throw();
276  friend inline bool operator !=(const interval &,const real &) throw();
277 
279  friend bool operator ==(const dotprecision &,const interval &) throw();
281  friend bool operator !=(const dotprecision &,const interval &) throw();
282 
284  friend bool operator ==(const interval &,const dotprecision &) throw();
286  friend bool operator !=(const interval &,const dotprecision &) throw();
287 
289  friend inline bool operator ==(const int &,const interval &) throw();
291  friend inline bool operator !=(const int &,const interval &) throw();
292 
294  friend inline bool operator ==(const interval &,const int &) throw();
296  friend inline bool operator !=(const interval &,const int &) throw();
297 
299  friend inline bool operator ==(const long &,const interval &) throw();
301  friend inline bool operator !=(const long &,const interval &) throw();
302 
304  friend inline bool operator ==(const interval &,const long &) throw();
306  friend inline bool operator !=(const interval &,const long &) throw();
307 
309  friend inline bool operator ==(const double &,const interval &) throw();
311  friend inline bool operator !=(const double &,const interval &) throw();
312 
314  friend inline bool operator ==(const interval &,const double &) throw();
316  friend inline bool operator !=(const interval &,const double &) throw();
317 
318  // ---- Mengenvergle. ----
319 
321  friend inline bool operator <(const interval &,const interval &) throw();
323  friend inline bool operator >(const interval &,const interval &) throw();
325  friend inline bool operator <=(const interval &,const interval &) throw();
327  friend inline bool operator >=(const interval &,const interval &) throw();
328 
330  friend inline bool operator <(const real &,const interval &) throw();
332  friend inline bool operator >(const real &,const interval &) throw() { return false; }
334  friend inline bool operator <=(const real &,const interval &) throw();
336  friend inline bool operator >=(const real &,const interval &) throw();
337 
339  friend inline bool operator <(const interval &,const real &) throw() { return false; }
341  friend inline bool operator >(const interval &,const real &) throw();
343  friend inline bool operator <=(const interval &,const real &) throw();
345  friend inline bool operator >=(const interval &,const real &) throw();
346 
348  friend bool operator <(const dotprecision &,const interval &) throw();
350  friend bool operator >(const dotprecision &,const interval &) throw() { return false; }
352  friend bool operator <=(const dotprecision &,const interval &) throw();
354  friend bool operator >=(const dotprecision &,const interval &) throw();
355 
357  friend bool operator <(const interval &,const dotprecision &) throw() { return false; }
359  friend bool operator >(const interval &,const dotprecision &) throw();
361  friend bool operator <=(const interval &,const dotprecision &) throw();
363  friend bool operator >=(const interval &,const dotprecision &) throw();
364 
365  // ---- Funktionen ----
366 
368  friend inline real & Inf (interval &) throw();
370  friend inline const real & Inf (const interval &) throw();
372  friend inline real & Sup (interval &) throw();
374  friend inline const real & Sup (const interval &) throw();
375 
377  friend inline interval& SetInf (interval &, const real &) throw();
379  friend inline interval& SetSup (interval &, const real &) throw();
381  friend inline interval& UncheckedSetInf (interval &, const real &) throw();
383  friend inline interval& UncheckedSetSup (interval &, const real &) throw();
384 
386  friend inline bool IsEmpty (const interval &) throw();
387 
389  friend inline interval abs (const interval &) throw();
391  friend real mid (const interval &) throw();
392  // Returns the rounded middle of the interval (faster version for tests)
393  friend real Mid (const interval &) throw();
395  friend inline real diam (const interval &) throw();
397  friend inline void times2pown(interval &, const int&) throw(); // Blomquist, 28.11.02
398 };
399 
405 inline interval _interval(const real & r) throw() { return interval(r); }
411 inline interval _interval(const real & a, const real & b) throw(ERROR_INTERVAL_EMPTY_INTERVAL) { return interval(a,b); }
417 inline interval _interval(const dotprecision &a) throw() { return interval(a); }
423 inline interval _interval(const dotprecision &a,const dotprecision &b) throw(ERROR_INTERVAL_EMPTY_INTERVAL) { return interval(a,b); }
429 inline interval _interval(const idotprecision &a) throw() { 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) throw();
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::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::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::Ln2_interval
const interval Ln2_interval
Enclosure-Interval for .
Definition: interval.cpp:420
cxsc::interval::operator-
friend interval operator-(const interval &)
Implementation of standard algebraic negative sign operation.
Definition: interval.inl:77
cxsc::imatrix_slice
The Data Type imatrix_slice.
Definition: imatrix.hpp:1441
cxsc::interval::abs
friend interval abs(const interval &)
Returns the absolute value of the interval.
Definition: interval.inl:226
cxsc::interval::times2pown
friend void times2pown(interval &, const int &)
Multiplication of interval with .
Definition: interval.inl:250
cxsc::SqrtPir_interval
const interval SqrtPir_interval
Enclosure-Interval for .
Definition: interval.cpp:384
cxsc::interval::operator>>
friend std::istream & operator>>(std::istream &, interval &)
Implementation of standard input method.
Definition: interval.cpp:157
cxsc::interval::Sup
friend real & Sup(interval &)
Returns the supremum of an interval.
Definition: interval.inl:216
cxsc::interval::operator*
friend interval operator*(const interval &, const interval &)
Implementation of standard algebraic multiplication operation.
Definition: interval.inl:311
cxsc::interval::SetInf
friend interval & SetInf(interval &, const real &)
Returns the interval with the new given infimum value.
Definition: interval.inl:219
cxsc::mid
cvector mid(const cimatrix_subv &mv)
Returns the middle of the matrix.
Definition: cimatrix.inl:739
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::Ln2r_interval
const interval Ln2r_interval
Enclosure-Interval for .
Definition: interval.cpp:423
cxsc::interval::operator<=
friend bool operator<=(const interval &, const interval &)
Implementation of standard less-or-equal-than operation.
Definition: interval.inl:169
cxsc::interval::operator|
friend interval operator|(const interval &, const interval &)
Returns the convex hull of the arguments.
Definition: interval.inl:90
cxsc::interval
The Scalar Type interval.
Definition: interval.hpp:54
cxsc::Pi2r_interval
const interval Pi2r_interval
Enclosure-Interval for .
Definition: interval.cpp:369
cxsc::interval::UncheckedSetSup
friend interval & UncheckedSetSup(interval &, const real &)
Returns the interval with the unchecked new given supremum value.
Definition: interval.inl:222
cxsc::Sqrt3d2_interval
const interval Sqrt3d2_interval
Enclosure-Interval for .
Definition: interval.cpp:412
cxsc::interval::mid
friend real mid(const interval &)
Returns the rounded middle of the interval.
Definition: interval.cpp:216
cxsc::interval::operator=
interval & operator=(const real &a)
Implementation of standard assigning operator.
Definition: interval.inl:52
cxsc::interval::_interval
friend interval _interval(const ivector &)
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 &)
Allocates the intersection of the arguments to the first argument.
Definition: interval.inl:124
cxsc::interval::operator!
friend bool operator!(const interval &)
Implementation of standard negation operation.
Definition: interval.inl:212
cxsc::Ln2Pi_interval
const interval Ln2Pi_interval
Enclosure-Interval for .
Definition: interval.cpp:436
cxsc::idotprecision
The Data Type idotprecision.
Definition: idot.hpp:47
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::interval::operator!=
friend bool operator!=(const interval &, const interval &)
Implementation of standard negated equality operation.
Definition: interval.inl:146
cxsc::in
int in(const cinterval &x, const cinterval &y)
Checks if first argument is part of second argument.
Definition: cinterval.cpp:654
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:962
cxsc::Sqrt2Pi_interval
const interval Sqrt2Pi_interval
Enclosure-Interval for .
Definition: interval.cpp:380
cxsc::imatrix
The Data Type imatrix.
Definition: imatrix.hpp:659
cxsc::interval::operator+
friend interval operator+(const interval &)
Implementation of standard algebraic positive sign operation.
Definition: interval.inl:78
cxsc::Sqrt2r_interval
const interval Sqrt2r_interval
Enclosure-Interval for .
Definition: interval.cpp:404
cxsc::interval::operator<<
friend std::ostream & operator<<(std::ostream &, const interval &)
Implementation of standard output method.
Definition: interval.cpp:137
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:111
cxsc::interval::SetSup
friend interval & SetSup(interval &, const real &)
Returns the interval with the new given supremum value.
Definition: interval.inl:220
cxsc::l_interval
The Multiple-Precision Data Type l_interval.
Definition: l_interval.hpp:71
cxsc::interval::operator|=
friend interval & operator|=(interval &, const interval &)
Allocates the convex hull of the arguments to the first argument.
Definition: interval.inl:119
cxsc::ivector
The Data Type ivector.
Definition: ivector.hpp:54
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::operator>=
friend bool operator>=(const interval &, const interval &)
Implementation of standard greater-or-equal-than operation.
Definition: interval.inl:173
cxsc::interval::diam
friend real diam(const interval &)
Returns the rounded diameter of the interval.
Definition: interval.inl:240
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::interval::operator==
friend bool operator==(const interval &, const interval &)
Implementation of standard equality operation.
Definition: interval.inl:145
cxsc
The namespace cxsc, providing all functionality of the class library C-XSC.
Definition: cdot.cpp:29
cxsc::l_real
The Multiple-Precision Data Type l_real.
Definition: l_real.hpp:77
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 bool operator<(const interval &, const interval &)
Implementation of standard less-than operation.
Definition: interval.inl:177
cxsc::interval::operator/=
friend interval & operator/=(interval &, const interval &)
Implementation of standard algebraic division and allocation operation.
Definition: interval.inl:86
cxsc::Er_interval
const interval Er_interval
Enclosure-Interval for .
Definition: interval.cpp:443
cxsc::interval::operator-=
friend interval & operator-=(interval &, const interval &)
Implementation of standard algebraic subtraction and allocation operation.
Definition: interval.inl:82
cxsc::Pi3_interval
const interval Pi3_interval
Enclosure-Interval for .
Definition: interval.cpp:354
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::operator>
friend bool operator>(const interval &, const interval &)
Implementation of standard greater-than operation.
Definition: interval.inl:181
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::operator+=
friend interval & operator+=(interval &, const interval &)
Implementation of standard algebraic addition and allocation operation.
Definition: interval.inl:80
cxsc::interval::operator*=
friend interval & operator*=(interval &, const interval &)
Implementation of standard algebraic multiplication and allocation operation.
Definition: interval.inl:84
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::interval::UncheckedSetInf
friend interval & UncheckedSetInf(interval &, const real &)
Returns the interval with the unchecked new given infimum value.
Definition: interval.inl:221
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::interval
interval(const real &r)
Typecast for converting a real value in an interval.
Definition: interval.hpp:73
cxsc::Sqrt2Pir_interval
const interval Sqrt2Pir_interval
Enclosure-Interval for .
Definition: interval.cpp:388
cxsc::interval::IsEmpty
friend bool IsEmpty(const interval &)
Returns true if the interval is empty.
Definition: interval.inl:224
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:113
cxsc::interval::Inf
friend real & Inf(interval &)
Returns the infimum of an interval.
Definition: interval.inl:214