on 1.0.0.0 help sign in
typeable/aeson/tests/Functions.hs
17 lines 429 B history raw
1module Functions
2 (
3 approxEq
4 , approxEqWith
5 ) where
7import Prelude ()
8import Prelude.Compat
10approxEq :: (Fractional a, Ord a) => a -> a -> Bool
11approxEq = approxEqWith 1e-15 1e-15
13approxEqWith :: (Fractional a, Ord a) => a -> a -> a -> a -> Bool
14approxEqWith maxAbsoluteError maxRelativeError a b =
15 a == b || d < maxAbsoluteError ||
16 d / max (abs b) (abs a) <= maxRelativeError
17 where d = abs (a - b)