HPL_dlamch - Man Page

determines machine-specific arithmetic constants.

Synopsis

#include "hpl.h"
 double HPL_dlamch( const HPL_T_MACH CMACH );

Description

HPL_dlamch determines  machine-specific  arithmetic constants such as the relative machine precision  (eps),  the safe minimum (sfmin) such that 1 / sfmin does not overflow, the base of the machine (base), the precision (prec), the  number of (base) digits  in the  mantissa (t), whether rounding occurs in addition (rnd=1.0 and 0.0 otherwise),  the minimum exponent before  (gradual)  underflow (emin),  the  underflow threshold (rmin) base**(emin-1), the largest exponent before overflow (emax), the overflow threshold (rmax) (base**emax)*(1-eps).

Arguments

CMACH   (local input)           const HPL_T_MACH

Specifies the value to be returned by HPL_dlamch            
  = HPL_MACH_EPS,   HPL_dlamch := eps (default)            
  = HPL_MACH_SFMIN, HPL_dlamch := sfmin                    
  = HPL_MACH_BASE,  HPL_dlamch := base                      
  = HPL_MACH_PREC,  HPL_dlamch := eps*base                  
  = HPL_MACH_MLEN,  HPL_dlamch := t                        
  = HPL_MACH_RND,   HPL_dlamch := rnd                      
  = HPL_MACH_EMIN,  HPL_dlamch := emin                      
  = HPL_MACH_RMIN,  HPL_dlamch := rmin                      
  = HPL_MACH_EMAX,  HPL_dlamch := emax                      
  = HPL_MACH_RMAX,  HPL_dlamch := rmax                      
 where                                                        

  eps   = relative machine precision,                      
  sfmin = safe minimum,                                    
  base  = base of the machine,                              
  prec  = eps*base,                                        
  t     = number of digits in the mantissa,                
  rnd   = 1.0 if rounding occurs in addition,              
  emin  = minimum exponent before underflow,                
  rmin  = underflow threshold,                              
  emax  = largest exponent before overflow,                
  rmax  = overflow threshold.

Example

#include "hpl.h"
 int main(int argc, char *argv[])
{
  double eps;
  eps = HPL_dlamch( HPL_MACH_EPS );
  printf("eps=%18.8e\n", eps);
  exit(0); return(0);
}

References

This function has been manually translated from the Fortran 77 LAPACK auxiliary function dlamch.f  (version 2.0 -- 1992), that  was  itself based on the function ENVRON  by Malcolm and incorporated suggestions by Gentleman and Marovich. See                                      
 Malcolm M. A.,  Algorithms  to  reveal  properties  of floating-point arithmetic.,  Comms. of the ACM, 15, 949-951 (1972).                
 Gentleman W. M. and Marovich S. B.,  More  on algorithms  that reveal properties of  floating point arithmetic units.,  Comms. of  the ACM, 17, 276-277 (1974).

Info

February 24, 2016 HPL 2.2 HPL Library Functions