[Haskell-cafe] Re: Sinus in Haskell

Jon Fairbairn jon.fairbairn at cl.cam.ac.uk
Fri Nov 9 15:19:10 EST 2007


Hans van Thiel <hthiel.char at zonnet.nl> writes:

> On Fri, 2007-11-09 at 14:30 -0500, Brent Yorgey wrote:
>> 
>> On Nov 9, 2007 2:08 PM, Hans van Thiel <hthiel.char at zonnet.nl> wrote:
>>         Hello All,
>>         Can anybody explain the results for 1.0, 2.0 and 3.0 times pi
>>         below?
>>         GHCi yields the same results. I did search the Haskell report
>>         and my
>>         text books, but to no avail. Thanks in advance,
>>         Hans van Thiel 
>>         
>>         Hugs> sin (0.0 * pi)
>>         0.0
>>         Hugs> sin (0.5 * pi)
>>         1.0
>>         Hugs> sin (1.0 * pi)
>>         1.22460635382238e-16
>>         Hugs> sin (1.5 * pi)
>>         -1.0
>>         Hugs> sin (2.0 * pi)
>>         -2.44921270764475e-16
>>         Hugs> sin ( 2.5 * pi)
>>         1.0
>>         Hugs> sin (3.0 * pi)
>>         3.67381906146713e-16
>>         Hugs>

> All right, I'd have guessed that myself, if it hadn't been for the exact
> computation results for 0, 0.5, 1.5 and 2.5 times pi. So the rounding
> errors are only manifest for 1.0, 2.0 and 3.0 times pi. But look at the
> difference between sin (1.0 * pi) and sin (3.0 * pi). That's not a
> rounding error, but a factor 3 difference.. and sin (as well as cos) are
> modulo (2 * pi), right? 

but sin theta ~ theta for small theta, and the angle you're
getting the (approximate) sine of is the difference between
2*pi and 2π. So I'm not too surprised that we have -2*sin pi
= sin (2*pi)

-- 
Jón Fairbairn                                 Jon.Fairbairn at cl.cam.ac.uk



More information about the Haskell-Cafe mailing list