?lamch

Determines machine parameters for floating-point arithmetic.

Syntax

val = slamch( cmach )

val = dlamch( cmach )

C:

<datatype> LAPACKE_<?>lamch (char cmach);

Include Files

  • Fortran: mkl.fi
  • C: mkl.h

Description

The function ?lamch determines single precision and double precision machine parameters.

Input Parameters

cmach

CHARACTER*1. Specifies the value to be returned by ?lamch:

= 'E' or 'e', val = eps

= 'S' or 's', val = sfmin

= 'B' or 'b', val = base

= 'P' or 'p', val = eps*base

= 'n' or 'n', val = t

= 'R' or 'r', val = rnd

= 'M' or 'm', val = emin

= 'U' or 'u', val = rmin

= 'L' or 'l', val = emax

= 'O' or 'o', val = rmax

where

eps = relative machine precision;

sfmin = safe minimum, such that 1/sfmin does not overflow;

base = base of the machine;

prec = eps*base;

t = number of (base) digits in the mantissa;

rnd = 1.0 when rounding occurs in addition, 0.0 otherwise;

emin = minimum exponent before (gradual) underflow;

rmin = underflow_threshold - base**(emin-1);

emax = largest exponent before overflow;

rmax = overflow_threshold - (base**emax)*(1-eps).

Note

You can use a character string for cmach instead of a single character in order to make your code more readable. The first character of the string determines the value to be returned. For example, 'Precision' is interpreted as 'p'.

Output Parameters

val

REAL for slamch

DOUBLE PRECISION for dlamch

Value returned by the function.

For more complete information about compiler optimizations, see our Optimization Notice.