Stability | experimental |
---|---|
Maintainer | Patrick Perry <patperry@gmail.com> |
A monad and monad transformer for monte carlo computations built on top of the functions in the GNU Scientific Library.
- data MC a
- runMC :: MC a -> RNG -> (a, RNG)
- evalMC :: MC a -> RNG -> a
- execMC :: MC a -> RNG -> RNG
- data MCT m a
- runMCT :: Monad m => MCT m a -> RNG -> m (a, RNG)
- evalMCT :: Monad m => MCT m a -> RNG -> m a
- execMCT :: Monad m => MCT m a -> RNG -> m RNG
- data RNG
- type Seed = Word64
- mt19937 :: Seed -> RNG
- mt19937WithState :: [Word8] -> RNG
- rngName :: RNG -> String
- rngSize :: RNG -> Int
- rngState :: RNG -> [Word8]
- module Control.Monad.MC.Class
The Monte Carlo monad
A Monte Carlo monad with an internal random number generator.
runMC :: MC a -> RNG -> (a, RNG)Source
Run this Monte Carlo monad with the given initial random number generator, getting the result and the new random number generator.
evalMC :: MC a -> RNG -> aSource
Evaluate this Monte Carlo monad and throw away the final random number
generator. Very much like fst
composed with runMC
.
execMC :: MC a -> RNG -> RNGSource
Exicute this Monte Carlo monad and return the final random number
generator. Very much like snd
composed with runMC
.
The Monte Carlo monad transformer
A parameterizable Monte Carlo monad for encapsulating an inner monad.
MonadTrans MCT | |
MonadReader r m => MonadReader r (MCT m) | |
MonadState s m => MonadState s (MCT m) | |
MonadError e m => MonadError e (MCT m) | |
MonadWriter w m => MonadWriter w (MCT m) | |
Monad m => Monad (MCT m) | |
Monad m => Functor (MCT m) | |
MonadPlus m => MonadPlus (MCT m) | |
MonadCont m => MonadCont (MCT m) | |
MonadIO m => MonadIO (MCT m) | |
Monad m => MonadMC (MCT m) | |
Monad m => HasRNG (MCT m) |
Pure random number generator creation
Get a Mersenne Twister random number generator seeded with the given value.
mt19937WithState :: [Word8] -> RNGSource
Get a Mersenne Twister seeded with the given state.
Overloaded Monte Carlo monad interface
module Control.Monad.MC.Class