| Safe Haskell | Safe-Inferred |
|---|---|
| Language | Haskell2010 |
MAlonzo.RTE.Float
Synopsis
- doubleEq :: Double -> Double -> Bool
- doubleLe :: Double -> Double -> Bool
- doubleLt :: Double -> Double -> Bool
- truncateDouble :: Double -> Double
- intToDouble :: Integral a => a -> Double
- doublePlus :: Double -> Double -> Double
- doubleMinus :: Double -> Double -> Double
- doubleTimes :: Double -> Double -> Double
- doubleNegate :: Double -> Double
- doubleDiv :: Double -> Double -> Double
- doublePow :: Double -> Double -> Double
- doubleSqrt :: Double -> Double
- doubleExp :: Double -> Double
- doubleLog :: Double -> Double
- doubleSin :: Double -> Double
- doubleCos :: Double -> Double
- doubleTan :: Double -> Double
- doubleASin :: Double -> Double
- doubleACos :: Double -> Double
- doubleATan :: Double -> Double
- doubleATan2 :: Double -> Double -> Double
- doubleSinh :: Double -> Double
- doubleCosh :: Double -> Double
- doubleTanh :: Double -> Double
- doubleASinh :: Double -> Double
- doubleACosh :: Double -> Double
- doubleATanh :: Double -> Double
- negativeZero :: Double
- positiveInfinity :: Double
- negativeInfinity :: Double
- nan :: Double
- isPosInf :: Double -> Bool
- isNegInf :: Double -> Bool
- isPosZero :: Double -> Bool
- isNegZero :: Double -> Bool
- doubleRound :: Double -> Maybe Integer
- doubleFloor :: Double -> Maybe Integer
- doubleCeiling :: Double -> Maybe Integer
- normaliseNaN :: Double -> Double
- doubleToWord64 :: Double -> Maybe Word64
- doubleDenotEq :: Double -> Double -> Bool
- doubleDenotOrd :: Double -> Double -> Ordering
- asFinite :: Double -> Maybe Double
- doubleToRatio :: Double -> (Integer, Integer)
- ratioToDouble :: Integer -> Integer -> Double
- doubleDecode :: Double -> Maybe (Integer, Integer)
- isSafeInteger :: Double -> Bool
- doubleRadix :: Integer
- doubleDigits :: Int
- doubleRange :: (Int, Int)
- minMantissa :: Integer
- maxMantissa :: Integer
- minExponent :: Integer
- maxExponent :: Integer
- doubleEncode :: Integer -> Integer -> Maybe Double
Documentation
truncateDouble :: Double -> Double #
intToDouble :: Integral a => a -> Double #
doublePlus :: Double -> Double -> Double #
doubleMinus :: Double -> Double -> Double #
doubleTimes :: Double -> Double -> Double #
doubleNegate :: Double -> Double #
doubleSqrt :: Double -> Double #
doubleASin :: Double -> Double #
doubleACos :: Double -> Double #
doubleATan :: Double -> Double #
doubleATan2 :: Double -> Double -> Double #
doubleSinh :: Double -> Double #
doubleCosh :: Double -> Double #
doubleTanh :: Double -> Double #
doubleASinh :: Double -> Double #
doubleACosh :: Double -> Double #
doubleATanh :: Double -> Double #
negativeZero :: Double #
doubleRound :: Double -> Maybe Integer #
doubleFloor :: Double -> Maybe Integer #
doubleCeiling :: Double -> Maybe Integer #
normaliseNaN :: Double -> Double #
doubleToWord64 :: Double -> Maybe Word64 #
doubleDenotEq :: Double -> Double -> Bool #
Denotational equality for floating point numbers, checks bitwise equality.
NOTE: Denotational equality distinguishes NaNs, so its results may vary depending on the architecture and compilation flags. Unfortunately, this is a problem with floating-point numbers in general.
doubleDenotOrd :: Double -> Double -> Ordering #
I guess "denotational orderings" are now a thing? The point is that we need an Ord instance which provides a total ordering, and is consistent with the denotational equality.
NOTE: The ordering induced via doubleToWord64 is total, and is consistent
with doubleDenotEq. However, it is *deeply* unintuitive. For one, it
considers all negative numbers to be larger than positive numbers.
asFinite :: Double -> Maybe Double #
Return Just x if it's a finite number, otherwise return Nothing.
doubleToRatio :: Double -> (Integer, Integer) #
Decode a Double to an integer ratio.
ratioToDouble :: Integer -> Integer -> Double #
Encode an integer ratio as a double.
doubleDecode :: Double -> Maybe (Integer, Integer) #
Decode a Double to its mantissa and its exponent, normalised such that the mantissa is the smallest possible number without loss of accuracy.
isSafeInteger :: Double -> Bool #
Checks whether or not the Double is within a safe range of operation.
doubleRadix :: Integer #
doubleDigits :: Int #
doubleRange :: (Int, Int) #
minMantissa :: Integer #
The smallest representable mantissa. Simultaneously, the smallest integer which can be represented as a Double without loss of precision.
maxMantissa :: Integer #
The largest representable mantissa. Simultaneously, the largest integer which can be represented as a Double without loss of precision.
minExponent :: Integer #
The largest representable exponent.
maxExponent :: Integer #
The smallest representable exponent.