Types with approximate and exact equality comparisons.
Methods
(===) :: a -> a -> Boolinfix 4An exact equality comparison.
For real IEEE types, two values are equivalent in the following cases:
both values are
+0;both values are
-0;both values are nonzero and equal to each other (according to ==);
both values are
NaNwith the same payload and sign.
For complex IEEE types, two values are equivalent if their real and imaginary parts are equivalent.
(~==) :: a -> a -> Boolinfix 4An approximate equality comparison operator.
For real IEEE types, two values are approximately equal in the following cases:
at least half of their significand bits agree;
both values are less than epsilon;
both values are
NaN.
For complex IEEE types, two values are approximately equal in the followiing cases:
their magnitudes are approximately equal and the angle between them is less than
32*epsilon;both magnitudes are less than epsilon;
both have a
NaNreal or imaginary part.
Admitedly, the
32is a bit of a hack. Future versions of the library may switch to a more principled test of the angle.
Instances67AEq, …
AEq IntegerDefined in ieee754-0.8.0 · Data.AEqAEq CCharDefined in ieee754-0.8.0 · Data.AEqAEq CClockDefined in ieee754-0.8.0 · Data.AEqAEq CDoubleDefined in ieee754-0.8.0 · Data.AEqAEq CFloatDefined in ieee754-0.8.0 · Data.AEqAEq CIntDefined in ieee754-0.8.0 · Data.AEqAEq CIntMaxDefined in ieee754-0.8.0 · Data.AEqAEq CIntPtrDefined in ieee754-0.8.0 · Data.AEqAEq CLLongDefined in ieee754-0.8.0 · Data.AEqAEq CLongDefined in ieee754-0.8.0 · Data.AEqAEq CPtrdiffDefined in ieee754-0.8.0 · Data.AEqAEq CSCharDefined in ieee754-0.8.0 · Data.AEqAEq CShortDefined in ieee754-0.8.0 · Data.AEqAEq CSigAtomicDefined in ieee754-0.8.0 · Data.AEqAEq CSizeDefined in ieee754-0.8.0 · Data.AEqAEq CTimeDefined in ieee754-0.8.0 · Data.AEqAEq CUCharDefined in ieee754-0.8.0 · Data.AEqAEq CUIntDefined in ieee754-0.8.0 · Data.AEqAEq CUIntMaxDefined in ieee754-0.8.0 · Data.AEqAEq CUIntPtrDefined in ieee754-0.8.0 · Data.AEqAEq CULLongDefined in ieee754-0.8.0 · Data.AEqAEq CULongDefined in ieee754-0.8.0 · Data.AEqAEq CUShortDefined in ieee754-0.8.0 · Data.AEqAEq CWcharDefined in ieee754-0.8.0 · Data.AEqAEq IntPtrDefined in ieee754-0.8.0 · Data.AEqAEq WordPtrDefined in ieee754-0.8.0 · Data.AEqAEq Int16Defined in ieee754-0.8.0 · Data.AEqAEq Int32Defined in ieee754-0.8.0 · Data.AEqAEq Int64Defined in ieee754-0.8.0 · Data.AEqAEq Int8Defined in ieee754-0.8.0 · Data.AEqAEq Word16Defined in ieee754-0.8.0 · Data.AEqAEq Word32Defined in ieee754-0.8.0 · Data.AEqAEq Word64Defined in ieee754-0.8.0 · Data.AEqAEq Word8Defined in ieee754-0.8.0 · Data.AEqAEq BoolDefined in ieee754-0.8.0 · Data.AEqAEq CharDefined in ieee754-0.8.0 · Data.AEqAEq DoubleDefined in ieee754-0.8.0 · Data.AEqAEq FloatDefined in ieee754-0.8.0 · Data.AEqAEq IntDefined in ieee754-0.8.0 · Data.AEqAEq OrderingDefined in ieee754-0.8.0 · Data.AEqAEq WordDefined in ieee754-0.8.0 · Data.AEqAEq ()Defined in ieee754-0.8.0 · Data.AEqAEq (Complex CDouble)Defined in ieee754-0.8.0 · Data.AEqAEq (Complex CFloat)Defined in ieee754-0.8.0 · Data.AEqAEq (Complex Double)Defined in ieee754-0.8.0 · Data.AEqAEq (Complex Float)Defined in ieee754-0.8.0 · Data.AEqAEq (ForeignPtr a)Defined in ieee754-0.8.0 · Data.AEqAEq (FunPtr a)Defined in ieee754-0.8.0 · Data.AEqAEq (Ptr a)Defined in ieee754-0.8.0 · Data.AEqAEq (StablePtr a)Defined in ieee754-0.8.0 · Data.AEqAEq a => AEq (Maybe a)Defined in ieee754-0.8.0 · Data.AEqAEq a => AEq [a]Defined in ieee754-0.8.0 · Data.AEq(AEq a, AEq b) => AEq (Either a b)Defined in ieee754-0.8.0 · Data.AEq(AEq a, AEq b) => AEq (a, b)Defined in ieee754-0.8.0 · Data.AEq(AEq a, AEq b, AEq c) => AEq (a, b, c)Defined in ieee754-0.8.0 · Data.AEq(AEq a, AEq b, AEq c, AEq d) => AEq (a, b, c, d)Defined in ieee754-0.8.0 · Data.AEq(AEq a, AEq b, AEq c, AEq d, AEq e) => AEq (a, b, c, d, e)Defined in ieee754-0.8.0 · Data.AEq(AEq a, AEq b, AEq c, AEq d, AEq e, AEq f) => AEq (a, b, c, d, e, f)Defined in ieee754-0.8.0 · Data.AEq(AEq a, AEq b, AEq c, AEq d, AEq e, AEq f, AEq g) => AEq (a, b, c, d, e, f, g)Defined in ieee754-0.8.0 · Data.AEq(AEq a, AEq b, AEq c, AEq d, AEq e, AEq f, AEq g, AEq h) => AEq (a, b, c, d, e, f, g, h)Defined in ieee754-0.8.0 · Data.AEq(AEq a, AEq b, AEq c, AEq d, AEq e, AEq f, AEq g, AEq h, AEq i) => AEq (a, b, c, d, e, f, g, h, i)Defined in ieee754-0.8.0 · Data.AEq(AEq a, AEq b, AEq c, AEq d, AEq e, AEq f, AEq g, AEq h, AEq i, AEq j) => AEq (a, b, c, d, e, f, g, h, i, j)Defined in ieee754-0.8.0 · Data.AEq(AEq a, AEq b, AEq c, AEq d, AEq e, AEq f, AEq g, AEq h, AEq i, AEq j, AEq k) => AEq (a, b, c, d, e, f, g, h, i, j, k)Defined in ieee754-0.8.0 · Data.AEq(AEq a, AEq b, AEq c, AEq d, AEq e, AEq f, AEq g, AEq h, AEq i, AEq j, AEq k, AEq l) => AEq (a, b, c, d, e, f, g, h, i, j, k, l)Defined in ieee754-0.8.0 · Data.AEq(AEq a, AEq b, AEq c, AEq d, AEq e, AEq f, AEq g, AEq h, AEq i, AEq j, AEq k, AEq l, AEq m) => AEq (a, b, c, d, e, f, g, h, i, j, k, l, m)Defined in ieee754-0.8.0 · Data.AEq(AEq a, AEq b, AEq c, AEq d, AEq e, AEq f, AEq g, AEq h, AEq i, AEq j, AEq k, AEq l, AEq m, AEq n) => AEq (a, b, c, d, e, f, g, h, i, j, k, l, m, n)Defined in ieee754-0.8.0 · Data.AEq(AEq a, AEq b, AEq c, AEq d, AEq e, AEq f, AEq g, AEq h, AEq i, AEq j, AEq k, AEq l, AEq m, AEq n, AEq o) => AEq (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o)Defined in ieee754-0.8.0 · Data.AEq