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