aivika-transformers-6.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.Processor.Random

Description

Tested with: GHC 8.0.1

This module defines some useful random processors that hold the current process for the corresponding time interval, when processing every input element.

Synopsis

Documentation

randomUniformProcessor Source #

Arguments

:: MonadDES m 
=> Double

the minimum time interval

-> Double

the maximum time interval

-> Processor m a a 

When processing every input element, hold the process for a random time interval distributed uniformly.

randomUniformIntProcessor Source #

Arguments

:: MonadDES m 
=> Int

the minimum time interval

-> Int

the maximum time interval

-> Processor m a a 

When processing every input element, hold the process for a random time interval distributed uniformly.

randomTriangularProcessor Source #

Arguments

:: MonadDES m 
=> Double

the minimum time interval

-> Double

the median of the time interval

-> Double

the maximum time interval

-> Processor m a a 

When processing every input element, hold the process for a random time interval having the triangular distribution.

randomNormalProcessor Source #

Arguments

:: MonadDES m 
=> Double

the mean time interval

-> Double

the time interval deviation

-> Processor m a a 

When processing every input element, hold the process for a random time interval distributed normally.

randomLogNormalProcessor 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

-> Processor m a a 

When processing every input element, hold the process for a random time interval having the lognormal distribution.

randomExponentialProcessor Source #

Arguments

:: MonadDES m 
=> Double

the mean time interval (the reciprocal of the rate)

-> Processor m a a 

When processing every input element, hold the process for a random time interval distributed exponentially with the specified mean (the reciprocal of the rate).

randomErlangProcessor Source #

Arguments

:: MonadDES m 
=> Double

the scale (the reciprocal of the rate)

-> Int

the shape

-> Processor m a a 

When processing every input element, hold the process for a random time interval having the Erlang distribution with the specified scale (the reciprocal of the rate) and shape parameters.

randomPoissonProcessor Source #

Arguments

:: MonadDES m 
=> Double

the mean time interval

-> Processor m a a 

When processing every input element, hold the process for a random time interval having the Poisson distribution with the specified mean.

randomBinomialProcessor Source #

Arguments

:: MonadDES m 
=> Double

the probability

-> Int

the number of trials

-> Processor m a a 

When processing every input element, hold the process for a random time interval having the binomial distribution with the specified probability and trials.

randomGammaProcessor Source #

Arguments

:: MonadDES m 
=> Double

the shape

-> Double

the scale (a reciprocal of the rate)

-> Processor m a a 

When processing every input element, hold the process for a random time interval having the Gamma distribution with the specified shape and scale.

randomBetaProcessor Source #

Arguments

:: MonadDES m 
=> Double

shape (alpha)

-> Double

shape (beta)

-> Processor m a a 

When processing every input element, hold the process for a random time interval having the Beta distribution with the specified shape parameters (alpha and beta).

randomWeibullProcessor Source #

Arguments

:: MonadDES m 
=> Double

shape

-> Double

scale

-> Processor m a a 

When processing every input element, hold the process for a random time interval having the Weibull distribution with the specified shape and scale.

randomDiscreteProcessor Source #

Arguments

:: MonadDES m 
=> DiscretePDF Double

the discrete probability density function

-> Processor m a a 

When processing every input element, hold the process for a random time interval having the specified discrete distribution.