newlib: pow function can produce incorrect results.
Tim Prince
n8tm@aol.com
Thu Apr 19 03:19:00 GMT 2007
cygcary@yahoo.com wrote:
> I'm not certain if this is a newlib compilation flag
> problem, something that has been fixed in the 1.15
> version of newlib or just that newlib does things
> differently. Looking at the 1.15 code implies that
> some of these should work and the rest appear to be a
> deviation from other systems. I tested this on my RH
> Linux enterprise 3 machine and got the expected
> results for everything. My cygwin is up to date.
>
> First the ones that the 1.15 code says should work
> correctly: pow(1.0, nan) and pow(nan, 0.0) both should
> return 1.0. I'm currently getting nan for both of
> them.
>
> The other ones are pow(1.0, inf), pow(-1.0, inf),
> pow(1.0, -inf) and pow(-1.0, -inf) which I believe
> should all return 1.0 as well. They are also returning
> nan. What's interesting about these are that if you
> look at
> http://www.opengroup.org/onlinepubs/009695399/functions/pow.html
> it describes exactly how to handle every case of x ^
> inf except for the case of positive 1. Maybe they are
> assuming we all remember that 1 raised to any power is
> 1.
>
gcc has more serious conflicts with OpenGroup than this. For example,
PR31340 about the conflict between gcc testsuite cases and the OpenGroup
raise() function, causing unjustified failure on cygwin.
<probably more off topic on cygwin than newlib list>
I don't see how pow(-1., inf) could be defined this way, unless you take
the position that inf must have an even integral value. These don't
fall out as byproducts of a reasonable implementation; many of these
would require special casing. I didn't think newlib tries to implement
NaN or Inf behaviors anyway. Certainly, not much C99 is supported. Do
you have references on these points?
--
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
Problem reports: http://cygwin.com/problems.html
Documentation: http://cygwin.com/docs.html
FAQ: http://cygwin.com/faq/
More information about the Cygwin
mailing list