5 /* Edited 12/22/97 by Ben Pfaff for PSPP. */
9 -----------------------------------------------------------------------
11 IPMPAR PROVIDES THE INTEGER MACHINE CONSTANTS FOR THE COMPUTER
12 THAT IS USED. IT IS ASSUMED THAT THE ARGUMENT I IS AN INTEGER
13 HAVING ONE OF THE VALUES 1-10. IPMPAR(I) HAS THE VALUE ...
17 ASSUME INTEGERS ARE REPRESENTED IN THE N-DIGIT, BASE-A FORM
19 SIGN ( X(N-1)*A**(N-1) + ... + X(1)*A + X(0) )
21 WHERE 0 .LE. X(I) .LT. A FOR I=0,...,N-1.
23 IPMPAR(1) = A, THE BASE.
25 IPMPAR(2) = N, THE NUMBER OF BASE-A DIGITS.
27 IPMPAR(3) = A**N - 1, THE LARGEST MAGNITUDE.
29 FLOATING-POINT NUMBERS.
31 IT IS ASSUMED THAT THE SINGLE AND DOUBLE PRECISION FLOATING
32 POINT ARITHMETICS HAVE THE SAME BASE, SAY B, AND THAT THE
33 NONZERO NUMBERS ARE REPRESENTED IN THE FORM
35 SIGN (B**E) * (X(1)/B + ... + X(M)/B**M)
37 WHERE X(I) = 0,1,...,B-1 FOR I=1,...,M,
38 X(1) .GE. 1, AND EMIN .LE. E .LE. EMAX.
40 IPMPAR(4) = B, THE BASE.
44 IPMPAR(5) = M, THE NUMBER OF BASE-B DIGITS.
46 IPMPAR(6) = EMIN, THE SMALLEST EXPONENT E.
48 IPMPAR(7) = EMAX, THE LARGEST EXPONENT E.
52 IPMPAR(8) = M, THE NUMBER OF BASE-B DIGITS.
54 IPMPAR(9) = EMIN, THE SMALLEST EXPONENT E.
56 IPMPAR(10) = EMAX, THE LARGEST EXPONENT E.
58 -----------------------------------------------------------------------
60 TO DEFINE THIS FUNCTION FOR THE COMPUTER BEING USED REMOVE
61 THE COMMENT DELIMITORS FROM THE DEFINITIONS DIRECTLY BELOW THE NAME
64 -----------------------------------------------------------------------
66 IPMPAR IS AN ADAPTATION OF THE FUNCTION I1MACH, WRITTEN BY
67 P.A. FOX, A.D. HALL, AND N.L. SCHRYER (BELL LABORATORIES).
68 IPMPAR WAS FORMED BY A.H. MORRIS (NSWC). THE CONSTANTS ARE
69 FROM BELL LABORATORIES, NSWC, AND OTHER SOURCES.
71 -----------------------------------------------------------------------
72 .. Scalar Arguments ..
80 imach[2] = sizeof (long) * 8 - 1;
92 #error Please define machine-specific constants for your machine.