aivika-4.6: A multi-method simulation library

CopyrightCopyright (c) 2009-2016 David Sorokin <david.sorokin@gmail.com>
LicenseBSD3
MaintainerDavid Sorokin <david.sorokin@gmail.com>
Stabilityexperimental
Safe HaskellNone
LanguageHaskell2010

Simulation.Aivika.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

:: Double

the minimum time interval

-> Double

the maximum time interval

-> Processor a a 

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

randomUniformIntProcessor Source #

Arguments

:: Int

the minimum time interval

-> Int

the maximum time interval

-> Processor a a 

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

randomTriangularProcessor Source #

Arguments

:: Double

the minimum time interval

-> Double

the median of the time interval

-> Double

the maximum time interval

-> Processor a a 

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

randomNormalProcessor Source #

Arguments

:: Double

the mean time interval

-> Double

the time interval deviation

-> Processor a a 

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

randomLogNormalProcessor Source #

Arguments

:: 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 a a 

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

randomExponentialProcessor Source #

Arguments

:: Double

the mean time interval (the reciprocal of the rate)

-> Processor 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

:: Double

the scale (the reciprocal of the rate)

-> Int

the shape

-> Processor 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

:: Double

the mean time interval

-> Processor 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

:: Double

the probability

-> Int

the number of trials

-> Processor 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

:: Double

the shape

-> Double

the scale (a reciprocal of the rate)

-> Processor 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

:: Double

shape (alpha)

-> Double

shape (beta)

-> Processor 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

:: Double

shape

-> Double

scale

-> Processor 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

:: DiscretePDF Double

the discrete probability density function

-> Processor a a 

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