C-XSC - A C++ Class Library for Extended Scientific Computing  2.5.4
imath.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: imath.hpp,v 1.38 2014/01/30 17:23:45 cxsc Exp $ */
00025 
00026 #ifndef _CXSC_IMATH_HPP_INCLUDED
00027 #define _CXSC_IMATH_HPP_INCLUDED
00028 
00029 #include "except.hpp"
00030 #include "interval.hpp"
00031 
00032 namespace cxsc {
00033 
00035        interval sqr     (const interval&) throw(); // sqr(x)
00037 inline interval sqrt    (const interval&);         // sqrt(x)
00039        interval sqrt    (const interval &, int) throw(STD_FKT_OUT_OF_DEF);  // sqrt(x, n)
00041        interval sqrt1px2(const interval&) throw(); // sqrt(1+x^2)
00043        interval sqrtp1m1(const interval&) throw(); // sqrt(x+1)-1
00045        interval sqrtx2m1(const interval&);         // sqrt(x^2-1)
00047        interval sqrt1mx2(const interval&);         // sqrt(1-x^2)
00048 
00050 inline interval sin     (const interval&) throw(); // sin(x)
00052        interval sinpix_pi(const interval& x);      // sin(pi*x)/pi
00054 inline interval cos     (const interval&) throw(); // cos(x)
00056 inline interval tan     (const interval&) throw(); // tan(x)
00058 inline interval cot     (const interval&) throw(); // cot(x)
00059 
00061 inline interval asin    (const interval&);         // ASin(x)
00063 inline interval acos    (const interval&);         // ACos(x)
00065 inline interval atan    (const interval&);         // ATan(x) 
00067 inline interval acot    (const interval&);         // ACot(x)
00068 
00070 inline interval exp     (const interval&) throw(); // exp(x)
00072        interval expmx2  (const interval&);         // exp(-x^2)
00074        interval expm1   (const interval&);         // exp(x)-1
00076        interval expx2   (const interval& x);       // e^{+x^2}
00078        interval expx2m1 (const interval& x);       // e^{+x^2}-1
00079 
00081 inline interval ln      (const interval&);         // ln(x)
00083        interval lnp1    (const interval&) throw(); // ln(1+x)
00085 inline interval log2    (const interval&);         // log2(x)
00087 inline interval log10   (const interval&);         // log10(x)
00088 
00090 inline interval sinh    (const interval&) throw(); // Sinh(x)
00092 inline interval cosh    (const interval&) throw(); // Cosh(x)
00094 inline interval tanh    (const interval&) throw(); // Tanh(x) 
00096 inline interval coth    (const interval&) throw(); // Coth(x)
00097 
00099 inline interval asinh   (const interval&);         // ASinh(x)
00101 inline interval acosh   (const interval&);         // ACosh(x)
00103        interval acoshp1 (const interval&);         // acosh(1+x)
00105 inline interval atanh   (const interval&);         // ATanh(x)
00107 inline interval acoth   (const interval&);         // ACoth(x)
00108 
00110 interval erf     (const interval&);         // error function
00112 interval erfc    (const interval&);         // complementary error function
00114 interval gamma (const interval& x);     // Gamma(x)
00116 interval gammar(const interval& x);     // 1/Gamma(x)
00117 
00119 interval pow     (const interval&, const interval&) throw();  // Pow(x,y)
00121 interval power   (const interval&, int);    // Power(x,n)
00123 interval Power   (const interval&, int);    // Power(x,n)
00124 
00126 interval sqrtx2y2(const interval&, const interval&) throw(); // sqrt(x^2+y^2)
00128 interval ln_sqrtx2y2(const interval&, const interval&) throw();
00129                                             // ln( sqrt(x^2+y^2) ) == 0.5*ln(x^2+y^2);
00130 
00132 interval Pi         ( );
00133 } // namespace cxsc 
00134 
00135 #include "imath.inl"
00136 #endif // _CXSC_IMATH_HPP_INCLUDED