casacore
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions | List of all members
casacore::Math_global_functions_Math_interface_for_casacore Struct Reference

Casacore 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. More...
 
Float pow (Double f1, Float f2)
 
Int pow (Int f1, Int f2)
 
Int ifloor (Float point)
 Return the integer "less than" point (i.e. More...
 
Int ifloor (Double point)
 
Int max (Int a, Int b)
 Functions to get the max or min of two numbers. More...
 
Int min (Int a, Int b)
 
uInt max (uInt a, uInt b)
 
uInt min (uInt a, uInt b)
 
uInt64 max (uInt64 a, uInt64 b)
 
uInt64 min (uInt64 a, uInt64 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)
 
Int square (Int val)
 Return the square of a value. More...
 
Int64 square (Int64 val)
 
Float square (Float val)
 
Double square (Double val)
 
Int cube (Int val)
 Return the cube of a value. More...
 
Int64 cube (Int64 val)
 
Float cube (Float val)
 
Double cube (Double val)
 
Int sign (Int val)
 Return the sign of a value. More...
 
Int64 sign (Int64 val)
 
Float sign (Float val)
 
Double sign (Double val)
 
Int floormod (Int x, Int y)
 Return the floor modulo as used by Python (unlike C); divisor sign is used. More...
 
Int64 floormod (Int64 x, Int64 y)
 
Float floormod (Float x, Float y)
 
Double floormod (Double x, Double y)
 
Bool near (uInt val1, uInt val2, Double tol=1.0e-5)
 Functions to return whether a value is "relatively" near another. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
Bool isFinite (const Double &val)
 
Bool isNaN (const Float &val)
 Functions to test for IEEE NaN's. More...
 
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. More...
 
Float floatNaN ()
 Functions that return IEEE NaN's. More...
 
Double doubleNaN ()
 
void setNaN (Float &val)
 
void setNaN (Double &val)
 
Bool isInf (Float val)
 Functions to test for IEEE Infinity's. More...
 
Bool isInf (Double val)
 
Float floatInf ()
 Functions that return an IEEE Infinity, (positive infinity). More...
 
Double doubleInf ()
 
void setInf (Float &val)
 
void setInf (Double &val)
 

Detailed Description

Casacore interface to math.h and other scalar math functions.

Review Status

Reviewed By:
UNKNOWN
Date Reviewed:
before2004/08/25

Synopsis

Casacore interface to <math.h>. You should include this file rather than <math.h> directly. It will be used to cover up any deficiencies in the system <math.h>.

This file does not include things like element-by-element array operations. See the 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.

Int abs(Int x) absolute value function

Definition at line 137 of file Math.h.

Member Function Documentation

Bool casacore::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 250 of file Math.h.

References casacore::near().

Bool casacore::Math_global_functions_Math_interface_for_casacore::allNear ( Int  val1,
Int  val2,
Double  tol = 1.0e-5 
)
inline

Definition at line 252 of file Math.h.

References casacore::near().

Bool casacore::Math_global_functions_Math_interface_for_casacore::allNear ( Float  val1,
Double  val2,
Double  tol = 1.0e-5 
)
inline

Definition at line 254 of file Math.h.

References casacore::near().

Bool casacore::Math_global_functions_Math_interface_for_casacore::allNear ( Double  val1,
Float  val2,
Double  tol = 1.0e-5 
)
inline

Definition at line 256 of file Math.h.

References casacore::near().

Bool casacore::Math_global_functions_Math_interface_for_casacore::allNear ( Float  val1,
Float  val2,
Double  tol = 1.0e-5 
)
inline

Definition at line 258 of file Math.h.

References casacore::near().

Bool casacore::Math_global_functions_Math_interface_for_casacore::allNear ( Double  val1,
Double  val2,
Double  tol = 1.0e-13 
)
inline

Definition at line 260 of file Math.h.

References casacore::near().

Bool casacore::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 279 of file Math.h.

References casacore::nearAbs().

Bool casacore::Math_global_functions_Math_interface_for_casacore::allNearAbs ( Int  val1,
Int  val2,
Int  tol = 1 
)
inline

Definition at line 281 of file Math.h.

References casacore::nearAbs().

Bool casacore::Math_global_functions_Math_interface_for_casacore::allNearAbs ( Float  val1,
Float  val2,
Double  tol = 1.0e-5 
)
inline

Definition at line 283 of file Math.h.

References casacore::nearAbs().

Bool casacore::Math_global_functions_Math_interface_for_casacore::allNearAbs ( Float  val1,
Double  val2,
Double  tol = 1.0e-5 
)
inline

Definition at line 285 of file Math.h.

References casacore::nearAbs().

Bool casacore::Math_global_functions_Math_interface_for_casacore::allNearAbs ( Double  val1,
Float  val2,
Double  tol = 1.0e-5 
)
inline

Definition at line 287 of file Math.h.

References casacore::nearAbs().

Bool casacore::Math_global_functions_Math_interface_for_casacore::allNearAbs ( Double  val1,
Double  val2,
Double  tol = 1.0e-13 
)
inline

Definition at line 289 of file Math.h.

References casacore::nearAbs().

Int casacore::Math_global_functions_Math_interface_for_casacore::cube ( Int  val)
inline

Return the cube of a value.

Definition at line 188 of file Math.h.

Int64 casacore::Math_global_functions_Math_interface_for_casacore::cube ( Int64  val)
inline

Definition at line 189 of file Math.h.

Float casacore::Math_global_functions_Math_interface_for_casacore::cube ( Float  val)
inline

Definition at line 190 of file Math.h.

Double casacore::Math_global_functions_Math_interface_for_casacore::cube ( Double  val)
inline

Definition at line 191 of file Math.h.

Double casacore::Math_global_functions_Math_interface_for_casacore::doubleInf ( )
Double casacore::Math_global_functions_Math_interface_for_casacore::doubleNaN ( )
Float casacore::Math_global_functions_Math_interface_for_casacore::floatInf ( )

Functions that return an IEEE Infinity, (positive infinity).

Float casacore::Math_global_functions_Math_interface_for_casacore::floatNaN ( )

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 casacore::Math_global_functions_Math_interface_for_casacore::floormod ( Int  x,
Int  y 
)
inline

Return the floor modulo as used by Python (unlike C); divisor sign is used.

Note that function fmod can be used for C behaviour; dividend sign is used. In Python: 5%3=2 -5%3=1 5%-3=-1 -5%-3=-2 In C: 5%3=2 -5%3=-2 5%-3=2 -5%-3=-2

Definition at line 207 of file Math.h.

Int64 casacore::Math_global_functions_Math_interface_for_casacore::floormod ( Int64  x,
Int64  y 
)
inline

Definition at line 213 of file Math.h.

Float casacore::Math_global_functions_Math_interface_for_casacore::floormod ( Float  x,
Float  y 
)
inline

Definition at line 219 of file Math.h.

References casacore::fmod().

Double casacore::Math_global_functions_Math_interface_for_casacore::floormod ( Double  x,
Double  y 
)
inline

Definition at line 225 of file Math.h.

References casacore::fmod().

Int casacore::Math_global_functions_Math_interface_for_casacore::ifloor ( Float  point)
inline

Return the integer "less than" point (i.e.

the one further from zero if "point" is negative.

Definition at line 150 of file Math.h.

Int casacore::Math_global_functions_Math_interface_for_casacore::ifloor ( Double  point)
inline

Definition at line 152 of file Math.h.

Bool casacore::Math_global_functions_Math_interface_for_casacore::isFinite ( const Float val)
inline

Functions to test if a floating point number is finite.

It is if it is NaN nor infinity.

Definition at line 297 of file Math.h.

References casacore::arrays_internal::isfinite().

Bool casacore::Math_global_functions_Math_interface_for_casacore::isFinite ( const Double val)
inline

Definition at line 305 of file Math.h.

References casacore::arrays_internal::isfinite().

Bool casacore::Math_global_functions_Math_interface_for_casacore::isInf ( Float  val)

Functions to test for IEEE Infinity's.

Should work for positive or negative infinity.

Bool casacore::Math_global_functions_Math_interface_for_casacore::isInf ( Double  val)
Bool casacore::Math_global_functions_Math_interface_for_casacore::isNaN ( const Float val)
inline

Functions to test for IEEE NaN's.

The Float variant uses an in-line Macro examining the bit pattern (for portability and efficiency). The Double version invokes the IEEE function isnan found in ieeefp.h or math.h

Definition at line 319 of file Math.h.

Bool casacore::Math_global_functions_Math_interface_for_casacore::isNaN ( Double  val)
inline

Definition at line 324 of file Math.h.

References casacore::arrays_internal::isnan().

Int casacore::Math_global_functions_Math_interface_for_casacore::max ( Int  a,
Int  b 
)
inline

Functions to get the max or min of two numbers.

Definition at line 158 of file Math.h.

uInt casacore::Math_global_functions_Math_interface_for_casacore::max ( uInt  a,
uInt  b 
)
inline

Definition at line 161 of file Math.h.

uInt64 casacore::Math_global_functions_Math_interface_for_casacore::max ( uInt64  a,
uInt64  b 
)
inline

Definition at line 164 of file Math.h.

Double casacore::Math_global_functions_Math_interface_for_casacore::max ( Double  a,
Double  b 
)
inline

Definition at line 167 of file Math.h.

Double casacore::Math_global_functions_Math_interface_for_casacore::max ( Double  a,
Float  b 
)
inline

Definition at line 169 of file Math.h.

Double casacore::Math_global_functions_Math_interface_for_casacore::max ( Float  a,
Double  b 
)
inline

Definition at line 171 of file Math.h.

Float casacore::Math_global_functions_Math_interface_for_casacore::max ( Float  a,
Float  b 
)
inline

Definition at line 174 of file Math.h.

Int casacore::Math_global_functions_Math_interface_for_casacore::min ( Int  a,
Int  b 
)
inline

Definition at line 159 of file Math.h.

uInt casacore::Math_global_functions_Math_interface_for_casacore::min ( uInt  a,
uInt  b 
)
inline

Definition at line 162 of file Math.h.

uInt64 casacore::Math_global_functions_Math_interface_for_casacore::min ( uInt64  a,
uInt64  b 
)
inline

Definition at line 165 of file Math.h.

Double casacore::Math_global_functions_Math_interface_for_casacore::min ( Double  a,
Double  b 
)
inline

Definition at line 168 of file Math.h.

Double casacore::Math_global_functions_Math_interface_for_casacore::min ( Double  a,
Float  b 
)
inline

Definition at line 170 of file Math.h.

Double casacore::Math_global_functions_Math_interface_for_casacore::min ( Float  a,
Double  b 
)
inline

Definition at line 172 of file Math.h.

Float casacore::Math_global_functions_Math_interface_for_casacore::min ( Float  a,
Float  b 
)
inline

Definition at line 175 of file Math.h.

Bool casacore::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 casacore::Math_global_functions_Math_interface_for_casacore::near ( Int  val1,
Int  val2,
Double  tol = 1.0e-5 
)
Bool casacore::Math_global_functions_Math_interface_for_casacore::near ( Float  val1,
Float  val2,
Double  tol = 1.0e-5 
)
Bool casacore::Math_global_functions_Math_interface_for_casacore::near ( Float  val1,
Double  val2,
Double  tol = 1.0e-5 
)
Bool casacore::Math_global_functions_Math_interface_for_casacore::near ( Double  val1,
Float  val2,
Double  tol = 1.0e-5 
)
Bool casacore::Math_global_functions_Math_interface_for_casacore::near ( Double  val1,
Double  val2,
Double  tol = 1.0e-13 
)
Bool casacore::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 casacore::Math_global_functions_Math_interface_for_casacore::nearAbs ( Int  val1,
Int  val2,
Double  tol = 1.0e-5 
)
Bool casacore::Math_global_functions_Math_interface_for_casacore::nearAbs ( Float  val1,
Float  val2,
Double  tol = 1.0e-5 
)
Bool casacore::Math_global_functions_Math_interface_for_casacore::nearAbs ( Float  val1,
Double  val2,
Double  tol = 1.0e-5 
)
Bool casacore::Math_global_functions_Math_interface_for_casacore::nearAbs ( Double  val1,
Float  val2,
Double  tol = 1.0e-5 
)
Bool casacore::Math_global_functions_Math_interface_for_casacore::nearAbs ( Double  val1,
Double  val2,
Double  tol = 1.0e-13 
)
Float casacore::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 casacore::pow().

Float casacore::Math_global_functions_Math_interface_for_casacore::pow ( Double  f1,
Float  f2 
)
inline

Definition at line 143 of file Math.h.

References casacore::pow().

Int casacore::Math_global_functions_Math_interface_for_casacore::pow ( Int  f1,
Int  f2 
)
inline

Definition at line 144 of file Math.h.

References casacore::pow().

Double casacore::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.

void casacore::Math_global_functions_Math_interface_for_casacore::setInf ( Float val)
void casacore::Math_global_functions_Math_interface_for_casacore::setInf ( Double val)
void casacore::Math_global_functions_Math_interface_for_casacore::setNaN ( Float val)
void casacore::Math_global_functions_Math_interface_for_casacore::setNaN ( Double val)
Int casacore::Math_global_functions_Math_interface_for_casacore::sign ( Int  val)
inline

Return the sign of a value.

Definition at line 196 of file Math.h.

Int64 casacore::Math_global_functions_Math_interface_for_casacore::sign ( Int64  val)
inline

Definition at line 197 of file Math.h.

Float casacore::Math_global_functions_Math_interface_for_casacore::sign ( Float  val)
inline

Definition at line 198 of file Math.h.

Double casacore::Math_global_functions_Math_interface_for_casacore::sign ( Double  val)
inline

Definition at line 199 of file Math.h.

Int casacore::Math_global_functions_Math_interface_for_casacore::square ( Int  val)
inline

Return the square of a value.

Definition at line 180 of file Math.h.

Int64 casacore::Math_global_functions_Math_interface_for_casacore::square ( Int64  val)
inline

Definition at line 181 of file Math.h.

Float casacore::Math_global_functions_Math_interface_for_casacore::square ( Float  val)
inline

Definition at line 182 of file Math.h.

Double casacore::Math_global_functions_Math_interface_for_casacore::square ( Double  val)
inline

Definition at line 183 of file Math.h.


The documentation for this struct was generated from the following file: