Skip to content

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
Edited by gwright@antiope.com
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information