Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
Synopsis
- class Sampleable d m t where
- sampleFrom :: StatefulGen g m => g -> d t -> m t
- sample :: (Sampleable d m t, StatefulGen g m, MonadReader g m) => d t -> m t
- sampleState :: (Distribution d t, RandomGen g, MonadState g m) => d t -> m t
- samplePure :: (Distribution d t, RandomGen g) => d t -> g -> (t, g)
Documentation
class Sampleable d m t where Source #
A typeclass allowing Distribution
s and RVar
s 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.
sampleFrom :: StatefulGen g m => g -> d t -> m t Source #
Directly sample from a distribution or random variable, using the given source of entropy.
Instances
Distribution d t => Sampleable d m t Source # | |
Defined in Data.Random.Sample sampleFrom :: StatefulGen g m => g -> d t -> m t Source # | |
Lift m n => Sampleable (RVarT m) n t Source # | |
Defined in Data.Random.Sample sampleFrom :: StatefulGen g n => g -> RVarT m t -> n t Source # |
sample :: (Sampleable d m t, StatefulGen g m, MonadReader g m) => d t -> m t Source #
Sample a random variable using the default source of entropy for the monad in which the sampling occurs.
sampleState :: (Distribution d t, RandomGen g, MonadState g m) => d t -> m t Source #
Sample a random variable in a "functional" style. Typical instantiations
of s
are System.Random.StdGen
or System.Random.Mersenne.Pure64.PureMT
.
sample :: (Distribution d a, StatefulGen g m, MonadReader g m) => d t -> m t
sample thing gen = runStateGen gen (stateGen -> sampleFrom stateGen thing)
samplePure :: (Distribution d t, RandomGen g) => d t -> g -> (t, g) Source #
Sample a random variable in a "functional" style. Typical instantiations
of g
are System.Random.StdGen
or System.Random.Mersenne.Pure64.PureMT
.