[PATCH] Optimize pow(x,0.0) = pow(1.0,y) = 1.0
Andreas Schwab
schwab@suse.de
Fri Feb 21 16:47:00 GMT 2003
Roger Sayle <roger@www.eyesopen.com> writes:
|> On Thu, 20 Feb 2003, Andrew Pinski wrote:
|> > Did you know that pow(0.0, 0.0) != 1.0?
|>
|> I'm using as reference "IA-64 and Elementary Functions: Speed and
|> Precision", by Peter Markstein, HP Professional Books, 2000.
|>
|> Section 12.6, entitled "Computing the Power Function" begins with
|> the paragraph.
|>
|> To demonstrate the care needed for the power function, and
|> the many special cases required by C99 in an IEEE 754
|> implementation, we present a double precision power routine.
|> C99 requires the following results from the power function:
|>
|> pow(x,+-0) returns 1 for any x, even a NaN.
|> ...
|> pow(+-0,y) raises the divide-by-zero exception and returns
|> +-Inf for y < 0 and an odd integer, or +Inf for
|> other y < 0.
|> pow(+-0,y) returns +-0 for y > 0 and an odd integer, or
|> +0 for other y > 0.
|>
|> I apologise that my reference is non-authorative. Can someone
|> confirm the wording in the actual ISO C99 specification?
The C99 wording is slightly different, but equivalent.
Andreas.
--
Andreas Schwab, SuSE Labs, schwab@suse.de
SuSE Linux AG, Deutschherrnstr. 15-19, D-90429 Nürnberg
Key fingerprint = 58CA 54C7 6D53 942B 1756 01D3 44D5 214B 8276 4ED5
"And now for something completely different."
More information about the Gcc-patches
mailing list