| Safe Haskell | None |
|---|---|
| Language | Haskell98 |
Data.Random.Internal.Words
Description
A few little functions I found myself writing inline over and over again.
Synopsis
- buildWord16 :: Word8 -> Word8 -> Word16
- buildWord32 :: Word8 -> Word8 -> Word8 -> Word8 -> Word32
- buildWord32' :: Word16 -> Word16 -> Word32
- buildWord64 :: Word8 -> Word8 -> Word8 -> Word8 -> Word8 -> Word8 -> Word8 -> Word8 -> Word64
- buildWord64' :: Word16 -> Word16 -> Word16 -> Word16 -> Word64
- buildWord64'' :: Word32 -> Word32 -> Word64
- word32ToFloat :: Word32 -> Float
- word32ToFloatWithExcess :: Word32 -> (Float, Word32)
- wordToFloat :: Word64 -> Float
- wordToFloatWithExcess :: Word64 -> (Float, Word64)
- wordToDouble :: Word64 -> Double
- word32ToDouble :: Word32 -> Double
- wordToDoubleWithExcess :: Word64 -> (Double, Word64)
Documentation
buildWord16 :: Word8 -> Word8 -> Word16 Source #
Build a word out of 2 bytes. No promises are made regarding the order
in which the bytes are stuffed. Note that this means that a RandomSource
or MonadRandom making use of the default definition of getRandomWord, etc.,
may return different random values on different platforms when started
with the same seed, depending on the platform's endianness.
buildWord32 :: Word8 -> Word8 -> Word8 -> Word8 -> Word32 Source #
Build a word out of 4 bytes. No promises are made regarding the order
in which the bytes are stuffed. Note that this means that a RandomSource
or MonadRandom making use of the default definition of getRandomWord, etc.,
may return different random values on different platforms when started
with the same seed, depending on the platform's endianness.
buildWord32' :: Word16 -> Word16 -> Word32 Source #
buildWord64 :: Word8 -> Word8 -> Word8 -> Word8 -> Word8 -> Word8 -> Word8 -> Word8 -> Word64 Source #
Build a word out of 8 bytes. No promises are made regarding the order
in which the bytes are stuffed. Note that this means that a RandomSource
or MonadRandom making use of the default definition of getRandomWord, etc.,
may return different random values on different platforms when started
with the same seed, depending on the platform's endianness.
buildWord64' :: Word16 -> Word16 -> Word16 -> Word16 -> Word64 Source #
buildWord64'' :: Word32 -> Word32 -> Word64 Source #
word32ToFloat :: Word32 -> Float Source #
Pack the low 23 bits from a Word32 into a Float in the range [0,1).
Used to convert a stdUniform Word32 to a stdUniform Double.
word32ToFloatWithExcess :: Word32 -> (Float, Word32) Source #
Same as word32ToFloat, but also return the unused bits (as the 9
least significant bits of a Word32)
wordToFloat :: Word64 -> Float Source #
Pack the low 23 bits from a Word64 into a Float in the range [0,1).
Used to convert a stdUniform Word64 to a stdUniform Double.
wordToFloatWithExcess :: Word64 -> (Float, Word64) Source #
Same as wordToFloat, but also return the unused bits (as the 41
least significant bits of a Word64)
wordToDouble :: Word64 -> Double Source #
Pack the low 52 bits from a Word64 into a Double in the range [0,1).
Used to convert a stdUniform Word64 to a stdUniform Double.
word32ToDouble :: Word32 -> Double Source #
Pack a Word32 into a Double in the range [0,1). Note that a Double's
mantissa is 52 bits, so this does not fill all of them.
wordToDoubleWithExcess :: Word64 -> (Double, Word64) Source #
Same as wordToDouble, but also return the unused bits (as the 12
least significant bits of a Word64)