Blame tests/Functions.hs

Packit 9a2dfb
module Functions
Packit 9a2dfb
    (
Packit 9a2dfb
      approxEq
Packit 9a2dfb
    , approxEqWith
Packit 9a2dfb
    ) where
Packit 9a2dfb
Packit 9a2dfb
import Prelude ()
Packit 9a2dfb
import Prelude.Compat
Packit 9a2dfb
Packit 9a2dfb
approxEq :: (Fractional a, Ord a) => a -> a -> Bool
Packit 9a2dfb
approxEq = approxEqWith 1e-15 1e-15
Packit 9a2dfb
Packit 9a2dfb
approxEqWith :: (Fractional a, Ord a) => a -> a -> a -> a -> Bool
Packit 9a2dfb
approxEqWith maxAbsoluteError maxRelativeError a b =
Packit 9a2dfb
    a == b || d < maxAbsoluteError ||
Packit 9a2dfb
    d / max (abs b) (abs a) <= maxRelativeError
Packit 9a2dfb
  where d = abs (a - b)