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
49namespace cxsc {
50
51// --------------------------------------------------------------------------
52// Class lx_cinterval
53// --------------------------------------------------------------------------
54
55class lx_cinterval
56{
57private:
58 // ----------------- private data elements -------------------------------
59 lx_interval re, im;
60 // (re,im) is a complex number: re + i*im, i = sqrt(-1).
61public:
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
151friend 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
156friend 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
165friend inline lx_cinterval operator -(const lx_cinterval &) noexcept;
166
168friend inline lx_cinterval operator + (const lx_cinterval &,const lx_cinterval &)
169 noexcept;
171friend inline lx_cinterval operator + (const lx_cinterval &,const l_cinterval &)
172 noexcept;
174friend inline lx_cinterval operator + (const l_cinterval &,const lx_cinterval &)
175 noexcept;
177friend inline lx_cinterval operator + (const lx_cinterval &, const cinterval &)
178 noexcept;
180friend inline lx_cinterval operator + (const cinterval &, const lx_cinterval &)
181 noexcept;
183friend inline lx_cinterval operator + (const lx_cinterval &, const lx_interval &)
184 noexcept;
186friend inline lx_cinterval operator + (const lx_interval &, const lx_cinterval &)
187 noexcept;
189friend inline lx_cinterval operator + (const lx_cinterval &, const l_interval &)
190 noexcept;
192friend inline lx_cinterval operator + (const l_interval &, const lx_cinterval &)
193 noexcept;
195friend inline lx_cinterval operator + (const lx_cinterval &, const lx_real &)
196 noexcept;
198friend inline lx_cinterval operator + (const lx_real &, const lx_cinterval &)
199 noexcept;
201friend inline lx_cinterval operator + (const lx_cinterval &, const l_real &)
202 noexcept;
204friend inline lx_cinterval operator + (const l_real &, const lx_cinterval &)
205 noexcept;
207friend inline lx_cinterval operator + (const lx_cinterval &, const real &)
208 noexcept;
210friend inline lx_cinterval operator + (const real &, const lx_cinterval &)
211 noexcept;
213friend inline lx_cinterval operator + (const lx_cinterval &, const complex &)
214 noexcept;
216friend inline lx_cinterval operator + (const complex &, const lx_cinterval &)
217 noexcept;
219friend inline lx_cinterval operator + (const lx_cinterval &, const l_complex &)
220 noexcept;
222friend inline lx_cinterval operator + (const l_complex &, const lx_cinterval &)
223 noexcept;
225friend inline lx_cinterval operator + (const lx_cinterval &, const lx_complex &)
226 noexcept;
228friend inline lx_cinterval operator + (const lx_complex &, const lx_cinterval &)
229 noexcept;
230
231
233friend inline lx_cinterval operator - (const lx_cinterval &,const lx_cinterval &)
234 noexcept;
236friend inline lx_cinterval operator - (const lx_cinterval &,const l_cinterval &)
237 noexcept;
239friend inline lx_cinterval operator - (const l_cinterval &,const lx_cinterval &)
240 noexcept;
242friend inline lx_cinterval operator - (const lx_cinterval &, const cinterval &)
243 noexcept;
245friend inline lx_cinterval operator - (const cinterval &, const lx_cinterval &)
246 noexcept;
248friend inline lx_cinterval operator - (const lx_cinterval &, const lx_interval &)
249 noexcept;
251friend inline lx_cinterval operator - (const lx_interval &, const lx_cinterval &)
252 noexcept;
254friend inline lx_cinterval operator - (const lx_cinterval &, const l_interval &)
255 noexcept;
257friend inline lx_cinterval operator - (const l_interval &, const lx_cinterval &)
258 noexcept;
260friend inline lx_cinterval operator - (const lx_cinterval &, const lx_real &)
261 noexcept;
263friend inline lx_cinterval operator - (const lx_real &, const lx_cinterval &)
264 noexcept;
266friend inline lx_cinterval operator - (const lx_cinterval &, const l_real &)
267 noexcept;
269friend inline lx_cinterval operator - (const l_real &, const lx_cinterval &)
270 noexcept;
272friend inline lx_cinterval operator - (const lx_cinterval &, const real &)
273 noexcept;
275friend inline lx_cinterval operator - (const real &, const lx_cinterval &)
276 noexcept;
278friend inline lx_cinterval operator - (const lx_cinterval &, const complex &)
279 noexcept;
281friend inline lx_cinterval operator - (const complex &, const lx_cinterval &)
282 noexcept;
284friend inline lx_cinterval operator - (const lx_cinterval &, const l_complex &)
285 noexcept;
287friend inline lx_cinterval operator - (const l_complex &, const lx_cinterval &)
288 noexcept;
290friend inline lx_cinterval operator - (const lx_cinterval &, const lx_complex &)
291 noexcept;
293friend inline lx_cinterval operator - (const lx_complex &, const lx_cinterval &)
294 noexcept;
295
296
298friend inline lx_cinterval operator * (const lx_cinterval &,const lx_cinterval &)
299 noexcept;
301friend inline lx_cinterval operator * (const lx_cinterval &, const lx_interval &)
302 noexcept;
304friend inline lx_cinterval operator * (const lx_interval &, const lx_cinterval &)
305 noexcept;
307friend inline lx_cinterval operator * (const lx_cinterval &, const l_interval &)
308 noexcept;
310friend inline lx_cinterval operator * (const l_interval &, const lx_cinterval &)
311 noexcept;
313friend inline lx_cinterval operator * (const lx_cinterval &, const lx_real &)
314 noexcept;
316friend inline lx_cinterval operator * (const lx_real &, const lx_cinterval &)
317 noexcept;
319friend inline lx_cinterval operator * (const lx_cinterval &, const l_real &)
320 noexcept;
322friend inline lx_cinterval operator * (const l_real &, const lx_cinterval &)
323 noexcept;
325friend inline lx_cinterval operator * (const lx_cinterval &, const real &)
326 noexcept;
328friend inline lx_cinterval operator * (const real &, const lx_cinterval &)
329 noexcept;
330
332friend inline lx_cinterval operator / (const lx_cinterval &,const lx_cinterval &)
333 noexcept;
335friend inline lx_cinterval operator / (const lx_cinterval &, const lx_interval &)
336 noexcept;
338friend inline lx_cinterval operator / (const lx_cinterval &, const l_interval &)
339 noexcept;
341friend inline lx_cinterval operator / (const lx_cinterval &, const l_real &)
342 noexcept;
344friend inline lx_cinterval operator / (const lx_cinterval &, const lx_real &)
345 noexcept;
347friend inline lx_cinterval operator / (const lx_cinterval &, const real &)
348 noexcept;
349
351friend inline bool operator ! (const lx_cinterval&) noexcept;
352
354friend inline bool operator == (const lx_cinterval &, const lx_cinterval &)
355 noexcept;
356
358friend 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
434friend inline bool operator < (const lx_cinterval &, const lx_cinterval &)
435 noexcept;
436friend inline bool operator <= (const lx_cinterval &, const lx_cinterval &)
437 noexcept;
438
439// ------------------------- Intersection ------------------------------------
440
441friend inline lx_cinterval operator & (const lx_cinterval& a,
442 const lx_cinterval& b) noexcept;
443
444// -------------------------- Convex Hull ------------------------------------
445
446friend inline lx_cinterval operator | (const lx_cinterval& a,
447 const lx_cinterval& b) noexcept;
448
449// ---------------------------- Others --------------------------------------
450
451friend inline lx_cinterval & SetInf(lx_cinterval& a, const lx_complex& b)
452 ;
453friend inline lx_cinterval & SetInf(lx_cinterval& a, const l_complex& b)
454 ;
455friend inline lx_cinterval & SetInf(lx_cinterval& a, const complex& b)
456 ;
457friend inline lx_cinterval & SetInf(lx_cinterval& a, const lx_real & b)
458 ;
459friend inline lx_cinterval & SetInf(lx_cinterval& a, const l_real & b)
460;
461friend inline lx_cinterval & SetInf(lx_cinterval& a, const real & b)
462;
463
464friend inline lx_cinterval & SetSup(lx_cinterval& a, const lx_complex& b)
465 ;
466friend inline lx_cinterval & SetSup(lx_cinterval& a, const l_complex& b)
467 ;
468friend inline lx_cinterval & SetSup(lx_cinterval& a, const complex& b)
469 ;
470friend inline lx_cinterval & SetSup(lx_cinterval& a, const lx_real & b)
471 ;
472friend inline lx_cinterval & SetSup(lx_cinterval& a, const l_real & b)
473;
474friend 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
cdotprecision & operator+=(cdotprecision &cd, const l_complex &lc) noexcept
Implementation of standard algebraic addition and allocation operation.
Definition cdot.inl:251
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
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
cinterval pow(const cinterval &z, const interval &p) noexcept
Calculates .
Definition cimath.cpp:2074
real expo_Re(const lx_cinterval &a) noexcept
Returns the exponent n of the real part of the complex interval.
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
real expo_Im(const lx_cinterval &a) noexcept
Returns the exponent n of the imaginary part of the complex interval.
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
cinterval cosh(const cinterval &z) noexcept
Calculates .
Definition cimath.cpp:223
cinterval cos(const cinterval &z) noexcept
Calculates .
Definition cimath.cpp:207
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.
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
l_interval li_part_Re(const lx_cinterval &) noexcept
Returns the l_interval of the real part of the complex interval.
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
l_interval li_part_Im(const lx_cinterval &) noexcept
Returns the l_interval of the imaginary part of the complex interval.
cimatrix & operator/=(cimatrix &m, const cinterval &c) noexcept
Implementation of division and allocation operation.