on 1.4.5.0 help sign in
typeable/aeson/tests/Functions.hs
18 lines 447 B history raw
1{-# LANGUAGE NoImplicitPrelude #-}
3module Functions
4 (
5 approxEq
6 , approxEqWith
7 ) where
9import Prelude.Compat
11approxEq :: (Fractional a, Ord a) => a -> a -> Bool
12approxEq = approxEqWith 1e-15 1e-15
14approxEqWith :: (Fractional a, Ord a) => a -> a -> a -> a -> Bool
15approxEqWith maxAbsoluteError maxRelativeError a b =
16 a == b || d < maxAbsoluteError ||
17 d / max (abs b) (abs a) <= maxRelativeError
18 where d = abs (a - b)