| Safe Haskell | Safe |
|---|---|
| Language | Haskell2010 |
Data.Order.Double
Contents
Synopsis
- open :: Double -> Double -> Interval Double
- openl :: Double -> Double -> Interval Double
- openr :: Double -> Double -> Interval Double
- covers :: Double -> Double -> Bool
- ulp :: Double -> Double -> Maybe (Ordering, Word64)
- shift :: Int64 -> Double -> Double
- within :: Word64 -> Double -> Double -> Bool
- lower64 :: Preorder a => Double -> (Double -> a) -> a -> Double
- upper64 :: Preorder a => Double -> (Double -> a) -> a -> Double
- minimal :: Double
- maximal :: Double
- epsilon :: Double
Documentation
open :: Double -> Double -> Interval Double Source #
Construnct an open interval.
>>>contains 1 $ open 1 2False>>>contains 2 $ open 1 2False
openl :: Double -> Double -> Interval Double Source #
Construnct a half-open interval.
>>>contains 1 $ openl 1 2False>>>contains 2 $ openl 1 2True
openr :: Double -> Double -> Interval Double Source #
Construnct a half-open interval.
>>>contains 1 $ openr 1 2True>>>contains 2 $ openr 1 2False
covers :: Double -> Double -> Bool Source #
Covering relation on the N5 lattice of doubles.
https://en.wikipedia.org/wiki/Covering_relation
>>>covers 1 (shift 1 1)True>>>covers 1 (shift 2 1)False
ulp :: Double -> Double -> Maybe (Ordering, Word64) Source #
Compute the signed distance between two doubles in units of least precision.
>>>ulp 1.0 (shift 1 1.0)Just (LT,1)>>>ulp (0.0/0.0) 1.0Nothing
shift :: Int64 -> Double -> Double Source #
Shift by n units of least precision.
>>>shift 1 01.0e-45>>>shift 1 $ 0/0NaN>>>shift (-1) $ 0/0NaN>>>shift 1 $ 1/0Infinity
within :: Word64 -> Double -> Double -> Bool Source #
Compare two double-precision floats for approximate equality.
Required accuracy is specified in units of least precision.
See also https://randomascii.wordpress.com/2012/02/25/comparing-floating-point-numbers-2012-edition/.
Maximum finite value.
>>>maximal1.7976931348623157e308>>>shift 1 maximalInfinity>>>shift (-1) $ negate maximal-Infinity
Difference between 1 and the smallest representable value greater than 1.
epsilon = shift 1 1 - 1
>>>epsilon2.220446049250313e-16