aivika-5.7: A multi-method simulation library

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

Simulation.Aivika.Dynamics.Random

Description

Tested with: GHC 8.0.1

This module defines the random functions that always return the same values in the integration time points within a single simulation run. The values for another simulation run will be regenerated anew.

For example, the computations returned by these functions can be used in the equations of System Dynamics.

Also it is worth noting that the values are generated in a strong order starting from starttime with step dt. This is how the memo0Dynamics function actually works.

Synopsis

Documentation

memoRandomUniformDynamics Source #

Arguments

:: Dynamics Double

minimum

-> Dynamics Double

maximum

-> Simulation (Dynamics Double) 

Computation that generates random numbers distributed uniformly and memoizes the numbers in the integration time points.

memoRandomUniformIntDynamics Source #

Arguments

:: Dynamics Int

minimum

-> Dynamics Int

maximum

-> Simulation (Dynamics Int) 

Computation that generates random integer numbers distributed uniformly and memoizes the numbers in the integration time points.

memoRandomTriangularDynamics Source #

Arguments

:: Dynamics Double

minimum

-> Dynamics Double

median

-> Dynamics Double

maximum

-> Simulation (Dynamics Double) 

Computation that generates random numbers from the triangular distribution and memoizes the numbers in the integration time points.

memoRandomNormalDynamics Source #

Arguments

:: Dynamics Double

mean

-> Dynamics Double

deviation

-> Simulation (Dynamics Double) 

Computation that generates random numbers distributed normally and memoizes the numbers in the integration time points.

memoRandomLogNormalDynamics Source #

Arguments

:: Dynamics Double

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

-> Dynamics Double

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

-> Simulation (Dynamics Double) 

Computation that generates random numbers from the lognormal distribution and memoizes the numbers in the integration time points.

memoRandomExponentialDynamics Source #

Arguments

:: Dynamics Double

the mean (a reciprocal of the rate)

-> Simulation (Dynamics Double) 

Computation that generates exponential random numbers with the specified mean (the reciprocal of the rate) and memoizes the numbers in the integration time points.

memoRandomErlangDynamics Source #

Arguments

:: Dynamics Double

the scale (a reciprocal of the rate)

-> Dynamics Int

the shape

-> Simulation (Dynamics Double) 

Computation that generates the Erlang random numbers with the specified scale (the reciprocal of the rate) and integer shape but memoizes the numbers in the integration time points.

memoRandomPoissonDynamics Source #

Arguments

:: Dynamics Double

the mean

-> Simulation (Dynamics Int) 

Computation that generats the Poisson random numbers with the specified mean and memoizes the numbers in the integration time points.

memoRandomBinomialDynamics Source #

Arguments

:: Dynamics Double

the probability

-> Dynamics Int

the number of trials

-> Simulation (Dynamics Int) 

Computation that generates binomial random numbers with the specified probability and trials but memoizes the numbers in the integration time points.

memoRandomGammaDynamics Source #

Arguments

:: Dynamics Double

shape

-> Dynamics Double

scale (a reciprocal of the rate)

-> Simulation (Dynamics Double) 

Computation that generates random numbers from the Gamma distribution with the specified shape and scale but memoizes the numbers in the integration time points.

memoRandomBetaDynamics Source #

Arguments

:: Dynamics Double

shape (alpha)

-> Dynamics Double

shape (beta)

-> Simulation (Dynamics Double) 

Computation that generates random numbers from the Beta distribution by the specified shape parameters and memoizes the numbers in the integration time points.

memoRandomWeibullDynamics Source #

Arguments

:: Dynamics Double

shape

-> Dynamics Double

scale

-> Simulation (Dynamics Double) 

Computation that generates random numbers from the Weibull distribution with the specified shape and scale but memoizes the numbers in the integration time points.

memoRandomDiscreteDynamics :: Unboxed a => Dynamics (DiscretePDF a) -> Simulation (Dynamics a) Source #

Computation that generates random values from the specified discrete distribution and memoizes the values in the integration time points.