[PATCH] Fix cexp when both real and imaginary parts of x are non-finite
Joseph S. Myers
joseph@codesourcery.com
Tue Jul 31 22:07:00 GMT 2012
On Tue, 31 Jul 2012, Mark H Weaver wrote:
> The default implementations of cexp, cexpf, and cexpl are broken when
> the real part of x is infinite and the imaginary part is non-finite
> (infinite or NaN).
>
> In these cases, the complex phase of the result is indeterminate, and
> thus the only two sensible results are 0.0 + i*0.0 (when the real part
> of x is negative infinity) or NaN + i*NaN in all other cases.
I believe the present results are in accordance with what C99 and C11
(Annex G) specify (which includes that certain signs in the result are
unspecified), and that the testcases in libm-test.inc properly verify the
C99 specifications (hence for example using IGNORE_ZERO_INF_SIGN in
certain cases). I'd have expected your patch to fail testing.
--
Joseph S. Myers
joseph@codesourcery.com
More information about the Libc-alpha
mailing list