# ?lamch

Determines machine parameters for floating-point arithmetic.

## Syntax

val = slamch( cmach )

val = dlamch( cmach )

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

## Output Parameters

val

  REAL for slamch

  DOUBLE PRECISION for dlamch

  Value returned by the function.

Parent topic: Utility Functions and Routines