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: 1.5.24: sin() bug


Dave Korn wrote:

>   Since when was pi less than 2^-27?

This is a kernel sin, a function over the limited range [-pi/4, pi/4],
where the general case sin is reduced to kernel sin by the remainder of
modulus pi/2.

>   I think it may be an artefact of FP precision and/or rounding mode, but I'd
> need to do more experiments to make sure.  OTOH it could be an artifact of the
> printf %g specfier.  Like I said, more experimentation is needed!

A problem with the testcase is the .10.  It helps to expand that so that
you see the entire value.  Or use %a.  newlib returns 3CED1A62633145C0
whereas both MSVCRT and x86 linux seem to return 3CED1A6000000000.  It
sort of looks like a truncation problem but since glibc agrees with
msvcrt (shock!) I tend to think the latter is right.  The actual
mantissas are:

newlib 1.1101000110100110001001100011001100010100010111000000
other  1.1101000110100110000000000000000000000000000000000000

Brian


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