[cfp-interest 3601] fyi: note to 754 working group on substance
David Hough 754R work
754r at ucbtest.org
Wed Sep 17 08:25:05 PDT 2025
If we need Venn diagrams, something is wrong. Brian is just the messenger;
there is indeed a fair amount of inexact wording inherited from previous
editions that might well be cleaned up. Still, it hasn't noticeably hindered
adoption of the standard.
So if it is really important to clean that up,
I would suggest an enlarged version of my conceptual model for
thinking about formats and operations. This is not standards text; it's
a proposed mental model that standards text could be developed to reflect.
Section numbers are conceptual.
A CONFORMANCE FORMAT is one of binary32,64,128;decimal-64,128 specified
in section 3.x. [binary16 is an orthogonal issue which can be added
to the list later if desired]
An implementation conforms to the standard by supporting a conformance
format for all the operations specified in section 5.a, according to the
additional specifications in sections 4,6,7.
These are the SUPPORTED CONFORMANCE FORMATS.
An implementation may support more than one conformance format. Then
it shall also provide all the conversion operations specified in section 5.b
for conversions between all supported conformance formats.
An implementation may support COMPATIBLE FLOATING-POINT FORMATS,
for all the operations specified in section 5.a and 5.b,
according to the additional specifications in sections 4,6,7.
These are formats with signed zeros and infinities, quiet and signaling NaNs,
and numbers that are either a superset or subset of one of the
implementation's supported conformance formats.
These are the SUPPORTED COMPATIBLE FLOATING-POINT FORMATS.
The SUPPORTED FLOATING-POINT FORMATS consist of the supported conformance
formats and the supported compatible floating-point formats.
[These are intended to supersede storage, extended, and extendible formats].
An implementation may support COMPATIBLE INTEGER FORMATS,
for all the conversion operations specified in section 5.c between all
supported compatible integer formats and all supported floating-point formats.
Compatible integer formats contain a continuous subset of integer values,
and may contain signed zeros, infinities, and quiet and signaling NaNs.
These are the SUPPORTED INTEGER FORMATS.
An implementation may support COMPATIBLE CHARACTER FORMATS,
for all the conversion operations specified in section 5.d between all
compatible character formats and all supported floating-point formats.
These formats are character sequences that can represent signed
zeros, infinities, and quiet and signaling NaNs.
An implementation shall support a UNIVERSAL COMPATIBLE CHARACTER FORMAT,
for all the conversion operations specified in section 5.e between
it and all supported floating-point formats.
Conversion of any member
of any supported floating-point format to this character format,
and then back to the same supported floating-point format,
occurs without any change of representation or exception.
[This needn't be a big implementation burden - conversion to hex format
would suffice for conformance to this standard, but languages will
probably require more. Like conversion to and from decimal.]
The SUPPORTED CHARACTER FORMATS are the universal compatible character format
and any other supported compatible character formats.
David Hough
More information about the cfp-interest
mailing list