Mark Dickinson <[email protected]> added the comment:
[Steven]
> I know Wikipedia isn't a primary source, but it says IEEE 754 recommends
> nextafter(x, y).
Um. Then it sounds as though Wikipedia is out of date. Which page was this on?
IEEE 754-1985 did recommend nextafter, but only in Annex A, which is not
strictly part of the standard. ("This Appendix is not a part of ANSI/IEEE Std
754-1985, IEEE Standard for Binary Floating-Point Arithmetic [...]")
IEEE 754-2008 (section 5.3.1) added nextUp and nextDown as required operations,
and the text for those operations is word-for-word identical in the current
IEEE 754-2019, save for "sNaNs" being spelled out as "signaling NaNs".
> My understanding of IEEE-754 is that the functionality is required, not the
> specific API. That is, it's not required to have literally two functions
> called "nextUp" and "nextDown", so long as you can get the next larger and
> next smaller float.
Agreed. It's not really spelled out in the standard exactly what "conformance"
would mean, but I agree that providing nextafter should be sufficient if we
want to claim that Python supports the nextUp and nextDown operations.
Not that Python makes any claim to conform with IEEE 754 anyway, but I think
it's still a useful standard to consider when we're choosing what to do in the
math module.
I guess if we *wanted* to claim strict conformance with IEEE 754 (which we
don't, right now), we'd probably also want to add a note in the docs explaining
how nextUp and nextDown are represented in terms of nextafter. But that seems a
bit redundant to me.
----------
_______________________________________
Python tracker <[email protected]>
<https://bugs.python.org/issue39288>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe:
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com