[GHC] #8780: abs for IEEE floating point is slightly wrong.

GHC ghc-devs at haskell.org
Thu Feb 13 10:41:47 UTC 2014


#8780: abs for IEEE floating point is slightly wrong.
------------------------------------+-------------------------------------
       Reporter:  augustss          |             Owner:
           Type:  bug               |            Status:  new
       Priority:  low               |         Milestone:
      Component:  Compiler          |           Version:  7.6.3
       Keywords:                    |  Operating System:  Unknown/Multiple
   Architecture:  Unknown/Multiple  |   Type of failure:  None/Unknown
     Difficulty:  Unknown           |         Test Case:
     Blocked By:                    |          Blocking:
Related Tickets:                    |
------------------------------------+-------------------------------------
 Evaluating abs(-0) gives the answer -0.  This unexpected since it breaks
 invariants like 1/(abs x) >= 0.  So abs(-0) should be 0.  This is also the
 norm for other languages.

 Together with this change, signum should also be changed so signum(-0) is
 -0.  This maintains the invariant abs x * signum x == x.

--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/8780>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler


More information about the ghc-tickets mailing list