aivika-transformers-6.1.1: Transformers for the Aivika simulation library
CopyrightCopyright (c) 2009-2017 David Sorokin <david.sorokin@gmail.com>
LicenseBSD3
MaintainerDavid Sorokin <david.sorokin@gmail.com>
Stabilityexperimental
Safe HaskellSafe-Inferred
LanguageHaskell2010

Simulation.Aivika.Trans.Process.Random

Description

Tested with: GHC 8.0.1

This module defines helper functions, which are useful to hold the Process computation for a time interval according to some random distribution.

Synopsis

Documentation

randomUniformProcess Source #

Arguments

:: MonadDES m 
=> Double

the minimum time interval

-> Double

the maximum time interval

-> Process m Double

a computation of the time interval for which the process was actually held

Hold the process for a random time interval distributed uniformly.

randomUniformProcess_ Source #

Arguments

:: MonadDES m 
=> Double

the minimum time interval

-> Double

the maximum time interval

-> Process m () 

Hold the process for a random time interval distributed uniformly.

randomUniformIntProcess Source #

Arguments

:: MonadDES m 
=> Int

the minimum time interval

-> Int

the maximum time interval

-> Process m Int

a computation of the time interval for which the process was actually held

Hold the process for a random time interval distributed uniformly.

randomUniformIntProcess_ Source #

Arguments

:: MonadDES m 
=> Int

the minimum time interval

-> Int

the maximum time interval

-> Process m () 

Hold the process for a random time interval distributed uniformly.

randomTriangularProcess Source #

Arguments

:: MonadDES m 
=> Double

the minimum time interval

-> Double

a median of the time interval

-> Double

the maximum time interval

-> Process m Double

a computation of the time interval for which the process was actually held

Hold the process for a random time interval having the triangular distribution.

randomTriangularProcess_ Source #

Arguments

:: MonadDES m 
=> Double

the minimum time interval

-> Double

a median of the time interval

-> Double

the maximum time interval

-> Process m () 

Hold the process for a random time interval having the triangular distribution.

randomNormalProcess Source #

Arguments

:: MonadDES m 
=> Double

the mean time interval

-> Double

the time interval deviation

-> Process m Double

a computation of the time interval for which the process was actually held

Hold the process for a random time interval distributed normally.

randomNormalProcess_ Source #

Arguments

:: MonadDES m 
=> Double

the mean time interval

-> Double

the time interval deviation

-> Process m () 

Hold the process for a random time interval distributed normally.

randomLogNormalProcess Source #

Arguments

:: MonadDES m 
=> Double

the mean for a normal distribution which this distribution is derived from

-> Double

the deviation for a normal distribution which this distribution is derived from

-> Process m Double

a computation of the time interval for which the process was actually held

Hold the process for a random time interval having the lognormal distribution.

randomLogNormalProcess_ Source #

Arguments

:: MonadDES m 
=> Double

the mean for a normal distribution which this distribution is derived from

-> Double

the deviation for a normal distribution which this distribution is derived from

-> Process m () 

Hold the process for a random time interval having the lognormal distribution.

randomExponentialProcess Source #

Arguments

:: MonadDES m 
=> Double

the mean time interval (the reciprocal of the rate)

-> Process m Double

a computation of the time interval for which the process was actually held

Hold the process for a random time interval distributed exponentially with the specified mean (the reciprocal of the rate).

randomExponentialProcess_ Source #

Arguments

:: MonadDES m 
=> Double

the mean time interval (the reciprocal of the rate)

-> Process m () 

Hold the process for a random time interval distributed exponentially with the specified mean (the reciprocal of the rate).

randomErlangProcess Source #

Arguments

:: MonadDES m 
=> Double

the scale (the reciprocal of the rate)

-> Int

the shape

-> Process m Double

a computation of the time interval for which the process was actually held

Hold the process for a random time interval having the Erlang distribution with the specified scale (the reciprocal of the rate) and shape parameters.

randomErlangProcess_ Source #

Arguments

:: MonadDES m 
=> Double

the scale (the reciprocal of the rate)

-> Int

the shape

-> Process m () 

Hold the process for a random time interval having the Erlang distribution with the specified scale (the reciprocal of the rate) and shape parameters.

randomPoissonProcess Source #

Arguments

:: MonadDES m 
=> Double

the mean time interval

-> Process m Int

a computation of the time interval for which the process was actually held

Hold the process for a random time interval having the Poisson distribution with the specified mean.

randomPoissonProcess_ Source #

Arguments

:: MonadDES m 
=> Double

the mean time interval

-> Process m () 

Hold the process for a random time interval having the Poisson distribution with the specified mean.

randomBinomialProcess Source #

Arguments

:: MonadDES m 
=> Double

the probability

-> Int

the number of trials

-> Process m Int

a computation of the time interval for which the process was actually held

Hold the process for a random time interval having the binomial distribution with the specified probability and trials.

randomBinomialProcess_ Source #

Arguments

:: MonadDES m 
=> Double

the probability

-> Int

the number of trials

-> Process m () 

Hold the process for a random time interval having the binomial distribution with the specified probability and trials.

randomGammaProcess Source #

Arguments

:: MonadDES m 
=> Double

the shape

-> Double

the scale (a reciprocal of the rate)

-> Process m Double

a computation of the time interval for which the process was actually held

Hold the process for a random time interval having the Gamma distribution with the specified shape and scale.

randomGammaProcess_ Source #

Arguments

:: MonadDES m 
=> Double

the shape

-> Double

the scale (a reciprocal of the rate)

-> Process m () 

Hold the process for a random time interval having the Gamma distribution with the specified shape and scale.

randomBetaProcess Source #

Arguments

:: MonadDES m 
=> Double

the shape (alpha)

-> Double

the shape (beta)

-> Process m Double

a computation of the time interval for which the process was actually held

Hold the process for a random time interval having the Beta distribution with the specified shape parameters (alpha and beta).

randomBetaProcess_ Source #

Arguments

:: MonadDES m 
=> Double

the shape (alpha)

-> Double

the shape (beta)

-> Process m () 

Hold the process for a random time interval having the Beta distribution with the specified shape parameters (alpha and beta).

randomWeibullProcess Source #

Arguments

:: MonadDES m 
=> Double

the shape

-> Double

the scale

-> Process m Double

a computation of the time interval for which the process was actually held

Hold the process for a random time interval having the Weibull distribution with the specified shape and scale.

randomWeibullProcess_ Source #

Arguments

:: MonadDES m 
=> Double

the shape

-> Double

the scale

-> Process m () 

Hold the process for a random time interval having the Weibull distribution with the specified shape and scale.

randomDiscreteProcess Source #

Arguments

:: MonadDES m 
=> DiscretePDF Double

the discrete probability density function

-> Process m Double

a computation of the time interval for which the process was actually held

Hold the process for a random time interval having the specified discrete distribution.

randomDiscreteProcess_ Source #

Arguments

:: MonadDES m 
=> DiscretePDF Double

the discrete probability density function

-> Process m () 

Hold the process for a random time interval having the specified discrete distribution.