| Copyright | Copyright (c) 2014, Christopher Chalmers <c.chalmers@me.com> |
|---|---|
| License | BSD3 |
| Maintainer | Christopher Chalmers <c.chalmers@me.com> |
| Stability | experimental |
| Portability | CPP |
| Safe Haskell | None |
| Language | Haskell2010 |
System.Random.PCG.Class
Description
Classes for working with random numbers along with utility functions. In a future release this module may disappear and use another module for this functionality.
- class Monad m => Generator g m where
- class Variate a where
- uniformW8 :: Generator g m => g -> m Word8
- uniformW16 :: Generator g m => g -> m Word16
- uniformW32 :: Generator g m => g -> m Word32
- uniformW64 :: Generator g m => g -> m Word64
- uniformI8 :: Generator g m => g -> m Int8
- uniformI16 :: Generator g m => g -> m Int16
- uniformI32 :: Generator g m => g -> m Int32
- uniformI64 :: Generator g m => g -> m Int64
- uniformF :: Generator g m => g -> m Float
- uniformD :: Generator g m => g -> m Double
- uniformBool :: Generator g m => g -> m Bool
- type family Unsigned a :: *
- wordsTo64Bit :: Integral a => Word32 -> Word32 -> a
- wordToBool :: Word32 -> Bool
- wordToFloat :: Word32 -> Float
- wordsToDouble :: Word32 -> Word32 -> Double
- sysRandom :: IO Word64
Classes
Methods
uniform :: Generator g m => g -> m a Source
Generate a uniformly distributed random vairate.
- Use entire range for integral types.
- Use (0,1] range for floating types.
uniformR :: Generator g m => (a, a) -> g -> m a Source
Generate a uniformly distributed random vairate in the given range.
- Use inclusive range for integral types.
- Use (a,b] range for floating types.
Instances
| Variate Bool | |
| Variate Double | |
| Variate Float | |
| Variate Int | |
| Variate Int8 | |
| Variate Int16 | |
| Variate Int32 | |
| Variate Int64 | |
| Variate Word | |
| Variate Word8 | |
| Variate Word16 | |
| Variate Word32 | |
| Variate Word64 | |
| (Variate a, Variate b) => Variate (a, b) | |
| (Variate a, Variate b, Variate c) => Variate (a, b, c) | |
| (Variate a, Variate b, Variate c, Variate d) => Variate (a, b, c, d) |
Type restricted versions
uniformW16 :: Generator g m => g -> m Word16 Source
uniformW32 :: Generator g m => g -> m Word32 Source
uniformW64 :: Generator g m => g -> m Word64 Source
uniformI16 :: Generator g m => g -> m Int16 Source
uniformI32 :: Generator g m => g -> m Int32 Source
uniformI64 :: Generator g m => g -> m Int64 Source
uniformBool :: Generator g m => g -> m Bool Source
Utilities
wordsTo64Bit :: Integral a => Word32 -> Word32 -> a Source
wordToBool :: Word32 -> Bool Source
wordToFloat :: Word32 -> Float Source
wordsToDouble :: Word32 -> Word32 -> Double Source