C-XSC - A C++ Class Library for Extended Scientific Computing
2.5.4
|
00001 /* 00002 ** CXSC is a C++ library for eXtended Scientific Computing (V 2.5.4) 00003 ** 00004 ** Copyright (C) 1990-2000 Institut fuer Angewandte Mathematik, 00005 ** Universitaet Karlsruhe, Germany 00006 ** (C) 2000-2014 Wiss. Rechnen/Softwaretechnologie 00007 ** Universitaet Wuppertal, Germany 00008 ** 00009 ** This library is free software; you can redistribute it and/or 00010 ** modify it under the terms of the GNU Library General Public 00011 ** License as published by the Free Software Foundation; either 00012 ** version 2 of the License, or (at your option) any later version. 00013 ** 00014 ** This library is distributed in the hope that it will be useful, 00015 ** but WITHOUT ANY WARRANTY; without even the implied warranty of 00016 ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00017 ** Library General Public License for more details. 00018 ** 00019 ** You should have received a copy of the GNU Library General Public 00020 ** License along with this library; if not, write to the Free 00021 ** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 00022 */ 00023 00024 /* CVS $Id: lx_cinterval.hpp,v 1.9 2014/01/30 17:23:47 cxsc Exp $ */ 00025 00026 00027 /* 00028 ** F. Blomquist, University of Wuppertal, 19.09.2007; 00029 */ 00030 00031 /* 00032 ** Implementation of the classes 00033 ** 00034 ** lx_cinterval with all tools and elementary functions for complex 00035 ** point and interval aruments 00036 ** 00037 */ 00038 00039 #ifndef _CXSC_LX_CINTERVAL_HPP_INCLUDED 00040 #define _CXSC_LX_CINTERVAL_HPP_INCLUDED 00041 00042 #include <iostream> 00043 #include <except.hpp> 00044 #include <l_cinterval.hpp> 00045 #include <l_complex.hpp> 00046 #include "lx_interval.hpp" 00047 #include "lx_complex.hpp" 00048 00049 namespace cxsc { 00050 00051 // -------------------------------------------------------------------------- 00052 // Class lx_cinterval 00053 // -------------------------------------------------------------------------- 00054 00055 class lx_cinterval 00056 { 00057 private: 00058 // ----------------- private data elements ------------------------------- 00059 lx_interval re, im; 00060 // (re,im) is a complex number: re + i*im, i = sqrt(-1). 00061 public: 00062 // ------------- Constructors -------------------------------------------- 00063 00065 inline lx_cinterval(void) throw() { } 00067 inline lx_cinterval(const lx_interval &, const lx_interval &) throw(); 00069 inline lx_cinterval(const l_interval &, const l_interval &) throw(); 00071 inline lx_cinterval(const interval &, const interval &) throw(); 00073 inline lx_cinterval(const l_real &, const l_real &) throw(); 00075 inline lx_cinterval(const lx_real &, const lx_real &) throw(); 00077 inline lx_cinterval(const real &, const real &) throw(); 00079 inline lx_cinterval(const l_cinterval &) throw(); 00081 inline lx_cinterval(const cinterval &) throw(); 00083 inline lx_cinterval(const complex &) throw(); 00085 inline lx_cinterval(const l_complex &) throw(); 00087 inline lx_cinterval(const lx_complex &) throw(); 00089 inline lx_cinterval(const lx_complex&, const lx_complex&) 00090 throw(ERROR_CINTERVAL_EMPTY_INTERVAL); 00092 inline lx_cinterval(const l_complex&, const l_complex&) 00093 throw(ERROR_CINTERVAL_EMPTY_INTERVAL); 00095 inline lx_cinterval(const complex&, const complex&) 00096 throw(ERROR_CINTERVAL_EMPTY_INTERVAL); 00098 inline lx_cinterval(const real&, const l_interval&, const real&, const l_interval&) throw(); 00100 inline lx_cinterval(const real&, const l_interval&) throw(); 00102 inline lx_cinterval(const real&, const l_interval&, const lx_interval&) throw(); 00104 inline lx_cinterval(const lx_interval&, const real&, const l_interval&) throw(); 00106 inline lx_cinterval(const real&, const string&, const real&, const string&) throw(); 00108 explicit inline lx_cinterval(const lx_interval &) throw(); 00110 explicit inline lx_cinterval(const l_interval &) throw(); 00112 inline lx_cinterval(const interval &) throw(); 00114 explicit inline lx_cinterval(const lx_real &) throw(); 00116 explicit inline lx_cinterval(const l_real &) throw(); 00118 explicit inline lx_cinterval(const real &) throw(); 00120 00121 // ------------- Assignments --------------------------------------------- 00122 00124 inline lx_cinterval & operator = (const lx_cinterval & ) throw(); 00126 inline lx_cinterval & operator = (const l_cinterval & ) throw(); 00128 inline lx_cinterval & operator = (const cinterval & ) throw(); 00130 inline lx_cinterval & operator = (const lx_interval & ) throw(); 00132 inline lx_cinterval & operator = (const l_interval & ) throw(); 00134 inline lx_cinterval & operator = (const interval & ) throw(); 00136 inline lx_cinterval & operator = (const lx_real & ) throw(); 00138 inline lx_cinterval & operator = (const l_real & ) throw(); 00140 inline lx_cinterval & operator = (const real & ) throw(); 00142 inline lx_cinterval & operator = (const lx_complex & ) throw(); 00144 inline lx_cinterval & operator = (const l_complex & ) throw(); 00146 inline lx_cinterval & operator = (const complex & ) throw(); 00147 00148 // ----------------------- Output -------------------------------------------- 00149 00151 friend inline std::ostream& operator << (std::ostream& s,const lx_cinterval& a) 00152 throw(); 00153 // A value a of type lx_cinterval is written to the output channel. 00154 00156 friend inline std::string & operator << (std::string &s,const lx_cinterval& a) 00157 throw(); 00158 // The value of a variable a of type lx_cinterval is copied to a string s. 00159 // s has the form: {ex,li} 00160 00161 00162 // ---------------------- Arithmetic operators ------------------------------ 00163 00165 friend inline lx_cinterval operator -(const lx_cinterval &) throw(); 00166 00168 friend inline lx_cinterval operator + (const lx_cinterval &,const lx_cinterval &) 00169 throw(); 00171 friend inline lx_cinterval operator + (const lx_cinterval &,const l_cinterval &) 00172 throw(); 00174 friend inline lx_cinterval operator + (const l_cinterval &,const lx_cinterval &) 00175 throw(); 00177 friend inline lx_cinterval operator + (const lx_cinterval &, const cinterval &) 00178 throw(); 00180 friend inline lx_cinterval operator + (const cinterval &, const lx_cinterval &) 00181 throw(); 00183 friend inline lx_cinterval operator + (const lx_cinterval &, const lx_interval &) 00184 throw(); 00186 friend inline lx_cinterval operator + (const lx_interval &, const lx_cinterval &) 00187 throw(); 00189 friend inline lx_cinterval operator + (const lx_cinterval &, const l_interval &) 00190 throw(); 00192 friend inline lx_cinterval operator + (const l_interval &, const lx_cinterval &) 00193 throw(); 00195 friend inline lx_cinterval operator + (const lx_cinterval &, const lx_real &) 00196 throw(); 00198 friend inline lx_cinterval operator + (const lx_real &, const lx_cinterval &) 00199 throw(); 00201 friend inline lx_cinterval operator + (const lx_cinterval &, const l_real &) 00202 throw(); 00204 friend inline lx_cinterval operator + (const l_real &, const lx_cinterval &) 00205 throw(); 00207 friend inline lx_cinterval operator + (const lx_cinterval &, const real &) 00208 throw(); 00210 friend inline lx_cinterval operator + (const real &, const lx_cinterval &) 00211 throw(); 00213 friend inline lx_cinterval operator + (const lx_cinterval &, const complex &) 00214 throw(); 00216 friend inline lx_cinterval operator + (const complex &, const lx_cinterval &) 00217 throw(); 00219 friend inline lx_cinterval operator + (const lx_cinterval &, const l_complex &) 00220 throw(); 00222 friend inline lx_cinterval operator + (const l_complex &, const lx_cinterval &) 00223 throw(); 00225 friend inline lx_cinterval operator + (const lx_cinterval &, const lx_complex &) 00226 throw(); 00228 friend inline lx_cinterval operator + (const lx_complex &, const lx_cinterval &) 00229 throw(); 00230 00231 00233 friend inline lx_cinterval operator - (const lx_cinterval &,const lx_cinterval &) 00234 throw(); 00236 friend inline lx_cinterval operator - (const lx_cinterval &,const l_cinterval &) 00237 throw(); 00239 friend inline lx_cinterval operator - (const l_cinterval &,const lx_cinterval &) 00240 throw(); 00242 friend inline lx_cinterval operator - (const lx_cinterval &, const cinterval &) 00243 throw(); 00245 friend inline lx_cinterval operator - (const cinterval &, const lx_cinterval &) 00246 throw(); 00248 friend inline lx_cinterval operator - (const lx_cinterval &, const lx_interval &) 00249 throw(); 00251 friend inline lx_cinterval operator - (const lx_interval &, const lx_cinterval &) 00252 throw(); 00254 friend inline lx_cinterval operator - (const lx_cinterval &, const l_interval &) 00255 throw(); 00257 friend inline lx_cinterval operator - (const l_interval &, const lx_cinterval &) 00258 throw(); 00260 friend inline lx_cinterval operator - (const lx_cinterval &, const lx_real &) 00261 throw(); 00263 friend inline lx_cinterval operator - (const lx_real &, const lx_cinterval &) 00264 throw(); 00266 friend inline lx_cinterval operator - (const lx_cinterval &, const l_real &) 00267 throw(); 00269 friend inline lx_cinterval operator - (const l_real &, const lx_cinterval &) 00270 throw(); 00272 friend inline lx_cinterval operator - (const lx_cinterval &, const real &) 00273 throw(); 00275 friend inline lx_cinterval operator - (const real &, const lx_cinterval &) 00276 throw(); 00278 friend inline lx_cinterval operator - (const lx_cinterval &, const complex &) 00279 throw(); 00281 friend inline lx_cinterval operator - (const complex &, const lx_cinterval &) 00282 throw(); 00284 friend inline lx_cinterval operator - (const lx_cinterval &, const l_complex &) 00285 throw(); 00287 friend inline lx_cinterval operator - (const l_complex &, const lx_cinterval &) 00288 throw(); 00290 friend inline lx_cinterval operator - (const lx_cinterval &, const lx_complex &) 00291 throw(); 00293 friend inline lx_cinterval operator - (const lx_complex &, const lx_cinterval &) 00294 throw(); 00295 00296 00298 friend inline lx_cinterval operator * (const lx_cinterval &,const lx_cinterval &) 00299 throw(); 00301 friend inline lx_cinterval operator * (const lx_cinterval &, const lx_interval &) 00302 throw(); 00304 friend inline lx_cinterval operator * (const lx_interval &, const lx_cinterval &) 00305 throw(); 00307 friend inline lx_cinterval operator * (const lx_cinterval &, const l_interval &) 00308 throw(); 00310 friend inline lx_cinterval operator * (const l_interval &, const lx_cinterval &) 00311 throw(); 00313 friend inline lx_cinterval operator * (const lx_cinterval &, const lx_real &) 00314 throw(); 00316 friend inline lx_cinterval operator * (const lx_real &, const lx_cinterval &) 00317 throw(); 00319 friend inline lx_cinterval operator * (const lx_cinterval &, const l_real &) 00320 throw(); 00322 friend inline lx_cinterval operator * (const l_real &, const lx_cinterval &) 00323 throw(); 00325 friend inline lx_cinterval operator * (const lx_cinterval &, const real &) 00326 throw(); 00328 friend inline lx_cinterval operator * (const real &, const lx_cinterval &) 00329 throw(); 00330 00332 friend inline lx_cinterval operator / (const lx_cinterval &,const lx_cinterval &) 00333 throw(); 00335 friend inline lx_cinterval operator / (const lx_cinterval &, const lx_interval &) 00336 throw(); 00338 friend inline lx_cinterval operator / (const lx_cinterval &, const l_interval &) 00339 throw(); 00341 friend inline lx_cinterval operator / (const lx_cinterval &, const l_real &) 00342 throw(); 00344 friend inline lx_cinterval operator / (const lx_cinterval &, const lx_real &) 00345 throw(); 00347 friend inline lx_cinterval operator / (const lx_cinterval &, const real &) 00348 throw(); 00349 00351 friend inline bool operator ! (const lx_cinterval&) throw(); 00352 00354 friend inline bool operator == (const lx_cinterval &, const lx_cinterval &) 00355 throw(); 00356 00358 friend inline bool operator != (const lx_cinterval &, const lx_cinterval &) 00359 throw(); 00360 00361 00362 // --------------------- Functions --------------------------------------- 00363 00365 friend inline lx_interval Re(const lx_cinterval &) throw(); 00367 friend inline lx_interval Im(const lx_cinterval &) throw(); 00368 00370 friend inline lx_complex Inf(const lx_cinterval &) throw(); 00372 friend inline lx_complex Sup(const lx_cinterval &) throw(); 00373 00375 friend inline lx_cinterval & SetRe(lx_cinterval&, const lx_interval&); 00377 friend inline lx_cinterval & SetRe(lx_cinterval&, const l_interval&); 00379 friend inline lx_cinterval & SetRe(lx_cinterval&, const interval&); 00381 friend inline lx_cinterval & SetRe(lx_cinterval&, const lx_real&); 00383 friend inline lx_cinterval & SetRe(lx_cinterval&, const l_real&); 00385 friend inline lx_cinterval & SetRe(lx_cinterval&, const real&); 00386 00388 friend inline lx_cinterval & SetIm(lx_cinterval&, const lx_interval&); 00390 friend inline lx_cinterval & SetIm(lx_cinterval&, const l_interval&); 00392 friend inline lx_cinterval & SetIm(lx_cinterval&, const interval&); 00394 friend inline lx_cinterval & SetIm(lx_cinterval&, const lx_real&); 00396 friend inline lx_cinterval & SetIm(lx_cinterval&, const l_real&); 00398 friend inline lx_cinterval & SetIm(lx_cinterval&, const real&); 00399 00401 friend inline lx_real InfRe(const lx_cinterval&) throw(); 00403 friend inline lx_real InfIm(const lx_cinterval&) throw(); 00405 friend inline lx_real SupRe(const lx_cinterval&) throw(); 00407 friend inline lx_real SupIm(const lx_cinterval&) throw(); 00408 00410 friend inline lx_complex mid(const lx_cinterval &) throw(); 00412 friend inline lx_complex diam(const lx_cinterval &) throw(); 00414 friend inline real expo_Re(const lx_cinterval &) throw(); 00416 friend inline real expo_Im(const lx_cinterval &) throw(); 00418 friend inline l_interval li_part_Re(const lx_cinterval &) throw(); 00420 friend inline l_interval li_part_Im(const lx_cinterval &) throw(); 00422 friend inline lx_interval abs(const lx_cinterval &) throw(); 00424 friend inline lx_cinterval adjust(const lx_cinterval &) throw(); 00426 friend inline lx_cinterval conj(const lx_cinterval &) throw(); 00428 friend inline void times2pown(lx_cinterval& , const real&) throw(); 00430 friend inline bool IsEmpty(const lx_cinterval&) throw(); 00431 00432 // ------------------------- Set Operators ----------------------------------- 00433 00434 friend inline bool operator < (const lx_cinterval &, const lx_cinterval &) 00435 throw(); 00436 friend inline bool operator <= (const lx_cinterval &, const lx_cinterval &) 00437 throw(); 00438 00439 // ------------------------- Intersection ------------------------------------ 00440 00441 friend inline lx_cinterval operator & (const lx_cinterval& a, 00442 const lx_cinterval& b) throw(); 00443 00444 // -------------------------- Convex Hull ------------------------------------ 00445 00446 friend inline lx_cinterval operator | (const lx_cinterval& a, 00447 const lx_cinterval& b) throw(); 00448 00449 // ---------------------------- Others -------------------------------------- 00450 00451 friend inline lx_cinterval & SetInf(lx_cinterval& a, const lx_complex& b) 00452 throw(ERROR_CINTERVAL_EMPTY_INTERVAL); 00453 friend inline lx_cinterval & SetInf(lx_cinterval& a, const l_complex& b) 00454 throw(ERROR_CINTERVAL_EMPTY_INTERVAL); 00455 friend inline lx_cinterval & SetInf(lx_cinterval& a, const complex& b) 00456 throw(ERROR_CINTERVAL_EMPTY_INTERVAL); 00457 friend inline lx_cinterval & SetInf(lx_cinterval& a, const lx_real & b) 00458 throw(ERROR_CINTERVAL_EMPTY_INTERVAL); 00459 friend inline lx_cinterval & SetInf(lx_cinterval& a, const l_real & b) 00460 throw(ERROR_CINTERVAL_EMPTY_INTERVAL); 00461 friend inline lx_cinterval & SetInf(lx_cinterval& a, const real & b) 00462 throw(ERROR_CINTERVAL_EMPTY_INTERVAL); 00463 00464 friend inline lx_cinterval & SetSup(lx_cinterval& a, const lx_complex& b) 00465 throw(ERROR_CINTERVAL_EMPTY_INTERVAL); 00466 friend inline lx_cinterval & SetSup(lx_cinterval& a, const l_complex& b) 00467 throw(ERROR_CINTERVAL_EMPTY_INTERVAL); 00468 friend inline lx_cinterval & SetSup(lx_cinterval& a, const complex& b) 00469 throw(ERROR_CINTERVAL_EMPTY_INTERVAL); 00470 friend inline lx_cinterval & SetSup(lx_cinterval& a, const lx_real & b) 00471 throw(ERROR_CINTERVAL_EMPTY_INTERVAL); 00472 friend inline lx_cinterval & SetSup(lx_cinterval& a, const l_real & b) 00473 throw(ERROR_CINTERVAL_EMPTY_INTERVAL); 00474 friend inline lx_cinterval & SetSup(lx_cinterval& a, const real & b) 00475 throw(ERROR_CINTERVAL_EMPTY_INTERVAL); 00476 00477 }; // end of class lx_cinterval 00478 00479 // *************************************************************************** 00480 // *************************************************************************** 00481 00482 // --------------------------------------------------------------------------- 00483 // ------- friend functions declared inside the class lx_cinterval ------------ 00484 // --------------------------------------------------------------------------- 00485 00487 inline lx_cinterval operator-(const lx_cinterval &) throw(); 00488 00490 inline lx_cinterval operator + (const lx_cinterval &,const lx_cinterval &) 00491 throw(); 00493 inline lx_cinterval operator + (const lx_cinterval &,const l_cinterval &) 00494 throw(); 00496 inline lx_cinterval operator + (const l_cinterval &,const lx_cinterval &) 00497 throw(); 00499 inline lx_cinterval operator + (const lx_cinterval &, const cinterval &) 00500 throw(); 00502 inline lx_cinterval operator + (const cinterval &, const lx_cinterval &) 00503 throw(); 00505 inline lx_cinterval operator + (const lx_cinterval &, const lx_interval &) 00506 throw(); 00508 inline lx_cinterval operator + (const lx_interval &, const lx_cinterval &) 00509 throw(); 00511 inline lx_cinterval operator + (const lx_cinterval &, const l_interval &) 00512 throw(); 00514 inline lx_cinterval operator + (const l_interval &, const lx_cinterval &) 00515 throw(); 00517 inline lx_cinterval operator + (const lx_cinterval &, const lx_real &) 00518 throw(); 00520 inline lx_cinterval operator + (const lx_real &, const lx_cinterval &) 00521 throw(); 00523 inline lx_cinterval operator + (const lx_cinterval &, const l_real &) 00524 throw(); 00526 inline lx_cinterval operator + (const l_real &, const lx_cinterval &) 00527 throw(); 00529 inline lx_cinterval operator + (const lx_cinterval &, const real &) 00530 throw(); 00532 inline lx_cinterval operator + (const real &, const lx_cinterval &) 00533 throw(); 00535 inline lx_cinterval operator + (const lx_cinterval &, const complex &) 00536 throw(); 00538 inline lx_cinterval operator + (const complex &, const lx_cinterval &) 00539 throw(); 00541 inline lx_cinterval operator + (const lx_cinterval &, const l_complex &) 00542 throw(); 00544 inline lx_cinterval operator + (const l_complex &, const lx_cinterval &) 00545 throw(); 00547 inline lx_cinterval operator + (const lx_cinterval &, const lx_complex &) 00548 throw(); 00550 inline lx_cinterval operator + (const lx_complex &, const lx_cinterval &) 00551 throw(); 00552 00554 inline lx_cinterval operator - (const lx_cinterval &,const lx_cinterval &) 00555 throw(); 00557 inline lx_cinterval operator - (const lx_cinterval &,const l_cinterval &) 00558 throw(); 00560 inline lx_cinterval operator - (const l_cinterval &,const lx_cinterval &) 00561 throw(); 00563 inline lx_cinterval operator - (const lx_cinterval &, const cinterval &) 00564 throw(); 00566 inline lx_cinterval operator - (const cinterval &, const lx_cinterval &) 00567 throw(); 00569 inline lx_cinterval operator - (const lx_cinterval &, const lx_interval &) 00570 throw(); 00572 inline lx_cinterval operator - (const lx_interval &, const lx_cinterval &) 00573 throw(); 00575 inline lx_cinterval operator - (const lx_cinterval &, const l_interval &) 00576 throw(); 00578 inline lx_cinterval operator - (const l_interval &, const lx_cinterval &) 00579 throw(); 00581 inline lx_cinterval operator - (const lx_cinterval &, const lx_real &) 00582 throw(); 00584 inline lx_cinterval operator - (const lx_real &, const lx_cinterval &) 00585 throw(); 00587 inline lx_cinterval operator - (const lx_cinterval &, const l_real &) 00588 throw(); 00590 inline lx_cinterval operator - (const l_real &, const lx_cinterval &) 00591 throw(); 00593 inline lx_cinterval operator - (const lx_cinterval &, const real &) 00594 throw(); 00596 inline lx_cinterval operator - (const real &, const lx_cinterval &) 00597 throw(); 00599 inline lx_cinterval operator - (const lx_cinterval &, const complex &) 00600 throw(); 00602 inline lx_cinterval operator - (const complex &, const lx_cinterval &) 00603 throw(); 00605 inline lx_cinterval operator - (const lx_cinterval &, const l_complex &) 00606 throw(); 00608 inline lx_cinterval operator - (const l_complex &, const lx_cinterval &) 00609 throw(); 00611 inline lx_cinterval operator - (const lx_cinterval &, const lx_complex &) 00612 throw(); 00614 inline lx_cinterval operator - (const lx_complex &, const lx_cinterval &) 00615 throw(); 00616 00618 inline lx_cinterval operator * (const lx_cinterval &,const lx_cinterval &) 00619 throw(); 00621 inline lx_cinterval operator * (const lx_cinterval &, const lx_interval &) 00622 throw(); 00624 inline lx_cinterval operator * (const lx_interval &, const lx_cinterval &) 00625 throw(); 00627 inline lx_cinterval operator * (const lx_cinterval &, const l_interval &) 00628 throw(); 00630 inline lx_cinterval operator * (const l_interval &, const lx_cinterval &) 00631 throw(); 00633 inline lx_cinterval operator * (const lx_cinterval &, const l_real &) 00634 throw(); 00636 inline lx_cinterval operator * (const l_real &, const lx_cinterval &) 00637 throw(); 00639 inline lx_cinterval operator * (const lx_cinterval &, const lx_real &) 00640 throw(); 00642 inline lx_cinterval operator * (const lx_real &, const lx_cinterval &) 00643 throw(); 00645 inline lx_cinterval operator * (const lx_cinterval &, const real &) 00646 throw(); 00648 inline lx_cinterval operator * (const real &, const lx_cinterval &) 00649 throw(); 00650 00652 inline lx_cinterval operator / (const lx_cinterval &,const lx_cinterval &) 00653 throw(); 00655 inline lx_cinterval operator / (const lx_cinterval &, const lx_interval &) 00656 throw(); 00658 inline lx_cinterval operator / (const lx_cinterval &, const l_interval &) 00659 throw(); 00661 inline lx_cinterval operator / (const lx_cinterval &, const l_real &) 00662 throw(); 00664 inline lx_cinterval operator / (const lx_cinterval &, const lx_real &) 00665 throw(); 00667 inline lx_cinterval operator / (const lx_cinterval &, const real &) 00668 throw(); 00669 00671 inline bool operator ! (const lx_cinterval&) throw(); 00673 inline bool operator == (const lx_cinterval &, const lx_cinterval &) 00674 throw(); 00676 inline bool operator != (const lx_cinterval &, const lx_cinterval &) 00677 throw(); 00678 00679 // ---------------------- Set Operators --------------------------------- 00680 00682 inline bool operator < (const lx_cinterval &, const lx_cinterval &) 00683 throw(); 00685 inline bool operator <= (const lx_cinterval &, const lx_cinterval &) 00686 throw(); 00687 00688 // -------------- friend Functions declared in lx_cinterval ------------------ 00689 00691 inline lx_complex Inf(const lx_cinterval &) throw(); 00693 inline lx_complex Sup(const lx_cinterval &) throw(); 00695 00696 inline lx_interval Re(const lx_cinterval &) throw(); 00698 inline lx_interval Im(const lx_cinterval &) throw(); 00700 00702 inline lx_cinterval & SetRe(lx_cinterval&, const lx_interval&); 00704 inline lx_cinterval & SetRe(lx_cinterval&, const l_interval&); 00706 inline lx_cinterval & SetRe(lx_cinterval&, const interval&); 00708 inline lx_cinterval & SetRe(lx_cinterval&, const lx_real&); 00710 inline lx_cinterval & SetRe(lx_cinterval&, const l_real&); 00712 inline lx_cinterval & SetRe(lx_cinterval&, const real&); 00713 00715 inline lx_cinterval & SetIm(lx_cinterval&, const lx_interval&); 00717 inline lx_cinterval & SetIm(lx_cinterval&, const l_interval&); 00719 inline lx_cinterval & SetIm(lx_cinterval&, const interval&); 00721 inline lx_cinterval & SetIm(lx_cinterval&, const lx_real&); 00723 inline lx_cinterval & SetIm(lx_cinterval&, const l_real&); 00725 inline lx_cinterval & SetIm(lx_cinterval&, const real&); 00726 00728 inline lx_real InfRe(const lx_cinterval&) throw(); 00730 inline lx_real InfIm(const lx_cinterval&) throw(); 00732 inline lx_real SupRe(const lx_cinterval&) throw(); 00734 inline lx_real SupIm(const lx_cinterval&) throw(); 00735 00737 inline lx_complex mid(const lx_cinterval &) throw(); 00739 inline lx_complex diam(const lx_cinterval &) throw(); 00741 inline real expo_Re(const lx_cinterval &a) throw(); 00743 inline real expo_Im(const lx_cinterval &a) throw(); 00745 inline l_interval li_part_Re(const lx_cinterval &) throw(); 00747 inline l_interval li_part_Im(const lx_cinterval &) throw(); 00749 inline lx_cinterval adjust(const lx_cinterval &) throw(); 00751 inline lx_cinterval conj(const lx_cinterval &) throw(); 00753 inline void times2pown(lx_cinterval& , const real&) throw(); 00755 inline lx_interval abs(const lx_cinterval &) throw(); 00757 inline lx_cinterval operator & (const lx_cinterval& a, 00758 const lx_cinterval& b) throw(); 00760 inline lx_cinterval operator | (const lx_cinterval& a, 00761 const lx_cinterval& b) throw(); 00762 00764 inline lx_cinterval & SetInf(lx_cinterval& a, const lx_complex& b) 00765 throw(ERROR_CINTERVAL_EMPTY_INTERVAL); 00767 inline lx_cinterval & SetInf(lx_cinterval& a, const l_complex& b) 00768 throw(ERROR_CINTERVAL_EMPTY_INTERVAL); 00770 inline lx_cinterval & SetInf(lx_cinterval& a, const complex& b) 00771 throw(ERROR_CINTERVAL_EMPTY_INTERVAL); 00773 inline lx_cinterval & SetInf(lx_cinterval& a, const lx_real & b) 00774 throw(ERROR_CINTERVAL_EMPTY_INTERVAL); 00776 inline lx_cinterval & SetInf(lx_cinterval& a, const l_real & b) 00777 throw(ERROR_CINTERVAL_EMPTY_INTERVAL); 00779 inline lx_cinterval & SetInf(lx_cinterval& a, const real & b) 00780 throw(ERROR_CINTERVAL_EMPTY_INTERVAL); 00781 00783 inline lx_cinterval & SetSup(lx_cinterval& a, const lx_complex& b) 00784 throw(ERROR_CINTERVAL_EMPTY_INTERVAL); 00786 inline lx_cinterval & SetSup(lx_cinterval& a, const l_complex& b) 00787 throw(ERROR_CINTERVAL_EMPTY_INTERVAL); 00789 inline lx_cinterval & SetSup(lx_cinterval& a, const complex& b) 00790 throw(ERROR_CINTERVAL_EMPTY_INTERVAL); 00792 inline lx_cinterval & SetSup(lx_cinterval& a, const lx_real & b) 00793 throw(ERROR_CINTERVAL_EMPTY_INTERVAL); 00795 inline lx_cinterval & SetSup(lx_cinterval& a, const l_real & b) 00796 throw(ERROR_CINTERVAL_EMPTY_INTERVAL); 00798 inline lx_cinterval & SetSup(lx_cinterval& a, const real & b) 00799 throw(ERROR_CINTERVAL_EMPTY_INTERVAL); 00800 00802 inline bool IsEmpty(const lx_cinterval&) throw(); 00803 00804 // *************************************************************************** 00805 // --------------------------------------------------------------------------- 00806 // -------- Functions declared only outside the class lx_cinterval ------------ 00807 // --------------------------------------------------------------------------- 00808 // *************************************************************************** 00809 00811 inline lx_cinterval operator+(const lx_cinterval &) throw(); 00812 00814 inline lx_cinterval & operator +=(lx_cinterval &a, const lx_cinterval &b) 00815 throw(); 00817 inline lx_cinterval & operator +=(lx_cinterval &a, const lx_interval &b) 00818 throw(); 00820 inline lx_cinterval & operator +=(lx_cinterval &a, const l_interval &b) 00821 throw(); 00823 inline lx_cinterval & operator +=(lx_cinterval &a, const l_cinterval &b) 00824 throw(); 00826 inline lx_cinterval & operator +=(lx_cinterval &a, const l_real &b) throw(); 00828 inline lx_cinterval & operator +=(lx_cinterval &a, const lx_real &b) throw(); 00830 inline lx_cinterval & operator +=(lx_cinterval &a, const real &b) throw(); 00832 inline lx_cinterval & operator +=(lx_cinterval &a, const interval &b) 00833 throw(); 00835 inline lx_cinterval & operator +=(lx_cinterval &a, const cinterval &b) 00836 throw(); 00838 inline lx_cinterval & operator +=(lx_cinterval &a, const complex &b) 00839 throw(); 00841 inline lx_cinterval & operator +=(lx_cinterval &a, const l_complex &b) 00842 throw(); 00844 inline lx_cinterval & operator +=(lx_cinterval &a, const lx_complex &b) 00845 throw(); 00846 00848 inline lx_cinterval & operator -=(lx_cinterval &a, const lx_cinterval &b) 00849 throw(); 00851 inline lx_cinterval & operator -=(lx_cinterval &a, const lx_interval &b) 00852 throw(); 00854 inline lx_cinterval & operator -=(lx_cinterval &a, const l_interval &b) 00855 throw(); 00857 inline lx_cinterval & operator -=(lx_cinterval &a, const l_cinterval &b) 00858 throw(); 00860 inline lx_cinterval & operator -=(lx_cinterval &a, const l_real &b) throw(); 00862 inline lx_cinterval & operator -=(lx_cinterval &a, const lx_real &b) throw(); 00864 inline lx_cinterval & operator -=(lx_cinterval &a, const real &b) throw(); 00866 inline lx_cinterval & operator -=(lx_cinterval &a, const interval &b) 00867 throw(); 00869 inline lx_cinterval & operator -=(lx_cinterval &a, const cinterval &b) 00870 throw(); 00872 inline lx_cinterval & operator -=(lx_cinterval &a, const complex &b) 00873 throw(); 00875 inline lx_cinterval & operator -=(lx_cinterval &a, const l_complex &b) 00876 throw(); 00878 inline lx_cinterval & operator -=(lx_cinterval &a, const lx_complex &b) 00879 throw(); 00881 00883 inline lx_cinterval operator * (const lx_cinterval &,const l_cinterval &) 00884 throw(); 00886 inline lx_cinterval operator * (const l_cinterval &,const lx_cinterval &) 00887 throw(); 00889 inline lx_cinterval operator * (const lx_cinterval &, const cinterval &) 00890 throw(); 00892 inline lx_cinterval operator * (const cinterval &, const lx_cinterval &) 00893 throw(); 00895 inline lx_cinterval operator * (const lx_cinterval &, const complex &) 00896 throw(); 00898 inline lx_cinterval operator * (const complex &, const lx_cinterval &) 00899 throw(); 00901 inline lx_cinterval operator * (const lx_cinterval &, const l_complex &) 00902 throw(); 00904 inline lx_cinterval operator * (const l_complex &, const lx_cinterval &) 00905 throw(); 00907 inline lx_cinterval operator * (const lx_cinterval &, const lx_complex &) 00908 throw(); 00910 inline lx_cinterval operator * (const lx_complex &, const lx_cinterval &) 00911 throw(); 00912 00914 inline lx_cinterval & operator *=(lx_cinterval &a, const lx_cinterval &b) 00915 throw(); 00917 inline lx_cinterval & operator *=(lx_cinterval &a, const lx_interval &b) 00918 throw(); 00920 inline lx_cinterval & operator *=(lx_cinterval &a, const l_interval &b) 00921 throw(); 00923 inline lx_cinterval & operator *=(lx_cinterval &a, const l_cinterval &b) 00924 throw(); 00926 inline lx_cinterval & operator *=(lx_cinterval &a, const l_real &b) throw(); 00928 inline lx_cinterval & operator *=(lx_cinterval &a, const lx_real &b) throw(); 00930 inline lx_cinterval & operator *=(lx_cinterval &a, const real &b) throw(); 00932 inline lx_cinterval & operator *=(lx_cinterval &a, const interval &b) 00933 throw(); 00935 inline lx_cinterval & operator *=(lx_cinterval &a, const cinterval &b) 00936 throw(); 00938 inline lx_cinterval & operator *=(lx_cinterval &a, const complex &b) 00939 throw(); 00941 inline lx_cinterval & operator *=(lx_cinterval &a, const l_complex &b) 00942 throw(); 00944 inline lx_cinterval & operator *=(lx_cinterval &a, const lx_complex &b) 00945 throw(); 00946 00948 inline lx_cinterval operator / (const lx_cinterval &,const l_cinterval &) 00949 throw(); 00951 inline lx_cinterval operator / (const l_cinterval &,const lx_cinterval &) 00952 throw(); 00954 inline lx_cinterval operator / (const lx_cinterval &, const cinterval &) 00955 throw(); 00957 inline lx_cinterval operator / (const cinterval &, const lx_cinterval &) 00958 throw(); 00960 inline lx_cinterval operator / (const lx_interval &, const lx_cinterval &) 00961 throw(); 00963 inline lx_cinterval operator / (const l_interval &, const lx_cinterval &) 00964 throw(); 00966 inline lx_cinterval operator / (const l_real &, const lx_cinterval &) 00967 throw(); 00969 inline lx_cinterval operator / (const lx_real &, const lx_cinterval &) 00970 throw(); 00972 inline lx_cinterval operator / (const real &, const lx_cinterval &) 00973 throw(); 00975 inline lx_cinterval operator / (const lx_cinterval &, const complex &) 00976 throw(); 00978 inline lx_cinterval operator / (const complex &, const lx_cinterval &) 00979 throw(); 00981 inline lx_cinterval operator / (const lx_cinterval &, const l_complex &) 00982 throw(); 00984 inline lx_cinterval operator / (const l_complex &, const lx_cinterval &) 00985 throw(); 00987 inline lx_cinterval operator / (const lx_cinterval &, const lx_complex &) 00988 throw(); 00990 inline lx_cinterval operator / (const lx_complex &, const lx_cinterval &) 00991 throw(); 00992 00994 inline lx_cinterval & operator /=(lx_cinterval &, const lx_cinterval &) 00995 throw(); 00997 inline lx_cinterval & operator /=(lx_cinterval &, const lx_interval &) 00998 throw(); 01000 inline lx_cinterval & operator /=(lx_cinterval &, const l_interval &) 01001 throw(); 01003 inline lx_cinterval & operator /=(lx_cinterval &, const l_cinterval &) 01004 throw(); 01006 inline lx_cinterval & operator /=(lx_cinterval &, const l_real &) throw(); 01008 inline lx_cinterval & operator /=(lx_cinterval &, const lx_real &) throw(); 01010 inline lx_cinterval & operator /=(lx_cinterval &, const real &) throw(); 01012 inline lx_cinterval & operator /=(lx_cinterval &, const interval &) 01013 throw(); 01015 inline lx_cinterval & operator /=(lx_cinterval &, const cinterval &) 01016 throw(); 01018 inline lx_cinterval & operator /=(lx_cinterval &, const complex &) 01019 throw(); 01021 inline lx_cinterval & operator /=(lx_cinterval &, const l_complex &) 01022 throw(); 01024 inline lx_cinterval & operator /=(lx_cinterval &, const lx_complex &) 01025 throw(); 01026 01027 01029 inline bool operator == (const lx_cinterval &, const l_cinterval &) 01030 throw(); 01032 inline bool operator == (const l_cinterval &, const lx_cinterval &) 01033 throw(); 01035 inline bool operator == (const lx_cinterval &, const lx_interval &) 01036 throw(); 01038 inline bool operator == (const lx_interval &, const lx_cinterval &) 01039 throw(); 01041 inline bool operator == (const lx_cinterval &, const l_interval &) 01042 throw(); 01044 inline bool operator == (const l_interval &, const lx_cinterval &) 01045 throw(); 01047 inline bool operator == (const lx_cinterval &, const l_real &) 01048 throw(); 01050 inline bool operator == (const l_real &, const lx_cinterval &) 01051 throw(); 01053 inline bool operator == (const lx_cinterval &, const lx_real &) 01054 throw(); 01056 inline bool operator == (const lx_real &, const lx_cinterval &) 01057 throw(); 01059 inline bool operator == (const lx_cinterval &, const real &) 01060 throw(); 01062 inline bool operator == (const real &, const lx_cinterval &) 01063 throw(); 01065 inline bool operator == (const lx_cinterval &, const interval &) 01066 throw(); 01068 inline bool operator == (const interval &, const lx_cinterval &) 01069 throw(); 01071 inline bool operator == (const lx_cinterval &, const cinterval &) 01072 throw(); 01074 inline bool operator == (const cinterval &, const lx_cinterval &) 01075 throw(); 01077 inline bool operator == (const lx_cinterval &, const complex &) 01078 throw(); 01080 inline bool operator == (const complex &, const lx_cinterval &) 01081 throw(); 01083 inline bool operator == (const lx_cinterval &, const l_complex &) 01084 throw(); 01086 inline bool operator == (const l_complex &, const lx_cinterval &) 01087 throw(); 01089 inline bool operator == (const lx_cinterval &, const lx_complex &) 01090 throw(); 01092 inline bool operator == (const lx_complex &, const lx_cinterval &) 01093 throw(); 01094 01095 01097 inline bool operator != (const lx_cinterval &, const l_cinterval &) 01098 throw(); 01100 inline bool operator != (const l_cinterval &, const lx_cinterval &) 01101 throw(); 01103 inline bool operator != (const lx_cinterval &, const lx_interval &) 01104 throw(); 01106 inline bool operator != (const lx_interval &, const lx_cinterval &) 01107 throw(); 01109 inline bool operator != (const lx_cinterval &, const l_interval &) 01110 throw(); 01112 inline bool operator != (const l_interval &, const lx_cinterval &) 01113 throw(); 01115 inline bool operator != (const lx_cinterval &, const l_real &) 01116 throw(); 01118 inline bool operator != (const l_real &, const lx_cinterval &) 01119 throw(); 01121 inline bool operator != (const lx_cinterval &, const lx_real &) 01122 throw(); 01124 inline bool operator != (const lx_real &, const lx_cinterval &) 01125 throw(); 01127 inline bool operator != (const lx_cinterval &, const real &) 01128 throw(); 01130 inline bool operator != (const real &, const lx_cinterval &) 01131 throw(); 01133 inline bool operator != (const lx_cinterval &, const interval &) 01134 throw(); 01136 inline bool operator != (const interval &, const lx_cinterval &) 01137 throw(); 01139 inline bool operator != (const lx_cinterval &, const cinterval &) 01140 throw(); 01142 inline bool operator != (const cinterval &, const lx_cinterval &) 01143 throw(); 01145 inline bool operator != (const lx_cinterval &, const complex &) 01146 throw(); 01148 inline bool operator != (const complex &, const lx_cinterval &) 01149 throw(); 01151 inline bool operator != (const lx_cinterval &, const l_complex &) 01152 throw(); 01154 inline bool operator != (const l_complex &, const lx_cinterval &) 01155 throw(); 01157 inline bool operator != (const lx_cinterval &, const lx_complex &) 01158 throw(); 01160 inline bool operator != (const lx_complex &, const lx_cinterval &) 01161 throw(); 01162 01163 01164 // ------------------------- Set Operators ------------------------------ 01165 01167 inline bool operator > (const lx_cinterval &, const lx_cinterval &) throw(); 01169 inline bool operator >= (const lx_cinterval &, const lx_cinterval &) throw(); 01170 01172 inline bool operator <(const l_cinterval &, const lx_cinterval &) throw(); 01174 inline bool operator >(const l_cinterval &, const lx_cinterval &) throw(); 01176 inline bool operator <=(const l_cinterval &, const lx_cinterval &) throw(); 01178 inline bool operator >=(const l_cinterval &, const lx_cinterval &) throw(); 01180 inline bool operator <(const lx_cinterval &, const l_cinterval &) throw(); 01182 inline bool operator >(const lx_cinterval &, const l_cinterval &) throw(); 01184 inline bool operator <=(const lx_cinterval &, const l_cinterval &) throw(); 01186 inline bool operator >=(const lx_cinterval &, const l_cinterval &) throw(); 01187 01189 inline bool operator <(const cinterval &, const lx_cinterval &) throw(); 01191 inline bool operator >(const cinterval &, const lx_cinterval &) throw(); 01193 inline bool operator <=(const cinterval &, const lx_cinterval &) throw(); 01195 inline bool operator >=(const cinterval &, const lx_cinterval &) throw(); 01197 inline bool operator <(const lx_cinterval &, const cinterval &) throw(); 01199 inline bool operator >(const lx_cinterval &, const cinterval &) throw(); 01201 inline bool operator <=(const lx_cinterval &, const cinterval &) throw(); 01203 inline bool operator >=(const lx_cinterval &, const cinterval &) throw(); 01204 01206 inline bool operator <(const lx_interval &, const lx_cinterval &) throw(); 01208 inline bool operator >(const lx_interval &, const lx_cinterval &) throw(); 01210 inline bool operator <=(const lx_interval &, const lx_cinterval &) throw(); 01212 inline bool operator >=(const lx_interval &, const lx_cinterval &) throw(); 01214 inline bool operator <(const lx_cinterval &, const lx_interval &) throw(); 01216 inline bool operator >(const lx_cinterval &, const lx_interval &) throw(); 01218 inline bool operator <=(const lx_cinterval &, const lx_interval &) throw(); 01220 inline bool operator >=(const lx_cinterval &, const lx_interval &) throw(); 01221 01223 inline bool operator <(const l_interval &, const lx_cinterval &) throw(); 01225 inline bool operator >(const l_interval &, const lx_cinterval &) throw(); 01227 inline bool operator <=(const l_interval &, const lx_cinterval &) throw(); 01229 inline bool operator >=(const l_interval &, const lx_cinterval &) throw(); 01231 inline bool operator <(const lx_cinterval &, const l_interval &) throw(); 01233 inline bool operator >(const lx_cinterval &, const l_interval &) throw(); 01235 inline bool operator <=(const lx_cinterval &, const l_interval &) throw(); 01237 inline bool operator >=(const lx_cinterval &, const l_interval &) throw(); 01238 01240 inline bool operator <(const interval &, const lx_cinterval &) throw(); 01242 inline bool operator >(const interval &, const lx_cinterval &) throw(); 01244 inline bool operator <=(const interval &, const lx_cinterval &) throw(); 01246 inline bool operator >=(const interval &, const lx_cinterval &) throw(); 01248 inline bool operator <(const lx_cinterval &, const interval &) throw(); 01250 inline bool operator >(const lx_cinterval &, const interval &) throw(); 01252 inline bool operator <=(const lx_cinterval &, const interval &) throw(); 01254 inline bool operator >=(const lx_cinterval &, const interval &) throw(); 01255 01257 inline bool operator <(const lx_real &, const lx_cinterval &) throw(); 01259 inline bool operator <=(const lx_real &, const lx_cinterval &) throw(); 01261 inline bool operator >(const lx_cinterval &, const lx_real &) throw(); 01263 inline bool operator >=(const lx_cinterval &, const lx_real &) throw(); 01264 01266 inline bool operator <(const l_real &, const lx_cinterval &) throw(); 01268 inline bool operator <=(const l_real &, const lx_cinterval &) throw(); 01270 inline bool operator >(const lx_cinterval &, const l_real &) throw(); 01272 inline bool operator >=(const lx_cinterval &, const l_real &) throw(); 01273 01275 inline bool operator <(const real &, const lx_cinterval &) throw(); 01277 inline bool operator <=(const real &, const lx_cinterval &) throw(); 01279 inline bool operator >(const lx_cinterval &, const real &) throw(); 01281 inline bool operator >=(const lx_cinterval &, const real &) throw(); 01282 01284 inline bool operator <(const complex &, const lx_cinterval &) throw(); 01286 inline bool operator <=(const complex &, const lx_cinterval &) throw(); 01288 inline bool operator >(const lx_cinterval &, const complex &) throw(); 01290 inline bool operator >=(const lx_cinterval &, const complex &) throw(); 01291 01293 inline bool operator <(const l_complex &, const lx_cinterval &) throw(); 01295 inline bool operator <=(const l_complex &, const lx_cinterval &) throw(); 01297 inline bool operator >(const lx_cinterval &, const l_complex &) throw(); 01299 inline bool operator >=(const lx_cinterval &, const l_complex &) throw(); 01300 01302 inline bool operator <(const lx_complex &, const lx_cinterval &) throw(); 01304 inline bool operator <=(const lx_complex &, const lx_cinterval &) throw(); 01306 inline bool operator >(const lx_cinterval &, const lx_complex &) throw(); 01308 inline bool operator >=(const lx_cinterval &, const lx_complex &) throw(); 01309 01310 // ------------------------- Convex Hull --------------------------------- 01311 01313 inline lx_cinterval & operator |= (lx_cinterval&, const lx_cinterval&) 01314 throw(); 01316 inline lx_cinterval operator | (const lx_cinterval&, const lx_real&) 01317 throw(); 01319 inline lx_cinterval operator | (const lx_real&, const lx_cinterval&) 01320 throw(); 01322 inline lx_cinterval & operator |= (lx_cinterval&, const lx_real&) 01323 throw(); 01325 inline lx_cinterval operator | (const lx_cinterval&, const l_real&) 01326 throw(); 01328 inline lx_cinterval operator | (const l_real&, const lx_cinterval&) 01329 throw(); 01331 inline lx_cinterval & operator |= (lx_cinterval&, const l_real&) 01332 throw(); 01334 inline lx_cinterval operator | (const lx_cinterval&, const real&) 01335 throw(); 01337 inline lx_cinterval operator | (const real&, const lx_cinterval&) 01338 throw(); 01340 inline lx_cinterval & operator |= (lx_cinterval&, const real&) 01341 throw(); 01343 inline lx_cinterval operator | (const lx_cinterval&, const l_cinterval&) 01344 throw(); 01346 inline lx_cinterval operator | (const l_cinterval&, const lx_cinterval&) 01347 throw(); 01349 inline lx_cinterval & operator |= (lx_cinterval&, const l_cinterval&) 01350 throw(); 01352 inline lx_cinterval operator | (const lx_cinterval&, const cinterval&) 01353 throw(); 01355 inline lx_cinterval operator | (const cinterval& a, const lx_cinterval& b) 01356 throw(); 01358 inline lx_cinterval & operator |= (lx_cinterval&, const cinterval&) 01359 throw(); 01361 inline lx_cinterval operator | (const lx_cinterval&, const lx_interval&) 01362 throw(); 01364 inline lx_cinterval operator | (const lx_interval&, const lx_cinterval&) 01365 throw(); 01367 inline lx_cinterval & operator |= (lx_cinterval&, const lx_interval&) 01368 throw(); 01370 inline lx_cinterval operator | (const lx_cinterval&, const l_interval&) 01371 throw(); 01373 inline lx_cinterval operator | (const l_interval&, const lx_cinterval&) 01374 throw(); 01376 inline lx_cinterval & operator |= (lx_cinterval&, const l_interval&) 01377 throw(); 01379 inline lx_cinterval operator | (const lx_cinterval&, const interval&) 01380 throw(); 01382 inline lx_cinterval operator | (const interval&, const lx_cinterval&) 01383 throw(); 01385 inline lx_cinterval & operator |= (lx_cinterval&, const interval&) 01386 throw(); 01388 inline lx_cinterval operator | (const lx_cinterval&, const lx_complex&) 01389 throw(); 01391 inline lx_cinterval operator | (const lx_complex&, const lx_cinterval&) 01392 throw(); 01394 inline lx_cinterval & operator |= (lx_cinterval&, const lx_complex&) 01395 throw(); 01397 inline lx_cinterval operator | (const lx_cinterval&, const l_complex&) 01398 throw(); 01400 inline lx_cinterval operator | (const l_complex&, const lx_cinterval&) 01401 throw(); 01403 inline lx_cinterval & operator |= (lx_cinterval&, const l_complex&) 01404 throw(); 01406 inline lx_cinterval operator | (const lx_cinterval&, const complex&) 01407 throw(); 01409 inline lx_cinterval operator | (const complex&, const lx_cinterval&) 01410 throw(); 01412 inline lx_cinterval & operator |= (lx_cinterval&, const complex&) 01413 throw(); 01414 01416 inline lx_cinterval operator | (const lx_interval&, const complex&) 01417 throw(); 01419 inline lx_cinterval operator | ( const complex&, const lx_interval&) 01420 throw(); 01422 inline lx_cinterval operator | (const lx_interval&, const lx_complex&) 01423 throw(); 01425 inline lx_cinterval operator | ( const lx_complex&, const lx_interval&) 01426 throw(); 01428 inline lx_cinterval operator | (const lx_interval&, const l_complex&) 01429 throw(); 01431 inline lx_cinterval operator | ( const l_complex&, const lx_interval&) 01432 throw(); 01434 inline lx_cinterval operator | (const lx_real&, const cinterval&) 01435 throw(); 01437 inline lx_cinterval operator | (const cinterval&, const lx_real&) 01438 throw(); 01440 inline lx_cinterval operator | (const lx_real&, const l_cinterval&) 01441 throw(); 01443 inline lx_cinterval operator | (const l_cinterval&, const lx_real&) 01444 throw(); 01446 inline lx_cinterval operator | (const lx_interval&, const cinterval&) 01447 throw(); 01449 inline lx_cinterval operator | (const cinterval&, const lx_interval&) 01450 throw(); 01452 inline lx_cinterval operator | (const lx_interval&, const l_cinterval&) 01453 throw(); 01455 inline lx_cinterval operator | (const l_cinterval&, const lx_interval&) 01456 throw(); 01457 01459 inline lx_cinterval operator | (const lx_real&, const complex&) 01460 throw(); 01462 inline lx_cinterval operator | (const complex&, const lx_real&) 01463 throw(); 01465 inline lx_cinterval operator | (const lx_real&, const l_complex&) 01466 throw(); 01468 inline lx_cinterval operator | (const l_complex&, const lx_real&) 01469 throw(); 01471 inline lx_cinterval operator | (const lx_real&, const lx_complex&) 01472 throw(); 01474 inline lx_cinterval operator | (const lx_complex&, const lx_real&) 01475 throw(); 01476 01477 // ------------------------- Intersection ---------------------------------- 01478 01480 inline lx_cinterval & operator &= (lx_cinterval&, const lx_cinterval&) 01481 throw(ERROR_CINTERVAL_EMPTY_INTERVAL); 01483 inline lx_cinterval operator & (const lx_cinterval&, const lx_real&) 01484 throw(); 01486 inline lx_cinterval operator & (const lx_real&, const lx_cinterval&) 01487 throw(); 01489 inline lx_cinterval & operator &= (lx_cinterval&, const lx_real&) 01490 throw(); 01492 inline lx_cinterval operator & (const lx_cinterval&, const l_real&) 01493 throw(); 01495 inline lx_cinterval operator & (const l_real&, const lx_cinterval&) 01496 throw(); 01498 inline lx_cinterval & operator &= (lx_cinterval&, const l_real&) 01499 throw(); 01501 inline lx_cinterval operator & (const lx_cinterval&, const real&) 01502 throw(); 01504 inline lx_cinterval operator & (const real&, const lx_cinterval&) 01505 throw(); 01507 inline lx_cinterval & operator &= (lx_cinterval&, const real&) 01508 throw(); 01510 inline lx_cinterval operator & (const lx_cinterval&, const l_cinterval&) 01511 throw(); 01513 inline lx_cinterval operator & (const l_cinterval&, const lx_cinterval&) 01514 throw(); 01516 inline lx_cinterval & operator &= (lx_cinterval&, const l_cinterval&) 01517 throw(); 01519 inline lx_cinterval operator & (const lx_cinterval&, const cinterval&) 01520 throw(); 01522 inline lx_cinterval operator & (const cinterval& a, const lx_cinterval& b) 01523 throw(); 01525 inline lx_cinterval & operator &= (lx_cinterval&, const cinterval&) 01526 throw(); 01528 inline lx_cinterval operator & (const lx_cinterval&, const lx_interval&) 01529 throw(); 01531 inline lx_cinterval operator & (const lx_interval&, const lx_cinterval&) 01532 throw(); 01534 inline lx_cinterval & operator &= (lx_cinterval&, const lx_interval&) 01535 throw(); 01537 inline lx_cinterval operator & (const lx_cinterval&, const l_interval&) 01538 throw(); 01540 inline lx_cinterval operator & (const l_interval&, const lx_cinterval&) 01541 throw(); 01543 inline lx_cinterval & operator &= (lx_cinterval&, const l_interval&) 01544 throw(); 01546 inline lx_cinterval operator & (const lx_cinterval&, const interval&) 01547 throw(); 01549 inline lx_cinterval operator & (const interval&, const lx_cinterval&) 01550 throw(); 01552 inline lx_cinterval & operator &= (lx_cinterval&, const interval&) 01553 throw(); 01555 inline lx_cinterval operator & (const lx_cinterval&, const lx_complex&) 01556 throw(); 01558 inline lx_cinterval operator & (const lx_complex&, const lx_cinterval&) 01559 throw(); 01561 inline lx_cinterval & operator &= (lx_cinterval&, const lx_complex&) 01562 throw(); 01564 inline lx_cinterval operator & (const lx_cinterval&, const l_complex&) 01565 throw(); 01567 inline lx_cinterval operator & (const l_complex&, const lx_cinterval&) 01568 throw(); 01570 inline lx_cinterval & operator &= (lx_cinterval&, const l_complex&) 01571 throw(); 01573 inline lx_cinterval operator & (const lx_cinterval&, const complex&) 01574 throw(); 01576 inline lx_cinterval operator & (const complex&, const lx_cinterval&) 01577 throw(); 01579 inline lx_cinterval & operator &= (lx_cinterval&, const complex&) 01580 throw(); 01581 01583 inline lx_cinterval operator & (const lx_interval&, const complex&) 01584 throw(); 01586 inline lx_cinterval operator & ( const complex&, const lx_interval&) 01587 throw(); 01589 inline lx_cinterval operator & (const lx_interval&, const l_complex&) 01590 throw(); 01592 inline lx_cinterval operator & ( const l_complex&, const lx_interval&) 01593 throw(); 01595 inline lx_cinterval operator & (const lx_interval&, const lx_complex&) 01596 throw(); 01598 inline lx_cinterval operator & ( const lx_complex&, const lx_interval&) 01599 throw(); 01601 inline lx_cinterval operator & (const lx_real&, const cinterval&) 01602 throw(); 01604 inline lx_cinterval operator & (const cinterval&, const lx_real&) 01605 throw(); 01607 inline lx_cinterval operator & (const lx_real&, const l_cinterval&) 01608 throw(); 01610 inline lx_cinterval operator & (const l_cinterval&, const lx_real&) 01611 throw(); 01613 inline lx_cinterval operator & (const lx_interval&, const cinterval&) 01614 throw(); 01616 inline lx_cinterval operator & (const cinterval&, const lx_interval&) 01617 throw(); 01619 inline lx_cinterval operator & (const lx_interval&, const l_cinterval&) 01620 throw(); 01622 inline lx_cinterval operator & (const l_cinterval&, const lx_interval&) 01623 throw(); 01624 01625 01627 inline lx_cinterval operator & (const l_interval&, const lx_complex&) 01628 throw(); 01630 inline lx_cinterval operator & ( const lx_complex&, const l_interval&) 01631 throw(); 01633 inline lx_cinterval operator & (const l_cinterval&, const lx_complex&) 01634 throw(); 01636 inline lx_cinterval operator & ( const lx_complex&, const l_cinterval&) 01637 throw(); 01638 01640 inline lx_cinterval operator & (const interval&, const lx_complex&) 01641 throw(); 01643 inline lx_cinterval operator & ( const lx_complex&, const interval&) 01644 throw(); 01646 inline lx_cinterval operator & (const cinterval&, const lx_complex&) 01647 throw(); 01649 inline lx_cinterval operator & ( const lx_complex&, const cinterval&) 01650 throw(); 01651 01652 // ------------------------ Input -------------------------------------- 01653 01655 std::string & operator >> (std::string&, lx_cinterval&) throw(); 01657 void operator >> (const std::string&, lx_cinterval&) throw(); 01659 void operator >> (const char *s, lx_cinterval&) throw(); 01661 std::istream & operator >> (std::istream&, lx_cinterval&) throw(); 01662 01663 01664 // --------------------------------------------------------------------------- 01665 // ----- Elementary functions related to lx_cinterval 01666 // --------------------------------------------------------------------------- 01667 01669 lx_cinterval sqr(const lx_cinterval&) throw(); 01671 lx_cinterval sqrt(const lx_cinterval&) throw(); 01673 lx_cinterval sqrt(const lx_cinterval& ,int) throw(); 01675 lx_cinterval exp(const lx_cinterval&) throw(); 01677 lx_cinterval exp2(const lx_cinterval&) throw(); 01679 lx_cinterval exp10(const lx_cinterval&) throw(); 01681 lx_cinterval sin(const lx_cinterval&) throw(); 01683 lx_cinterval cos(const lx_cinterval&) throw(); 01684 01686 lx_cinterval cosh(const lx_cinterval&) throw(); 01688 lx_cinterval sinh(const lx_cinterval&) throw(); 01689 01691 lx_interval Arg(const lx_cinterval&) throw(); 01693 lx_interval arg(const lx_cinterval&) throw(); 01694 01696 lx_cinterval Ln(const lx_cinterval& ) throw(); 01698 lx_cinterval ln(const lx_cinterval& ) throw(); 01699 01701 lx_cinterval log2(const lx_cinterval& ) throw(); 01703 lx_cinterval log10(const lx_cinterval& ) throw(); 01704 01706 lx_cinterval power_fast( const lx_cinterval&, const real& ) throw(); 01708 lx_cinterval power( const lx_cinterval&, const real& ) throw(); 01710 lx_cinterval pow( const lx_cinterval& , const lx_interval& ) throw(); 01712 lx_cinterval pow( const lx_cinterval& , const lx_cinterval& ) throw(); 01713 01715 lx_cinterval tan (const lx_cinterval& ) throw(); 01717 lx_cinterval cot (const lx_cinterval& ) throw(); 01719 lx_cinterval tanh(const lx_cinterval& ) throw(); 01721 lx_cinterval coth(const lx_cinterval& ) throw(); 01722 01724 lx_cinterval asin(const lx_cinterval& ) throw(); 01726 lx_cinterval acos(const lx_cinterval& ) throw(); 01728 lx_cinterval atan(const lx_cinterval& ) throw(); 01730 lx_cinterval acot(const lx_cinterval& ) throw(); 01731 01733 lx_cinterval asinh( const lx_cinterval& ) throw(); 01735 lx_cinterval acosh( const lx_cinterval& ) throw(); 01737 lx_cinterval atanh( const lx_cinterval& ) throw(); 01739 lx_cinterval acoth( const lx_cinterval& ) throw(); 01740 01742 lx_cinterval sqrt1px2(const lx_cinterval& z) throw(); 01744 lx_cinterval sqrt1mx2(const lx_cinterval& z) throw(); 01746 lx_cinterval sqrtx2m1(const lx_cinterval& z) throw(); 01748 lx_cinterval sqrtp1m1(const lx_cinterval& z) throw(); 01750 lx_cinterval expm1(const lx_cinterval& z) throw(); 01752 lx_cinterval lnp1(const lx_cinterval& z) throw(); 01754 std::list<lx_cinterval> sqrt_all( const lx_cinterval& z) throw(); 01756 std::list<lx_cinterval> sqrt_all( const lx_cinterval& z, int n ) throw(); 01758 std::list<lx_cinterval> pow_all( const lx_cinterval& z, const lx_interval& p ) throw(); 01759 } // end namespace cxsc 01760 01761 #include "lx_cinterval.inl" 01762 01763 #endif // _CXSC_LX_CINTERVAL_HPP_INCLUDED