casacore
math.h
Go to the documentation of this file.
1 //# math.h: Interim solution for standard/nonstandard system cmath
2 //# Copyright (C) 2001,2002
3 //# Associated Universities, Inc. Washington DC, USA.
4 //#
5 //# This library is free software; you can redistribute it and/or modify it
6 //# under the terms of the GNU Library General Public License as published by
7 //# the Free Software Foundation; either version 2 of the License, or (at your
8 //# option) any later version.
9 //#
10 //# This library is distributed in the hope that it will be useful, but WITHOUT
11 //# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
12 //# FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public
13 //# License for more details.
14 //#
15 //# You should have received a copy of the GNU Library General Public License
16 //# along with this library; if not, write to the Free Software Foundation,
17 //# Inc., 675 Massachusetts Ave, Cambridge, MA 02139, USA.
18 //#
19 //# Correspondence concerning AIPS++ should be addressed as follows:
20 //# Internet email: aips2-request@nrao.edu.
21 //# Postal address: AIPS++ Project Office
22 //# National Radio Astronomy Observatory
23 //# 520 Edgemont Road
24 //# Charlottesville, VA 22903-2475 USA
25 //#
26 //# $Id$
27 
28 #ifndef CASA_STD_MATH_H
29 #define CASA_STD_MATH_H
30 
31 //# Define the C standard C++ include file.
32 //# This is an interim solution to cater for the SGI non-existence of
33 //# them (e.g. <cstring>)
34 
35 //# Make sure any special macros are set
36 #include <casacore/casa/aips.h>
37 
38 #if defined(__APPLE__) || defined(AIPS_DARWIN)
39 #include <math.h>
40 #include <ostream>
41 #include <cmath>
42 namespace casacore { //# NAMESPACE CASACORE - BEGIN
43  using std::isnan;
44  using std::isinf;
45  using std::isfinite;
46 } //# NAMESPACE CASACORE - END
47 #endif
48 
49 #if defined(AIPS_SGI) || defined(AIPS_SUN_NATIVE)
50 # include <math.h>
51 #else
52 # include <cmath>
53 # if !defined(AIPS_INTELCC)
54 namespace casacore { //# NAMESPACE CASACORE - BEGIN
55  using std::abs;
56 } //# NAMESPACE CASACORE - END
57 # endif
58 # if !(defined(AIPS_KAICC) || defined(AIPS_GCC) || defined(AIPS_INTELCC) || defined(AIPS_DARWIN) || defined(AIPS_CRAY_PGI))
59 # define NEEDS_POWFLOATFLOAT
60 # endif
61 #endif
62 
63 namespace casacore { //# NAMESPACE CASACORE - BEGIN
64 
65 using std::abs;
66 using std::fabs;
67 using std::cos;
68 using std::cosh;
69 using std::sin;
70 using std::sinh;
71 using std::tan;
72 using std::tanh;
73 using std::asin;
74 using std::acos;
75 using std::atan;
76 using std::atan2;
77 using std::exp;
78 using std::log;
79 using std::log10;
80 using std::sqrt;
81 using std::pow;
82 using std::floor;
83 using std::ceil;
84 using std::fmod;
85 using ::erf;
86 using ::erfc;
87 //# The following is not yet part of some of the cmath include file. Should be
88 //# removed at some stage
89 # if defined(NEEDS_POWFLOATFLOAT)
90  inline Float pow(Float f1, Float f2)
91  { return Float(pow(Double(f1), Double(f2))); };
92 # endif
93 
94 //# No float abs defined on the Cray.
95 #if defined(AIPS_CRAY_PGI)
96  inline float abs(float v)
97  { return fabs(v); }
98 #endif
99 
100 
101 } //# NAMESPACE CASACORE - END
102 
103 #endif
LatticeExprNode log10(const LatticeExprNode &expr)
LatticeExprNode log(const LatticeExprNode &expr)
LatticeExprNode exp(const LatticeExprNode &expr)
LatticeExprNode floor(const LatticeExprNode &expr)
LatticeExprNode cos(const LatticeExprNode &expr)
Float pow(Float f1, Float f2)
Definition: math.h:90
LatticeExprNode tanh(const LatticeExprNode &expr)
double Double
Definition: aipstype.h:55
LatticeExprNode abs(const LatticeExprNode &expr)
Numerical 1-argument functions which result in a real number regardless of input expression type...
LatticeExprNode sqrt(const LatticeExprNode &expr)
LatticeExprNode tan(const LatticeExprNode &expr)
LatticeExprNode atan(const LatticeExprNode &expr)
float Float
Definition: aipstype.h:54
LatticeExprNode atan2(const LatticeExprNode &left, const LatticeExprNode &right)
Numerical 2-argument functions.
LatticeExprNode fmod(const LatticeExprNode &left, const LatticeExprNode &right)
LatticeExprNode asin(const LatticeExprNode &expr)
LatticeExprNode sinh(const LatticeExprNode &expr)
LatticeExprNode acos(const LatticeExprNode &expr)
LatticeExprNode ceil(const LatticeExprNode &expr)
this file contains all the compiler specific defines
Definition: mainpage.dox:28
LatticeExprNode cosh(const LatticeExprNode &expr)
LatticeExprNode sin(const LatticeExprNode &expr)
Numerical 1-argument functions.