casa
$Rev:20696$
|
AIPS++ interface to math.h and other scalar math functions. More...
#include <Math.h>
Public Member Functions | |
Float | pow (Float f1, Double f2) |
Returns f1**f2. | |
Float | pow (Double f1, Float f2) |
Int | pow (Int f1, Int f2) |
Int | ifloor (Float point) |
Return the integer "less than" point (i.e. | |
Int | ifloor (Double point) |
Int | max (Int a, Int b) |
Functions to get the max or min of two numbers. | |
Int | min (Int a, Int b) |
uInt | max (uInt a, uInt b) |
uInt | min (uInt a, uInt b) |
Double | max (Double a, Double b) |
Double | min (Double a, Double b) |
Double | max (Double a, Float b) |
Double | min (Double a, Float b) |
Double | max (Float a, Double b) |
Double | min (Float a, Double b) |
Float | max (Float a, Float b) |
Float | min (Float a, Float b) |
uInt | abs (uInt Val) |
Get the absolute value of uInt. | |
Int | square (Int val) |
Return the square of a value. | |
Float | square (Float val) |
Double | square (Double val) |
Int | cube (Int val) |
Return the cube of a value. | |
Float | cube (Float val) |
Double | cube (Double val) |
Int | sign (Int val) |
Return the sign of a value. | |
Float | sign (Float val) |
Double | sign (Double val) |
Bool | near (uInt val1, uInt val2, Double tol=1.0e-5) |
Functions to return whether a value is "relatively" near another. | |
Bool | near (Int val1, Int val2, Double tol=1.0e-5) |
Bool | near (Float val1, Float val2, Double tol=1.0e-5) |
Bool | near (Float val1, Double val2, Double tol=1.0e-5) |
Bool | near (Double val1, Float val2, Double tol=1.0e-5) |
Bool | near (Double val1, Double val2, Double tol=1.0e-13) |
Bool | allNear (uInt val1, uInt val2, Double tol=1.0e-5) |
The "allNear" versions are aliases for the normal "near" versions. | |
Bool | allNear (Int val1, Int val2, Double tol=1.0e-5) |
Bool | allNear (Float val1, Double val2, Double tol=1.0e-5) |
Bool | allNear (Double val1, Float val2, Double tol=1.0e-5) |
Bool | allNear (Float val1, Float val2, Double tol=1.0e-5) |
Bool | allNear (Double val1, Double val2, Double tol=1.0e-13) |
Bool | nearAbs (uInt val1, uInt val2, Double tol=1.0e-5) |
Functions to return whether a value is "absolutely" near another. | |
Bool | nearAbs (Int val1, Int val2, Double tol=1.0e-5) |
Bool | nearAbs (Float val1, Float val2, Double tol=1.0e-5) |
Bool | nearAbs (Float val1, Double val2, Double tol=1.0e-5) |
Bool | nearAbs (Double val1, Float val2, Double tol=1.0e-5) |
Bool | nearAbs (Double val1, Double val2, Double tol=1.0e-13) |
Bool | allNearAbs (uInt val1, uInt val2, uInt tol=1) |
The "allNearAbs" versions are aliases for the normal "nearAbs" versions. | |
Bool | allNearAbs (Int val1, Int val2, Int tol=1) |
Bool | allNearAbs (Float val1, Float val2, Double tol=1.0e-5) |
Bool | allNearAbs (Float val1, Double val2, Double tol=1.0e-5) |
Bool | allNearAbs (Double val1, Float val2, Double tol=1.0e-5) |
Bool | allNearAbs (Double val1, Double val2, Double tol=1.0e-13) |
Bool | isFinite (const Float &val) |
Functions to test if a floating point number is finite. | |
Bool | isFinite (const Double &val) |
Bool | isNaN (const Float &val) |
Functions to test for IEEE NaN's. | |
Bool | isNaN (Double val) |
Double | roundDouble (Double val, Double ndigit=2.5) |
Round a number to ndigit significant digits, usually used for formatting for printing. | |
Float | floatNaN () |
Functions that return IEEE NaN's. | |
Double | doubleNaN () |
void | setNaN (Float &val) |
void | setNaN (Double &val) |
Bool | isInf (Float val) |
Functions to test for IEEE Infinity's. | |
Bool | isInf (Double val) |
Float | floatInf () |
Functions that return an IEEE Infinity, (positive infinity). | |
Double | doubleInf () |
void | setInf (Float &val) |
void | setInf (Double &val) |
AIPS++ interface to math.h and other scalar math functions.
<h3>Synopsis</h3> AIPS++ interface to <tt><math.h></tt>. You should include this file rather than <tt><math.h></tt> directly. It will be used to cover up any deficiencies in the system <tt><math.h></tt>. This file does not include things like element-by-element array operations. See the \ref ArrayMath_Array_mathematical_operations "ArrayMath" functions for these functions. This file includes the standard math library. Hence besides the functions defined here the following functions are also available.
Double sin(Double x) Sine function Double cos(Double x) Cosine function Double tan(Double x) Tangent function Double asin(Double x) Inverse sine function Double acos(Double x) Inverse cosine function Double atan(Double x) Inverse tangent function Double atan2(Double y, Double x) Four quandrant inverse tangent function Double hypot(Double y, Double x) Euclidean distance sqrt(x*x+y*y) Double sinh(Double x) Hyperbolic sine Double cosh(Double x) Hyperbolic cosine Double tanh(Double x) Hyperbolic tangent Double acosh(Double x) Inverse hyperbolic sine Double asinh(Double x) Inverse hyperbolic cosine Double atanh(Double x) Inverse hyperbolic tangent Double sqrt(Double x) Square root Double cbrt(Double x) Cube root Double pow(Double x, Double y) x raised to the power of y Double exp(Double x) Exponental function Double expm1(Double x) exp(x)-1. Use when x is small. Double log(Double x) Natural logarithm Double log10(Double x) Base ten logarithm Double log1p(Double x) log(x+1). Use when x is small Double j0(Double x) Bessel function of the first kind, zeroth order Double j1(Double x) Bessel function of the first kind, first order Double jn(Int n, Double x) Bessel function of the first kind nth order Double y0(Double x) Bessel function of the second kind, zeroth order Double y1(Double x) Bessel function of the second kind, first order Double yn(Int n, Double x) Bessel function of the second kind, nth order Double lgamma(Double x) Natural Log of the absolute value of the gamma function Double lgamma_r(Double x, Int* sign) Same as lgamma. The sign of the gamma function is returned in the second argument. Double erf(Double x) Error function Double erfc(Double x) Complementary error function (1 - erf(x)). Use for large x. Double ceil(Double x) Returns the least integral value greater than or equal to x Double floor(Double x) Returns the least integral value than than or equal to x Double rint(Double x) Round to an integer using the current direction. Double fabs(Double x) Absolute value of x Double remainder(Double x, Double y) the remainder. x - y*Int(x/y) Double fmod(Double x, Double y) As above. May differ by +/- y Int isNaN(Double x) Returns 1 if x is a NaN, zero otherwise Int ilogb(Double x) Unbiased exponent of x Double logb(Double x) As above but returns floating point result Double scalbn(Double x, Int n) x*2**n. Uses exponent manipulation. Double scalb(Double x, Double n) x*2**n. As above but n is a Double Double significand(Double x) Returns the fractional part of x (between 1 and 2) Double copysign(Double x, Double y) returns a value with the magnitude of x and the sign bit of y. Double nextafter(Double x, Double y) Returns the next machine representable number after x in the direction specified by y
This file also includes the standard C library (stdlib.h). This is to obtain a definition of the following functions.
uInt casa::Math_global_functions_Math_interface_for_casacore::abs | ( | uInt | Val | ) | [inline] |
Bool casa::Math_global_functions_Math_interface_for_casacore::allNear | ( | uInt | val1, |
uInt | val2, | ||
Double | tol = 1.0e-5 |
||
) | [inline] |
The "allNear" versions are aliases for the normal "near" versions.
They exist to make template functions that work for both arrays and scalars easier to write. These functions should be moved to ArrayMath.h
Definition at line 224 of file Math.h.
References casa::near().
Bool casa::Math_global_functions_Math_interface_for_casacore::allNear | ( | Int | val1, |
Int | val2, | ||
Double | tol = 1.0e-5 |
||
) | [inline] |
Definition at line 226 of file Math.h.
References casa::near().
Bool casa::Math_global_functions_Math_interface_for_casacore::allNear | ( | Float | val1, |
Double | val2, | ||
Double | tol = 1.0e-5 |
||
) | [inline] |
Definition at line 228 of file Math.h.
References casa::near().
Bool casa::Math_global_functions_Math_interface_for_casacore::allNear | ( | Double | val1, |
Float | val2, | ||
Double | tol = 1.0e-5 |
||
) | [inline] |
Definition at line 230 of file Math.h.
References casa::near().
Bool casa::Math_global_functions_Math_interface_for_casacore::allNear | ( | Float | val1, |
Float | val2, | ||
Double | tol = 1.0e-5 |
||
) | [inline] |
Definition at line 232 of file Math.h.
References casa::near().
Bool casa::Math_global_functions_Math_interface_for_casacore::allNear | ( | Double | val1, |
Double | val2, | ||
Double | tol = 1.0e-13 |
||
) | [inline] |
Definition at line 234 of file Math.h.
References casa::near().
Bool casa::Math_global_functions_Math_interface_for_casacore::allNearAbs | ( | uInt | val1, |
uInt | val2, | ||
uInt | tol = 1 |
||
) | [inline] |
The "allNearAbs" versions are aliases for the normal "nearAbs" versions.
They exist to make template functions that work for both arrays and scalars easier to write. These functions should be in ArrayMath.h
Definition at line 253 of file Math.h.
References casa::nearAbs().
Bool casa::Math_global_functions_Math_interface_for_casacore::allNearAbs | ( | Int | val1, |
Int | val2, | ||
Int | tol = 1 |
||
) | [inline] |
Definition at line 255 of file Math.h.
References casa::nearAbs().
Bool casa::Math_global_functions_Math_interface_for_casacore::allNearAbs | ( | Float | val1, |
Float | val2, | ||
Double | tol = 1.0e-5 |
||
) | [inline] |
Definition at line 257 of file Math.h.
References casa::nearAbs().
Bool casa::Math_global_functions_Math_interface_for_casacore::allNearAbs | ( | Float | val1, |
Double | val2, | ||
Double | tol = 1.0e-5 |
||
) | [inline] |
Definition at line 259 of file Math.h.
References casa::nearAbs().
Bool casa::Math_global_functions_Math_interface_for_casacore::allNearAbs | ( | Double | val1, |
Float | val2, | ||
Double | tol = 1.0e-5 |
||
) | [inline] |
Definition at line 261 of file Math.h.
References casa::nearAbs().
Bool casa::Math_global_functions_Math_interface_for_casacore::allNearAbs | ( | Double | val1, |
Double | val2, | ||
Double | tol = 1.0e-13 |
||
) | [inline] |
Definition at line 263 of file Math.h.
References casa::nearAbs().
Int casa::Math_global_functions_Math_interface_for_casacore::cube | ( | Int | val | ) | [inline] |
Float casa::Math_global_functions_Math_interface_for_casacore::cube | ( | Float | val | ) | [inline] |
Functions that return an IEEE Infinity, (positive infinity).
Functions that return IEEE NaN's.
The specific NaN returned has all bits set. This is 'quiet' NaN, and because the sign bit is set it may be considered a negative number (but NaN's are not numbers!).
Int casa::Math_global_functions_Math_interface_for_casacore::ifloor | ( | Float | point | ) | [inline] |
Int casa::Math_global_functions_Math_interface_for_casacore::ifloor | ( | Double | point | ) | [inline] |
Bool casa::Math_global_functions_Math_interface_for_casacore::isFinite | ( | const Float & | val | ) | [inline] |
Bool casa::Math_global_functions_Math_interface_for_casacore::isFinite | ( | const Double & | val | ) | [inline] |
Functions to test for IEEE Infinity's.
Should work for positive or negative infinity.
Bool casa::Math_global_functions_Math_interface_for_casacore::isNaN | ( | const Float & | val | ) | [inline] |
Bool casa::Math_global_functions_Math_interface_for_casacore::isNaN | ( | Double | val | ) | [inline] |
Int casa::Math_global_functions_Math_interface_for_casacore::max | ( | Int | a, |
Int | b | ||
) | [inline] |
uInt casa::Math_global_functions_Math_interface_for_casacore::max | ( | uInt | a, |
uInt | b | ||
) | [inline] |
Double casa::Math_global_functions_Math_interface_for_casacore::max | ( | Double | a, |
Double | b | ||
) | [inline] |
Double casa::Math_global_functions_Math_interface_for_casacore::max | ( | Double | a, |
Float | b | ||
) | [inline] |
Double casa::Math_global_functions_Math_interface_for_casacore::max | ( | Float | a, |
Double | b | ||
) | [inline] |
Float casa::Math_global_functions_Math_interface_for_casacore::max | ( | Float | a, |
Float | b | ||
) | [inline] |
Int casa::Math_global_functions_Math_interface_for_casacore::min | ( | Int | a, |
Int | b | ||
) | [inline] |
uInt casa::Math_global_functions_Math_interface_for_casacore::min | ( | uInt | a, |
uInt | b | ||
) | [inline] |
Double casa::Math_global_functions_Math_interface_for_casacore::min | ( | Double | a, |
Double | b | ||
) | [inline] |
Double casa::Math_global_functions_Math_interface_for_casacore::min | ( | Double | a, |
Float | b | ||
) | [inline] |
Double casa::Math_global_functions_Math_interface_for_casacore::min | ( | Float | a, |
Double | b | ||
) | [inline] |
Float casa::Math_global_functions_Math_interface_for_casacore::min | ( | Float | a, |
Float | b | ||
) | [inline] |
Bool casa::Math_global_functions_Math_interface_for_casacore::near | ( | uInt | val1, |
uInt | val2, | ||
Double | tol = 1.0e-5 |
||
) |
Functions to return whether a value is "relatively" near another.
Returns tol > abs(val2 - val1)/max(abs(val1),(val2))
. If tol <= 0, returns val1 == val2. If either val is 0.0, take care of area around the minimum number that can be represented.
Bool casa::Math_global_functions_Math_interface_for_casacore::near | ( | Int | val1, |
Int | val2, | ||
Double | tol = 1.0e-5 |
||
) |
Bool casa::Math_global_functions_Math_interface_for_casacore::near | ( | Float | val1, |
Float | val2, | ||
Double | tol = 1.0e-5 |
||
) |
Bool casa::Math_global_functions_Math_interface_for_casacore::near | ( | Float | val1, |
Double | val2, | ||
Double | tol = 1.0e-5 |
||
) |
Bool casa::Math_global_functions_Math_interface_for_casacore::near | ( | Double | val1, |
Float | val2, | ||
Double | tol = 1.0e-5 |
||
) |
Bool casa::Math_global_functions_Math_interface_for_casacore::near | ( | Double | val1, |
Double | val2, | ||
Double | tol = 1.0e-13 |
||
) |
Bool casa::Math_global_functions_Math_interface_for_casacore::nearAbs | ( | uInt | val1, |
uInt | val2, | ||
Double | tol = 1.0e-5 |
||
) |
Functions to return whether a value is "absolutely" near another.
Returns tol > abs(val2 - val1)
Bool casa::Math_global_functions_Math_interface_for_casacore::nearAbs | ( | Int | val1, |
Int | val2, | ||
Double | tol = 1.0e-5 |
||
) |
Bool casa::Math_global_functions_Math_interface_for_casacore::nearAbs | ( | Float | val1, |
Float | val2, | ||
Double | tol = 1.0e-5 |
||
) |
Bool casa::Math_global_functions_Math_interface_for_casacore::nearAbs | ( | Float | val1, |
Double | val2, | ||
Double | tol = 1.0e-5 |
||
) |
Bool casa::Math_global_functions_Math_interface_for_casacore::nearAbs | ( | Double | val1, |
Float | val2, | ||
Double | tol = 1.0e-5 |
||
) |
Bool casa::Math_global_functions_Math_interface_for_casacore::nearAbs | ( | Double | val1, |
Double | val2, | ||
Double | tol = 1.0e-13 |
||
) |
Float casa::Math_global_functions_Math_interface_for_casacore::pow | ( | Float | f1, |
Double | f2 | ||
) | [inline] |
Returns f1**f2.
The Double precision version is defined in the standard library. But many compilers are not good enough to automatically do the type promotion. Hence these functions are explicitly defined.
Definition at line 142 of file Math.h.
References casa::pow().
Float casa::Math_global_functions_Math_interface_for_casacore::pow | ( | Double | f1, |
Float | f2 | ||
) | [inline] |
Definition at line 143 of file Math.h.
References casa::pow().
Int casa::Math_global_functions_Math_interface_for_casacore::pow | ( | Int | f1, |
Int | f2 | ||
) | [inline] |
Definition at line 144 of file Math.h.
References casa::pow().
Double casa::Math_global_functions_Math_interface_for_casacore::roundDouble | ( | Double | val, |
Double | ndigit = 2.5 |
||
) |
Round a number to ndigit
significant digits, usually used for formatting for printing.
A non-integer ndigit=N+F<src>, with integer N and fraction F, is interpreted as follows. For <src>x = A*10^B
, where B is an integer, A is rounded to N digits if A > 10^F
, otherwise N+1 digits.
For the default 2.5, a value of 32157 is rounded to 32000, while 22157 is rounded to 22200.
Int casa::Math_global_functions_Math_interface_for_casacore::sign | ( | Int | val | ) | [inline] |
Float casa::Math_global_functions_Math_interface_for_casacore::sign | ( | Float | val | ) | [inline] |
Int casa::Math_global_functions_Math_interface_for_casacore::square | ( | Int | val | ) | [inline] |