Compare with the Cray C90 table, the Cray T3E table, the Digital Alpha table, and the NAG table.
INTEGER default
KIND number = 4
digits = 31
radix = 2
range = 9
huge = 2147483647
bit_size = 32
INTEGER int15 int31 int63
KIND number = 2 4 8
digits = 15 31 63
radix = 2 2 2
range = 4 9 18
huge = 32767 2147483647 9223372036854775807
bit_size = 16 32 64
LOGICAL default byte halfword word double
KIND number = 4 1 2 4 8
REAL single double quad default
KIND number = 4 8 16 4
digits = 24 53 107 24
maxexponent = 128 1024 1023 128
minexponent = -125 -1021 -915 -125
precision = 6 15 31 6
radix = 2 2 2 2
range = 37 307 275 37
epsilon = 0.11920929E-06 0.22204460E-15 0.12325952E-31 0.11920929E-06
tiny = 0.11754944E-37 0.22250739-307 0.18051944-275 0.11754944E-37
huge = 0.34028235E+39 0.17976931+309 0.89884657+308 0.34028235E+39
COMPLEX single double quad
KIND number = 4 8 16
precision = 6 15 31
range = 37 307 275
Note. According to the SGI man models the value of
minexponent in quad precision should be -967
instead of -915.
The small exponent range in quad precision is astonishing! Working with the methods from the introductory course in Numerical Methods, and with Fortran 90 but avoiding the intrinsics, I find that the exponent parameters maxexponent, minexponent, and range seem to be the same in quad precision as in double precision, but we do not get full quad precision outside the parameters above. The above table is therefore verified!
The SGI quad precision is very different from the Digital Alpha quad precision, which has a very large range. The reason is that with SGI the quad variables are represented as the sum or difference of two doubles, normalized so that the smaller double is <= 0.5 units in the last position of the larger.