For the four defined subtypes of float, it is true that intermediate between the type short-float and the type long-float are the type single-float and the type double-float. The precise definition of these categories is implementation-defined. The precision (measured in "bits", computed as p * log2b
) and the exponent size (also measured in "bits," computed as log2(n + 1)
, where n
is the maximum exponent value) is recommended to be at least as great as the values in the below table. Each of the defined subtypes of float might or might not have a minus zero.
Format | Minimum Precision | Minimum Exponent Size |
---|---|---|
Short | 13 bits | 5 bits |
Single | 24 bits | 8 bits |
Double | 50 bits | 8 bits |
Long | 50 bits | 8 bits |
There can be fewer than four internal representations for floats. If there are fewer distinct representations, the following rules apply:
Abbreviating.
short-lower-limit, short-upper-limit - interval designators for type short-float. The default for each lower-limit and upper-limit is the symbol *.
single-lower-limit, single-upper-limit - interval designators for type single-float. The default for each lower-limit and upper-limit is the symbol *.
double-lower-limit, double-upper-limit - interval designators for type double-float. The default for each lower-limit and upper-limit is the symbol *.
long-lower-limit, long-upper-limit - interval designators for type long-float. The default for each lower-limit and upper-limit is the symbol *.
Each of these denotes the set of floats of the indicated type that are on the interval specified by the interval designators.
\issue{REAL-NUMBER-TYPE:X3J13-MAR-89} \issue{REAL-NUMBER-TYPE:X3J13-MAR-89} \issue{REAL-NUMBER-TYPE:X3J13-MAR-89} \issue{REAL-NUMBER-TYPE:X3J13-MAR-89}