Determines machine parameters for floating-point arithmetic.


float LAPACKE_slamch (char cmach );

double LAPACKE_dlamch (char cmach );

Include Files

  • mkl.h


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

Input Parameters


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


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


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


Value returned by the function.

Orange (only for download buttons)