random-fu-0.0.3.2: Random number generation

Data.Random.Internal.Words

Description

A few little functions I found myself writing inline over and over again.

Synopsis

Documentation

buildWord :: Word8 -> Word8 -> Word8 -> Word8 -> Word8 -> Word8 -> Word8 -> Word8 -> Word64Source

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.

wordToFloat :: Word64 -> FloatSource

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 -> DoubleSource

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.

wordToDoubleWithExcess :: Word64 -> (Double, Word64)Source

Same as wordToDouble, but also return the unused bits (as the 12 least significant bits of a Word64)