data-binary-ieee754-0.3: Parser/Serializer for IEEE-754 floating-point values

Data.Binary.IEEE754

Contents

Synopsis

Parsing

parseFloatBE :: RealFloat a => [Word8] -> aSource

Parse a big-endian byte list into a floating-point value.

parseFloatLE :: RealFloat a => [Word8] -> aSource

Parse a little-endian byte list into a floating-point value.

getFloat :: RealFloat a => ByteCount -> ([Word8] -> a) -> Get aSource

Parse a floating-point value of the given width (in bytes) from within a Get monad.

Serializing

Parser implementation

exponentWidth :: BitCount -> BitCountSource

Calculate the proper size of the exponent field, in bits, given the size of the full structure.

bitSlice :: [Word8] -> BitCount -> BitCount -> IntegerSource

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

splitRawIEEE754 :: [Word8] -> (Bool, Exponent, Fraction)Source

Split a raw bit array into (sign, exponent, fraction) components. These components have not been processed (unbiased, added significant bit, etc).

unbias :: Exponent -> BitCount -> ExponentSource

Unbias an exponent

mergeFloat :: Exponent -> Fraction -> BitCount -> (Integer, Int)Source

Parse values into a form suitable for encodeFloat sign exponent fraction width-in-bits -> fraction, exponent

Serializer implementation

encodeIntBE :: ByteCount -> Integer -> [Word8]Source

Encode an integer to a list of words, in big-endian format

encodeIntLE :: ByteCount -> Integer -> [Word8]Source

Encode an integer to a list of words, in little-endian format

Useful type aliases