C-XSC - A C++ Class Library for Extended Scientific Computing  2.5.4
lx_cinterval.hpp
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