C-XSC - A C++ Class Library for Extended Scientific Computing  2.5.4
lx_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: lx_cinterval.hpp,v 1.9 2014/01/30 17:23:47 cxsc Exp $ */
25 
26 
27 /*
28 ** F. Blomquist, University of Wuppertal, 19.09.2007;
29 */
30 
31 /*
32 ** Implementation of the classes
33 **
34 ** lx_cinterval with all tools and elementary functions for complex
35 ** point and interval aruments
36 **
37 */
38 
39 #ifndef _CXSC_LX_CINTERVAL_HPP_INCLUDED
40 #define _CXSC_LX_CINTERVAL_HPP_INCLUDED
41 
42 #include <iostream>
43 #include <except.hpp>
44 #include <l_cinterval.hpp>
45 #include <l_complex.hpp>
46 #include "lx_interval.hpp"
47 #include "lx_complex.hpp"
48 
49 namespace cxsc {
50 
51 // --------------------------------------------------------------------------
52 // Class lx_cinterval
53 // --------------------------------------------------------------------------
54 
55 class lx_cinterval
56 {
57 private:
58  // ----------------- private data elements -------------------------------
59  lx_interval re, im;
60  // (re,im) is a complex number: re + i*im, i = sqrt(-1).
61 public:
62  // ------------- Constructors --------------------------------------------
63 
65  inline lx_cinterval(void) throw() { }
67  inline lx_cinterval(const lx_interval &, const lx_interval &) throw();
69  inline lx_cinterval(const l_interval &, const l_interval &) throw();
71  inline lx_cinterval(const interval &, const interval &) throw();
73  inline lx_cinterval(const l_real &, const l_real &) throw();
75  inline lx_cinterval(const lx_real &, const lx_real &) throw();
77  inline lx_cinterval(const real &, const real &) throw();
79  inline lx_cinterval(const l_cinterval &) throw();
81  inline lx_cinterval(const cinterval &) throw();
83  inline lx_cinterval(const complex &) throw();
85  inline lx_cinterval(const l_complex &) throw();
87  inline lx_cinterval(const lx_complex &) throw();
89  inline lx_cinterval(const lx_complex&, const lx_complex&)
90  throw(ERROR_CINTERVAL_EMPTY_INTERVAL);
92  inline lx_cinterval(const l_complex&, const l_complex&)
93  throw(ERROR_CINTERVAL_EMPTY_INTERVAL);
95  inline lx_cinterval(const complex&, const complex&)
96  throw(ERROR_CINTERVAL_EMPTY_INTERVAL);
98  inline lx_cinterval(const real&, const l_interval&, const real&, const l_interval&) throw();
100  inline lx_cinterval(const real&, const l_interval&) throw();
102  inline lx_cinterval(const real&, const l_interval&, const lx_interval&) throw();
104  inline lx_cinterval(const lx_interval&, const real&, const l_interval&) throw();
106  inline lx_cinterval(const real&, const string&, const real&, const string&) throw();
108  explicit inline lx_cinterval(const lx_interval &) throw();
110  explicit inline lx_cinterval(const l_interval &) throw();
112  inline lx_cinterval(const interval &) throw();
114  explicit inline lx_cinterval(const lx_real &) throw();
116  explicit inline lx_cinterval(const l_real &) throw();
118  explicit inline lx_cinterval(const real &) throw();
120 
121  // ------------- Assignments ---------------------------------------------
122 
124  inline lx_cinterval & operator = (const lx_cinterval & ) throw();
126  inline lx_cinterval & operator = (const l_cinterval & ) throw();
128  inline lx_cinterval & operator = (const cinterval & ) throw();
130  inline lx_cinterval & operator = (const lx_interval & ) throw();
132  inline lx_cinterval & operator = (const l_interval & ) throw();
134  inline lx_cinterval & operator = (const interval & ) throw();
136  inline lx_cinterval & operator = (const lx_real & ) throw();
138  inline lx_cinterval & operator = (const l_real & ) throw();
140  inline lx_cinterval & operator = (const real & ) throw();
142  inline lx_cinterval & operator = (const lx_complex & ) throw();
144  inline lx_cinterval & operator = (const l_complex & ) throw();
146  inline lx_cinterval & operator = (const complex & ) throw();
147 
148 // ----------------------- Output --------------------------------------------
149 
151 friend inline std::ostream& operator << (std::ostream& s,const lx_cinterval& a)
152  throw();
153 // A value a of type lx_cinterval is written to the output channel.
154 
156 friend inline std::string & operator << (std::string &s,const lx_cinterval& a)
157  throw();
158 // The value of a variable a of type lx_cinterval is copied to a string s.
159 // s has the form: {ex,li}
160 
161 
162 // ---------------------- Arithmetic operators ------------------------------
163 
165 friend inline lx_cinterval operator -(const lx_cinterval &) throw();
166 
168 friend inline lx_cinterval operator + (const lx_cinterval &,const lx_cinterval &)
169  throw();
171 friend inline lx_cinterval operator + (const lx_cinterval &,const l_cinterval &)
172  throw();
174 friend inline lx_cinterval operator + (const l_cinterval &,const lx_cinterval &)
175  throw();
177 friend inline lx_cinterval operator + (const lx_cinterval &, const cinterval &)
178  throw();
180 friend inline lx_cinterval operator + (const cinterval &, const lx_cinterval &)
181  throw();
183 friend inline lx_cinterval operator + (const lx_cinterval &, const lx_interval &)
184  throw();
186 friend inline lx_cinterval operator + (const lx_interval &, const lx_cinterval &)
187  throw();
189 friend inline lx_cinterval operator + (const lx_cinterval &, const l_interval &)
190  throw();
192 friend inline lx_cinterval operator + (const l_interval &, const lx_cinterval &)
193  throw();
195 friend inline lx_cinterval operator + (const lx_cinterval &, const lx_real &)
196  throw();
198 friend inline lx_cinterval operator + (const lx_real &, const lx_cinterval &)
199  throw();
201 friend inline lx_cinterval operator + (const lx_cinterval &, const l_real &)
202  throw();
204 friend inline lx_cinterval operator + (const l_real &, const lx_cinterval &)
205  throw();
207 friend inline lx_cinterval operator + (const lx_cinterval &, const real &)
208  throw();
210 friend inline lx_cinterval operator + (const real &, const lx_cinterval &)
211  throw();
213 friend inline lx_cinterval operator + (const lx_cinterval &, const complex &)
214  throw();
216 friend inline lx_cinterval operator + (const complex &, const lx_cinterval &)
217  throw();
219 friend inline lx_cinterval operator + (const lx_cinterval &, const l_complex &)
220  throw();
222 friend inline lx_cinterval operator + (const l_complex &, const lx_cinterval &)
223  throw();
225 friend inline lx_cinterval operator + (const lx_cinterval &, const lx_complex &)
226  throw();
228 friend inline lx_cinterval operator + (const lx_complex &, const lx_cinterval &)
229  throw();
230 
231 
233 friend inline lx_cinterval operator - (const lx_cinterval &,const lx_cinterval &)
234  throw();
236 friend inline lx_cinterval operator - (const lx_cinterval &,const l_cinterval &)
237  throw();
239 friend inline lx_cinterval operator - (const l_cinterval &,const lx_cinterval &)
240  throw();
242 friend inline lx_cinterval operator - (const lx_cinterval &, const cinterval &)
243  throw();
245 friend inline lx_cinterval operator - (const cinterval &, const lx_cinterval &)
246  throw();
248 friend inline lx_cinterval operator - (const lx_cinterval &, const lx_interval &)
249  throw();
251 friend inline lx_cinterval operator - (const lx_interval &, const lx_cinterval &)
252  throw();
254 friend inline lx_cinterval operator - (const lx_cinterval &, const l_interval &)
255  throw();
257 friend inline lx_cinterval operator - (const l_interval &, const lx_cinterval &)
258  throw();
260 friend inline lx_cinterval operator - (const lx_cinterval &, const lx_real &)
261  throw();
263 friend inline lx_cinterval operator - (const lx_real &, const lx_cinterval &)
264  throw();
266 friend inline lx_cinterval operator - (const lx_cinterval &, const l_real &)
267  throw();
269 friend inline lx_cinterval operator - (const l_real &, const lx_cinterval &)
270  throw();
272 friend inline lx_cinterval operator - (const lx_cinterval &, const real &)
273  throw();
275 friend inline lx_cinterval operator - (const real &, const lx_cinterval &)
276  throw();
278 friend inline lx_cinterval operator - (const lx_cinterval &, const complex &)
279  throw();
281 friend inline lx_cinterval operator - (const complex &, const lx_cinterval &)
282  throw();
284 friend inline lx_cinterval operator - (const lx_cinterval &, const l_complex &)
285  throw();
287 friend inline lx_cinterval operator - (const l_complex &, const lx_cinterval &)
288  throw();
290 friend inline lx_cinterval operator - (const lx_cinterval &, const lx_complex &)
291  throw();
293 friend inline lx_cinterval operator - (const lx_complex &, const lx_cinterval &)
294  throw();
295 
296 
298 friend inline lx_cinterval operator * (const lx_cinterval &,const lx_cinterval &)
299  throw();
301 friend inline lx_cinterval operator * (const lx_cinterval &, const lx_interval &)
302  throw();
304 friend inline lx_cinterval operator * (const lx_interval &, const lx_cinterval &)
305  throw();
307 friend inline lx_cinterval operator * (const lx_cinterval &, const l_interval &)
308  throw();
310 friend inline lx_cinterval operator * (const l_interval &, const lx_cinterval &)
311  throw();
313 friend inline lx_cinterval operator * (const lx_cinterval &, const lx_real &)
314  throw();
316 friend inline lx_cinterval operator * (const lx_real &, const lx_cinterval &)
317  throw();
319 friend inline lx_cinterval operator * (const lx_cinterval &, const l_real &)
320  throw();
322 friend inline lx_cinterval operator * (const l_real &, const lx_cinterval &)
323  throw();
325 friend inline lx_cinterval operator * (const lx_cinterval &, const real &)
326  throw();
328 friend inline lx_cinterval operator * (const real &, const lx_cinterval &)
329  throw();
330 
332 friend inline lx_cinterval operator / (const lx_cinterval &,const lx_cinterval &)
333  throw();
335 friend inline lx_cinterval operator / (const lx_cinterval &, const lx_interval &)
336  throw();
338 friend inline lx_cinterval operator / (const lx_cinterval &, const l_interval &)
339  throw();
341 friend inline lx_cinterval operator / (const lx_cinterval &, const l_real &)
342  throw();
344 friend inline lx_cinterval operator / (const lx_cinterval &, const lx_real &)
345  throw();
347 friend inline lx_cinterval operator / (const lx_cinterval &, const real &)
348  throw();
349 
351 friend inline bool operator ! (const lx_cinterval&) throw();
352 
354 friend inline bool operator == (const lx_cinterval &, const lx_cinterval &)
355  throw();
356 
358 friend inline bool operator != (const lx_cinterval &, const lx_cinterval &)
359  throw();
360 
361 
362  // --------------------- Functions ---------------------------------------
363 
365  friend inline lx_interval Re(const lx_cinterval &) throw();
367  friend inline lx_interval Im(const lx_cinterval &) throw();
368 
370  friend inline lx_complex Inf(const lx_cinterval &) throw();
372  friend inline lx_complex Sup(const lx_cinterval &) throw();
373 
375  friend inline lx_cinterval & SetRe(lx_cinterval&, const lx_interval&);
377  friend inline lx_cinterval & SetRe(lx_cinterval&, const l_interval&);
379  friend inline lx_cinterval & SetRe(lx_cinterval&, const interval&);
381  friend inline lx_cinterval & SetRe(lx_cinterval&, const lx_real&);
383  friend inline lx_cinterval & SetRe(lx_cinterval&, const l_real&);
385  friend inline lx_cinterval & SetRe(lx_cinterval&, const real&);
386 
388  friend inline lx_cinterval & SetIm(lx_cinterval&, const lx_interval&);
390  friend inline lx_cinterval & SetIm(lx_cinterval&, const l_interval&);
392  friend inline lx_cinterval & SetIm(lx_cinterval&, const interval&);
394  friend inline lx_cinterval & SetIm(lx_cinterval&, const lx_real&);
396  friend inline lx_cinterval & SetIm(lx_cinterval&, const l_real&);
398  friend inline lx_cinterval & SetIm(lx_cinterval&, const real&);
399 
401  friend inline lx_real InfRe(const lx_cinterval&) throw();
403  friend inline lx_real InfIm(const lx_cinterval&) throw();
405  friend inline lx_real SupRe(const lx_cinterval&) throw();
407  friend inline lx_real SupIm(const lx_cinterval&) throw();
408 
410  friend inline lx_complex mid(const lx_cinterval &) throw();
412  friend inline lx_complex diam(const lx_cinterval &) throw();
414  friend inline real expo_Re(const lx_cinterval &) throw();
416  friend inline real expo_Im(const lx_cinterval &) throw();
418  friend inline l_interval li_part_Re(const lx_cinterval &) throw();
420  friend inline l_interval li_part_Im(const lx_cinterval &) throw();
422  friend inline lx_interval abs(const lx_cinterval &) throw();
424  friend inline lx_cinterval adjust(const lx_cinterval &) throw();
426  friend inline lx_cinterval conj(const lx_cinterval &) throw();
428  friend inline void times2pown(lx_cinterval& , const real&) throw();
430  friend inline bool IsEmpty(const lx_cinterval&) throw();
431 
432 // ------------------------- Set Operators -----------------------------------
433 
434 friend inline bool operator < (const lx_cinterval &, const lx_cinterval &)
435  throw();
436 friend inline bool operator <= (const lx_cinterval &, const lx_cinterval &)
437  throw();
438 
439 // ------------------------- Intersection ------------------------------------
440 
441 friend inline lx_cinterval operator & (const lx_cinterval& a,
442  const lx_cinterval& b) throw();
443 
444 // -------------------------- Convex Hull ------------------------------------
445 
446 friend inline lx_cinterval operator | (const lx_cinterval& a,
447  const lx_cinterval& b) throw();
448 
449 // ---------------------------- Others --------------------------------------
450 
451 friend inline lx_cinterval & SetInf(lx_cinterval& a, const lx_complex& b)
452  throw(ERROR_CINTERVAL_EMPTY_INTERVAL);
453 friend inline lx_cinterval & SetInf(lx_cinterval& a, const l_complex& b)
454  throw(ERROR_CINTERVAL_EMPTY_INTERVAL);
455 friend inline lx_cinterval & SetInf(lx_cinterval& a, const complex& b)
456  throw(ERROR_CINTERVAL_EMPTY_INTERVAL);
457 friend inline lx_cinterval & SetInf(lx_cinterval& a, const lx_real & b)
458  throw(ERROR_CINTERVAL_EMPTY_INTERVAL);
459 friend inline lx_cinterval & SetInf(lx_cinterval& a, const l_real & b)
460  throw(ERROR_CINTERVAL_EMPTY_INTERVAL);
461 friend inline lx_cinterval & SetInf(lx_cinterval& a, const real & b)
462  throw(ERROR_CINTERVAL_EMPTY_INTERVAL);
463 
464 friend inline lx_cinterval & SetSup(lx_cinterval& a, const lx_complex& b)
465  throw(ERROR_CINTERVAL_EMPTY_INTERVAL);
466 friend inline lx_cinterval & SetSup(lx_cinterval& a, const l_complex& b)
467  throw(ERROR_CINTERVAL_EMPTY_INTERVAL);
468 friend inline lx_cinterval & SetSup(lx_cinterval& a, const complex& b)
469  throw(ERROR_CINTERVAL_EMPTY_INTERVAL);
470 friend inline lx_cinterval & SetSup(lx_cinterval& a, const lx_real & b)
471  throw(ERROR_CINTERVAL_EMPTY_INTERVAL);
472 friend inline lx_cinterval & SetSup(lx_cinterval& a, const l_real & b)
473  throw(ERROR_CINTERVAL_EMPTY_INTERVAL);
474 friend inline lx_cinterval & SetSup(lx_cinterval& a, const real & b)
475  throw(ERROR_CINTERVAL_EMPTY_INTERVAL);
476 
477 }; // end of class lx_cinterval
478 
479 // ***************************************************************************
480 // ***************************************************************************
481 
482 // ---------------------------------------------------------------------------
483 // ------- friend functions declared inside the class lx_cinterval ------------
484 // ---------------------------------------------------------------------------
485 
487  inline lx_cinterval operator-(const lx_cinterval &) throw();
488 
490  inline lx_cinterval operator + (const lx_cinterval &,const lx_cinterval &)
491  throw();
493  inline lx_cinterval operator + (const lx_cinterval &,const l_cinterval &)
494  throw();
496  inline lx_cinterval operator + (const l_cinterval &,const lx_cinterval &)
497  throw();
499  inline lx_cinterval operator + (const lx_cinterval &, const cinterval &)
500  throw();
502  inline lx_cinterval operator + (const cinterval &, const lx_cinterval &)
503  throw();
505  inline lx_cinterval operator + (const lx_cinterval &, const lx_interval &)
506  throw();
508  inline lx_cinterval operator + (const lx_interval &, const lx_cinterval &)
509  throw();
511  inline lx_cinterval operator + (const lx_cinterval &, const l_interval &)
512  throw();
514  inline lx_cinterval operator + (const l_interval &, const lx_cinterval &)
515  throw();
517  inline lx_cinterval operator + (const lx_cinterval &, const lx_real &)
518  throw();
520  inline lx_cinterval operator + (const lx_real &, const lx_cinterval &)
521  throw();
523  inline lx_cinterval operator + (const lx_cinterval &, const l_real &)
524  throw();
526  inline lx_cinterval operator + (const l_real &, const lx_cinterval &)
527  throw();
529  inline lx_cinterval operator + (const lx_cinterval &, const real &)
530  throw();
532  inline lx_cinterval operator + (const real &, const lx_cinterval &)
533  throw();
535  inline lx_cinterval operator + (const lx_cinterval &, const complex &)
536  throw();
538  inline lx_cinterval operator + (const complex &, const lx_cinterval &)
539  throw();
541  inline lx_cinterval operator + (const lx_cinterval &, const l_complex &)
542  throw();
544  inline lx_cinterval operator + (const l_complex &, const lx_cinterval &)
545  throw();
547  inline lx_cinterval operator + (const lx_cinterval &, const lx_complex &)
548  throw();
550  inline lx_cinterval operator + (const lx_complex &, const lx_cinterval &)
551  throw();
552 
554  inline lx_cinterval operator - (const lx_cinterval &,const lx_cinterval &)
555  throw();
557  inline lx_cinterval operator - (const lx_cinterval &,const l_cinterval &)
558  throw();
560  inline lx_cinterval operator - (const l_cinterval &,const lx_cinterval &)
561  throw();
563  inline lx_cinterval operator - (const lx_cinterval &, const cinterval &)
564  throw();
566  inline lx_cinterval operator - (const cinterval &, const lx_cinterval &)
567  throw();
569  inline lx_cinterval operator - (const lx_cinterval &, const lx_interval &)
570  throw();
572  inline lx_cinterval operator - (const lx_interval &, const lx_cinterval &)
573  throw();
575  inline lx_cinterval operator - (const lx_cinterval &, const l_interval &)
576  throw();
578  inline lx_cinterval operator - (const l_interval &, const lx_cinterval &)
579  throw();
581  inline lx_cinterval operator - (const lx_cinterval &, const lx_real &)
582  throw();
584  inline lx_cinterval operator - (const lx_real &, const lx_cinterval &)
585  throw();
587  inline lx_cinterval operator - (const lx_cinterval &, const l_real &)
588  throw();
590  inline lx_cinterval operator - (const l_real &, const lx_cinterval &)
591  throw();
593  inline lx_cinterval operator - (const lx_cinterval &, const real &)
594  throw();
596  inline lx_cinterval operator - (const real &, const lx_cinterval &)
597  throw();
599  inline lx_cinterval operator - (const lx_cinterval &, const complex &)
600  throw();
602  inline lx_cinterval operator - (const complex &, const lx_cinterval &)
603  throw();
605  inline lx_cinterval operator - (const lx_cinterval &, const l_complex &)
606  throw();
608  inline lx_cinterval operator - (const l_complex &, const lx_cinterval &)
609  throw();
611  inline lx_cinterval operator - (const lx_cinterval &, const lx_complex &)
612  throw();
614  inline lx_cinterval operator - (const lx_complex &, const lx_cinterval &)
615  throw();
616 
618  inline lx_cinterval operator * (const lx_cinterval &,const lx_cinterval &)
619  throw();
621  inline lx_cinterval operator * (const lx_cinterval &, const lx_interval &)
622  throw();
624  inline lx_cinterval operator * (const lx_interval &, const lx_cinterval &)
625  throw();
627  inline lx_cinterval operator * (const lx_cinterval &, const l_interval &)
628  throw();
630  inline lx_cinterval operator * (const l_interval &, const lx_cinterval &)
631  throw();
633  inline lx_cinterval operator * (const lx_cinterval &, const l_real &)
634  throw();
636  inline lx_cinterval operator * (const l_real &, const lx_cinterval &)
637  throw();
639  inline lx_cinterval operator * (const lx_cinterval &, const lx_real &)
640  throw();
642  inline lx_cinterval operator * (const lx_real &, const lx_cinterval &)
643  throw();
645  inline lx_cinterval operator * (const lx_cinterval &, const real &)
646  throw();
648  inline lx_cinterval operator * (const real &, const lx_cinterval &)
649  throw();
650 
652  inline lx_cinterval operator / (const lx_cinterval &,const lx_cinterval &)
653  throw();
655  inline lx_cinterval operator / (const lx_cinterval &, const lx_interval &)
656  throw();
658  inline lx_cinterval operator / (const lx_cinterval &, const l_interval &)
659  throw();
661  inline lx_cinterval operator / (const lx_cinterval &, const l_real &)
662  throw();
664  inline lx_cinterval operator / (const lx_cinterval &, const lx_real &)
665  throw();
667  inline lx_cinterval operator / (const lx_cinterval &, const real &)
668  throw();
669 
671  inline bool operator ! (const lx_cinterval&) throw();
673  inline bool operator == (const lx_cinterval &, const lx_cinterval &)
674  throw();
676  inline bool operator != (const lx_cinterval &, const lx_cinterval &)
677  throw();
678 
679  // ---------------------- Set Operators ---------------------------------
680 
682  inline bool operator < (const lx_cinterval &, const lx_cinterval &)
683  throw();
685  inline bool operator <= (const lx_cinterval &, const lx_cinterval &)
686  throw();
687 
688 // -------------- friend Functions declared in lx_cinterval ------------------
689 
691  inline lx_complex Inf(const lx_cinterval &) throw();
693  inline lx_complex Sup(const lx_cinterval &) throw();
695 
696  inline lx_interval Re(const lx_cinterval &) throw();
698  inline lx_interval Im(const lx_cinterval &) throw();
700 
702  inline lx_cinterval & SetRe(lx_cinterval&, const lx_interval&);
704  inline lx_cinterval & SetRe(lx_cinterval&, const l_interval&);
706  inline lx_cinterval & SetRe(lx_cinterval&, const interval&);
708  inline lx_cinterval & SetRe(lx_cinterval&, const lx_real&);
710  inline lx_cinterval & SetRe(lx_cinterval&, const l_real&);
712  inline lx_cinterval & SetRe(lx_cinterval&, const real&);
713 
715  inline lx_cinterval & SetIm(lx_cinterval&, const lx_interval&);
717  inline lx_cinterval & SetIm(lx_cinterval&, const l_interval&);
719  inline lx_cinterval & SetIm(lx_cinterval&, const interval&);
721  inline lx_cinterval & SetIm(lx_cinterval&, const lx_real&);
723  inline lx_cinterval & SetIm(lx_cinterval&, const l_real&);
725  inline lx_cinterval & SetIm(lx_cinterval&, const real&);
726 
728  inline lx_real InfRe(const lx_cinterval&) throw();
730  inline lx_real InfIm(const lx_cinterval&) throw();
732  inline lx_real SupRe(const lx_cinterval&) throw();
734  inline lx_real SupIm(const lx_cinterval&) throw();
735 
737  inline lx_complex mid(const lx_cinterval &) throw();
739  inline lx_complex diam(const lx_cinterval &) throw();
741  inline real expo_Re(const lx_cinterval &a) throw();
743  inline real expo_Im(const lx_cinterval &a) throw();
745  inline l_interval li_part_Re(const lx_cinterval &) throw();
747  inline l_interval li_part_Im(const lx_cinterval &) throw();
749  inline lx_cinterval adjust(const lx_cinterval &) throw();
751  inline lx_cinterval conj(const lx_cinterval &) throw();
753  inline void times2pown(lx_cinterval& , const real&) throw();
755  inline lx_interval abs(const lx_cinterval &) throw();
757  inline lx_cinterval operator & (const lx_cinterval& a,
758  const lx_cinterval& b) throw();
760  inline lx_cinterval operator | (const lx_cinterval& a,
761  const lx_cinterval& b) throw();
762 
764  inline lx_cinterval & SetInf(lx_cinterval& a, const lx_complex& b)
765  throw(ERROR_CINTERVAL_EMPTY_INTERVAL);
767  inline lx_cinterval & SetInf(lx_cinterval& a, const l_complex& b)
768  throw(ERROR_CINTERVAL_EMPTY_INTERVAL);
770  inline lx_cinterval & SetInf(lx_cinterval& a, const complex& b)
771  throw(ERROR_CINTERVAL_EMPTY_INTERVAL);
773  inline lx_cinterval & SetInf(lx_cinterval& a, const lx_real & b)
774  throw(ERROR_CINTERVAL_EMPTY_INTERVAL);
776  inline lx_cinterval & SetInf(lx_cinterval& a, const l_real & b)
777  throw(ERROR_CINTERVAL_EMPTY_INTERVAL);
779  inline lx_cinterval & SetInf(lx_cinterval& a, const real & b)
780  throw(ERROR_CINTERVAL_EMPTY_INTERVAL);
781 
783  inline lx_cinterval & SetSup(lx_cinterval& a, const lx_complex& b)
784  throw(ERROR_CINTERVAL_EMPTY_INTERVAL);
786  inline lx_cinterval & SetSup(lx_cinterval& a, const l_complex& b)
787  throw(ERROR_CINTERVAL_EMPTY_INTERVAL);
789  inline lx_cinterval & SetSup(lx_cinterval& a, const complex& b)
790  throw(ERROR_CINTERVAL_EMPTY_INTERVAL);
792  inline lx_cinterval & SetSup(lx_cinterval& a, const lx_real & b)
793  throw(ERROR_CINTERVAL_EMPTY_INTERVAL);
795  inline lx_cinterval & SetSup(lx_cinterval& a, const l_real & b)
796  throw(ERROR_CINTERVAL_EMPTY_INTERVAL);
798  inline lx_cinterval & SetSup(lx_cinterval& a, const real & b)
799  throw(ERROR_CINTERVAL_EMPTY_INTERVAL);
800 
802  inline bool IsEmpty(const lx_cinterval&) throw();
803 
804 // ***************************************************************************
805 // ---------------------------------------------------------------------------
806 // -------- Functions declared only outside the class lx_cinterval ------------
807 // ---------------------------------------------------------------------------
808 // ***************************************************************************
809 
811  inline lx_cinterval operator+(const lx_cinterval &) throw();
812 
814  inline lx_cinterval & operator +=(lx_cinterval &a, const lx_cinterval &b)
815  throw();
817  inline lx_cinterval & operator +=(lx_cinterval &a, const lx_interval &b)
818  throw();
820  inline lx_cinterval & operator +=(lx_cinterval &a, const l_interval &b)
821  throw();
823  inline lx_cinterval & operator +=(lx_cinterval &a, const l_cinterval &b)
824  throw();
826  inline lx_cinterval & operator +=(lx_cinterval &a, const l_real &b) throw();
828  inline lx_cinterval & operator +=(lx_cinterval &a, const lx_real &b) throw();
830  inline lx_cinterval & operator +=(lx_cinterval &a, const real &b) throw();
832  inline lx_cinterval & operator +=(lx_cinterval &a, const interval &b)
833  throw();
835  inline lx_cinterval & operator +=(lx_cinterval &a, const cinterval &b)
836  throw();
838  inline lx_cinterval & operator +=(lx_cinterval &a, const complex &b)
839  throw();
841  inline lx_cinterval & operator +=(lx_cinterval &a, const l_complex &b)
842  throw();
844  inline lx_cinterval & operator +=(lx_cinterval &a, const lx_complex &b)
845  throw();
846 
848  inline lx_cinterval & operator -=(lx_cinterval &a, const lx_cinterval &b)
849  throw();
851  inline lx_cinterval & operator -=(lx_cinterval &a, const lx_interval &b)
852  throw();
854  inline lx_cinterval & operator -=(lx_cinterval &a, const l_interval &b)
855  throw();
857  inline lx_cinterval & operator -=(lx_cinterval &a, const l_cinterval &b)
858  throw();
860  inline lx_cinterval & operator -=(lx_cinterval &a, const l_real &b) throw();
862  inline lx_cinterval & operator -=(lx_cinterval &a, const lx_real &b) throw();
864  inline lx_cinterval & operator -=(lx_cinterval &a, const real &b) throw();
866  inline lx_cinterval & operator -=(lx_cinterval &a, const interval &b)
867  throw();
869  inline lx_cinterval & operator -=(lx_cinterval &a, const cinterval &b)
870  throw();
872  inline lx_cinterval & operator -=(lx_cinterval &a, const complex &b)
873  throw();
875  inline lx_cinterval & operator -=(lx_cinterval &a, const l_complex &b)
876  throw();
878  inline lx_cinterval & operator -=(lx_cinterval &a, const lx_complex &b)
879  throw();
881 
883  inline lx_cinterval operator * (const lx_cinterval &,const l_cinterval &)
884  throw();
886  inline lx_cinterval operator * (const l_cinterval &,const lx_cinterval &)
887  throw();
889  inline lx_cinterval operator * (const lx_cinterval &, const cinterval &)
890  throw();
892  inline lx_cinterval operator * (const cinterval &, const lx_cinterval &)
893  throw();
895  inline lx_cinterval operator * (const lx_cinterval &, const complex &)
896  throw();
898  inline lx_cinterval operator * (const complex &, const lx_cinterval &)
899  throw();
901  inline lx_cinterval operator * (const lx_cinterval &, const l_complex &)
902  throw();
904  inline lx_cinterval operator * (const l_complex &, const lx_cinterval &)
905  throw();
907  inline lx_cinterval operator * (const lx_cinterval &, const lx_complex &)
908  throw();
910  inline lx_cinterval operator * (const lx_complex &, const lx_cinterval &)
911  throw();
912 
914  inline lx_cinterval & operator *=(lx_cinterval &a, const lx_cinterval &b)
915  throw();
917  inline lx_cinterval & operator *=(lx_cinterval &a, const lx_interval &b)
918  throw();
920  inline lx_cinterval & operator *=(lx_cinterval &a, const l_interval &b)
921  throw();
923  inline lx_cinterval & operator *=(lx_cinterval &a, const l_cinterval &b)
924  throw();
926  inline lx_cinterval & operator *=(lx_cinterval &a, const l_real &b) throw();
928  inline lx_cinterval & operator *=(lx_cinterval &a, const lx_real &b) throw();
930  inline lx_cinterval & operator *=(lx_cinterval &a, const real &b) throw();
932  inline lx_cinterval & operator *=(lx_cinterval &a, const interval &b)
933  throw();
935  inline lx_cinterval & operator *=(lx_cinterval &a, const cinterval &b)
936  throw();
938  inline lx_cinterval & operator *=(lx_cinterval &a, const complex &b)
939  throw();
941  inline lx_cinterval & operator *=(lx_cinterval &a, const l_complex &b)
942  throw();
944  inline lx_cinterval & operator *=(lx_cinterval &a, const lx_complex &b)
945  throw();
946 
948  inline lx_cinterval operator / (const lx_cinterval &,const l_cinterval &)
949  throw();
951  inline lx_cinterval operator / (const l_cinterval &,const lx_cinterval &)
952  throw();
954  inline lx_cinterval operator / (const lx_cinterval &, const cinterval &)
955  throw();
957  inline lx_cinterval operator / (const cinterval &, const lx_cinterval &)
958  throw();
960  inline lx_cinterval operator / (const lx_interval &, const lx_cinterval &)
961  throw();
963  inline lx_cinterval operator / (const l_interval &, const lx_cinterval &)
964  throw();
966  inline lx_cinterval operator / (const l_real &, const lx_cinterval &)
967  throw();
969  inline lx_cinterval operator / (const lx_real &, const lx_cinterval &)
970  throw();
972  inline lx_cinterval operator / (const real &, const lx_cinterval &)
973  throw();
975  inline lx_cinterval operator / (const lx_cinterval &, const complex &)
976  throw();
978  inline lx_cinterval operator / (const complex &, const lx_cinterval &)
979  throw();
981  inline lx_cinterval operator / (const lx_cinterval &, const l_complex &)
982  throw();
984  inline lx_cinterval operator / (const l_complex &, const lx_cinterval &)
985  throw();
987  inline lx_cinterval operator / (const lx_cinterval &, const lx_complex &)
988  throw();
990  inline lx_cinterval operator / (const lx_complex &, const lx_cinterval &)
991  throw();
992 
994  inline lx_cinterval & operator /=(lx_cinterval &, const lx_cinterval &)
995  throw();
997  inline lx_cinterval & operator /=(lx_cinterval &, const lx_interval &)
998  throw();
1000  inline lx_cinterval & operator /=(lx_cinterval &, const l_interval &)
1001  throw();
1003  inline lx_cinterval & operator /=(lx_cinterval &, const l_cinterval &)
1004  throw();
1006  inline lx_cinterval & operator /=(lx_cinterval &, const l_real &) throw();
1008  inline lx_cinterval & operator /=(lx_cinterval &, const lx_real &) throw();
1010  inline lx_cinterval & operator /=(lx_cinterval &, const real &) throw();
1012  inline lx_cinterval & operator /=(lx_cinterval &, const interval &)
1013  throw();
1015  inline lx_cinterval & operator /=(lx_cinterval &, const cinterval &)
1016  throw();
1018  inline lx_cinterval & operator /=(lx_cinterval &, const complex &)
1019  throw();
1021  inline lx_cinterval & operator /=(lx_cinterval &, const l_complex &)
1022  throw();
1024  inline lx_cinterval & operator /=(lx_cinterval &, const lx_complex &)
1025  throw();
1026 
1027 
1029  inline bool operator == (const lx_cinterval &, const l_cinterval &)
1030  throw();
1032  inline bool operator == (const l_cinterval &, const lx_cinterval &)
1033  throw();
1035  inline bool operator == (const lx_cinterval &, const lx_interval &)
1036  throw();
1038  inline bool operator == (const lx_interval &, const lx_cinterval &)
1039  throw();
1041  inline bool operator == (const lx_cinterval &, const l_interval &)
1042  throw();
1044  inline bool operator == (const l_interval &, const lx_cinterval &)
1045  throw();
1047  inline bool operator == (const lx_cinterval &, const l_real &)
1048  throw();
1050  inline bool operator == (const l_real &, const lx_cinterval &)
1051  throw();
1053  inline bool operator == (const lx_cinterval &, const lx_real &)
1054  throw();
1056  inline bool operator == (const lx_real &, const lx_cinterval &)
1057  throw();
1059  inline bool operator == (const lx_cinterval &, const real &)
1060  throw();
1062  inline bool operator == (const real &, const lx_cinterval &)
1063  throw();
1065  inline bool operator == (const lx_cinterval &, const interval &)
1066  throw();
1068  inline bool operator == (const interval &, const lx_cinterval &)
1069  throw();
1071  inline bool operator == (const lx_cinterval &, const cinterval &)
1072  throw();
1074  inline bool operator == (const cinterval &, const lx_cinterval &)
1075  throw();
1077  inline bool operator == (const lx_cinterval &, const complex &)
1078  throw();
1080  inline bool operator == (const complex &, const lx_cinterval &)
1081  throw();
1083  inline bool operator == (const lx_cinterval &, const l_complex &)
1084  throw();
1086  inline bool operator == (const l_complex &, const lx_cinterval &)
1087  throw();
1089  inline bool operator == (const lx_cinterval &, const lx_complex &)
1090  throw();
1092  inline bool operator == (const lx_complex &, const lx_cinterval &)
1093  throw();
1094 
1095 
1097  inline bool operator != (const lx_cinterval &, const l_cinterval &)
1098  throw();
1100  inline bool operator != (const l_cinterval &, const lx_cinterval &)
1101  throw();
1103  inline bool operator != (const lx_cinterval &, const lx_interval &)
1104  throw();
1106  inline bool operator != (const lx_interval &, const lx_cinterval &)
1107  throw();
1109  inline bool operator != (const lx_cinterval &, const l_interval &)
1110  throw();
1112  inline bool operator != (const l_interval &, const lx_cinterval &)
1113  throw();
1115  inline bool operator != (const lx_cinterval &, const l_real &)
1116  throw();
1118  inline bool operator != (const l_real &, const lx_cinterval &)
1119  throw();
1121  inline bool operator != (const lx_cinterval &, const lx_real &)
1122  throw();
1124  inline bool operator != (const lx_real &, const lx_cinterval &)
1125  throw();
1127  inline bool operator != (const lx_cinterval &, const real &)
1128  throw();
1130  inline bool operator != (const real &, const lx_cinterval &)
1131  throw();
1133  inline bool operator != (const lx_cinterval &, const interval &)
1134  throw();
1136  inline bool operator != (const interval &, const lx_cinterval &)
1137  throw();
1139  inline bool operator != (const lx_cinterval &, const cinterval &)
1140  throw();
1142  inline bool operator != (const cinterval &, const lx_cinterval &)
1143  throw();
1145  inline bool operator != (const lx_cinterval &, const complex &)
1146  throw();
1148  inline bool operator != (const complex &, const lx_cinterval &)
1149  throw();
1151  inline bool operator != (const lx_cinterval &, const l_complex &)
1152  throw();
1154  inline bool operator != (const l_complex &, const lx_cinterval &)
1155  throw();
1157  inline bool operator != (const lx_cinterval &, const lx_complex &)
1158  throw();
1160  inline bool operator != (const lx_complex &, const lx_cinterval &)
1161  throw();
1162 
1163 
1164 // ------------------------- Set Operators ------------------------------
1165 
1167  inline bool operator > (const lx_cinterval &, const lx_cinterval &) throw();
1169  inline bool operator >= (const lx_cinterval &, const lx_cinterval &) throw();
1170 
1172  inline bool operator <(const l_cinterval &, const lx_cinterval &) throw();
1174  inline bool operator >(const l_cinterval &, const lx_cinterval &) throw();
1176  inline bool operator <=(const l_cinterval &, const lx_cinterval &) throw();
1178  inline bool operator >=(const l_cinterval &, const lx_cinterval &) throw();
1180  inline bool operator <(const lx_cinterval &, const l_cinterval &) throw();
1182  inline bool operator >(const lx_cinterval &, const l_cinterval &) throw();
1184  inline bool operator <=(const lx_cinterval &, const l_cinterval &) throw();
1186  inline bool operator >=(const lx_cinterval &, const l_cinterval &) throw();
1187 
1189  inline bool operator <(const cinterval &, const lx_cinterval &) throw();
1191  inline bool operator >(const cinterval &, const lx_cinterval &) throw();
1193  inline bool operator <=(const cinterval &, const lx_cinterval &) throw();
1195  inline bool operator >=(const cinterval &, const lx_cinterval &) throw();
1197  inline bool operator <(const lx_cinterval &, const cinterval &) throw();
1199  inline bool operator >(const lx_cinterval &, const cinterval &) throw();
1201  inline bool operator <=(const lx_cinterval &, const cinterval &) throw();
1203  inline bool operator >=(const lx_cinterval &, const cinterval &) throw();
1204 
1206  inline bool operator <(const lx_interval &, const lx_cinterval &) throw();
1208  inline bool operator >(const lx_interval &, const lx_cinterval &) throw();
1210  inline bool operator <=(const lx_interval &, const lx_cinterval &) throw();
1212  inline bool operator >=(const lx_interval &, const lx_cinterval &) throw();
1214  inline bool operator <(const lx_cinterval &, const lx_interval &) throw();
1216  inline bool operator >(const lx_cinterval &, const lx_interval &) throw();
1218  inline bool operator <=(const lx_cinterval &, const lx_interval &) throw();
1220  inline bool operator >=(const lx_cinterval &, const lx_interval &) throw();
1221 
1223  inline bool operator <(const l_interval &, const lx_cinterval &) throw();
1225  inline bool operator >(const l_interval &, const lx_cinterval &) throw();
1227  inline bool operator <=(const l_interval &, const lx_cinterval &) throw();
1229  inline bool operator >=(const l_interval &, const lx_cinterval &) throw();
1231  inline bool operator <(const lx_cinterval &, const l_interval &) throw();
1233  inline bool operator >(const lx_cinterval &, const l_interval &) throw();
1235  inline bool operator <=(const lx_cinterval &, const l_interval &) throw();
1237  inline bool operator >=(const lx_cinterval &, const l_interval &) throw();
1238 
1240  inline bool operator <(const interval &, const lx_cinterval &) throw();
1242  inline bool operator >(const interval &, const lx_cinterval &) throw();
1244  inline bool operator <=(const interval &, const lx_cinterval &) throw();
1246  inline bool operator >=(const interval &, const lx_cinterval &) throw();
1248  inline bool operator <(const lx_cinterval &, const interval &) throw();
1250  inline bool operator >(const lx_cinterval &, const interval &) throw();
1252  inline bool operator <=(const lx_cinterval &, const interval &) throw();
1254  inline bool operator >=(const lx_cinterval &, const interval &) throw();
1255 
1257  inline bool operator <(const lx_real &, const lx_cinterval &) throw();
1259  inline bool operator <=(const lx_real &, const lx_cinterval &) throw();
1261  inline bool operator >(const lx_cinterval &, const lx_real &) throw();
1263  inline bool operator >=(const lx_cinterval &, const lx_real &) throw();
1264 
1266  inline bool operator <(const l_real &, const lx_cinterval &) throw();
1268  inline bool operator <=(const l_real &, const lx_cinterval &) throw();
1270  inline bool operator >(const lx_cinterval &, const l_real &) throw();
1272  inline bool operator >=(const lx_cinterval &, const l_real &) throw();
1273 
1275  inline bool operator <(const real &, const lx_cinterval &) throw();
1277  inline bool operator <=(const real &, const lx_cinterval &) throw();
1279  inline bool operator >(const lx_cinterval &, const real &) throw();
1281  inline bool operator >=(const lx_cinterval &, const real &) throw();
1282 
1284  inline bool operator <(const complex &, const lx_cinterval &) throw();
1286  inline bool operator <=(const complex &, const lx_cinterval &) throw();
1288  inline bool operator >(const lx_cinterval &, const complex &) throw();
1290  inline bool operator >=(const lx_cinterval &, const complex &) throw();
1291 
1293  inline bool operator <(const l_complex &, const lx_cinterval &) throw();
1295  inline bool operator <=(const l_complex &, const lx_cinterval &) throw();
1297  inline bool operator >(const lx_cinterval &, const l_complex &) throw();
1299  inline bool operator >=(const lx_cinterval &, const l_complex &) throw();
1300 
1302  inline bool operator <(const lx_complex &, const lx_cinterval &) throw();
1304  inline bool operator <=(const lx_complex &, const lx_cinterval &) throw();
1306  inline bool operator >(const lx_cinterval &, const lx_complex &) throw();
1308  inline bool operator >=(const lx_cinterval &, const lx_complex &) throw();
1309 
1310 // ------------------------- Convex Hull ---------------------------------
1311 
1313  inline lx_cinterval & operator |= (lx_cinterval&, const lx_cinterval&)
1314  throw();
1316  inline lx_cinterval operator | (const lx_cinterval&, const lx_real&)
1317  throw();
1319  inline lx_cinterval operator | (const lx_real&, const lx_cinterval&)
1320  throw();
1322  inline lx_cinterval & operator |= (lx_cinterval&, const lx_real&)
1323  throw();
1325  inline lx_cinterval operator | (const lx_cinterval&, const l_real&)
1326  throw();
1328  inline lx_cinterval operator | (const l_real&, const lx_cinterval&)
1329  throw();
1331  inline lx_cinterval & operator |= (lx_cinterval&, const l_real&)
1332  throw();
1334  inline lx_cinterval operator | (const lx_cinterval&, const real&)
1335  throw();
1337  inline lx_cinterval operator | (const real&, const lx_cinterval&)
1338  throw();
1340  inline lx_cinterval & operator |= (lx_cinterval&, const real&)
1341  throw();
1343  inline lx_cinterval operator | (const lx_cinterval&, const l_cinterval&)
1344  throw();
1346  inline lx_cinterval operator | (const l_cinterval&, const lx_cinterval&)
1347  throw();
1349  inline lx_cinterval & operator |= (lx_cinterval&, const l_cinterval&)
1350  throw();
1352  inline lx_cinterval operator | (const lx_cinterval&, const cinterval&)
1353  throw();
1355  inline lx_cinterval operator | (const cinterval& a, const lx_cinterval& b)
1356  throw();
1358  inline lx_cinterval & operator |= (lx_cinterval&, const cinterval&)
1359  throw();
1361  inline lx_cinterval operator | (const lx_cinterval&, const lx_interval&)
1362  throw();
1364  inline lx_cinterval operator | (const lx_interval&, const lx_cinterval&)
1365  throw();
1367  inline lx_cinterval & operator |= (lx_cinterval&, const lx_interval&)
1368  throw();
1370  inline lx_cinterval operator | (const lx_cinterval&, const l_interval&)
1371  throw();
1373  inline lx_cinterval operator | (const l_interval&, const lx_cinterval&)
1374  throw();
1376  inline lx_cinterval & operator |= (lx_cinterval&, const l_interval&)
1377  throw();
1379  inline lx_cinterval operator | (const lx_cinterval&, const interval&)
1380  throw();
1382  inline lx_cinterval operator | (const interval&, const lx_cinterval&)
1383  throw();
1385  inline lx_cinterval & operator |= (lx_cinterval&, const interval&)
1386  throw();
1388  inline lx_cinterval operator | (const lx_cinterval&, const lx_complex&)
1389  throw();
1391  inline lx_cinterval operator | (const lx_complex&, const lx_cinterval&)
1392  throw();
1394  inline lx_cinterval & operator |= (lx_cinterval&, const lx_complex&)
1395  throw();
1397  inline lx_cinterval operator | (const lx_cinterval&, const l_complex&)
1398  throw();
1400  inline lx_cinterval operator | (const l_complex&, const lx_cinterval&)
1401  throw();
1403  inline lx_cinterval & operator |= (lx_cinterval&, const l_complex&)
1404  throw();
1406  inline lx_cinterval operator | (const lx_cinterval&, const complex&)
1407  throw();
1409  inline lx_cinterval operator | (const complex&, const lx_cinterval&)
1410  throw();
1412  inline lx_cinterval & operator |= (lx_cinterval&, const complex&)
1413  throw();
1414 
1416  inline lx_cinterval operator | (const lx_interval&, const complex&)
1417  throw();
1419  inline lx_cinterval operator | ( const complex&, const lx_interval&)
1420  throw();
1422  inline lx_cinterval operator | (const lx_interval&, const lx_complex&)
1423  throw();
1425  inline lx_cinterval operator | ( const lx_complex&, const lx_interval&)
1426  throw();
1428  inline lx_cinterval operator | (const lx_interval&, const l_complex&)
1429  throw();
1431  inline lx_cinterval operator | ( const l_complex&, const lx_interval&)
1432  throw();
1434  inline lx_cinterval operator | (const lx_real&, const cinterval&)
1435  throw();
1437  inline lx_cinterval operator | (const cinterval&, const lx_real&)
1438  throw();
1440  inline lx_cinterval operator | (const lx_real&, const l_cinterval&)
1441  throw();
1443  inline lx_cinterval operator | (const l_cinterval&, const lx_real&)
1444  throw();
1446  inline lx_cinterval operator | (const lx_interval&, const cinterval&)
1447  throw();
1449  inline lx_cinterval operator | (const cinterval&, const lx_interval&)
1450  throw();
1452  inline lx_cinterval operator | (const lx_interval&, const l_cinterval&)
1453  throw();
1455  inline lx_cinterval operator | (const l_cinterval&, const lx_interval&)
1456  throw();
1457 
1459  inline lx_cinterval operator | (const lx_real&, const complex&)
1460  throw();
1462  inline lx_cinterval operator | (const complex&, const lx_real&)
1463  throw();
1465  inline lx_cinterval operator | (const lx_real&, const l_complex&)
1466  throw();
1468  inline lx_cinterval operator | (const l_complex&, const lx_real&)
1469  throw();
1471  inline lx_cinterval operator | (const lx_real&, const lx_complex&)
1472  throw();
1474  inline lx_cinterval operator | (const lx_complex&, const lx_real&)
1475  throw();
1476 
1477 // ------------------------- Intersection ----------------------------------
1478 
1480  inline lx_cinterval & operator &= (lx_cinterval&, const lx_cinterval&)
1481  throw(ERROR_CINTERVAL_EMPTY_INTERVAL);
1483  inline lx_cinterval operator & (const lx_cinterval&, const lx_real&)
1484  throw();
1486  inline lx_cinterval operator & (const lx_real&, const lx_cinterval&)
1487  throw();
1489  inline lx_cinterval & operator &= (lx_cinterval&, const lx_real&)
1490  throw();
1492  inline lx_cinterval operator & (const lx_cinterval&, const l_real&)
1493  throw();
1495  inline lx_cinterval operator & (const l_real&, const lx_cinterval&)
1496  throw();
1498  inline lx_cinterval & operator &= (lx_cinterval&, const l_real&)
1499  throw();
1501  inline lx_cinterval operator & (const lx_cinterval&, const real&)
1502  throw();
1504  inline lx_cinterval operator & (const real&, const lx_cinterval&)
1505  throw();
1507  inline lx_cinterval & operator &= (lx_cinterval&, const real&)
1508  throw();
1510  inline lx_cinterval operator & (const lx_cinterval&, const l_cinterval&)
1511  throw();
1513  inline lx_cinterval operator & (const l_cinterval&, const lx_cinterval&)
1514  throw();
1516  inline lx_cinterval & operator &= (lx_cinterval&, const l_cinterval&)
1517  throw();
1519  inline lx_cinterval operator & (const lx_cinterval&, const cinterval&)
1520  throw();
1522  inline lx_cinterval operator & (const cinterval& a, const lx_cinterval& b)
1523  throw();
1525  inline lx_cinterval & operator &= (lx_cinterval&, const cinterval&)
1526  throw();
1528  inline lx_cinterval operator & (const lx_cinterval&, const lx_interval&)
1529  throw();
1531  inline lx_cinterval operator & (const lx_interval&, const lx_cinterval&)
1532  throw();
1534  inline lx_cinterval & operator &= (lx_cinterval&, const lx_interval&)
1535  throw();
1537  inline lx_cinterval operator & (const lx_cinterval&, const l_interval&)
1538  throw();
1540  inline lx_cinterval operator & (const l_interval&, const lx_cinterval&)
1541  throw();
1543  inline lx_cinterval & operator &= (lx_cinterval&, const l_interval&)
1544  throw();
1546  inline lx_cinterval operator & (const lx_cinterval&, const interval&)
1547  throw();
1549  inline lx_cinterval operator & (const interval&, const lx_cinterval&)
1550  throw();
1552  inline lx_cinterval & operator &= (lx_cinterval&, const interval&)
1553  throw();
1555  inline lx_cinterval operator & (const lx_cinterval&, const lx_complex&)
1556  throw();
1558  inline lx_cinterval operator & (const lx_complex&, const lx_cinterval&)
1559  throw();
1561  inline lx_cinterval & operator &= (lx_cinterval&, const lx_complex&)
1562  throw();
1564  inline lx_cinterval operator & (const lx_cinterval&, const l_complex&)
1565  throw();
1567  inline lx_cinterval operator & (const l_complex&, const lx_cinterval&)
1568  throw();
1570  inline lx_cinterval & operator &= (lx_cinterval&, const l_complex&)
1571  throw();
1573  inline lx_cinterval operator & (const lx_cinterval&, const complex&)
1574  throw();
1576  inline lx_cinterval operator & (const complex&, const lx_cinterval&)
1577  throw();
1579  inline lx_cinterval & operator &= (lx_cinterval&, const complex&)
1580  throw();
1581 
1583  inline lx_cinterval operator & (const lx_interval&, const complex&)
1584  throw();
1586  inline lx_cinterval operator & ( const complex&, const lx_interval&)
1587  throw();
1589  inline lx_cinterval operator & (const lx_interval&, const l_complex&)
1590  throw();
1592  inline lx_cinterval operator & ( const l_complex&, const lx_interval&)
1593  throw();
1595  inline lx_cinterval operator & (const lx_interval&, const lx_complex&)
1596  throw();
1598  inline lx_cinterval operator & ( const lx_complex&, const lx_interval&)
1599  throw();
1601  inline lx_cinterval operator & (const lx_real&, const cinterval&)
1602  throw();
1604  inline lx_cinterval operator & (const cinterval&, const lx_real&)
1605  throw();
1607  inline lx_cinterval operator & (const lx_real&, const l_cinterval&)
1608  throw();
1610  inline lx_cinterval operator & (const l_cinterval&, const lx_real&)
1611  throw();
1613  inline lx_cinterval operator & (const lx_interval&, const cinterval&)
1614  throw();
1616  inline lx_cinterval operator & (const cinterval&, const lx_interval&)
1617  throw();
1619  inline lx_cinterval operator & (const lx_interval&, const l_cinterval&)
1620  throw();
1622  inline lx_cinterval operator & (const l_cinterval&, const lx_interval&)
1623  throw();
1624 
1625 
1627  inline lx_cinterval operator & (const l_interval&, const lx_complex&)
1628  throw();
1630  inline lx_cinterval operator & ( const lx_complex&, const l_interval&)
1631  throw();
1633  inline lx_cinterval operator & (const l_cinterval&, const lx_complex&)
1634  throw();
1636  inline lx_cinterval operator & ( const lx_complex&, const l_cinterval&)
1637  throw();
1638 
1640  inline lx_cinterval operator & (const interval&, const lx_complex&)
1641  throw();
1643  inline lx_cinterval operator & ( const lx_complex&, const interval&)
1644  throw();
1646  inline lx_cinterval operator & (const cinterval&, const lx_complex&)
1647  throw();
1649  inline lx_cinterval operator & ( const lx_complex&, const cinterval&)
1650  throw();
1651 
1652 // ------------------------ Input --------------------------------------
1653 
1655  std::string & operator >> (std::string&, lx_cinterval&) throw();
1657  void operator >> (const std::string&, lx_cinterval&) throw();
1659  void operator >> (const char *s, lx_cinterval&) throw();
1661  std::istream & operator >> (std::istream&, lx_cinterval&) throw();
1662 
1663 
1664 // ---------------------------------------------------------------------------
1665 // ----- Elementary functions related to lx_cinterval
1666 // ---------------------------------------------------------------------------
1667 
1669  lx_cinterval sqr(const lx_cinterval&) throw();
1671  lx_cinterval sqrt(const lx_cinterval&) throw();
1673  lx_cinterval sqrt(const lx_cinterval& ,int) throw();
1675  lx_cinterval exp(const lx_cinterval&) throw();
1677  lx_cinterval exp2(const lx_cinterval&) throw();
1679  lx_cinterval exp10(const lx_cinterval&) throw();
1681  lx_cinterval sin(const lx_cinterval&) throw();
1683  lx_cinterval cos(const lx_cinterval&) throw();
1684 
1686  lx_cinterval cosh(const lx_cinterval&) throw();
1688  lx_cinterval sinh(const lx_cinterval&) throw();
1689 
1691  lx_interval Arg(const lx_cinterval&) throw();
1693  lx_interval arg(const lx_cinterval&) throw();
1694 
1696  lx_cinterval Ln(const lx_cinterval& ) throw();
1698  lx_cinterval ln(const lx_cinterval& ) throw();
1699 
1701  lx_cinterval log2(const lx_cinterval& ) throw();
1703  lx_cinterval log10(const lx_cinterval& ) throw();
1704 
1706  lx_cinterval power_fast( const lx_cinterval&, const real& ) throw();
1708  lx_cinterval power( const lx_cinterval&, const real& ) throw();
1710  lx_cinterval pow( const lx_cinterval& , const lx_interval& ) throw();
1712  lx_cinterval pow( const lx_cinterval& , const lx_cinterval& ) throw();
1713 
1715  lx_cinterval tan (const lx_cinterval& ) throw();
1717  lx_cinterval cot (const lx_cinterval& ) throw();
1719  lx_cinterval tanh(const lx_cinterval& ) throw();
1721  lx_cinterval coth(const lx_cinterval& ) throw();
1722 
1724  lx_cinterval asin(const lx_cinterval& ) throw();
1726  lx_cinterval acos(const lx_cinterval& ) throw();
1728  lx_cinterval atan(const lx_cinterval& ) throw();
1730  lx_cinterval acot(const lx_cinterval& ) throw();
1731 
1733  lx_cinterval asinh( const lx_cinterval& ) throw();
1735  lx_cinterval acosh( const lx_cinterval& ) throw();
1737  lx_cinterval atanh( const lx_cinterval& ) throw();
1739  lx_cinterval acoth( const lx_cinterval& ) throw();
1740 
1742  lx_cinterval sqrt1px2(const lx_cinterval& z) throw();
1744  lx_cinterval sqrt1mx2(const lx_cinterval& z) throw();
1746  lx_cinterval sqrtx2m1(const lx_cinterval& z) throw();
1748  lx_cinterval sqrtp1m1(const lx_cinterval& z) throw();
1750  lx_cinterval expm1(const lx_cinterval& z) throw();
1752  lx_cinterval lnp1(const lx_cinterval& z) throw();
1754  std::list<lx_cinterval> sqrt_all( const lx_cinterval& z) throw();
1756  std::list<lx_cinterval> sqrt_all( const lx_cinterval& z, int n ) throw();
1758  std::list<lx_cinterval> pow_all( const lx_cinterval& z, const lx_interval& p ) throw();
1759 } // end namespace cxsc
1760 
1761 #include "lx_cinterval.inl"
1762 
1763 #endif // _CXSC_LX_CINTERVAL_HPP_INCLUDED
cinterval sqrtx2m1(const cinterval &z)
Calculates .
Definition: cimath.cpp:1109
cimatrix & operator/=(cimatrix &m, const cinterval &c)
Implementation of division and allocation operation.
Definition: cimatrix.inl:1623
cinterval sqrt1px2(const cinterval &z)
Calculates .
Definition: cimath.cpp:1071
cinterval log2(const cinterval &z)
Calculates .
Definition: cimath.cpp:898
cinterval ln(const cinterval &z)
Calculates .
Definition: cimath.cpp:851
cinterval sin(const cinterval &z)
Calculates .
Definition: cimath.cpp:215
cinterval cot(const cinterval &z)
Calculates .
Definition: cimath.cpp:538
The namespace cxsc, providing all functionality of the class library C-XSC.
Definition: cdot.cpp:29
cinterval acot(const cinterval &z)
Calculates .
Definition: cimath.cpp:3130
real expo_Re(const lx_cinterval &a)
Returns the exponent n of the real part of the complex interval.
cvector mid(const cimatrix_subv &mv)
Returns the middle of the matrix.
Definition: cimatrix.inl:739
l_interval li_part_Re(const lx_cinterval &)
Returns the l_interval of the real part of the complex interval.
cinterval atan(const cinterval &z)
Calculates .
Definition: cimath.cpp:2938
cinterval acos(const cinterval &z)
Calculates .
Definition: cimath.cpp:2553
cinterval sqr(const cinterval &z)
Calculates .
Definition: cimath.cpp:3342
cinterval expm1(const cinterval &z)
Calculates .
Definition: cimath.cpp:177
cimatrix & operator *=(cimatrix &m, const cinterval &c)
Implementation of multiplication and allocation operation.
Definition: cimatrix.inl:1605
cinterval tanh(const cinterval &z)
Calculates .
Definition: cimath.cpp:565
cinterval asinh(const cinterval &z)
Calculates .
Definition: cimath.cpp:2718
cinterval log10(const cinterval &z)
Calculates .
Definition: cimath.cpp:903
cinterval sqrt1mx2(const cinterval &z)
Calculates .
Definition: cimath.cpp:1140
civector operator *(const cimatrix_subv &rv, const cinterval &s)
Implementation of multiplication operation.
Definition: cimatrix.inl:731
cinterval lnp1(const cinterval &z)
Calculates .
Definition: cimath.cpp:867
std::list< cinterval > pow_all(const cinterval &z, const interval &p)
Calculates and returns all possible solutions.
Definition: cimath.cpp:2107
std::list< cinterval > sqrt_all(const cinterval &z)
Calculates and returns all possible solutions.
Definition: cimath.cpp:1176
cvector diam(const cimatrix_subv &mv)
Returns the diameter of the matrix.
Definition: cimatrix.inl:738
real expo_Im(const lx_cinterval &a)
Returns the exponent n of the imaginary part of the complex interval.
cinterval Ln(const cinterval &z)
Calculates .
Definition: cimath.cpp:829
cinterval sqrt(const cinterval &z)
Calculates .
Definition: cimath.cpp:1007
cinterval cos(const cinterval &z)
Calculates .
Definition: cimath.cpp:207
cinterval atanh(const cinterval &z)
Calculates .
Definition: cimath.cpp:3317
cinterval power_fast(const cinterval &z, int n)
Calculates .
Definition: cimath.cpp:1520
cinterval exp10(const cinterval &z)
Calculates .
Definition: cimath.cpp:172
cdotprecision & operator+=(cdotprecision &cd, const l_complex &lc)
Implementation of standard algebraic addition and allocation operation.
Definition: cdot.inl:251
void times2pown(cinterval &x, int n)
Fast multiplication of reference parameter [z] with .
Definition: cimath.cpp:2059
cinterval sqrtp1m1(const cinterval &z)
Calculates .
Definition: cimath.cpp:1054
cinterval exp(const cinterval &z)
Calculates .
Definition: cimath.cpp:159
cinterval cosh(const cinterval &z)
Calculates .
Definition: cimath.cpp:223
cinterval tan(const cinterval &z)
Calculates .
Definition: cimath.cpp:393
cinterval sinh(const cinterval &z)
Calculates .
Definition: cimath.cpp:231
cinterval exp2(const cinterval &z)
Calculates .
Definition: cimath.cpp:167
interval Arg(const cinterval &z)
Calculates .
Definition: cimath.cpp:654
cinterval asin(const cinterval &z)
Calculates .
Definition: cimath.cpp:2311
civector operator/(const cimatrix_subv &rv, const cinterval &s)
Implementation of division operation.
Definition: cimatrix.inl:730
cinterval acoth(const cinterval &z)
Calculates .
Definition: cimath.cpp:3330
cinterval coth(const cinterval &z)
Calculates .
Definition: cimath.cpp:578
cinterval pow(const cinterval &z, const interval &p)
Calculates .
Definition: cimath.cpp:2074
interval arg(const cinterval &z)
Calculates .
Definition: cimath.cpp:741
l_interval li_part_Im(const lx_cinterval &)
Returns the l_interval of the imaginary part of the complex interval.
cinterval power(const cinterval &z, int n)
Calculates .
Definition: cimath.cpp:1941
ivector abs(const cimatrix_subv &mv)
Returns the absolute value of the matrix.
Definition: cimatrix.inl:737
cinterval acosh(const cinterval &z)
Calculates .
Definition: cimath.cpp:2732