This is the mail archive of the cygwin mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: newlib?: pow function can produce incorrect results.


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/


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]