-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/
-- | Non IEEE-754 compliant compile-time floating-point optimisations
--
-- The Numeric.FastMath module brings into scope RULES for
-- Floats and Doubles that rewrite x-x,
-- 0*x and x*0 to 0. This disagrees with
-- IEEE-754 when x is NaN, but is acceptable for most
-- applications.
--
-- Importing Numeric.FastMath.Infinitesimal also rewrites
-- 0/x to 0.
--
-- Optimisation (at least -O1) must be enabled for any RULES to
-- take effect.
@package fast-math
@version 0.1
-- | Also rewrite 0/x to +0, which should really be
-- -0 for negative x.
module Numeric.FastMath.Infinitesimal
-- | 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.
module Numeric.FastMath