Subject: RE: 1.5.24: sin() bug
From: "Dave Korn" <[email-masked]>
To: <[email-masked]>
Cc: <[email-masked]>
Date: Wed, 29 Aug 2007 19:22:09 +0100
List-Id: <cygwin.cygwin.com>

On 29 August 2007 18:31, Brian Dessent wrote:

> 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.

  Ah, I see.
 
>>   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

  This looks more and more like an extended precision issue.  Good ol' PR323!
I'll dig out my fpctl macro and have a try...

    cheers,
      DaveK
-- 
Can't think of a witty .sigline today....

--
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/