2329
|
1 DOUBLE PRECISION FUNCTION DPMPAR(I) |
|
2 INTEGER I |
|
3 C ********** |
|
4 C |
|
5 C FUNCTION DPMPAR |
|
6 C |
|
7 C THIS FUNCTION PROVIDES DOUBLE PRECISION MACHINE PARAMETERS |
|
8 C WHEN THE APPROPRIATE SET OF DATA STATEMENTS IS ACTIVATED (BY |
|
9 C REMOVING THE C FROM COLUMN 1) AND ALL OTHER DATA STATEMENTS ARE |
|
10 C RENDERED INACTIVE. MOST OF THE PARAMETER VALUES WERE OBTAINED |
|
11 C FROM THE CORRESPONDING BELL LABORATORIES PORT LIBRARY FUNCTION. |
|
12 C |
|
13 C THE FUNCTION STATEMENT IS |
|
14 C |
|
15 C DOUBLE PRECISION FUNCTION DPMPAR(I) |
|
16 C |
|
17 C WHERE |
|
18 C |
|
19 C I IS AN INTEGER INPUT VARIABLE SET TO 1, 2, OR 3 WHICH |
|
20 C SELECTS THE DESIRED MACHINE PARAMETER. IF THE MACHINE HAS |
|
21 C T BASE B DIGITS AND ITS SMALLEST AND LARGEST EXPONENTS ARE |
|
22 C EMIN AND EMAX, RESPECTIVELY, THEN THESE PARAMETERS ARE |
|
23 C |
|
24 C DPMPAR(1) = B**(1 - T), THE MACHINE PRECISION, |
|
25 C |
|
26 C DPMPAR(2) = B**(EMIN - 1), THE SMALLEST MAGNITUDE, |
|
27 C |
|
28 C DPMPAR(3) = B**EMAX*(1 - B**(-T)), THE LARGEST MAGNITUDE. |
|
29 C |
|
30 C ARGONNE NATIONAL LABORATORY. MINPACK PROJECT. JUNE 1983. |
|
31 C BURTON S. GARBOW, KENNETH E. HILLSTROM, JORGE J. MORE |
|
32 C |
|
33 C Modified Mon Aug 28 14:46:17 CDT 1989 by John W. Eaton |
|
34 C (chpf127@emx.utexas.edu) to use D1MACH |
|
35 C |
|
36 C ********** |
|
37 C |
|
38 DOUBLE PRECISION D1MACH |
|
39 C |
|
40 IF ( I .EQ. 1 ) THEN |
|
41 DPMPAR = D1MACH(4) |
|
42 ELSEIF ( I . EQ. 2 ) THEN |
|
43 DPMPAR = D1MACH(1) |
|
44 ELSEIF ( I .EQ. 3 ) THEN |
|
45 DPMPAR = D1MACH(2) |
|
46 ENDIF |
|
47 C |
|
48 RETURN |
|
49 C |
|
50 C LAST CARD OF FUNCTION DPMPAR. |
|
51 C |
|
52 END |