
#14377: some results not expected with the addition -------------------------------------+------------------------------------- Reporter: vanto | Owner: (none) Type: bug | Status: closed Priority: normal | Milestone: Component: Compiler | Version: 8.2.1 Resolution: invalid | Keywords: Operating System: Unknown/Multiple | Architecture: Type of failure: Incorrect result | Unknown/Multiple at runtime | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Comment (by vanto): look at these calculations:\\ {{{ a) Prelude> (16.0/0.00002) 799999.9999999999 it :: Fractional a => a b) Prelude> fromRational(16.0/0.00002) 800000.0 it :: Fractional a => a c) Prelude> (16.0/0.00002)**2.1 2.491661103847512e12 it :: Floating a => a d) Prelude> (fromRational(16.0/0.00002))**2.1 2.491661103847512e12 it :: Floating a => a e) Prelude> 800000.0**2.1 2.491661103847512e12 it :: Floating a => a f) Prelude> let a = (16.0/0.00002) a :: Fractional a => a g) Prelude> a 799999.9999999999 it :: Fractional a => a h) Prelude> a**2.1 2.491661103847512e12 it :: Floating a => a }}} the reference calculation will be the expression in e). the results from c), d), e) and h) are equal and yet their calculations are different.\\ compare results from a) and b). the results are not identical. then compare the results from c) and d). the results are identical.\\ first observation: it is not obligatory to write fromRational in front of the numerical expression to have a correct result. second observation: look at f) and g) and the result in h) which is identical to the other results in c), d) or e).\\ as I said above, this demonstration shows that GHC calculates well but the result provided in a) does not conform to our view and this result does not come from an error due to the calculation of Floats. I think this can be fixed. No? -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/14377#comment:10 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler