# p?lamch

Determines machine parameters for floating-point arithmetic.

## Syntax

val = pslamch(ictxt, cmach)

val = pdlamch(ictxt, cmach)

## Description

This routine determines single precision machine parameters.

## Input Parameters

ictxt

  (global). INTEGER.The BLACS context handle in which the computation takes place.

cmach

  (global) CHARACTER*1.

  Specifies the value to be returned by p?lamch:

  = 'E' or 'e', p?lamch := eps

  = 'S' or 's' , p?lamch := sfmin

  = 'B' or 'b', p?lamch := base

  = 'P' or 'p', p?lamch := eps*base

  = 'N' or 'n', p?lamch := t

  = 'R' or 'r', p?lamch := rnd

  = 'M' or 'm', p?lamch := emin

  = 'U' or 'u', p?lamch := rmin

  = 'L' or 'l', p?lamch := emax

  = 'O' or 'o', p?lamch := 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 - `(baseemax)*(1-eps)`

## Output Parameters

val

  Value returned by the routine.

Parent topic: Utility Functions and Routines