License | GPL-3 |
---|---|
Maintainer | hackage@mail.kevinl.io |
Stability | experimental |
Safe Haskell | Safe |
Language | Haskell2010 |
This module contains convenience functions to
construct Sample
s or StochProcess
es corresponding
to several probability distributions.
It also contains functions that can be used for
running the constructed StochProcess
es and generating
datapoints, or sampling from a constructed Sample
.
Some examples for usage can be found here: http://kevinl.io/posts/2016-08-17-sampling-monad.html
- certain :: (RandomGen g, Sampleable d) => a -> Sample g d a
- uniform :: RandomGen g => [a] -> Sample g Distribution a
- discrete :: RandomGen g => [(a, Double)] -> Sample g Distribution a
- bernoulli :: RandomGen g => Double -> Sample g Distribution Bool
- normal :: RandomGen g => Mean -> StDev -> Sample g Distribution Double
- sample :: (RandomGen g, Sampleable d) => Sample g d a -> g -> (a, g)
- sample_ :: (RandomGen g, Sampleable d) => Sample g d a -> g -> a
- sampleN :: (RandomGen g, Sampleable d, Integral i) => i -> Sample g d a -> g -> Seq a
- sampleIO :: Sampleable d => Sample StdGen d a -> IO (a, StdGen)
- sampleIO_ :: Sampleable d => Sample StdGen d a -> IO a
- sampleION :: (Sampleable d, Integral i) => i -> Sample StdGen d a -> IO (Seq a)
- certainProcess :: Double -> StochProcess
- uniformProcess :: [Double] -> StochProcess
- discreteProcess :: [(Double, Double)] -> StochProcess
- normalProcess :: Mean -> StDev -> StochProcess
- runProcess :: StochProcess -> StdGen -> (Seq Double, StdGen)
- runProcess_ :: StochProcess -> StdGen -> Seq Double
- runProcessN :: Integral i => i -> StochProcess -> StdGen -> Seq (Seq Double)
- sampleProcess :: StochProcess -> StdGen -> (Double, StdGen)
- sampleProcess_ :: StochProcess -> StdGen -> Double
- sampleProcessN :: Integral i => i -> StochProcess -> StdGen -> Seq Double
- sampleProcessIO :: StochProcess -> IO (Double, StdGen)
- sampleProcessION :: Integral i => i -> StochProcess -> IO (Seq Double)
- module Data.Stochastic.Types
- module Data.Stochastic.Internal
Constructing a Sample
certain :: (RandomGen g, Sampleable d) => a -> Sample g d a Source #
Sample
for a distribution where we always sample
the same value.
uniform :: RandomGen g => [a] -> Sample g Distribution a Source #
Sample
for a uniform distribution
given a list of provided values.
bernoulli :: RandomGen g => Double -> Sample g Distribution Bool Source #
Sample
for a Bernoulli distribution with given
probability to produce True.
Sampling from a Sample
sampleN :: (RandomGen g, Sampleable d, Integral i) => i -> Sample g d a -> g -> Seq a Source #
Get a certain number of samples from the Sample
sampleION :: (Sampleable d, Integral i) => i -> Sample StdGen d a -> IO (Seq a) Source #
Produce several samples from the Sample
using the random number generator
in the IO monad.
Constructing a StochProcess
certainProcess :: Double -> StochProcess Source #
StochProcess
sample for a distribution over Double
s that always
returns the same value when sampled, and records that value.
uniformProcess :: [Double] -> StochProcess Source #
StochProcess
sample for a uniform distribution over Double
s
that records the value sampled from it.
discreteProcess :: [(Double, Double)] -> StochProcess Source #
StochProcess
sample for a discrete distribution over Double
s
that records the value sampled from the normal distribution.
normalProcess :: Mean -> StDev -> StochProcess Source #
StochProcess
sample for a normal distribution that records
the value sampled from the normal distribution.
Running a StochProcess
runProcess :: StochProcess -> StdGen -> (Seq Double, StdGen) Source #
Run a StochProcess
computation and retrieve the recorded
results along with a new RandomGen
.
runProcess_ :: StochProcess -> StdGen -> Seq Double Source #
Run a StochProcess
computation and retrieve the recorded
results, discarding the new RandomGen
.
runProcessN :: Integral i => i -> StochProcess -> StdGen -> Seq (Seq Double) Source #
Runs a StochProcess
computation a given number times
and produces a Sequence
of Sequence
s of Doubles.
Sampling from a StochProcess
sampleProcess :: StochProcess -> StdGen -> (Double, StdGen) Source #
Sample from the StochProcess
computation, returning
the value of type a and a new RandomGen
.
sampleProcess_ :: StochProcess -> StdGen -> Double Source #
Sample from the StochProcess
computation, discarding
the new RandomGen
.
sampleProcessN :: Integral i => i -> StochProcess -> StdGen -> Seq Double Source #
Get a certain number of samples from the StochProcess
computation.
sampleProcessIO :: StochProcess -> IO (Double, StdGen) Source #
Sample from the StochProcess
computation
in the IO monad, returning a Double
and a RandomGen
created in the IO monad.
sampleProcessION :: Integral i => i -> StochProcess -> IO (Seq Double) Source #
Get a certain number of samples from the StochProcess
computation in the IO monad.
The types
module Data.Stochastic.Types
Internal functions for your viewing pleasure
module Data.Stochastic.Internal