random-fu-0.2: Random number generation

Data.Random.Sample

Synopsis

Documentation

class Sampleable d m t whereSource

A typeclass allowing Distributions and RVars to be sampled. Both may also be sampled via runRVar or runRVarT, but I find it psychologically pleasing to be able to sample both using this function, as they are two separate abstractions for one base concept: a random variable.

Methods

sampleFrom :: RandomSource m s => s -> d t -> m tSource

Directly sample from a distribution or random variable, using the given source of entropy.

Instances

Distribution d t => Sampleable d m t 
Lift m n => Sampleable (RVarT m) n t 

sample :: (Sampleable d m t, MonadRandom m) => d t -> m tSource

Sample a random variable using the default source of entropy for the monad in which the sampling occurs.

sampleState :: (Sampleable d (State s) t, MonadRandom (State s)) => d t -> s -> (t, s)Source

Sample a random variable in a "functional" style. Typical instantiations of s are System.Random.StdGen or System.Random.Mersenne.Pure64.PureMT.

sampleStateT :: (Sampleable d (StateT s m) t, MonadRandom (StateT s m)) => d t -> s -> m (t, s)Source

Sample a random variable in a "semi-functional" style. Typical instantiations of s are System.Random.StdGen or System.Random.Mersenne.Pure64.PureMT.