fast-math-0.1: Non IEEE-754 compliant compile-time floating-point optimisations

Numeric.FastMath

Description

Compile-time optimisations for Float and Double that break IEEE-754 compatibility.

Namely, this otherwise empty module contains RULES that rewrite x-x, x*0 and 0*x to 0, which is incorrect (according to IEEE-754) when x is NaN.

At the time of writing, base-4.3.1.0:GHC/Base.lhs erroneously includes these rules for Floats, but not for Doubles. This has been reported as GHC bug #5178: http://hackage.haskell.org/trac/ghc/ticket/5178.