C-XSC - A C++ Class Library for Extended Scientific Computing  2.5.4
l_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: l_interval.hpp,v 1.36 2014/01/30 17:23:46 cxsc Exp $ */
25 
26 #ifndef _CXSC_L_INTERVAL_HPP_INCLUDED
27 #define _CXSC_L_INTERVAL_HPP_INCLUDED
28 
29 #include <iostream>
30 #include <string>
31 #include "real.hpp"
32 #include "interval.hpp"
33 #include "l_real.hpp"
34 #include "except.hpp"
35 #include "idot.hpp"
36 
37 namespace cxsc {
38 
39 class l_interval_Inf;
40 class l_interval_Sup;
41 
43 
72 {
73  friend class l_interval_Inf;
74  friend class l_interval_Sup;
75 
76  private:
77  // ---- Datenelemente ---------------------------------------
78 
79  // die eigentliche Datenstruktur
80  // ein l_interval der Praezision n besteht aus n+1 reals , wobei die reals
81  // 1..n das inf,
82  // 1..n-1,n+1 das sup darstellen!
83  // Ein echtes interval liegt also nur in den letzten beiden reals vor!
84  int prec;
85  real *data;
86 
87 
88  public:
89  // ---- Konstruktoren ---------------------------------------
90 #if (CXSC_INDEX_CHECK)
91  inline l_interval() throw(ERROR_LINTERVAL_WRONG_STAGPREC);
94  inline l_interval(const l_interval &) throw(ERROR_LINTERVAL_WRONG_STAGPREC);
95 
97  l_interval(const l_real &, const l_real &) throw(ERROR_LINTERVAL_WRONG_STAGPREC,ERROR_LINTERVAL_EMPTY_INTERVAL);
99  l_interval(const real &, const l_real &) throw(ERROR_LINTERVAL_WRONG_STAGPREC,ERROR_LINTERVAL_EMPTY_INTERVAL);
101  l_interval(const l_real &, const real &) throw(ERROR_LINTERVAL_WRONG_STAGPREC,ERROR_LINTERVAL_EMPTY_INTERVAL);
103  inline l_interval(const real &, const real &) throw(ERROR_LINTERVAL_WRONG_STAGPREC,ERROR_LINTERVAL_EMPTY_INTERVAL);
104 
106  explicit l_interval(const dotprecision &) throw(ERROR_LINTERVAL_WRONG_STAGPREC);
108  explicit l_interval(const dotprecision &,const dotprecision &) throw(ERROR_LINTERVAL_WRONG_STAGPREC,ERROR_LINTERVAL_EMPTY_INTERVAL);
110  explicit l_interval(const idotprecision &) throw(ERROR_LINTERVAL_WRONG_STAGPREC);
111 #else
112  inline l_interval() throw();
115  inline l_interval(const l_interval &) throw();
116 
118  l_interval(const l_real &, const l_real &) throw(ERROR_LINTERVAL_EMPTY_INTERVAL);
120  l_interval(const real &, const l_real &) throw(ERROR_LINTERVAL_EMPTY_INTERVAL);
122  l_interval(const l_real &, const real &) throw(ERROR_LINTERVAL_EMPTY_INTERVAL);
124  l_interval(const real &, const real &) throw(ERROR_LINTERVAL_EMPTY_INTERVAL);
125 
127  explicit l_interval(const dotprecision &) throw();
129  explicit l_interval(const dotprecision &,const dotprecision &) throw(ERROR_LINTERVAL_EMPTY_INTERVAL);
131  explicit l_interval(const idotprecision &) throw();
132 #endif
133 
135  explicit inline l_interval(const real &) throw();
137  explicit inline l_interval(const l_real &) throw();
138 
139 #if(CXSC_INDEX_CHECK)
140  explicit INLINE l_interval(const l_ivector &) throw(ERROR_LIVECTOR_TYPE_CAST_OF_THICK_OBJ,ERROR_LIVECTOR_USE_OF_UNINITIALIZED_OBJ);
143  explicit INLINE l_interval(const l_ivector_slice &) throw(ERROR_LIVECTOR_TYPE_CAST_OF_THICK_OBJ,ERROR_LIVECTOR_USE_OF_UNINITIALIZED_OBJ);
145  explicit INLINE l_interval(const l_imatrix &m) throw(ERROR_LIMATRIX_TYPE_CAST_OF_THICK_OBJ,ERROR_LIMATRIX_USE_OF_UNINITIALIZED_OBJ);
147  explicit INLINE l_interval(const l_imatrix_slice &m) throw(ERROR_LIMATRIX_TYPE_CAST_OF_THICK_OBJ,ERROR_LIMATRIX_USE_OF_UNINITIALIZED_OBJ);
149  friend INLINE interval _l_interval(const l_ivector &) throw(ERROR_LIVECTOR_TYPE_CAST_OF_THICK_OBJ,ERROR_LIVECTOR_USE_OF_UNINITIALIZED_OBJ);
151  friend INLINE interval _l_interval(const l_ivector_slice &) throw(ERROR_LIVECTOR_TYPE_CAST_OF_THICK_OBJ,ERROR_LIVECTOR_USE_OF_UNINITIALIZED_OBJ);
153  friend INLINE interval _l_interval(const l_imatrix &m) throw(ERROR_LIMATRIX_TYPE_CAST_OF_THICK_OBJ,ERROR_LIMATRIX_USE_OF_UNINITIALIZED_OBJ);
155  friend INLINE interval _l_interval(const l_imatrix_slice &m) throw(ERROR_LIMATRIX_TYPE_CAST_OF_THICK_OBJ,ERROR_LIMATRIX_USE_OF_UNINITIALIZED_OBJ);
156 #else
157  explicit INLINE l_interval(const l_ivector &) throw();
160  explicit INLINE l_interval(const l_ivector_slice &) throw();
162  explicit INLINE l_interval(const l_imatrix &m) throw();
164  explicit INLINE l_interval(const l_imatrix_slice &m) throw();
166  friend INLINE interval _l_interval(const l_ivector &) throw();
168  friend INLINE interval _l_interval(const l_ivector_slice &) throw();
170  friend INLINE interval _l_interval(const l_imatrix &m) throw();
172  friend INLINE interval _l_interval(const l_imatrix_slice &m) throw();
173 #endif
174 
175 
176 
178  inline l_interval & operator= (const real & a) throw();
180  inline l_interval & operator= (const l_real &a) throw();
182  inline l_interval & operator= (const interval & a)throw();
184  l_interval & operator= (const l_interval &a)throw();
186  l_interval& operator = (const lx_interval&) throw();
187 #if (CXSC_INDEX_CHECK)
188  l_interval & operator= (const dotprecision &a) throw(ERROR_LINTERVAL_WRONG_STAGPREC);
191  l_interval & operator= (const idotprecision &) throw(ERROR_LINTERVAL_WRONG_STAGPREC);
192 #else
193  l_interval & operator= (const dotprecision &a) throw();
196  l_interval & operator= (const idotprecision &) throw();
197 #endif
198 
199  // ---- Destruktor ----
200  inline ~l_interval() throw();
201 
202  // ---- Typwandlungen ----
204  explicit inline l_interval(const interval &) throw();
205 
206  friend interval::interval(const l_interval &) throw();
207  friend interval _interval(const l_interval &) throw();
208  friend interval & interval::operator =(const l_interval &) throw();
209 
210  friend inline interval _interval(const real &, const l_real &) throw(); // Sollte in l_real!!!
211  friend inline interval _interval(const l_real &, const real &) throw();
212  friend inline interval _interval(const l_real &) throw();
213  friend interval _unchecked_interval(const l_real &, const l_real &) throw();
214 
215 // friend inline l_interval _l_interval(const real & a) throw() { return l_interval(a); }
216 // friend inline l_interval _l_interval(const real & a, const real & b) throw(ERROR_LINTERVAL_EMPTY_INTERVAL) { return l_interval(a,b); }
217 // friend inline l_interval _l_interval(const l_real & a) throw() { return l_interval(a); }
218 // friend inline l_interval _l_interval(const l_real & a,const l_real & b) throw(ERROR_LINTERVAL_EMPTY_INTERVAL) { return l_interval(a,b); }
219 // friend inline l_interval _l_interval(const real & a, const l_real & b) throw(ERROR_LINTERVAL_EMPTY_INTERVAL) { return l_interval(a,b); }
220 // friend inline l_interval _l_interval(const l_real & a, const real & b) throw(ERROR_LINTERVAL_EMPTY_INTERVAL) { return l_interval(a,b); }
221 
222 // friend inline l_interval _l_interval(const interval & a) throw() { return l_interval(a); }
223 // friend inline l_interval _l_interval(const dotprecision & a) throw() { return l_interval(a); }
224 // friend inline l_interval _l_interval(const dotprecision & a,const dotprecision & b) throw(ERROR_LINTERVAL_EMPTY_INTERVAL) { return l_interval(a,b); }
225 // friend inline l_interval _l_interval(const idotprecision & a) throw() { return l_interval(a); }
226 
227  friend l_interval _unchecked_l_interval(const l_real &, const l_real &) throw();
228  friend idotprecision _idotprecision(const l_interval &) throw();
229  friend idotprecision::idotprecision(const l_interval &) throw();
230  friend idotprecision & idotprecision::operator =(const l_interval &) throw();
231 
232  // ---- Ausgabefunkt. ---------------------------------------
234  friend std::istream& operator >> (std::istream& s, l_interval & a) throw();
236  friend std::ostream& operator << (std::ostream& s, const l_interval & a) throw();
238  friend std::string & operator >> (std::string& s, l_interval & a) throw();
240  friend std::string & operator << (std::string& s, const l_interval & a) throw();
242  friend void operator >> (const std::string& s,l_interval &a) throw();
244  friend void operator >> (const char * s,l_interval &a) throw();
245 
246  // ---- Standardfunkt ---- (arithmetische Operatoren)
247  // LI
249  friend l_interval operator -(const l_interval &) throw();
251  friend inline l_interval operator +(const l_interval &) throw();
252 
253  // LI-LI
255  friend l_interval operator +(const l_interval &,const l_interval &) throw();
257  friend l_interval operator -(const l_interval &,const l_interval &) throw();
259  friend l_interval operator *(const l_interval &,const l_interval &) throw();
261  friend l_interval operator /(const l_interval &,const l_interval &) throw(ERROR_LINTERVAL_DIV_BY_ZERO);
263  friend inline l_interval operator |(const l_interval &,const l_interval &) throw(ERROR_LINTERVAL_IN_EXACT_CH_OR_IS);
265  friend inline l_interval operator &(const l_interval &,const l_interval &) throw(ERROR_LINTERVAL_EMPTY_INTERVAL,ERROR_LINTERVAL_IN_EXACT_CH_OR_IS);
266 
268  friend inline l_interval & operator +=(l_interval &,const l_interval &) throw();
270  friend inline l_interval & operator -=(l_interval &,const l_interval &) throw();
272  friend inline l_interval & operator *=(l_interval &,const l_interval &) throw();
274  friend inline l_interval & operator /=(l_interval &,const l_interval &) throw();
276  friend inline l_interval & operator |=(l_interval &,const l_interval &) throw();
278  friend inline l_interval & operator &=(l_interval &,const l_interval &) throw(ERROR_LINTERVAL_EMPTY_INTERVAL);
279 
280  // LI-ID
282  friend inline idotprecision operator +(const l_interval &,const idotprecision &) throw();
284  friend inline idotprecision operator +(const idotprecision &,const l_interval &) throw();
286  friend inline idotprecision operator -(const l_interval &,const idotprecision &) throw();
288  friend inline idotprecision operator -(const idotprecision &,const l_interval &) throw();
290  friend inline idotprecision operator |(const idotprecision &,const l_interval &) throw();
292  friend inline idotprecision operator |(const l_interval &,const idotprecision &) throw();
294  friend inline idotprecision operator &(const idotprecision &,const l_interval &) throw(ERROR_LINTERVAL_EMPTY_INTERVAL);
296  friend inline idotprecision operator &(const l_interval &,const idotprecision &) throw(ERROR_LINTERVAL_EMPTY_INTERVAL);
297 
299  friend inline l_interval & operator |=(l_interval &,const idotprecision &) throw();
301  friend inline l_interval & operator &=(l_interval &,const idotprecision &) throw(ERROR_LINTERVAL_EMPTY_INTERVAL);
302 
303  // LI-LR
305  friend inline l_interval operator +(const l_interval &,const l_real &) throw();
307  friend inline l_interval operator +(const l_real &,const l_interval &) throw();
309  friend inline l_interval operator -(const l_interval &,const l_real &) throw();
311  friend inline l_interval operator -(const l_real &,const l_interval &) throw();
313  friend inline l_interval operator *(const l_interval &,const l_real &) throw();
315  friend inline l_interval operator *(const l_real &,const l_interval &) throw();
317  friend inline l_interval operator /(const l_interval &,const l_real &) throw();
319  friend inline l_interval operator /(const l_real &,const l_interval &) throw();
321  friend inline l_interval operator |(const l_real &,const l_interval &) throw();
323  friend inline l_interval operator |(const l_interval &,const l_real &) throw();
325  friend inline l_interval operator |(const l_real &,const l_real &) throw();
327  friend inline l_interval operator &(const l_real &,const l_interval &) throw(ERROR_LINTERVAL_EMPTY_INTERVAL);
329  friend inline l_interval operator &(const l_interval &,const l_real &) throw(ERROR_LINTERVAL_EMPTY_INTERVAL);
330 
332  friend inline l_interval & operator +=(l_interval &,const l_real &) throw();
334  friend inline l_interval & operator -=(l_interval &,const l_real &) throw();
336  friend inline l_interval & operator *=(l_interval &,const l_real &) throw();
338  friend inline l_interval & operator /=(l_interval &,const l_real &) throw();
340  friend inline l_interval & operator |=(l_interval &,const l_real &) throw();
342  friend inline l_interval & operator &=(l_interval &,const l_real &) throw(ERROR_LINTERVAL_EMPTY_INTERVAL);
343 
344  // LI-I
346  friend inline l_interval operator +(const l_interval &,const interval &) throw();
348  friend inline l_interval operator +(const interval &,const l_interval &) throw();
350  friend inline l_interval operator -(const l_interval &,const interval &) throw();
352  friend inline l_interval operator -(const interval &,const l_interval &) throw();
354  friend inline l_interval operator *(const l_interval &,const interval &) throw();
356  friend inline l_interval operator *(const interval &,const l_interval &) throw();
358  friend inline l_interval operator /(const l_interval &,const interval &) throw();
360  friend inline l_interval operator /(const interval &,const l_interval &) throw();
362  friend inline l_interval operator |(const interval &,const l_interval &) throw();
364  friend inline l_interval operator |(const l_interval &,const interval &) throw();
366  friend inline l_interval operator &(const interval &,const l_interval &) throw(ERROR_LINTERVAL_EMPTY_INTERVAL);
368  friend inline l_interval operator &(const l_interval &,const interval &) throw(ERROR_LINTERVAL_EMPTY_INTERVAL);
369 
371  friend inline l_interval & operator +=(l_interval &,const interval &) throw();
373  friend inline l_interval & operator -=(l_interval &,const interval &) throw();
375  friend inline l_interval & operator *=(l_interval &,const interval &) throw();
377  friend inline l_interval & operator /=(l_interval &,const interval &) throw();
379  friend inline l_interval & operator |=(l_interval &,const interval &) throw();
381  friend inline l_interval & operator &=(l_interval &,const interval &) throw(ERROR_LINTERVAL_EMPTY_INTERVAL);
382 
383  // LI-R
385  friend inline l_interval operator +(const l_interval &,const real &) throw();
387  friend inline l_interval operator +(const real &,const l_interval &) throw();
389  friend inline l_interval operator -(const l_interval &,const real &) throw();
391  friend inline l_interval operator -(const real &,const l_interval &) throw();
393  friend inline l_interval operator *(const l_interval &,const real &) throw();
395  friend inline l_interval operator *(const real &,const l_interval &) throw();
397  friend inline l_interval operator /(const l_interval &,const real &) throw();
399  friend inline l_interval operator /(const real &,const l_interval &) throw();
401  friend inline l_interval operator |(const real &,const l_interval &) throw();
403  friend inline l_interval operator |(const l_interval &,const real &) throw();
405  friend inline l_interval operator &(const real &,const l_interval &) throw(ERROR_LINTERVAL_EMPTY_INTERVAL);
407  friend inline l_interval operator &(const l_interval &,const real &) throw(ERROR_LINTERVAL_EMPTY_INTERVAL);
408 
410  friend inline l_interval & operator +=(l_interval &,const real &) throw();
412  friend inline l_interval & operator -=(l_interval &,const real &) throw();
414  friend inline l_interval & operator *=(l_interval &,const real &) throw();
416  friend inline l_interval & operator /=(l_interval &,const real &) throw();
418  friend inline l_interval & operator |=(l_interval &,const real &) throw();
420  friend inline l_interval & operator &=(l_interval &,const real &) throw(ERROR_LINTERVAL_EMPTY_INTERVAL);
421 
422  // LR-I
424  friend inline l_interval operator +(const l_real &,const interval &) throw();
426  friend inline l_interval operator +(const interval &,const l_real &) throw();
428  friend inline l_interval operator -(const l_real &,const interval &) throw();
430  friend inline l_interval operator -(const interval &,const l_real &) throw();
432  friend inline l_interval operator *(const l_real &,const interval &) throw();
434  friend inline l_interval operator *(const interval &,const l_real &) throw();
436  friend inline l_interval operator /(const l_real &,const interval &) throw();
438  friend inline l_interval operator /(const interval &,const l_real &) throw();
440  friend inline l_interval operator |(const interval &,const l_real &) throw();
442  friend inline l_interval operator |(const l_real &,const interval &) throw();
444  friend inline l_interval operator &(const interval &,const l_real &) throw(ERROR_LINTERVAL_EMPTY_INTERVAL);
446  friend inline l_interval operator &(const l_real &,const interval &) throw(ERROR_LINTERVAL_EMPTY_INTERVAL);
447 
448  // ---- Vergleichsop. ----
450  friend bool operator !(const l_interval &) throw();
451 // operator void *(void) throw();
452 
454  friend bool operator ==(const l_interval &,const l_interval &) throw();
456  friend inline bool operator !=(const l_interval &,const l_interval &) throw();
457 
459  friend inline bool operator ==(const l_real &,const l_interval &) throw();
461  friend inline bool operator !=(const l_real &,const l_interval &) throw();
463  friend inline bool operator ==(const l_interval &,const l_real &) throw();
465  friend inline bool operator !=(const l_interval &,const l_real &) throw();
466 
468  friend inline bool operator ==(const interval &,const l_interval &) throw();
470  friend inline bool operator !=(const interval &,const l_interval &) throw();
472  friend inline bool operator ==(const l_interval &,const interval &) throw();
474  friend inline bool operator !=(const l_interval &,const interval &) throw();
475 
477  friend inline bool operator ==(const real &,const l_interval &) throw();
479  friend inline bool operator !=(const real &,const l_interval &) throw();
481  friend inline bool operator ==(const l_interval &,const real &) throw();
483  friend inline bool operator !=(const l_interval &,const real &) throw();
484 
486  friend inline bool operator ==(const idotprecision &,const l_interval &) throw();
488  friend inline bool operator !=(const idotprecision &,const l_interval &) throw();
490  friend inline bool operator ==(const l_interval &,const idotprecision &) throw();
492  friend inline bool operator !=(const l_interval &,const idotprecision &) throw();
493 
495  friend inline bool operator ==(const dotprecision &,const l_interval &) throw();
497  friend inline bool operator !=(const dotprecision &,const l_interval &) throw();
499  friend inline bool operator ==(const l_interval &,const dotprecision &) throw();
501  friend inline bool operator !=(const l_interval &,const dotprecision &) throw();
502 
503  // ---- Mengenvergle. ----
505  friend bool operator <(const l_interval &,const l_interval &) throw();
507  friend bool operator >(const l_interval &,const l_interval &) throw();
509  friend bool operator <=(const l_interval &,const l_interval &) throw();
511  friend bool operator >=(const l_interval &,const l_interval &) throw();
512 
514  friend inline bool operator <(const l_real &,const l_interval &) throw();
516  friend inline bool operator >(const l_real &,const l_interval &) throw();
518  friend inline bool operator <=(const l_real &,const l_interval &) throw();
520  friend inline bool operator >=(const l_real &,const l_interval &) throw();
522  friend inline bool operator <(const l_interval &,const l_real &) throw();
524  friend inline bool operator >(const l_interval &,const l_real &) throw();
526  friend inline bool operator <=(const l_interval &,const l_real &) throw();
528  friend inline bool operator >=(const l_interval &,const l_real &) throw();
529 
531  friend inline bool operator <(const interval &,const l_interval &) throw();
533  friend inline bool operator >(const interval &,const l_interval &) throw();
535  friend inline bool operator <=(const interval &,const l_interval &) throw();
537  friend inline bool operator >=(const interval &,const l_interval &) throw();
539  friend inline bool operator <(const l_interval &,const interval &) throw();
541  friend inline bool operator >(const l_interval &,const interval &) throw();
543  friend inline bool operator <=(const l_interval &,const interval &) throw();
545  friend inline bool operator >=(const l_interval &,const interval &) throw();
546 
548  friend inline bool operator <(const real &,const l_interval &) throw();
550  friend inline bool operator >(const real &,const l_interval &) throw();
552  friend inline bool operator <=(const real &,const l_interval &) throw();
554  friend inline bool operator >=(const real &,const l_interval &) throw();
556  friend inline bool operator <(const l_interval &,const real &) throw();
558  friend inline bool operator >(const l_interval &,const real &) throw();
560  friend inline bool operator <=(const l_interval &,const real &) throw();
562  friend inline bool operator >=(const l_interval &,const real &) throw();
563 
565  friend inline bool operator <(const idotprecision &,const l_interval &) throw();
567  friend inline bool operator >(const idotprecision &,const l_interval &) throw();
569  friend inline bool operator <=(const idotprecision &,const l_interval &) throw();
571  friend inline bool operator >=(const idotprecision &,const l_interval &) throw();
573  friend inline bool operator <(const l_interval &,const idotprecision &) throw();
575  friend inline bool operator >(const l_interval &,const idotprecision &) throw();
577  friend inline bool operator <=(const l_interval &,const idotprecision &) throw();
579  friend inline bool operator >=(const l_interval &,const idotprecision &) throw();
580 
582  friend inline bool operator <(const dotprecision &,const l_interval &) throw();
584  friend inline bool operator >(const dotprecision &,const l_interval &) throw();
586  friend inline bool operator <=(const dotprecision &,const l_interval &) throw();
588  friend inline bool operator >=(const dotprecision &,const l_interval &) throw();
590  friend inline bool operator <(const l_interval &,const dotprecision &) throw();
592  friend inline bool operator >(const l_interval &,const dotprecision &) throw();
594  friend inline bool operator <=(const l_interval &,const dotprecision &) throw();
596  friend inline bool operator >=(const l_interval &,const dotprecision &) throw();
597 
598  // ---- Funktionen ----
599 
600 // friend inline l_interval_Inf Inf (l_interval &) throw();
601 // friend inline l_interval_Sup Sup (l_interval &) throw();
603  friend inline l_real Inf (const l_interval &) throw();
605  friend inline l_real Sup (const l_interval &) throw();
606 
608  friend inline int expo_sm(const l_interval&);
609  // Calculating expo(x[k]) of the smallest |x[k]|<>0.
610 
612  friend inline int expo_gr(const l_interval&);
613  // Calculating expo(x[k]) of the greatest |x[k]|.
614 
616  friend inline int StagPrec(const l_interval &) throw();
617 
619  friend inline l_interval & SetInf (l_interval & a, const l_real & b) throw(ERROR_LINTERVAL_EMPTY_INTERVAL);
621  friend inline l_interval & SetSup (l_interval & a, const l_real & b) throw(ERROR_LINTERVAL_EMPTY_INTERVAL);
623  friend inline l_interval & SetInf (l_interval & a, const real & b) throw(ERROR_LINTERVAL_EMPTY_INTERVAL);
625  friend inline l_interval & SetSup (l_interval & a, const real & b) throw(ERROR_LINTERVAL_EMPTY_INTERVAL);
627  friend inline l_interval adjust (const l_interval &) throw();
628 
630  friend inline l_interval & UncheckedSetInf (l_interval & a, const l_real & b) throw();
632  friend inline l_interval & UncheckedSetSup (l_interval & a, const l_real & b) throw();
634  friend inline l_interval & UncheckedSetInf (l_interval & a, const real & b) throw();
636  friend inline l_interval & UncheckedSetSup (l_interval & a, const real & b) throw();
637 
639  friend void ConvexHull(const l_interval &, const l_interval &, l_interval &, l_interval &) throw();
641  friend void Intersection(const l_interval &, const l_interval &, l_interval &, l_interval &) throw(ERROR_LINTERVAL_EMPTY_INTERVAL);
642 
644  friend inline l_interval abs (const l_interval & a) throw();
646  friend l_real mid (const l_interval & a) throw();
648  friend inline l_real diam (const l_interval & a) throw();
649 
651  friend l_interval pow(const l_interval &, const l_interval &) throw(ERROR_LINTERVAL_STD_FKT_OUT_OF_DEF); // Pow(x,y)
653  friend l_interval power(const l_interval &, int); // Power(x,n)
655  friend l_interval sqr(const l_interval &); // Sqr(x)
656 
658  friend l_interval sqrt(const l_interval &) throw(ERROR_LINTERVAL_STD_FKT_OUT_OF_DEF); // Sqrt(x)
660  friend l_interval sqrt(const l_interval &, int) throw(ERROR_LINTERVAL_STD_FKT_OUT_OF_DEF); // NSqrt(n,x)
661 
663  friend l_interval sin(const l_interval &) throw(ERROR_LINTERVAL_FAK_OVERFLOW); // Sin(x)
665  friend l_interval cos(const l_interval &) throw(ERROR_LINTERVAL_FAK_OVERFLOW); // Cos(x)
667  friend l_interval tan(const l_interval &) throw(ERROR_LINTERVAL_FAK_OVERFLOW,ERROR_LINTERVAL_STD_FKT_OUT_OF_DEF); // Tan(x)
669  friend l_interval cot(const l_interval &) throw(ERROR_LINTERVAL_FAK_OVERFLOW,ERROR_LINTERVAL_STD_FKT_OUT_OF_DEF); // Cot(x)
670 
672  friend l_interval asin(const l_interval &) throw(ERROR_LINTERVAL_STD_FKT_OUT_OF_DEF); // ASin(x)
674  friend l_interval acos(const l_interval &) throw(ERROR_LINTERVAL_STD_FKT_OUT_OF_DEF); // ACos(x)
676  friend l_interval atan(const l_interval &) throw(); // ATan(x)
678  friend l_interval acot(const l_interval &) throw(); // ACot(x)
679 
681  friend l_interval exp(const l_interval &) throw(ERROR_LINTERVAL_FAK_OVERFLOW); // Exp(x)
683  friend l_interval exp2(const l_interval &); // 2^x
685  friend l_interval exp10(const l_interval &); // 10^x
687  friend l_interval ln(const l_interval &) throw(ERROR_LINTERVAL_STD_FKT_OUT_OF_DEF); // Ln(x)
689  friend l_interval log2(const l_interval &);
691  friend l_interval log10(const l_interval &);
693  friend l_interval sinh(const l_interval &) throw(ERROR_LINTERVAL_FAK_OVERFLOW); // Sinh(x)
695  friend l_interval cosh(const l_interval &) throw(ERROR_LINTERVAL_FAK_OVERFLOW); // Cosh(x)
697  friend l_interval tanh(const l_interval &) throw(); // Tanh(x)
699  friend l_interval coth(const l_interval &) throw(); // Coth(x)
700 
702  friend l_interval asinh(const l_interval &) throw(ERROR_LINTERVAL_STD_FKT_OUT_OF_DEF,ERROR_LINTERVAL_FAK_OVERFLOW); // ASinh(x)
704  friend l_interval acosh(const l_interval &) throw(); // ACosh(x)
706  friend l_interval atanh(const l_interval &) throw(ERROR_LINTERVAL_STD_FKT_OUT_OF_DEF,ERROR_LINTERVAL_FAK_OVERFLOW); // ATanh(x)
708  friend l_interval acoth(const l_interval &) throw(ERROR_LINTERVAL_STD_FKT_OUT_OF_DEF,ERROR_LINTERVAL_FAK_OVERFLOW); // ACoth(x)
709 
711  friend l_interval Ln2_l_interval() throw(); // ln(2)
713  friend l_interval Ln10_l_interval() throw(); // ln(10)
715  friend l_interval Ln10r_l_interval() throw(); // 1/ln(10)
717  friend l_interval Pid4_l_interval() throw(); // Pi/4
719  friend l_interval Sqrt2_l_interval() throw(); // sqrt(2)
721  friend l_interval Sqrt5_l_interval() throw(); // sqrt(5)
723  friend l_interval Sqrt7_l_interval() throw(); // sqrt(7)
724 
725  // obsolete, see also l_imath.hpp and l_imath.cpp
727  friend inline l_interval li_ln2(); // ln(2)
729  friend inline l_interval li_ln10(); // ln(10)
731  friend inline l_interval li_Rln10(); // 1/ln(10)
733  friend inline l_interval li_pi4(); // Pi/4
735  friend inline l_interval li_sqrt2(); // sqrt(2)
736 
738  friend l_interval Ln2r_l_interval() throw(); // 1/ln(2)
740  friend l_interval Pi_l_interval() throw(); // Pi
742  friend l_interval Pid2_l_interval() throw(); // Pi/2
744  friend l_interval Pi2_l_interval() throw(); // 2*Pi
746  friend l_interval Pid3_l_interval() throw(); // Pi/3
748  friend l_interval Pir_l_interval() throw(); // 1/Pi
750  friend l_interval Pi2r_l_interval() throw(); // 1/(2*Pi)
752  friend l_interval SqrtPi_l_interval() throw(); // sqrt(Pi)
754  friend l_interval Sqrt2Pi_l_interval() throw(); // sqrt(2*Pi)
756  friend l_interval SqrtPir_l_interval() throw(); // 1/sqrt(Pi)
758  friend l_interval Sqrt2Pir_l_interval() throw(); // 1/sqrt(2*Pi)
760  friend l_interval Pip2_l_interval() throw(); // Pi^2
762  friend l_interval Sqrt2r_l_interval() throw(); // 1/sqrt(2)
764  friend l_interval Sqrt3_l_interval() throw(); // sqrt(3)
766  friend l_interval Sqrt3d2_l_interval() throw(); // sqrt(3)/2
768  friend l_interval Sqrt3r_l_interval() throw(); // 1/sqrt(3)
770  friend l_interval LnPi_l_interval() throw(); // ln(Pi)
772  friend l_interval Ln2Pi_l_interval() throw(); // ln(2*Pi)
774  friend l_interval E_l_interval() throw(); // e = exp(1)
776  friend l_interval Er_l_interval() throw(); // 1/e
778  friend l_interval Ep2_l_interval() throw(); // e^2
780  friend l_interval Ep2r_l_interval() throw(); // 1/e^2
782  friend l_interval EpPi_l_interval() throw(); // e^Pi
784  friend l_interval Ep2Pi_l_interval() throw(); // e^(2*Pi)
786  friend l_interval EpPid2_l_interval() throw(); // e^(Pi/2)
788  friend l_interval EpPid4_l_interval() throw(); // e^(Pi/4)
790  friend l_interval EulerGa_l_interval() throw(); // EulerGamma
792  friend l_interval Catalan_l_interval() throw(); // Catalan
793 
794  // Operatoren: l/real op idotprecision
795  //
796  // friend inline void accumulate(idotprecision &, const real &, const l_real &) throw();
797  // friend inline void accumulate(idotprecision &, const l_real &, const real &) throw();
798 
799  // Operatoren: l_real op idotprecision
800  //
801  // friend inline void accumulate(idotprecision &, const l_real &, const l_real &) throw();
802 
803  // Operatoren: real, l_interval op idotprecision
804  //
806  friend inline void accumulate(idotprecision &, const real &, const l_interval &) throw();
808  friend inline void accumulate(idotprecision &, const l_interval &, const real &) throw();
809 
810  // Operatoren: interval, l_real op idotprecision
811  //
813  friend inline void accumulate(idotprecision &, const interval &, const l_real &) throw();
815  friend inline void accumulate(idotprecision &, const l_real &, const interval &) throw();
816 
817  // Operatoren: l_interval, l_real op idotprecision
818  //
820  friend inline void accumulate(idotprecision &, const l_interval &, const l_real &) throw();
822  friend inline void accumulate(idotprecision &, const l_real &, const l_interval &) throw();
823 
824  // Operatoren: l_interval, interval op idotprecision
825  //
827  friend inline void accumulate(idotprecision &, const l_interval &, const interval &) throw();
829  friend inline void accumulate(idotprecision &, const interval &, const l_interval &) throw();
830 
831  // Operatoren: l_interval op idotprecision
832  //
834  friend void accumulate(idotprecision &, const l_interval &, const l_interval &) throw();
835 
837  friend inline bool point_intv(const l_interval &); // bool delivers: a is a point interval;
839  friend inline bool zero_(const l_interval& ) throw(); // Blomquist,27.11.02
841  friend void times2pown(l_interval&, int) throw(); // Blomquist,28.11.02
843  friend void Times2pown(l_interval&, const real&) throw();
844  friend void l_realz2l_interval(const l_real&, const interval&,
845  l_interval&) throw(); // Blomquist,28.11.02
846 
847 #if (CXSC_INDEX_CHECK)
848  inline real & operator [](int) throw(ERROR_LINTERVAL_ELEMENT_NOT_IN_LONG);
850 #else
851  inline real & operator [](int) throw();
853 #endif
854 
855  private:
856 #if (CXSC_INDEX_CHECK)
857  inline void _allo(int) throw(ERROR_LINTERVAL_WRONG_STAGPREC);
858 #else
859  inline void _allo(int) throw();
860 #endif
861  inline void _clear(int) throw();
862  void _akku_out(idotprecision&) throw();
863  void _akku_out_inn(idotprecision&) throw();
864  void _akku_add(idotprecision &) const throw();
865  void _akku_sub(idotprecision &) const throw();
866  //void _create_l_interval(l_real &, l_real &);
867  inline real & elem(int i) { return data[i-1]; }
868  inline real elem(int i) const { return data[i-1]; }
869 
870 };
871 
872 interval _unchecked_interval(const l_real &, const l_real &) throw();
873 
879 inline l_interval _l_interval(const real & a) throw() { return l_interval(a); }
885 inline l_interval _l_interval(const real & a, const real & b) throw(ERROR_LINTERVAL_EMPTY_INTERVAL) { return l_interval(a,b); }
891 inline l_interval _l_interval(const l_real & a) throw() { return l_interval(a); }
897 inline l_interval _l_interval(const l_real & a,const l_real & b) throw(ERROR_LINTERVAL_EMPTY_INTERVAL) { return l_interval(a,b); }
903 inline l_interval _l_interval(const real & a, const l_real & b) throw(ERROR_LINTERVAL_EMPTY_INTERVAL) { return l_interval(a,b); }
909 inline l_interval _l_interval(const l_real & a, const real & b) throw(ERROR_LINTERVAL_EMPTY_INTERVAL) { return l_interval(a,b); }
910 
916 inline l_interval _l_interval(const interval & a) throw() { return l_interval(a); }
922 inline l_interval _l_interval(const dotprecision & a) throw() { return l_interval(a); }
928 inline l_interval _l_interval(const dotprecision & a,const dotprecision & b) throw(ERROR_LINTERVAL_EMPTY_INTERVAL) { return l_interval(a,b); }
934 inline l_interval _l_interval(const idotprecision & a) throw() { return l_interval(a); }
935 l_interval _unchecked_l_interval(const l_real &, const l_real &) throw();
936 
937 //inline l_interval_Inf Inf (l_interval &) throw();
938 //inline l_interval_Sup Sup (l_interval &) throw();
939 inline l_real Inf (const l_interval &) throw();
940 inline l_real Sup (const l_interval &) throw();
941 
942 int in ( const real& x, const l_interval& y ); // Contained-in relation
943 int in ( const l_real& x, const l_interval& y ); // Contained-in relation
944 int in ( const interval& x, const l_interval& y ); // Contained-in relation
945 int in ( const l_interval& x, const l_interval& y ); // Contained-in relation
946 l_interval Blow (const l_interval& x, const real& eps );
947 int Disjoint (const l_interval& a, const l_interval& b ); // Test for disjointedness
948 l_real AbsMin ( const l_interval& x ); // Absolute minimum of
949  // an interval
950 l_real AbsMax (const l_interval& x ); // Absolute maximum of
951  // an interval
952 l_real RelDiam ( const l_interval x ); // Relative diameter
953  // of an interval
954 inline bool point_intv(const l_interval &a ); // bool delivers: a is a point interval;
955 
956 void times2pown(l_interval&, int) throw(); // Blomquist,28.11.02
957 void Times2pown(l_interval&, const real&) throw();
958 
960 
964 {
965  private:
966  l_interval & my_l_interval;
967  public:
968  // l_interval_Inf(const l_interval_Inf &a) throw() : my_l_interval(a.my_l_interval) {}
970  l_interval_Inf(l_interval &a) throw() : my_l_interval(a) {}
971  operator l_real(void) const { return Inf((const l_interval)my_l_interval); }
973  l_interval & operator =(const l_real & a) throw(ERROR_LINTERVAL_EMPTY_INTERVAL) { SetInf(my_l_interval,a); return my_l_interval; }
975  l_interval & operator =(const real & a) throw(ERROR_LINTERVAL_EMPTY_INTERVAL) { SetInf(my_l_interval,_l_real(a)); return my_l_interval; }
976  // l_interval & operator =(int a) throw(ERROR_LINTERVAL_EMPTY_INTERVAL) { SetInf(my_l_interval,_l_real(a)); return my_l_interval; }
977 };
979 
983 {
984  private:
985  l_interval & my_l_interval;
986  public:
988  l_interval_Sup(l_interval &a) throw() : my_l_interval(a) {}
989  operator l_real(void) const { return Sup((const l_interval)my_l_interval); }
991  l_interval & operator =(const l_real & a) throw(ERROR_LINTERVAL_EMPTY_INTERVAL) { SetSup(my_l_interval,a); return my_l_interval; }
993  l_interval & operator =(const real & a) throw(ERROR_LINTERVAL_EMPTY_INTERVAL) { SetSup(my_l_interval,_l_real(a)); return my_l_interval; }
994  // l_interval & operator =(int a) throw(ERROR_LINTERVAL_EMPTY_INTERVAL) { SetSup(my_l_interval,_l_real(a)); return my_l_interval; }
995 };
996 
997 } // namespace cxsc
998 
999 #include "l_interval.inl"
1000 
1001 #endif // _CXSC_L_INTERVAL_HPP_INCLUDED
friend l_interval Pip2_l_interval()
Enclosure-Interval for .
Definition: l_imath.cpp:2159
friend l_interval operator &(const l_interval &, const l_interval &)
Returns the intersection of the arguments.
Definition: l_interval.inl:166
cinterval Blow(cinterval x, const real &eps)
Performs an epsilon inflation.
Definition: cinterval.cpp:665
l_interval & operator=(const l_real &a)
Implementation of standard assigning operator.
Definition: l_interval.hpp:973
The Multiple-Precision Data Type l_interval.
Definition: l_interval.hpp:71
friend l_interval operator -(const l_interval &)
Implementation of standard algebraic negative sign operation.
friend l_interval & operator+=(l_interval &, const l_interval &)
Implementation of standard algebraic addition and allocation operation.
Definition: l_interval.inl:187
friend l_interval Sqrt5_l_interval()
Enclosure-Interval for .
Definition: l_imath.cpp:1204
friend l_interval Sqrt2_l_interval()
Enclosure-Interval for .
Definition: l_imath.cpp:1135
The Data Type idotprecision.
Definition: idot.hpp:47
friend l_interval sin(const l_interval &)
Calculates .
Definition: l_imath.cpp:397
friend l_interval tan(const l_interval &)
Calculates .
Definition: l_imath.cpp:613
friend l_interval Pi2_l_interval()
Enclosure-Interval for .
Definition: l_imath.cpp:1569
The Multiple-Precision Data Type l_real.
Definition: l_real.hpp:77
The Data Type dotprecision.
Definition: dot.hpp:111
friend l_interval log2(const l_interval &)
Calculates .
Definition: l_imath.cpp:3944
friend bool operator<=(const l_interval &, const l_interval &)
Implementation of standard less-or-equal-than operation.
Definition: l_interval.cpp:492
friend l_interval acos(const l_interval &)
Calculates .
Definition: l_imath.cpp:767
friend l_interval & operator -=(l_interval &, const l_interval &)
Implementation of standard algebraic subtraction and allocation operation.
Definition: l_interval.inl:188
friend l_interval EpPi_l_interval()
Enclosure-Interval for .
Definition: l_imath.cpp:2973
l_interval_Sup(l_interval &a)
Constructor of class l_interval_Sup.
Definition: l_interval.hpp:988
friend l_interval pow(const l_interval &, const l_interval &)
Calculates .
Definition: l_imath.cpp:37
friend l_interval acoth(const l_interval &)
Calculates .
Definition: l_imath.cpp:4432
friend l_interval & SetInf(l_interval &a, const l_real &b)
Returns the interval with the new given infimum value.
Definition: l_interval.inl:409
friend l_interval operator *(const l_interval &, const l_interval &)
Implementation of standard algebraic multiplication operation.
Definition: l_interval.cpp:362
friend l_interval sqr(const l_interval &)
Calculates .
Definition: l_imath.cpp:153
friend l_interval & SetSup(l_interval &a, const l_real &b)
Returns the interval with the new given supremum value.
Definition: l_interval.inl:410
interval _unchecked_interval(const real &a, const real &b)
Definition: interval.inl:66
friend l_interval Sqrt7_l_interval()
Enclosure-Interval for .
Definition: l_imath.cpp:1276
The Multiple-Precision Data Type l_ivector_slice.
Definition: l_ivector.hpp:870
The namespace cxsc, providing all functionality of the class library C-XSC.
Definition: cdot.cpp:29
friend l_interval tanh(const l_interval &)
Calculates .
Definition: l_imath.cpp:4161
friend void Times2pown(l_interval &, const real &)
Multiplication of interval with .
int in(const cinterval &x, const cinterval &y)
Checks if first argument is part of second argument.
Definition: cinterval.cpp:654
friend l_interval EpPid2_l_interval()
Enclosure-Interval for .
Definition: l_imath.cpp:3121
friend l_interval & operator *=(l_interval &, const l_interval &)
Implementation of standard algebraic multiplication and allocation operation.
Definition: l_interval.inl:189
The Scalar Type interval.
Definition: interval.hpp:54
friend l_interval & UncheckedSetSup(l_interval &a, const l_real &b)
Returns the interval with the unchecked new given supremum value.
Definition: l_interval.inl:436
friend bool operator !(const l_interval &)
Implementation of standard negation operation.
The Multiple-Precision Data Type l_imatrix_slice.
Definition: l_imatrix.hpp:1279
friend l_interval operator/(const l_interval &, const l_interval &)
Implementation of standard algebraic division operation.
Definition: l_interval.cpp:376
friend l_real Inf(const l_interval &)
Returns the infimum of an interval.
Definition: l_interval.inl:376
real AbsMin(const interval &x)
Computes the smallest absolute value .
Definition: interval.cpp:293
friend l_interval E_l_interval()
Enclosure-Interval for .
Definition: l_imath.cpp:2677
friend l_interval asin(const l_interval &)
Calculates .
Definition: l_imath.cpp:705
friend bool operator !=(const l_interval &, const l_interval &)
Implementation of standard negated equality operation.
Definition: l_interval.inl:296
friend l_interval LnPi_l_interval()
Enclosure-Interval for .
Definition: l_imath.cpp:2529
friend l_interval Ln10r_l_interval()
Enclosure-Interval for .
Definition: l_imath.cpp:995
friend int StagPrec(const l_interval &)
Returns the precision of the long datatype value.
Definition: l_interval.inl:407
The Multiple-Precision Data Type l_ivector.
Definition: l_ivector.hpp:54
friend void Intersection(const l_interval &, const l_interval &, l_interval &, l_interval &)
Allocates the intersection of the arguments to the first argument.
Definition: l_interval.cpp:536
friend int expo_gr(const l_interval &)
Returns the maximum of the expo-function.
Definition: l_interval.inl:522
real RelDiam(const interval &x)
Computes the relative diameter .
Definition: interval.cpp:316
friend l_interval Ln2r_l_interval()
Enclosure-Interval for .
Definition: l_imath.cpp:1349
friend l_interval Sqrt3_l_interval()
Enclosure-Interval for .
Definition: l_imath.cpp:2307
idotprecision & operator=(const real &a)
Implementation of standard assigning operator.
Definition: idot.hpp:96
friend l_interval exp10(const l_interval &)
Calculates .
Definition: l_imath.cpp:3656
friend l_interval Ln2_l_interval()
Enclosure-Interval for .
Definition: l_imath.cpp:854
friend bool operator >(const l_interval &, const l_interval &)
Implementation of standard greater-than operation.
friend l_interval li_sqrt2()
Enclosure-Interval for .
Definition: l_imath.hpp:165
friend l_interval & operator/=(l_interval &, const l_interval &)
Implementation of standard algebraic division and allocation operation.
Definition: l_interval.inl:190
friend l_interval exp2(const l_interval &)
Calculates .
Definition: l_imath.cpp:3640
friend l_real Sup(const l_interval &)
Returns the supremum of an interval.
Definition: l_interval.inl:390
The Multiple-Precision Data Type l_imatrix.
Definition: l_imatrix.hpp:725
friend l_interval Pid2_l_interval()
Enclosure-Interval for .
Definition: l_imath.cpp:1496
friend bool operator<(const l_interval &, const l_interval &)
Implementation of standard less-than operation.
Definition: l_interval.cpp:474
friend l_interval Pi_l_interval()
Enclosure-Interval for .
Definition: l_imath.cpp:1423
friend l_interval asinh(const l_interval &)
Calculates .
Definition: l_imath.cpp:4332
friend l_interval cot(const l_interval &)
Calculates .
Definition: l_imath.cpp:657
l_interval & operator=(const l_real &a)
Implementation of standard assigning operator.
Definition: l_interval.hpp:991
friend l_interval exp(const l_interval &)
Calculates .
Definition: l_imath.cpp:3538
friend std::istream & operator >>(std::istream &s, l_interval &a)
Implementation of standard input method.
Definition: l_interval.cpp:949
friend l_interval Catalan_l_interval()
Enclosure-Interval for Catalan Numbers.
Definition: l_imath.cpp:3343
friend l_interval li_pi4()
Enclosure-Interval for .
Definition: l_imath.hpp:163
l_interval()
Constructor of class l_interval.
Definition: l_interval.inl:45
friend l_interval sinh(const l_interval &)
Calculates .
Definition: l_imath.cpp:3976
friend l_interval Er_l_interval()
Enclosure-Interval for .
Definition: l_imath.cpp:2751
friend l_interval Sqrt3d2_l_interval()
Enclosure-Interval for .
Definition: l_imath.cpp:2381
friend l_interval SqrtPir_l_interval()
Enclosure-Interval for .
Definition: l_imath.cpp:2011
friend l_interval & UncheckedSetInf(l_interval &a, const l_real &b)
Returns the interval with the unchecked new given infimum value.
Definition: l_interval.inl:435
friend l_interval Ep2r_l_interval()
Enclosure-Interval for .
Definition: l_imath.cpp:2899
l_interval & operator=(const real &a)
Implementation of standard assigning operator.
Definition: l_interval.inl:89
friend l_interval li_ln10()
Enclosure-Interval for .
Definition: l_imath.hpp:159
friend l_interval Pid3_l_interval()
Enclosure-Interval for .
Definition: l_imath.cpp:1642
friend l_interval atanh(const l_interval &)
Calculates .
Definition: l_imath.cpp:4391
friend l_interval Pir_l_interval()
Enclosure-Interval for .
Definition: l_imath.cpp:1716
friend l_interval Pid4_l_interval()
Enclosure-Interval for .
Definition: l_imath.cpp:1065
friend l_interval adjust(const l_interval &)
Sets the precision of a specific long datatype value.
Definition: l_interval.inl:414
friend l_interval operator|(const l_interval &, const l_interval &)
Returns the convex hull of the arguments.
Definition: l_interval.inl:152
int Disjoint(const interval &a, const interval &b)
Checks arguments for disjointness.
Definition: interval.cpp:288
friend l_interval cosh(const l_interval &)
Calculates .
Definition: l_imath.cpp:4111
friend l_interval acot(const l_interval &)
Calculates .
Definition: l_imath.cpp:3510
real & operator [](int)
Access to the single components used to store the long data type value.
The Multiple-Precision Data Type l_interval_Sup.
Definition: l_interval.hpp:982
real AbsMax(const interval &x)
Computes the greatest absolute value .
Definition: interval.cpp:303
interval()
Constructor of class interval.
Definition: interval.hpp:64
friend l_interval Ep2_l_interval()
Enclosure-Interval for .
Definition: l_imath.cpp:2825
friend l_interval Ln2Pi_l_interval()
Enclosure-Interval for .
Definition: l_imath.cpp:2603
friend l_interval acosh(const l_interval &)
Calculates .
Definition: l_imath.cpp:4295
friend interval _l_interval(const l_ivector &)
Deprecated typecast, which only exist for the reason of compatibility with older versions of C-XSC.
friend l_interval EpPid4_l_interval()
Enclosure-Interval for .
Definition: l_imath.cpp:3195
friend l_interval atan(const l_interval &)
Calculates .
Definition: l_imath.cpp:3412
friend void times2pown(l_interval &, int)
Multiplication of interval with .
interval & operator=(const real &a)
Implementation of standard assigning operator.
Definition: interval.inl:52
friend l_interval cos(const l_interval &)
Calculates .
Definition: l_imath.cpp:441
friend l_interval Sqrt3r_l_interval()
Enclosure-Interval for .
Definition: l_imath.cpp:2455
friend l_interval power(const l_interval &, int)
Calculates .
Definition: l_imath.cpp:91
friend l_interval sqrt(const l_interval &)
Calculates .
Definition: l_imath.cpp:176
friend l_interval Ln10_l_interval()
Enclosure-Interval for .
Definition: l_imath.cpp:925
friend l_interval Ep2Pi_l_interval()
Enclosure-Interval for .
Definition: l_imath.cpp:3047
void times2pown(cinterval &x, int n)
Fast multiplication of reference parameter [z] with .
Definition: cimath.cpp:2059
friend std::ostream & operator<<(std::ostream &s, const l_interval &a)
Implementation of standard output method.
Definition: l_interval.cpp:934
idotprecision()
Constructor of class idotprecision.
Definition: idot.hpp:57
friend l_interval & operator|=(l_interval &, const l_interval &)
Allocates the convex hull of the arguments to the first argument.
Definition: l_interval.inl:191
friend l_interval li_ln2()
Enclosure-Interval for .
Definition: l_imath.hpp:157
friend l_interval coth(const l_interval &)
Calculates .
Definition: l_imath.cpp:4234
friend l_real diam(const l_interval &a)
Returns the rounded diameter of the interval.
Definition: l_interval.inl:458
l_interval_Inf(l_interval &a)
Constructor of class l_interval_Inf.
Definition: l_interval.hpp:970
friend bool operator==(const l_interval &, const l_interval &)
Implementation of standard equality operation.
Definition: l_interval.cpp:463
friend void ConvexHull(const l_interval &, const l_interval &, l_interval &, l_interval &)
Allocates the convex hull of the arguments to the first argument.
Definition: l_interval.cpp:510
friend l_interval Sqrt2Pir_l_interval()
Enclosure-Interval for .
Definition: l_imath.cpp:2085
friend l_interval & operator &=(l_interval &, const l_interval &)
Allocates the intersection of the arguments to the first argument.
Definition: l_interval.inl:192
l_interval _l_interval(const real &a)
Definition: l_interval.hpp:879
friend l_interval Pi2r_l_interval()
Enclosure-Interval for .
Definition: l_imath.cpp:1789
friend l_interval ln(const l_interval &)
Calculates .
Definition: l_imath.cpp:3760
The Scalar Type real.
Definition: real.hpp:113
friend int expo_sm(const l_interval &)
Returns the minimum of the expo-function.
Definition: l_interval.inl:539
friend bool operator >=(const l_interval &, const l_interval &)
Implementation of standard greater-or-equal-than operation.
friend l_interval EulerGa_l_interval()
Enclosure-Interval for Euler Gamma.
Definition: l_imath.cpp:3269
The Multiple-Precision Data Type l_interval_Inf.
Definition: l_interval.hpp:963
friend l_interval operator+(const l_interval &)
Implementation of standard algebraic positive sign operation.
Definition: l_interval.inl:149
friend l_interval li_Rln10()
Enclosure-Interval for .
Definition: l_imath.hpp:161
friend bool zero_(const l_interval &)
Checks if the argument is zero.
Definition: l_interval.inl:502
friend l_interval log10(const l_interval &)
Calculates .
Definition: l_imath.cpp:3960
friend l_interval Sqrt2Pi_l_interval()
Enclosure-Interval for .
Definition: l_imath.cpp:1937
friend l_real mid(const l_interval &a)
Returns the rounded middle of the interval.
Definition: l_interval.cpp:568
friend l_interval SqrtPi_l_interval()
Enclosure-Interval for .
Definition: l_imath.cpp:1863
friend void accumulate(idotprecision &, const real &, const l_interval &)
The accurate scalar product of the last two arguments added to the value of the first argument.
Definition: l_interval.inl:463
friend l_interval Sqrt2r_l_interval()
Enclosure-Interval for .
Definition: l_imath.cpp:2233
friend l_interval abs(const l_interval &a)
Returns the absolute value of the interval.
Definition: l_interval.inl:440
friend bool point_intv(const l_interval &)
Checks if the argument is a point interval.
Definition: l_interval.inl:496