-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/


-- | Backport ieee754 float double combinators to older binary
--   
--   Backport ieee754 float double combinators to older binary
@package binary-ieee754
@version 0.1.0.0


-- | This module backports ieee754 double/float combinators from binary
--   0.8.4 to older version, and simply re-export these combinators for
--   binary &gt;= 0.8.4. You can safely import this module alongside
--   <a>Data.Binary.Get</a> and <a>Data.Binary.Put</a>.
--   
--   Implements casting via a 1-elemnt STUArray, as described in
--   <a>http://stackoverflow.com/a/7002812/263061</a>.
module Data.Binary.IEEE754

-- | Reinterpret-casts a <a>Float</a> to a <a>Word32</a>.
floatToWord :: Float -> Word32

-- | Reinterpret-casts a <a>Word32</a> to a <a>Float</a>.
wordToFloat :: Word32 -> Float

-- | Reinterpret-casts a <a>Double</a> to a <a>Word64</a>.
doubleToWord :: Double -> Word64

-- | Reinterpret-casts a <a>Word64</a> to a <a>Double</a>.
wordToDouble :: Word64 -> Double

-- | Read a <a>Float</a> in big endian IEEE-754 format.
getFloatbe :: Get Float

-- | Read a <a>Float</a> in little endian IEEE-754 format.
getFloatle :: Get Float

-- | Read a <a>Float</a> in IEEE-754 format and host endian.
getFloathost :: Get Float

-- | Read a <a>Double</a> in big endian IEEE-754 format.
getDoublebe :: Get Double

-- | Read a <a>Double</a> in little endian IEEE-754 format.
getDoublele :: Get Double

-- | Read a <a>Double</a> in IEEE-754 format and host endian.
getDoublehost :: Get Double

-- | Write a <a>Float</a> in big endian IEEE-754 format.
putFloatbe :: Float -> Put

-- | Write a <a>Float</a> in little endian IEEE-754 format.
putFloatle :: Float -> Put

-- | Write a <a>Float</a> in native in IEEE-754 format and host endian.
putFloathost :: Float -> Put

-- | Write a <a>Double</a> in big endian IEEE-754 format.
putDoublebe :: Double -> Put

-- | Write a <a>Double</a> in little endian IEEE-754 format.
putDoublele :: Double -> Put

-- | Write a <a>Double</a> in native in IEEE-754 format and host endian.
putDoublehost :: Double -> Put
