This is the mail archive of the
cygwin
mailing list for the Cygwin project.
Re: newlib?: pow function can produce incorrect results.
- From: "Lev Bishop" <lev dot bishop at gmail dot com>
- To: cygwin at cygwin dot com
- Date: Wed, 2 May 2007 10:58:22 -0400
- Subject: Re: newlib?: pow function can produce incorrect results.
- References: <548611.6765.qm@web59105.mail.re1.yahoo.com>
On 5/1/07, Cary R. wrote:
Patch generated and applied to newlib CVS. As an added bonus I fixed a
few other inconsistencies in acos(), asin(), log() and log10().
Just for the benefit of anyone else investigating this kind of thing
in the future, because I got confused by it and had to do some
searching, the "pow(x,0)=1, even for x=NaN" and "pow(-1,+-inf)=1"
rules are cases where the (freely available) earlier public drafts of
C99 differ from the final version of the standard (which you have to
purchase). This has confused other projects also, see eg:
http://lists.debian.org/debian-glibc/2003/03/msg00223.html
Other potentially controversial special cases (may or may not be
handled correctly by newlib -- I didn't check) are:
atan2(+-0,-0)=+-pi
atan2(+-0,+0)=+-0
hypot(+-inf,y)=+inf, even for y=NaN
fmax(x,NaN)=fmax(NaN,x)=fmin(x,NaN)=fmin(NaN,x)=x
--
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/