class HCL_FPArch_d

HCL_FPArch_d is an interface class to the LAPACK DLAMCH, which determines the floating point characteristics of machine on which the code is running

Inheritance:


Public Methods

ostream& Write ( ostream & str ) const
Write displays the values of all parameters on the given stream.

Public

Machine parameters
double eps
eps is the relative machine precision.
double sfmin
sfmin is the safe minimum (1/sfmin does not overflow).
int base
base is the base of the floating point arithmetic.
double prec
prec = eps*base.
int t
t is the number of digits in the mantissa.
int rnd
rnd is 1 if rounding occurs in addition, 0 otherwise.
int emin
emin is the minimum exponent before (gradual) underflow.
double rmin
rmin is the underflow threshold: base raised to the power (emin-1)
int emax
emax is the largest exponent before overflow.
double rmax
rmax is the overflow threshold: (base to the power emax)*(1-eps).
Additional parameters
double small
small equals sfmin, unless LOG10(1/sfmin) is large, in which case small is the square root of sfmin
double large
large equals 1/sfmin, unless LOG10(1/sfmin) is large, in which case large is the square root of 1/sfmin

Documentation

HCL_FPArch_d is an interface class to the LAPACK DLAMCH, which determines the floating point characteristics of machine on which the code is running. For example, the relative machine precision can be determined as follows:
       HCL_FPArch_d Arch;  // Create a "floating point architecture" object
       double eps = Arch.eps;  // eps is now machine precision
    
See the list of class members for other available parameters.

For more information on these parameters, see

LAPACK User's Guide (2nd edition) by Anderson, Bai, et al., 1995 (SIAM)

Machine parameters

double eps
eps is the relative machine precision.

double sfmin
sfmin is the safe minimum (1/sfmin does not overflow).

int base
base is the base of the floating point arithmetic.

double prec
prec = eps*base.

int t
t is the number of digits in the mantissa.

int rnd
rnd is 1 if rounding occurs in addition, 0 otherwise.

int emin
emin is the minimum exponent before (gradual) underflow.

double rmin
rmin is the underflow threshold: base raised to the power (emin-1)

int emax
emax is the largest exponent before overflow.

double rmax
rmax is the overflow threshold: (base to the power emax)*(1-eps).

Additional parameters
The following constants provide reasonable choices for the values of UNDERFLOW and OVERFLOW while also compensating for poor arithmetic in the upper half of the exponent range on certain machines (such as Crays.) (REFERENCE: LAPCK routine DLABAD.)

double small
small equals sfmin, unless LOG10(1/sfmin) is large, in which case small is the square root of sfmin

double large
large equals 1/sfmin, unless LOG10(1/sfmin) is large, in which case large is the square root of 1/sfmin

ostream& Write( ostream & str ) const
Write displays the values of all parameters on the given stream.


This class has no child classes.

alphabetic index hierarchy of classes


this page has been generated automatically by doc++

(c)opyright by Malte Zöckler, Roland Wunderling
contact: doc++@zib.de