-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Parser/Serializer for IEEE-754 floating-point values -- -- Convert Float and Decimal values to/from raw octets. @package data-binary-ieee754 @version 0.3 module Data.Binary.IEEE754 -- | Parse a big-endian byte list into a floating-point value. parseFloatBE :: (RealFloat a) => [Word8] -> a -- | Parse a little-endian byte list into a floating-point value. parseFloatLE :: (RealFloat a) => [Word8] -> a getFloat16be :: Get Float getFloat16le :: Get Float getFloat32be :: Get Float getFloat32le :: Get Float getFloat64be :: Get Double getFloat64le :: Get Double -- | Parse a floating-point value of the given width (in bytes) from within -- a Get monad. getFloat :: (RealFloat a) => ByteCount -> ([Word8] -> a) -> Get a putFloat32be :: Float -> Put putFloat32le :: Float -> Put putFloat64be :: Double -> Put putFloat64le :: Double -> Put putFloat :: (RealFloat a) => ByteCount -> (ByteCount -> Integer -> [Word8]) -> a -> Put -- | Calculate the proper size of the exponent field, in bits, given the -- size of the full structure. exponentWidth :: BitCount -> BitCount -- | Considering a byte list as a sequence of bits, slice it from start -- inclusive to end exclusive, and return the resulting bit sequence as -- an integer bitSlice :: [Word8] -> BitCount -> BitCount -> Integer -- | Split a raw bit array into (sign, exponent, fraction) components. -- These components have not been processed (unbiased, added significant -- bit, etc). splitRawIEEE754 :: [Word8] -> (Bool, Exponent, Fraction) -- | Unbias an exponent unbias :: Exponent -> BitCount -> Exponent -- | Parse values into a form suitable for encodeFloat sign exponent -- fraction width-in-bits -> fraction, exponent mergeFloat :: Exponent -> Fraction -> BitCount -> (Integer, Int) bias :: Exponent -> BitCount -> Exponent -- | Encode an integer to a list of words, in big-endian format encodeIntBE :: ByteCount -> Integer -> [Word8] -- | Encode an integer to a list of words, in little-endian format encodeIntLE :: ByteCount -> Integer -> [Word8] floatToMerged :: (RealFloat a) => ByteCount -> a -> Integer mergeFloatBits :: BitCount -> BitCount -> Bool -> Fraction -> Exponent -> Integer floatComponents :: (RealFloat a) => ByteCount -> a -> (Bool, Fraction, Exponent) data Exponent data Fraction data BitCount data ByteCount instance Show ByteCount instance Eq ByteCount instance Num ByteCount instance Ord ByteCount instance Real ByteCount instance Enum ByteCount instance Integral ByteCount instance Show BitCount instance Eq BitCount instance Num BitCount instance Ord BitCount instance Real BitCount instance Enum BitCount instance Integral BitCount instance Show Fraction instance Eq Fraction instance Num Fraction instance Ord Fraction instance Real Fraction instance Enum Fraction instance Integral Fraction instance Bits Fraction instance Show Exponent instance Eq Exponent instance Num Exponent instance Ord Exponent instance Real Exponent instance Enum Exponent instance Integral Exponent instance Bits Exponent