[cfp-interest 4006] Action: range of representble values, revisited

Jerome Coonen jcoonen at gmail.com
Wed Sep 23 12:40:18 PDT 2026


We have an outstanding action item regarding the language around "range of
representable values" in the standard. This note describes the issue and
proposes a fix for further discussion.

The phrase "range of representable values" occurs 11 times in draft n3685.
The first (5.3.5.3.3p19) and last (F.2.2p1) deal specifically with
floating-point types and are problematical. The second through tenth
instances refer in some cases to integer types and in others generically to
floating and integer types. They convey the clear intent that "range of
representable values" refers to the collection of all representable values.

Here is the proposal to simplify and clarify this language. First 5.3.5.3.3p19
from:

The minimum range of representable values for a floating type is the most
negative finite floating-point
number representable in that type through the most positive finite
floating-point number representable in that type. In addition, if negative
infinity is representable in a type, the range of that type is extended to
all negative real numbers; likewise, if positive infinity is representable
in a type, the range of that type is extended to all positive real numbers.

To:

The range of representable values for a floating type is the collection of
representable finite, infinite, and NaN values.

Then F.2.2p1 from:

As negative and positive infinity are representable in ISO/IEC 60559
formats, all real numbers lie
within the range of representable values (5.3.5.3.3).

As negative infinity, positive infinity, and NaNs are representable in
ISO/IEC 60559 formats, they lie within the range of representable values
(5.3.5.3.3).


Summary comments:
1) The concept of "range of representable values" is not a core definition
in the standard. In the few places it's used, the meaning is "set of
representable values".

2) The concept is introduced for floating types in 5.3.5.3.3
Characteristics of floating types <float.h>; and for integer types in 6.2.5
Types. Why not in 5.3.5.3.2 Characteristics of integer types <limits.h> and
<stdint.h>?

3) The meaning of "minimum" in "minimum range of ..." is unclear and seems
never to matter. The range is the range. The current verbiage is redundant
with the more specific model description given earlier in the draft, so it
adds no value.

4) The language about the range including "all real numbers" when
infinities are defined is mistaken and, in any case, out of place. This
small slice of the standard is about representable values.

4) For completeness, there is one instance of "range of representable
finite . . ." in H.3p7 Characteristics of <float.h>, with regard to the
largest power of 10 that is representable.

Perhaps we can discuss this in an upcoming meeting.

-Jerome Coonen
 650.996.4738 <(650)%20996-4738>
 jcoonen at gmail.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.oakapple.net/pipermail/cfp-interest/attachments/20260923/2300cc23/attachment.htm>


More information about the cfp-interest mailing list