[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