This is the mail archive of the newlib@sourceware.org mailing list for the newlib 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: bug in logarithm()


Martin Koeppe wrote:


Hi Jeff,

On Wed, 17 Oct 2007, Jeff Johnston wrote:

I just found a bug (or at least a discrepancy between doc and src) in newlib's libm, files mathfp/s_logarithm.c and mathfp/sf_logarithm.c:

There the docs at the beginning of the files say, log(0) returns -Inf, what the gawk test suite would also expect btw, but clearly the implementation doesn't return -Inf, but NaN instead.

Martin
A fix has been made. Thanks.

the fix isn't quite right. log(-1) should still return nan. In particular log(x) should return:


x==nan or x<0.0 : errno=EDOM, return nan

x==0.0 : errno=ERANGE, return -inf

x>0.0 : return log(x)


Oops, that was sloppy of me. I have fixed the functions to be consistent with the libm/math directory log functions and with glibc. The one difference from your chart above is that nan does not set errno. This is consistent with SUSV2 (optional) and C99 (unmentioned). I also added support for inf where inf is returned and again no error set.

-- Jeff J.
Martin


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