short-float
:
short-float
,
float
,
real
,
number
,
t
single-float
:
single-float
,
float
,
real
,
number
,
t
double-float
:
double-float
,
float
,
real
,
number
,
t
long-float
:
long-float
,
float
,
real
,
number
,
t
For the four defined subtypes of type 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 plog2b)
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 next figure.
Each of the defined subtypes of type float
might or might not have a minus zero.
|
Figure 12.12: Recommended Minimum Floating-Point Precision and Exponent Size
There can be fewer than four internal representations for floats. If there are fewer distinct representations, the following rules apply:
single-float
.
In this representation, an object is simultaneously of types
single-float
, double-float
, short-float
,
and long-float
.
single-float
and
short-float
. An object is simultaneously
of types single-float
, double-float
, and long-float
.
single-float
and
double-float
. An object is simultaneously of types
single-float
and short-float
, or
double-float
and long-float
.
short-float
,
single-float
, and double-float
.
An object can simultaneously be of type double-float
and long-float
.
single-float
, double-float
,
and long-float
. An object can simultaneously
be of types single-float
and short-float
.
Abbreviating.
(short-float [short-lower-limit [short-upper-limit]]) (single-float [single-lower-limit [single-upper-limit]]) (double-float [double-lower-limit [double-upper-limit]]) (long-float [long-lower-limit [long-upper-limit]])
short-lower-limit, short-upper-limit—interval designators
for type short-float
.
The defaults for each of lower-limit and upper-limit is the symbol *.
single-lower-limit, single-upper-limit—interval designators
for type single-float
.
The defaults for each of lower-limit and upper-limit is the symbol *.
double-lower-limit, double-upper-limit—interval designators
for type double-float
.
The defaults for each of lower-limit and upper-limit is the symbol *.
long-lower-limit, long-upper-limit—interval designators
for type long-float
.
The defaults for each of 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.