| License | GPL-3 |
|---|---|
| Maintainer | hackage@mail.kevinl.io |
| Stability | experimental |
| Safe Haskell | Safe |
| Language | Haskell2010 |
Data.Stochastic
Contents
Description
This module contains convenience functions to
construct Samples or StochProcesses corresponding
to several probability distributions.
It also contains functions that can be used for
running the constructed StochProcesses 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 Doubles that always
returns the same value when sampled, and records that value.
uniformProcess :: [Double] -> StochProcess Source #
StochProcess sample for a uniform distribution over Doubles
that records the value sampled from it.
discreteProcess :: [(Double, Double)] -> StochProcess Source #
StochProcess sample for a discrete distribution over Doubles
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 Sequences 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