ghci displays negative floats incorrectly (was: Incorrect result from trig functions)
Trigonometric functions give the wrong answer in some cases. I have verified this bug on ghc-7.0.1 and ghc-7.0.1-rc1 on OS X 10.6 64 bit. (The bug may be limited to 64 bit platforms; I've not been able to reproduce it on ghc-6.10.4/OS X 10.5/32 bit.)
Here's an example (ghc-7.0.2-rc1, OS X 10.6, 64 bit):
plumbbob-franklin> inplace/bin/ghc-stage2 --interactive
GHCi, version 7.0.1.20101221: http://www.haskell.org/ghc/ :? for help
Loading package ghc-prim ... linking ... done.
Loading package integer-gmp ... linking ... done.
Loading package base ... linking ... done.
Loading package ffi-1.0 ... linking ... done.
Prelude> tan (0.5 * pi + 0.01)
-4.563974029425858e214
Prelude> tan (0.5 * pi - 0.01)
99.99666664444354
Prelude>
The first result (tan (0.5 * pi + 0.01)) is wrong. The correct answer is close to -100.0. The sin and cos functions also give incorrect answers in some cases, e.g.,
Prelude> cos (3.0 * pi)
-3.666940035476786e76
At first glance, the bug seems related to the normalization of the argument (i.e., mapping the argument to the range (-pi/2, pi/2)).
This is a nasty one. It ought to be fixed before 7.0.2 goes out.
Trac metadata
| Trac field | Value |
|---|---|
| Version | 7.0.1 |
| Type | Bug |
| TypeOfFailure | OtherFailure |
| Priority | normal |
| Resolution | Unresolved |
| Component | Compiler |
| Test case | |
| Differential revisions | |
| BlockedBy | |
| Related | |
| Blocking | |
| CC | |
| Operating system | Unknown/Multiple |
| Architecture | Unknown/Multiple |