# dlamchf77.f man page

dlamchf77.f —

## Synopsis

### Functions/Subroutines

DOUBLE PRECISION functiondlamch(CMACH)DLAMCHF77deprecated

subroutinedlamc1(BETA, T, RND, IEEE1)DLAMC1

subroutinedlamc2(BETA, T, RND, EPS, EMIN, RMIN, EMAX, RMAX)DLAMC2

DOUBLE PRECISION functiondlamc3(A, B)DLAMC3

subroutinedlamc4(EMIN, START, BASE)DLAMC4

subroutinedlamc5(BETA, P, EMIN, IEEE, EMAX, RMAX)DLAMC5

## Function/Subroutine Documentation

### subroutine dlamc1 (integerBETA, integerT, logicalRND, logicalIEEE1)

**DLAMC1 Purpose:**

```
DLAMC1 determines the machine parameters given by BETA, T, RND, and
IEEE1.
```

**Parameters:**

*BETA*

`The base of the machine.`

*T*

`The number of ( BETA ) digits in the mantissa.`

*RND*

```
Specifies whether proper rounding ( RND = .TRUE. ) or
chopping ( RND = .FALSE. ) occurs in addition. This may not
be a reliable guide to the way in which the machine performs
its arithmetic.
```

*IEEE1*

```
Specifies whether rounding appears to be done in the IEEE
'round to nearest' style.
```

**Author:**

LAPACK is a software package provided by Univ. of Tennessee, Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..

**Date:**

April 2012

**Further Details**

```
The routine is based on the routine ENVRON by Malcolm and
incorporates suggestions by Gentleman and Marovich. See
Malcolm M. A. (1972) Algorithms to reveal properties of
floating-point arithmetic. Comms. of the ACM, 15, 949-951.
Gentleman W. M. and Marovich S. B. (1974) More on algorithms
that reveal properties of floating point arithmetic units.
Comms. of the ACM, 17, 276-277.
```

Definition at line 206 of file dlamchf77.f.

### subroutine dlamc2 (integerBETA, integerT, logicalRND, double precisionEPS, integerEMIN, double precisionRMIN, integerEMAX, double precisionRMAX)

**DLAMC2 Purpose:**

```
DLAMC2 determines the machine parameters specified in its argument
list.
```

**Author:**

LAPACK is a software package provided by Univ. of Tennessee, Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..

**Date:**

April 2012

**Parameters:**

*BETA*

`The base of the machine.`

*T*

`The number of ( BETA ) digits in the mantissa.`

*RND*

```
Specifies whether proper rounding ( RND = .TRUE. ) or
chopping ( RND = .FALSE. ) occurs in addition. This may not
be a reliable guide to the way in which the machine performs
its arithmetic.
```

*EPS*

```
The smallest positive number such that
fl( 1.0 - EPS ) .LT. 1.0,
where fl denotes the computed value.
```

*EMIN*

`The minimum exponent before (gradual) underflow occurs.`

*RMIN*

```
The smallest normalized number for the machine, given by
BASE**( EMIN - 1 ), where BASE is the floating point value
of BETA.
```

*EMAX*

`The maximum exponent before overflow occurs.`

*RMAX*

```
The largest positive number for the machine, given by
BASE**EMAX * ( 1 - EPS ), where BASE is the floating point
value of BETA.
```

**Further Details**

```
The computation of EPS is based on a routine PARANOIA by
W. Kahan of the University of California at Berkeley.
```

Definition at line 419 of file dlamchf77.f.

### DOUBLE PRECISION function dlamc3 (double precisionA, double precisionB)

**DLAMC3 Purpose:**

```
DLAMC3 is intended to force A and B to be stored prior to doing
the addition of A and B , for use in situations where optimizers
might hold one of these in a register.
```

**Parameters:**

*A* *B*

`The values A and B.`

Definition at line 642 of file dlamchf77.f.

### subroutine dlamc4 (integerEMIN, double precisionSTART, integerBASE)

**DLAMC4 Purpose:**

`DLAMC4 is a service routine for DLAMC2.`

**Parameters:**

*EMIN*

```
The minimum exponent before (gradual) underflow, computed by
setting A = START and dividing by BASE until the previous A
can not be recovered.
```

*START*

`The starting point for determining EMIN.`

*BASE*

`The base of the machine.`

Definition at line 689 of file dlamchf77.f.

### subroutine dlamc5 (integerBETA, integerP, integerEMIN, logicalIEEE, integerEMAX, double precisionRMAX)

**DLAMC5 Purpose:**

```
DLAMC5 attempts to compute RMAX, the largest machine floating-point
number, without overflow. It assumes that EMAX + abs(EMIN) sum
approximately to a power of 2. It will fail on machines where this
assumption does not hold, for example, the Cyber 205 (EMIN = -28625,
EMAX = 28718). It will also fail if the value supplied for EMIN is
too large (i.e. too close to zero), probably with overflow.
```

**Parameters:**

*BETA*

`The base of floating-point arithmetic.`

*P*

```
The number of base BETA digits in the mantissa of a
floating-point value.
```

*EMIN*

`The minimum exponent before (gradual) underflow.`

*IEEE*

```
A logical flag specifying whether or not the arithmetic
system is thought to comply with the IEEE standard.
```

*EMAX*

`The largest exponent before overflow`

*RMAX*

`The largest machine floating-point number.`

Definition at line 796 of file dlamchf77.f.

### DOUBLE PRECISION function dlamch (characterCMACH)

**DLAMCHF77** deprecated **Purpose:**

`DLAMCHF77 determines double precision machine parameters.`

**Parameters:**

*CMACH*

```
Specifies the value to be returned by DLAMCH:
= 'E' or 'e', DLAMCH := eps
= 'S' or 's , DLAMCH := sfmin
= 'B' or 'b', DLAMCH := base
= 'P' or 'p', DLAMCH := eps*base
= 'N' or 'n', DLAMCH := t
= 'R' or 'r', DLAMCH := rnd
= 'M' or 'm', DLAMCH := emin
= 'U' or 'u', DLAMCH := rmin
= 'L' or 'l', DLAMCH := emax
= 'O' or 'o', DLAMCH := 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)
```

**Author:**

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

**Date:**

April 2012

Definition at line 64 of file dlamchf77.f.

## Author

Generated automatically by Doxygen for LAPACK from the source code.

## Referenced By

dlamc1(3), dlamc2(3), dlamc4(3) and dlamc5(3) are aliases of dlamchf77.f(3).