C-XSC - A C++ Class Library for Extended Scientific Computing  2.5.4
cimath.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: cimath.hpp,v 1.24 2014/01/30 17:23:43 cxsc Exp $ */
00025 
00026 /*
00027 **
00028 **  COmplex interval STandard functions LibrarY, CoStLy Version 1.0.3
00029 **
00030 **  Copyright (C) Markus Neher,        markus.neher@math.uni-karlsruhe.de
00031 **                Ingo Eble,           ingoeble@web.de
00032 **                Frithjof Blomquist,  Blomquist@math.uni-wuppertal.de
00033 **
00034 **  The complex interval elementary functions in C-XSC are based on the 
00035 **  CoStLy library written by Markus Neher. Additional improvements have
00036 **  been done by Frithjof Blomquist.
00037 **  
00038 **  References:
00039 **  - Neher, M: "Complex Standard Functions and their Implementation in
00040 **    the CoStLy Library", Preprint Nr. 04/18, Fakultaet fuer Mathematik,
00041 **    Universitaet Karlsruhe, 2004.
00042 **  - Blomquist, F.; Hofschuster, W.; Kraemer, W.: "Complex Interval Functions 
00043 **    in C-XSC", Preprint BUW-WRSWT 2005/2, Universitaet Wuppertal, 2005.
00044 **  - Neher, M: "Complex Standard Functions and their Implementation in
00045 **    the CoStLy Library", to appear in ACM Transactions on Mathematical 
00046 **    Software (TOMS).
00047 **
00048 */
00049 
00050 
00051 #ifndef _CXSC_CIMATH_HPP_INCLUDED
00052 #define _CXSC_CIMATH_HPP_INCLUDED
00053 
00054 #include "cinterval.hpp"
00055 #include <list>
00056 #include <string>
00057 #include <cmath>
00058 
00059 namespace cxsc{
00060 
00062 cinterval exp(const cinterval&) throw();
00064 cinterval expm1(const cinterval&) throw();
00066 cinterval exp2(const cinterval&) throw();
00068 cinterval exp10(const cinterval&) throw();
00070 cinterval cos(const cinterval&) throw();
00072 cinterval sin(const cinterval&) throw();
00074 cinterval cosh(const cinterval&) throw();
00076 cinterval sinh(const cinterval&) throw();
00077 
00079 cinterval tan(const cinterval&) throw();
00081 cinterval cot(const cinterval&) throw();
00083 cinterval tanh(const cinterval&) throw();
00085 cinterval coth(const cinterval&) throw();
00086 
00088 interval arg(const cinterval&) throw();
00089 interval arg_inclmon(const cinterval&) throw();
00091 interval Arg(const cinterval&) throw();
00092 
00094 cinterval ln(const cinterval&) throw();
00096 cinterval Ln(const cinterval&) throw();
00098 cinterval lnp1(const cinterval&) throw();
00099 
00101 cinterval log2(const cinterval&) throw();
00103 cinterval log10(const cinterval&) throw();
00104 
00106 cinterval sqr(const cinterval&) throw();
00107 
00109 cinterval sqrt(const cinterval&) throw();
00111 cinterval sqrtp1m1(const cinterval&) throw();
00113 cinterval sqrt1px2(const cinterval&) throw();
00115 cinterval sqrtx2m1(const cinterval&) throw();
00117 cinterval sqrt1mx2(const cinterval&) throw();
00118 
00120 std::list<cinterval>sqrt_all(const cinterval&);
00122 cinterval sqrt(const cinterval&, int) throw();
00124 std::list<cinterval>sqrt_all(const cinterval&, int);
00125 
00127 cinterval power_fast(const cinterval&,int) throw();
00129 cinterval power(const cinterval&,int) throw();
00131 cinterval pow(const cinterval&, const interval&) throw();
00133 cinterval pow(const cinterval&, const cinterval&) throw();
00135 std::list<cinterval>pow_all(const cinterval&, const interval&) throw();
00137 void times2pown(cinterval& x, int n) throw();
00138 
00140 cinterval asin(const cinterval&) throw();
00142 cinterval acos(const cinterval&) throw();
00144 cinterval asinh(const cinterval&) throw();
00146 cinterval acosh(const cinterval&) throw();
00148 cinterval atan(const cinterval&) throw();
00150 cinterval acot(const cinterval&) throw();
00152 cinterval atanh(const cinterval&) throw();
00154 cinterval acoth(const cinterval&) throw();
00155 
00156 } // namespace cxsc
00157 
00158 #endif // _CXSC_CIMATH_HPP_INCLUDED
00159 
00160 /*
00161 
00162   End of File: cimath.hpp
00163 
00164 */