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: 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 */