Copyright | (c) Levent Erkok |
---|---|
License | BSD3 |
Maintainer | erkokl@gmail.com |
Stability | experimental |
Safe Haskell | None |
Language | Haskell2010 |
A library for formatting/analyzing FP and Integer values
Synopsis
- data FP = FP {}
- data Precision
- data IPrecision
- data Kind
- floatToFP :: Float -> FP
- doubleToFP :: Double -> FP
- stringToFP :: Precision -> String -> FP
- integerToFP :: Precision -> Integer -> FP
- displayFP :: FP -> String
- displayWord :: IPrecision -> Integer -> String
- floatToWord :: Float -> Word32
- wordToFloat :: Word32 -> Float
- doubleToWord :: Double -> Word64
- wordToDouble :: Word64 -> Double
Internal representation of a Floating-point numbers
Complete internal representation for a floating-point number
FP | |
|
Floating point precision
HP | Half precision; 16 bits = 1 sign + 5 exponent + 10 mantissa |
SP | Single precision; 32 bits = 1 sign + 8 exponent + 23 mantissa |
DP | Double precision; 64 bits = 1 sign + 11 exponent + 52 mantissa |
data IPrecision Source #
Integer/Word precision
W8 | 8-bit unsigned (byte) |
I8 | 8-bit signed |
W16 | 16-bit unsigned (word) |
I16 | 16-bit signed |
W32 | 32-bit unsigned (double-word) |
I32 | 32-bit signed |
W64 | 64-bit unsigned (quad-word) |
I64 | 64-bit signed |
Instances
Eq IPrecision Source # | |
Defined in Data.Numbers.CrackNum.Data (==) :: IPrecision -> IPrecision -> Bool # (/=) :: IPrecision -> IPrecision -> Bool # | |
Show IPrecision Source # | Show instance for integer-precisions |
Defined in Data.Numbers.CrackNum.Data showsPrec :: Int -> IPrecision -> ShowS # show :: IPrecision -> String # showList :: [IPrecision] -> ShowS # |
Kinds of floating point values
Creating FP values
doubleToFP :: Double -> FP Source #
Turn a Haskell double to the internal detailed FP representation
stringToFP :: Precision -> String -> FP Source #
Convert the given string to a IEEE number with the required precision
integerToFP :: Precision -> Integer -> FP Source #
Crack a Haskell Integer value as the given precision floating value. The Integer should be the value corresponding to the bit-pattern as the float is laid out in memory according to the IEEE rules.
Displaying FP and Int/Word values
displayFP :: FP -> String Source #
Display a Floating-point number in a nicely formatted way. (This function is also available
through the Show
instance for FP
, but is provided here for symmetry with displayWord
.)
displayWord :: IPrecision -> Integer -> String Source #
Display a Integer (signed/unsigned) number in a nicely formatted way