C-XSC - A C++ Class Library for Extended Scientific Computing  2.5.4
cinterval.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: cinterval.hpp,v 1.24 2014/01/30 17:23:44 cxsc Exp $ */
25 
26 #ifndef _CXSC_CINTERVAL_HPP_INCLUDED
27 #define _CXSC_CINTERVAL_HPP_INCLUDED
28 
29 #include <iostream>
30 #include <string>
31 
32 // Headerfile for cinterval.
33 
34 #include "except.hpp"
35 #include "real.hpp"
36 #include "complex.hpp"
37 #include "interval.hpp"
38 
39 namespace cxsc {
40 
41 class civector;
42 class cimatrix;
43 class civector_slice;
44 class cimatrix_slice;
45 
47 
54 class cinterval
55 {
56  private:
57  // ---- private data ----------------------------------------
58  interval re;
59  interval im;
60 
61  public:
62  // ---- implicit constructors ------------------------------
64  inline cinterval(void) throw () {}
66  inline cinterval(const interval & a,const interval &b) throw();
68  inline cinterval(const complex & a,const complex & b) throw(ERROR_CINTERVAL_EMPTY_INTERVAL);
69 
70  // The following are defined in the specific vector, matrix-files
71 #if(CXSC_INDEX_CHECK)
72  INLINE cinterval(const civector &) throw (ERROR_CIVECTOR_TYPE_CAST_OF_THICK_OBJ,ERROR_CIVECTOR_USE_OF_UNINITIALIZED_OBJ);
75  INLINE cinterval(const civector_slice &) throw (ERROR_CIVECTOR_TYPE_CAST_OF_THICK_OBJ,ERROR_CIVECTOR_USE_OF_UNINITIALIZED_OBJ);
77  INLINE cinterval(const cimatrix &) throw (ERROR_CIMATRIX_TYPE_CAST_OF_THICK_OBJ,ERROR_CIMATRIX_USE_OF_UNINITIALIZED_OBJ);
79  INLINE cinterval(const cimatrix_slice &) throw (ERROR_CIMATRIX_TYPE_CAST_OF_THICK_OBJ,ERROR_CIMATRIX_USE_OF_UNINITIALIZED_OBJ);
80 #else
81  INLINE cinterval(const civector &) throw ();
84  INLINE cinterval(const civector_slice &) throw ();
86  INLINE cinterval(const cimatrix &) throw ();
88  INLINE cinterval(const cimatrix_slice &) throw ();
89 #endif
90  // ---- explicit constructors -------------------------------
91 
93  explicit inline cinterval(const real & a) throw();
95  explicit inline cinterval(const interval & a) throw();
97  explicit inline cinterval(const complex & a) throw();
99  explicit cinterval(const dotprecision &) throw();
101  explicit cinterval(const cdotprecision &) throw();
103  explicit cinterval(const idotprecision &) throw();
105  explicit cinterval(const cidotprecision &) throw();
107  explicit cinterval(const l_cinterval&) throw();
108 
109  // ---- assignments -----------------------------------------
110 
112  inline cinterval & operator =(const real &) throw();
114  inline cinterval & operator =(const interval &) throw();
116  inline cinterval & operator =(const complex &) throw();
118  inline cinterval & operator =(const cinterval &) throw();
119 
121  inline cinterval & operator =(const dotprecision &) throw();
123  inline cinterval & operator =(const idotprecision &) throw();
125  inline cinterval & operator =(const cdotprecision &) throw();
127  inline cinterval & operator =(const cidotprecision &) throw();
129  cinterval & operator = (const l_cinterval&) throw();
131  cinterval & operator = (const lx_cinterval&) throw();
132 
133  // ---- compatiblility typecasts ----------------------------
134 
136  friend inline cinterval _cinterval(const real &) throw ();
138  friend inline cinterval _cinterval(const interval &) throw();
140  friend inline cinterval _cinterval(const complex &) throw ();
142  friend inline cinterval _cinterval(const dotprecision &) throw();
144  friend inline cinterval _cinterval(const idotprecision &) throw();
146  friend inline cinterval _cinterval(const cdotprecision &) throw();
148  friend inline cinterval _cinterval(const cidotprecision &) throw();
149 
151  friend inline cinterval _cinterval(const interval &,const interval &) throw();
153  friend inline cinterval _cinterval(const real &,const interval &) throw();
155  friend inline cinterval _cinterval(const interval &,const real &) throw();
157  friend inline cinterval _cinterval(const complex &,const complex &) throw();
159  friend inline cinterval _cinterval(const real &,const complex &) throw();
161  friend inline cinterval _cinterval(const complex &,const real &) throw();
163  friend inline cinterval _unchecked_cinterval(const complex &,const complex &) throw();
165  friend inline cinterval _unchecked_cinterval(const real &,const complex &) throw();
167  friend inline cinterval _unchecked_cinterval(const complex &,const real &) throw();
168 
169  // ---- Input/Output ---------------------------------------
170 
172  friend std::ostream & operator <<(std::ostream &,const cinterval &) throw();
174  friend std::istream & operator >>(std::istream &,cinterval &) throw(ERROR_CINTERVAL_EMPTY_INTERVAL);
176  friend std::string & operator <<(std::string &,const cinterval &) throw();
178  friend std::string & operator >>(std::string &,cinterval &) throw(ERROR_CINTERVAL_EMPTY_INTERVAL);
180  friend void operator >>(const char *,cinterval &) throw(ERROR_CINTERVAL_EMPTY_INTERVAL);
182  friend void operator >>(const std::string &,cinterval &) throw(ERROR_CINTERVAL_EMPTY_INTERVAL);
183 
184  // ---- Std.Operators ---------------------------------------
185 
187  friend inline cinterval operator -(const cinterval &) throw ();
189  friend inline cinterval operator +(const cinterval &) throw ();
191  friend inline bool operator! (const cinterval & a) throw();
192 
193  // CI-CI
194 
196  friend inline cinterval operator +(const cinterval &,const cinterval &) throw();
198  friend inline cinterval operator -(const cinterval &,const cinterval &) throw();
200  friend cinterval operator *(const cinterval &,const cinterval &) throw();
202  friend cinterval operator /(const cinterval &,const cinterval &) throw(DIV_BY_ZERO);
204  friend inline cinterval operator |(const cinterval &,const cinterval &) throw();
206  friend inline cinterval operator &(const cinterval &,const cinterval &) throw(ERROR_CINTERVAL_EMPTY_INTERVAL);
207 
209  friend inline cinterval & operator +=(cinterval &, const cinterval &) throw();
211  friend inline cinterval & operator -=(cinterval &, const cinterval &) throw();
213  friend inline cinterval & operator *=(cinterval &, const cinterval &) throw();
215  friend inline cinterval & operator /=(cinterval &, const cinterval &) throw();
217  friend inline cinterval & operator |=(cinterval &, const cinterval &) throw();
219  friend inline cinterval & operator &=(cinterval &, const cinterval &) throw(ERROR_CINTERVAL_EMPTY_INTERVAL);
220 
221  // CI-R
222 
224  friend inline cinterval operator +(const cinterval &,const real &) throw();
226  friend inline cinterval operator +(const real &,const cinterval &) throw();
228  friend inline cinterval operator -(const cinterval &,const real &) throw();
230  friend inline cinterval operator -(const real &,const cinterval &) throw();
232  friend inline cinterval operator *(const cinterval &,const real &) throw();
234  friend inline cinterval operator *(const real &,const cinterval &) throw();
236  friend inline cinterval operator /(const cinterval &,const real &) throw();
238  friend inline cinterval operator /(const real &,const cinterval &) throw();
240  friend inline cinterval operator |(const cinterval &,const real &) throw();
242  friend inline cinterval operator |(const real &,const cinterval &) throw();
244  friend inline cinterval operator &(const cinterval &,const real &) throw();
246  friend inline cinterval operator &(const real &,const cinterval &) throw();
247 
249  friend inline cinterval & operator +=(cinterval &, const real &) throw();
251  friend inline cinterval & operator -=(cinterval &, const real &) throw();
253  friend inline cinterval & operator *=(cinterval &, const real &) throw();
255  friend inline cinterval & operator /=(cinterval &, const real &) throw();
257  friend inline cinterval & operator |=(cinterval &, const real &) throw();
259  friend inline cinterval & operator &=(cinterval &, const real &) throw();
260 
261  // CI-I
262 
264  friend inline cinterval operator +(const cinterval &,const interval &) throw();
266  friend inline cinterval operator +(const interval &,const cinterval &) throw();
268  friend inline cinterval operator -(const cinterval &,const interval &) throw();
270  friend inline cinterval operator -(const interval &,const cinterval &) throw();
272  friend inline cinterval operator *(const cinterval &,const interval &) throw();
274  friend inline cinterval operator *(const interval &,const cinterval &) throw();
276  friend inline cinterval operator /(const cinterval &,const interval &) throw();
278  friend inline cinterval operator /(const interval &,const cinterval &) throw();
280  friend inline cinterval operator |(const cinterval &,const interval &) throw();
282  friend inline cinterval operator |(const interval &,const cinterval &) throw();
284  friend inline cinterval operator &(const cinterval &,const interval &) throw();
286  friend inline cinterval operator &(const interval &,const cinterval &) throw();
287 
289  friend inline cinterval & operator +=(cinterval &, const interval &) throw();
291  friend inline cinterval & operator -=(cinterval &, const interval &) throw();
293  friend inline cinterval & operator *=(cinterval &, const interval &) throw();
295  friend inline cinterval & operator /=(cinterval &, const interval &) throw();
297  friend inline cinterval & operator |=(cinterval &, const interval &) throw();
299  friend inline cinterval & operator &=(cinterval &, const interval &) throw();
300 
301  // CI-C
302 
304  friend inline cinterval operator +(const cinterval &,const complex &) throw();
306  friend inline cinterval operator +(const complex &,const cinterval &) throw();
308  friend inline cinterval operator -(const cinterval &,const complex &) throw();
310  friend inline cinterval operator -(const complex &,const cinterval &) throw();
312  friend inline cinterval operator *(const cinterval &,const complex &) throw();
314  friend inline cinterval operator *(const complex &,const cinterval &) throw();
316  friend inline cinterval operator /(const cinterval &,const complex &) throw();
318  friend inline cinterval operator /(const complex &,const cinterval &) throw();
320  friend inline cinterval operator |(const cinterval &,const complex &) throw();
322  friend inline cinterval operator |(const complex &,const cinterval &) throw();
324  friend inline cinterval operator &(const cinterval &,const complex &) throw();
326  friend inline cinterval operator &(const complex &,const cinterval &) throw();
327 
328 
330  friend inline cinterval & operator +=(cinterval &, const complex &) throw();
332  friend inline cinterval & operator -=(cinterval &, const complex &) throw();
334  friend inline cinterval & operator *=(cinterval &, const complex &) throw();
336  friend inline cinterval & operator /=(cinterval &, const complex &) throw();
338  friend inline cinterval & operator |=(cinterval &, const complex &) throw();
340  friend inline cinterval & operator &=(cinterval &, const complex &) throw();
341 
342  // C-R
343 
345  friend inline cinterval operator |(const complex &,const real &) throw();
347  friend inline cinterval operator |(const real &,const complex &) throw();
348 
349  // C-I
350 
352  friend inline cinterval operator +(const complex &,const interval &) throw();
354  friend inline cinterval operator +(const interval &,const complex &) throw();
356  friend inline cinterval operator -(const complex &,const interval &) throw();
358  friend inline cinterval operator -(const interval &,const complex &) throw();
360  friend inline cinterval operator *(const complex &,const interval &) throw();
362  friend inline cinterval operator *(const interval &,const complex &) throw();
364  friend inline cinterval operator /(const complex &,const interval &) throw();
366  friend inline cinterval operator /(const interval &,const complex &) throw();
368  friend inline cinterval operator |(const complex &,const interval &) throw();
370  friend inline cinterval operator |(const interval &,const complex &) throw();
372  friend inline cinterval operator &(const complex &,const interval &) throw();
374  friend inline cinterval operator &(const interval &,const complex &) throw();
375 
376 
377  // C-C
378 
380  friend inline cinterval operator |(const complex &,const complex &) throw();
381 
382  // ---- Comp.Operat. ---------------------------------------
383 
385  friend inline bool operator== (const cinterval & a, const cinterval & b) throw();
387  friend inline bool operator!= (const cinterval & a, const cinterval & b) throw();
388 
389  // CI-R
390 
392  friend inline bool operator== (const cinterval & a, const real & b) throw();
394  friend inline bool operator== (const real & a, const cinterval & b) throw();
396  friend inline bool operator!= (const cinterval & a, const real & b) throw();
398  friend inline bool operator!= (const real & a, const cinterval & b) throw();
399 
400  // CI-I
401 
403  friend inline bool operator== (const cinterval & a, const interval & b) throw();
405  friend inline bool operator== (const interval & a, const cinterval & b) throw();
407  friend inline bool operator!= (const cinterval & a, const interval & b) throw();
409  friend inline bool operator!= (const interval & a, const cinterval & b) throw();
410 
411  // CI-C
412 
414  friend inline bool operator== (const cinterval & a, const complex & b) throw();
416  friend inline bool operator== (const complex & a, const cinterval & b) throw();
418  friend inline bool operator!= (const cinterval & a, const complex & b) throw();
420  friend inline bool operator!= (const complex & a, const cinterval & b) throw();
421 
422  // ---- Set Operators ----
423 
425  friend inline bool operator <(const cinterval &,const cinterval &) throw();
427  friend inline bool operator >(const cinterval &,const cinterval &) throw();
429  friend inline bool operator <=(const cinterval &,const cinterval &) throw();
431  friend inline bool operator >=(const cinterval &,const cinterval &) throw();
432 
433  // CI-R
434 
436  friend inline bool operator <(const real &,const cinterval &) throw();
438  friend inline bool operator >(const real &,const cinterval &) throw();
440  friend inline bool operator <=(const real &,const cinterval &) throw();
442  friend inline bool operator >=(const real &,const cinterval &) throw();
443 
445  friend inline bool operator <(const cinterval &,const real &) throw();
447  friend inline bool operator >(const cinterval &,const real &) throw();
449  friend inline bool operator <=(const cinterval &,const real &) throw();
451  friend inline bool operator >=(const cinterval &,const real &) throw();
452 
453  // CI-I
454 
456  friend inline bool operator <(const interval &,const cinterval &) throw();
458  friend inline bool operator >(const interval &,const cinterval &) throw();
460  friend inline bool operator <=(const interval &,const cinterval &) throw();
462  friend inline bool operator >=(const interval &,const cinterval &) throw();
463 
465  friend inline bool operator <(const cinterval &,const interval &) throw();
467  friend inline bool operator >(const cinterval &,const interval &) throw();
469  friend inline bool operator <=(const cinterval &,const interval &) throw();
471  friend inline bool operator >=(const cinterval &,const interval &) throw();
472 
473  // CI-C
474 
476  friend inline bool operator <(const complex &,const cinterval &) throw();
478  friend inline bool operator >(const complex &,const cinterval &) throw();
480  friend inline bool operator <=(const complex &,const cinterval &) throw();
482  friend inline bool operator >=(const complex &,const cinterval &) throw();
483 
485  friend inline bool operator <(const cinterval &,const complex &) throw();
487  friend inline bool operator >(const cinterval &,const complex &) throw();
489  friend inline bool operator <=(const cinterval &,const complex &) throw();
491  friend inline bool operator >=(const cinterval &,const complex &) throw();
492 
493  // ---- Others -------------------------------------------
495  friend inline complex Inf(const cinterval &) throw();
497  friend inline complex Sup(const cinterval &) throw();
498 
500  friend inline cinterval & SetInf(cinterval &,const complex &) throw(ERROR_CINTERVAL_EMPTY_INTERVAL);
502  friend inline cinterval & SetInf(cinterval &,const real &) throw(ERROR_CINTERVAL_EMPTY_INTERVAL);
504  friend inline cinterval & SetSup(cinterval &,const complex &) throw(ERROR_CINTERVAL_EMPTY_INTERVAL);
506  friend inline cinterval & SetSup(cinterval &,const real &) throw(ERROR_CINTERVAL_EMPTY_INTERVAL);
508  friend inline cinterval & UncheckedSetInf(cinterval &,const complex &) throw();
510  friend inline cinterval & UncheckedSetInf(cinterval &,const real &) throw();
512  friend inline cinterval & UncheckedSetSup(cinterval &,const complex &) throw();
514  friend inline cinterval & UncheckedSetSup(cinterval &,const real &) throw();
515 
517  friend inline interval & Re(cinterval & a) throw();
519  friend inline interval Re(const cinterval & a) throw();
521  friend inline interval & Im(cinterval & a) throw();
523  friend inline interval Im(const cinterval & a) throw();
524 
526  friend inline cinterval & SetRe(cinterval & a,const interval & b);
528  friend inline cinterval & SetIm(cinterval & a,const interval & b);
530  friend inline cinterval & SetRe(cinterval & a,const real & b);
532  friend inline cinterval & SetIm(cinterval & a,const real & b);
533 
535  friend inline real InfRe(const cinterval &a) throw();
537  friend inline real InfIm(const cinterval &a) throw();
539  friend inline real SupRe(const cinterval &a) throw();
541  friend inline real SupIm(const cinterval &a) throw();
542 
544  friend inline real & InfRe(cinterval &a) throw();
546  friend inline real & InfIm(cinterval &a) throw();
548  friend inline real & SupRe(cinterval &a) throw();
550  friend inline real & SupIm(cinterval &a) throw();
551 
553  friend interval abs(const cinterval &) throw();
555  friend inline cinterval conj(const cinterval &) throw();
557  friend inline complex mid(const cinterval &) throw();
559  friend inline complex diam(const cinterval &) throw();
560 };
561 
563 extern int in ( const cinterval&, const cinterval& );
565 extern cinterval Blow ( cinterval, const real& );
566 
567 // Additional declaration of friend functions outside class cinterval
568 interval abs(const cinterval &) throw();
569 
570 } // namespace cxsc
571 
572 #include "cinterval.inl"
573 #include "cimath.hpp"
574 
575 #endif // _CXSC_CINTERVAL_HPP_INCLUDED
576 
friend cinterval & SetInf(cinterval &, const complex &)
Returns the complex interval with the new given infimum value.
Definition: cinterval.inl:530
cinterval Blow(cinterval x, const real &eps)
Performs an epsilon inflation.
Definition: cinterval.cpp:665
cinterval(void)
Constructor of class cinterval.
Definition: cinterval.hpp:64
friend bool operator<(const cinterval &, const cinterval &)
Implementation of standard less-than operation.
Definition: cinterval.inl:466
friend cinterval & operator*=(cinterval &, const cinterval &)
Implementation of standard algebraic multiplication and allocation operation.
Definition: cinterval.inl:303
The Data Type idotprecision.
Definition: idot.hpp:47
friend bool operator<=(const cinterval &, const cinterval &)
Implementation of standard less-or-equal-than operation.
Definition: cinterval.inl:478
friend bool operator!=(const cinterval &a, const cinterval &b)
Implementation of standard negated equality operation.
Definition: cinterval.inl:439
The Data Type dotprecision.
Definition: dot.hpp:111
friend std::ostream & operator<<(std::ostream &, const cinterval &)
Implementation of standard output method.
Definition: cinterval.cpp:553
friend complex diam(const cinterval &)
Returns the rounded diameter of the complex interval.
Definition: cinterval.inl:634
friend cinterval & operator-=(cinterval &, const cinterval &)
Implementation of standard algebraic subtraction and allocation operation.
Definition: cinterval.inl:302
The Data Type cimatrix_slice.
Definition: cimatrix.hpp:1650
friend bool operator>=(const cinterval &, const cinterval &)
Implementation of standard more-or-equal-than operation.
Definition: cinterval.inl:488
The namespace cxsc, providing all functionality of the class library C-XSC.
Definition: cdot.cpp:29
The Multiple-Precision Data Type l_cinterval.
Definition: l_cinterval.hpp:53
friend real InfIm(const cinterval &a)
Returns the infimum of the imaginary interval of the complex interval.
Definition: cinterval.inl:613
int in(const cinterval &x, const cinterval &y)
Checks if first argument is part of second argument.
Definition: cinterval.cpp:654
friend cinterval & operator+=(cinterval &, const cinterval &)
Implementation of standard algebraic addition and allocation operation.
Definition: cinterval.inl:301
The Scalar Type interval.
Definition: interval.hpp:54
friend bool operator!(const cinterval &a)
Implementation of standard negation operation.
Definition: cinterval.inl:429
The Data Type civector.
Definition: civector.hpp:56
friend cinterval & operator/=(cinterval &, const cinterval &)
Implementation of standard algebraic division and allocation operation.
Definition: cinterval.inl:304
friend cinterval operator-(const cinterval &)
Implementation of standard algebraic negative sign operation.
Definition: cinterval.inl:259
friend std::istream & operator>>(std::istream &, cinterval &)
Implementation of standard input method.
Definition: cinterval.cpp:571
friend cinterval conj(const cinterval &)
Returns the conjugated complex interval.
Definition: cinterval.inl:631
friend cinterval _cinterval(const real &)
Deprecated typecast, which only exist for the reason of compatibility with older versions of C-XSC...
Definition: cinterval.inl:105
The Data Type cidotprecision.
Definition: cidot.hpp:57
friend cinterval & UncheckedSetSup(cinterval &, const complex &)
Returns the complex interval with the unchecked new given supremum value.
Definition: cinterval.inl:588
friend cinterval operator*(const cinterval &, const cinterval &)
Implementation of standard algebraic multiplication operation.
Definition: cinterval.inl:639
friend cinterval operator&(const cinterval &, const cinterval &)
Returns the intersection of the arguments.
Definition: cinterval.inl:279
friend cinterval _unchecked_cinterval(const complex &, const complex &)
Deprecated typecast, which only exist for the reason of compatibility with older versions of C-XSC...
Definition: cinterval.inl:223
friend cinterval operator|(const cinterval &, const cinterval &)
Returns the convex hull of the arguments.
Definition: cinterval.inl:291
The Data Type cdotprecision.
Definition: cdot.hpp:60
The Scalar Type cinterval.
Definition: cinterval.hpp:54
friend cinterval & SetRe(cinterval &a, const interval &b)
Sets the real interval of the complex interval.
Definition: cinterval.inl:607
friend interval & Re(cinterval &a)
Returns the real interval of the complex interval.
Definition: cinterval.inl:602
The Data Type civector_slice.
Definition: civector.hpp:1014
friend real SupRe(const cinterval &a)
Returns the supremum of the real interval of the complex interval.
Definition: cinterval.inl:614
friend cinterval & SetIm(cinterval &a, const interval &b)
Sets the imaginary interval of the complex interval.
Definition: cinterval.inl:608
friend real InfRe(const cinterval &a)
Returns the infimum of the real interval of the complex interval.
Definition: cinterval.inl:612
friend interval & Im(cinterval &a)
Returns the imaginary interval of the complex interval.
Definition: cinterval.inl:604
cinterval & operator=(const real &)
Implementation of standard assigning operator.
Definition: cinterval.inl:53
The Scalar Type complex.
Definition: complex.hpp:49
friend bool operator>(const cinterval &, const cinterval &)
Implementation of standard greater-than operation.
Definition: cinterval.inl:476
friend interval abs(const cinterval &)
Returns the absolute value of a complex interval.
Definition: cinterval.cpp:541
friend complex Inf(const cinterval &)
Returns the infimum of a complex interval.
Definition: cinterval.inl:527
friend complex mid(const cinterval &)
Returns the rounded middle of the complex interval.
Definition: cinterval.inl:633
friend cinterval operator/(const cinterval &, const cinterval &)
Implementation of standard algebraic division operation.
Definition: cinterval.inl:648
friend real SupIm(const cinterval &a)
Returns the supremum of the imaginary interval of the complex interval.
Definition: cinterval.inl:615
friend bool operator==(const cinterval &a, const cinterval &b)
Implementation of standard equality operation.
Definition: cinterval.inl:434
friend complex Sup(const cinterval &)
Returns the supremum of a complex interval.
Definition: cinterval.inl:528
friend cinterval & operator&=(cinterval &, const cinterval &)
Allocates the intersection of the arguments to the first argument.
Definition: cinterval.inl:306
friend cinterval & UncheckedSetInf(cinterval &, const complex &)
Returns the complex interval with the unchecked new given infimum value.
Definition: cinterval.inl:574
friend cinterval & operator|=(cinterval &, const cinterval &)
Allocates the convex hull of the arguments to the first argument.
Definition: cinterval.inl:305
friend cinterval operator+(const cinterval &)
Implementation of standard algebraic positive sign operation.
Definition: cinterval.inl:264
friend cinterval & SetSup(cinterval &, const complex &)
Returns the complex interval with the new given supremum value.
Definition: cinterval.inl:541
The Scalar Type real.
Definition: real.hpp:113
The Data Type cimatrix.
Definition: cimatrix.hpp:907