casa  $Rev:20696$
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
Public Member Functions
casa::Math_global_functions_Math_interface_for_casacore Struct Reference

AIPS++ interface to math.h and other scalar math functions. More...

#include <Math.h>

List of all members.

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)

Detailed Description

AIPS++ interface to math.h and other scalar math functions.

Review Status

Reviewed By:
UNKNOWN
Date Reviewed:
before2004/08/25
<h3>Synopsis</h3> 

AIPS++ interface to <tt>&lt;math.h&gt;</tt>. You should include this file rather
than <tt>&lt;math.h&gt;</tt> directly.  It will be used to cover up any
deficiencies in the system <tt>&lt;math.h&gt;</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.

    Int abs(Int x)             absolute value function

Definition at line 137 of file Math.h.


Member Function Documentation

Get the absolute value of uInt.

Should already be defined for integers in <stdlib.h>. Define it for uInts so that certain compilers can resolve the ambiguity when used in a templated class.

Definition at line 182 of file Math.h.

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().

Definition at line 226 of file Math.h.

References casa::near().

Definition at line 228 of file Math.h.

References casa::near().

Definition at line 230 of file Math.h.

References casa::near().

Definition at line 232 of file Math.h.

References casa::near().

Definition at line 234 of file Math.h.

References casa::near().

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().

Definition at line 255 of file Math.h.

References casa::nearAbs().

Definition at line 257 of file Math.h.

References casa::nearAbs().

Definition at line 259 of file Math.h.

References casa::nearAbs().

Definition at line 261 of file Math.h.

References casa::nearAbs().

Definition at line 263 of file Math.h.

References casa::nearAbs().

Return the cube of a value.

Definition at line 195 of file Math.h.

Definition at line 196 of file Math.h.

Definition at line 197 of file Math.h.

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!).

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.

Definition at line 152 of file Math.h.

Functions to test if a floating point number is finite.

It is if it is NaN nor infinity.

Definition at line 271 of file Math.h.

Definition at line 279 of file Math.h.

Functions to test for IEEE Infinity's.

Should work for positive or negative infinity.

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 293 of file Math.h.

Definition at line 298 of file Math.h.

Functions to get the max or min of two numbers.

Definition at line 158 of file Math.h.

Definition at line 161 of file Math.h.

Definition at line 164 of file Math.h.

Definition at line 166 of file Math.h.

Definition at line 168 of file Math.h.

Definition at line 171 of file Math.h.

Definition at line 159 of file Math.h.

Definition at line 162 of file Math.h.

Definition at line 165 of file Math.h.

Definition at line 167 of file Math.h.

Definition at line 169 of file Math.h.

Definition at line 172 of file Math.h.

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.

Functions to return whether a value is "absolutely" near another.

Returns tol > abs(val2 - val1)

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().

Definition at line 143 of file Math.h.

References casa::pow().

Definition at line 144 of file Math.h.

References casa::pow().

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.

Return the sign of a value.

Definition at line 202 of file Math.h.

Definition at line 203 of file Math.h.

Definition at line 204 of file Math.h.

Return the square of a value.

Definition at line 188 of file Math.h.

Definition at line 189 of file Math.h.

Definition at line 190 of file Math.h.


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