1788 has needs that are provided by some other but not all
other floating-point designs:
- It needs representations of +Infinity and -Infinity, or some
alternate way of indicating those are the bounds.
- It needs the ability to round towards either +Infinity or
-Infinity or preferably both.
There are other floating-point formats that provide both of
those (eg, Intel 80-bit double extended). There are also recent
(eg, Cell SPU single precision , with no Infinities) and many
older formats (eg, IBM hex) that do/did not.
While 1788 mentions the possibility of the bounds being a 754
format, it doesn't require that, so isn't exactly "built on
754". Instead it's "built on several features 754 provides".
There are other things 1788 does not need, like having
exceptions set flags, not 754, and possibly trap as in most
systems using 754. Implementations may benefit from the ability
to suppress traps, which is not provided by some
alternate formats (eg, IBM hex). It also isn't helped by 0 times
Infinity = NaN, when what it needs is 0 times Infinity = 0
because an Infinity bound represents some almost infinite finite
number.
In some future revision we might want to be explicit about what
floating-point features 1788 needs or benefits from, with 754
mentioned only as a good example of formats providing those
features.
- Ian McIntosh IBM Canada Lab Compiler Back End Support and
Development