Fw: [PATCH 0/3] libm: Clean up gamma functions
Joseph Myers
joseph@codesourcery.com
Fri Aug 28 18:29:35 GMT 2020
On Thu, 27 Aug 2020, Keith Packard via Newlib wrote:
> +INFINITY input and +INFINITY output generate *no* error
> presumably because there's an assumption that the computation
> which resulted in +INFINITY being provided to these functions
> already raised a FE_OVERFLOW exception, and perhaps an ERANGE
> errno.
The basic principles for infinite results from IEEE floating-point
operations and libm functions are that overflow is when infinity is an
*inexact* result from rounding (or, in some rounding modes, the largest
finite value results from rounding but rounding with infinite exponent
range would have produced an exponent that could not be represented in the
actual format). Divide by zero is when infinity is an *exact* result from
*finite* arguments. If infinity is an exact result and at least one
argument is infinite, there is no error or exception (unless it's some of
the new minimum/maximum operations in IEEE 754-2019 and the other argument
is a signaling NaN).
--
Joseph S. Myers
joseph@codesourcery.com
More information about the Newlib
mailing list