Submitter:Fred Tydeman
Submission Date: 2020-03-20
Document: WG14 N2506
Reference Documents:
Summary
The standard has a few incorrect, missing, or ambiguous statements about range errors in some of the math functions.
Does "too large" mean close to +infinity or +/-infinity?
Does "too small" mean close to -infinity or +/-zero?
Implementers have interpreted these terms differently.
Some implementations incorrectly treat f(infinity) as a range error based upon the text: A range error occurs if [the magnitude of] x is too large. While this is covered by 7.12.1#5 about overflows, the CFP group believes it is better to be explicit in each math function where it matters.
Possible Technical Corrigendum:
Change 7.12.1#5
... overflows if the magnitude ...to:
... overflows if the magnitude (absolute value) ...
Change 7.12.1#6
... underflows if the magnitude ...to:
... underflows if the magnitude (absolute value) ...
Add to 7.12.4.2#2
A range error occurs if nonzero x is too close to zero.
Add to 7.12.4.3#2
A range error occurs if nonzero x is too close to zero.
Add to 7.12.4.4#2
A range error occurs if x is positive and nonzero y/x is too close to zero.
Add to 7.12.4.6#2
A range error occurs if nonzero x is too close to zero.
Add to 7.12.4.7#2
A range error occurs if nonzero x is too close to zero.
Change 7.12.4.9#2
A range error occurs if the magnitude of nonzero x is too small.to:
A range error occurs if the magnitude of nonzero x is too small close to zero.
Change 7.12.4.10#2
A range error occurs if the magnitude of nonzero x is too small.to:
A range error occurs if the magnitude of nonzero x is too small close to zero.
Change 7.12.4.11#2
A range error occurs if x is positive and the magnitude of nonzero y/x is too small.to:
A range error occurs if x is positive and the magnitude of nonzero y/x is too small close to zero.
Add to 7.12.4.13#2
A range error occurs if nonzero x is too close to zero.
Add to 7.12.4.14#2
A range error occurs if nonzero x is too close to zero.
Add to 7.12.5.2#2
A range error occurs if nonzero x is too close to zero.
Add to 7.12.5.3#2
A range error occurs if nonzero x is too close to zero.
Change 7.12.5.4#2 from
A range error occurs if the magnitude of x is too large.
to
A range error occurs if the magnitude of finite x is too large.
Change 7.12.5.5#2 from
A range error occurs if the magnitude of x is too large.
to
A range error occurs if the magnitude of finite x is too large or if nonzero x is too close to zero.
Add to 7.12.5.6#2
A range error occurs if nonzero x is too close to zero.
Change 7.12.6.1#2 from
A range error occurs if the magnitude of x is too large.
to
A range error occurs if the magnitude of finite x is too large.
Change 7.12.6.2#2 from
A range error occurs if the magnitude of x is too large.
to
A range error occurs if the magnitude of finite x is too large.
Change 7.12.6.3#2 from
A range error occurs if finite x is too large or if the magnitude of nonzero x is too small.
to
A range error occurs if positive finite x is too large or if the magnitude of nonzero x is too small close to zero.
Change 7.12.6.4#2 from
A range error occurs if the magnitude of x is too large.
to
A range error occurs if the magnitude of finite x is too large.
Change 7.12.6.5#2 from
A range error occurs if the magnitude of x is too large or if the magnitude of nonzero x is too small.
to
A range error occurs if the magnitude of positive finite x is too large or if the magnitude of nonzero x is too small close to zero.
Change 7.12.6.6#2 from
A range error occurs if positive x is too large.252)
to
A range error occurs if positive finite x is too large or if nonzero x is too close to zero.252)
Change 7.12.6.9#2 from
A range error may occur.
to
A range error may occur occurs for some finite x, depending on p.
Change 7.12.6.13#2
A range error occurs if the magnitude of nonzero x is too small.to:
A range error occurs if the magnitude nonzero x is too small close to zero.
Add to 7.12.6.14#2
A range error occurs if nonzero x is too close to zero.
Add to 7.12.6.16#2
A range error occurs if nonzero x is too close to zero.
Change 7.12.6.19#2 from
A range error may occur.
to
A range error may occur occurs for some finite x, depending on n.
Change 7.12.7.2#2 from
A range error may occur if n is too large, depending on x.
to
A range error may occur occurs if positive finite x n is too large or if x is too near but not equal to -1, depending on n x.
Change 7.12.7.4#2 from
A range error may occur.
to
A range error may occur occurs for some finite arguments.
Change 7.12.7.5#2 from
A range error may occur.
to
A range error may occur ocurs if the magnitude of nonzero finite x is too large or too near zero, depending on y.
Change 7.12.7.6#2 from
A range error may occur.
to
A range error may occur occurs if the magnitude of nonzero finite x is too large or too near zero, depending on n.
Change 7.12.7.7#2 from
A range error may occur.
to
A range error may occur occurs if positive nonzero finite x is too large or too near zero, depending on y.
Change 7.12.7.8#2 from
A range error may occur if n is -1.
to
A range error may occur occurs if n is -1 and the magnitude of nonzero finite x is too large or too near zero .
Add to 7.12.8.1#2
A range error occurs if nonzero x is too close to zero.
Change 7.12.8.2#2
A range error occurs if positive x is too large.
to:
A range error occurs if positive finite x is too large.
Change 7.12.8.3#2
A range error occurs if positive x is too large.
to:
A range error occurs if positive finite x is too large.
Change 7.12.8.4#2
A range error occurs if the magnitude of x is too large and may occur if the magnitude of x is too small.
to:
A range error occurs for some negative finite x, and if the magnitude of positive finite x is too large or and may occur if the magnitude of nonzero x is too small close to zero.
Add to 7.12.10.1#2
A range error occurs if x is finite, both x and y are nonzero, and either is too close to zero.
Add to 7.12.10.2#2
A range error occurs if x is finite, both x and y are nonzero, and either is too close to zero.
Change 7.12.12.1#2
A range error may occur.
to:
A range error may occur occurs if positive finite x-y is too large or too close to zero.
Change 7.12.13.1#2
A range error may occur.
to:
A range error may occur occurs for some finite arguments.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4