aivika-transformers-2.1: Transformers for the Aivika simulation library

CopyrightCopyright (c) 2009-2014, David Sorokin <david.sorokin@gmail.com>
LicenseBSD3
MaintainerDavid Sorokin <david.sorokin@gmail.com>
Stabilityexperimental
Safe HaskellSafe-Inferred
LanguageHaskell2010

Simulation.Aivika.Trans.Dynamics.Random

Description

Tested with: GHC 7.8.3

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

:: MonadComp m 
=> Dynamics m Double

minimum

-> Dynamics m Double

maximum

-> Simulation m (Dynamics m Double) 

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

memoRandomUniformIntDynamics Source

Arguments

:: MonadComp m 
=> Dynamics m Int

minimum

-> Dynamics m Int

maximum

-> Simulation m (Dynamics m Int) 

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

memoRandomNormalDynamics Source

Arguments

:: MonadComp m 
=> Dynamics m Double

mean

-> Dynamics m Double

deviation

-> Simulation m (Dynamics m Double) 

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

memoRandomExponentialDynamics Source

Arguments

:: MonadComp m 
=> Dynamics m Double

the mean (the reciprocal of the rate)

-> Simulation m (Dynamics m Double) 

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

memoRandomErlangDynamics Source

Arguments

:: MonadComp m 
=> Dynamics m Double

the scale (the reciprocal of the rate)

-> Dynamics m Int

the shape

-> Simulation m (Dynamics m Double) 

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

memoRandomPoissonDynamics Source

Arguments

:: MonadComp m 
=> Dynamics m Double

the mean

-> Simulation m (Dynamics m Int) 

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

memoRandomBinomialDynamics Source

Arguments

:: MonadComp m 
=> Dynamics m Double

the probability

-> Dynamics m Int

the number of trials

-> Simulation m (Dynamics m Int) 

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