pcg-random-0.1.0.1: Haskell bindings to the PCG random number generator.

CopyrightCopyright (c) 2014, Christopher Chalmers <c.chalmers@me.com>
LicenseBSD3
MaintainerChristopher Chalmers <c.chalmers@me.com>
Stabilityexperimental
PortabilityCPP
Safe HaskellNone
LanguageHaskell2010

System.Random.PCG.Class

Contents

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.

Synopsis

Classes

class Monad m => Generator g m where Source

Methods

uniform1 :: (Word32 -> a) -> g -> m a Source

uniform2 :: (Word32 -> Word32 -> a) -> g -> m a Source

Instances

Generator Gen IO 
(PrimMonad m, (~) * s (PrimState m)) => Generator (Gen s) m 
(PrimMonad m, (~) * s (PrimState m)) => Generator (Gen s) m 
(PrimMonad m, (~) * s (PrimState m)) => Generator (Gen s) m 

class Variate a where Source

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.

Type restricted versions

uniformW8 :: Generator g m => g -> m Word8 Source

uniformI8 :: Generator g m => g -> m Int8 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

uniformF :: Generator g m => g -> m Float Source

uniformD :: Generator g m => g -> m Double Source

uniformBool :: Generator g m => g -> m Bool Source

Utilities

type family Unsigned a :: * Source

sysRandom :: IO Word64 Source

Get a random number from system source. If "/dev/urandom" is not found return inferior random number from time.