Safe Haskell | Safe |
---|---|
Language | Haskell2010 |
Synopsis
- f32i08 :: Conn k Float (Extended Int8)
- f32i16 :: Conn k Float (Extended Int16)
- min32 :: Float -> Float -> Float
- max32 :: Float -> Float -> Float
- covers :: Float -> Float -> Bool
- ulp :: Float -> Float -> Maybe (Ordering, Word32)
- shift :: Int32 -> Float -> Float
- within :: Word32 -> Float -> Float -> Bool
- epsilon :: Float
Connections
min32 :: Float -> Float -> Float Source #
A NaN-handling min32 function.
min32 x NaN = x min32 NaN y = y
max32 :: Float -> Float -> Float Source #
A NaN-handling max32 function.
max32 x NaN = x max32 NaN y = y
covers :: Float -> Float -> Bool Source #
Covering relation on the N5 lattice of floats.
https://en.wikipedia.org/wiki/Covering_relation
>>>
covers 1 (shift 1 1)
True>>>
covers 1 (shift 2 1)
False
ulp :: Float -> Float -> Maybe (Ordering, Word32) Source #
Compute the signed distance between two floats in units of least precision.
>>>
ulp 1.0 (shift 1 1.0)
Just (LT,1)>>>
ulp (0.0/0.0) 1.0
Nothing
shift :: Int32 -> Float -> Float Source #
Shift a float by n units of least precision.
>>>
shift 1 0
1.0e-45>>>
shift 1 $ 0/0
NaN>>>
shift (-1) $ 0/0
NaN>>>
shift 1 $ 1/0
Infinity