aivika-1.0: A multi-paradigm simulation library

Stabilityexperimental
MaintainerDavid Sorokin <david.sorokin@gmail.com>
Safe HaskellSafe-Inferred

Simulation.Aivika.Parameter.Random

Description

Tested with: GHC 7.6.3

This module defines the random parameters of simulation experiments.

Synopsis

Documentation

randomUniformSource

Arguments

:: Double

minimum

-> Double

maximum

-> Parameter Double 

Computation that generates a new random number distributed uniformly.

To create a parameter that would return the same value within the simulation run, you should memoize the computation, which is important for the Monte-Carlo simulation.

To create a random function that would return the same values in the integration time points within the simulation run, you should either lift the computation to the Dynamics computation and then memoize it too but using the corresponded function for that computation, or just take the predefined function that does namely this.

randomNormalSource

Arguments

:: Double

mean

-> Double

deviation

-> Parameter Double 

Computation that generates a new random number distributed normally.

To create a parameter that would return the same value within the simulation run, you should memoize the computation, which is important for the Monte-Carlo simulation.

To create a random function that would return the same values in the integration time points within the simulation run, you should either lift the computation to the Dynamics computation and then memoize it too but using the corresponded function for that computation, or just take the predefined function that does namely this.

randomExponentialSource

Arguments

:: Double

the mean (the reciprocal of the rate)

-> Parameter Double 

Computation that returns a new exponential random number with the specified mean (the reciprocal of the rate).

To create a parameter that would return the same value within the simulation run, you should memoize the computation, which is important for the Monte-Carlo simulation.

To create a random function that would return the same values in the integration time points within the simulation run, you should either lift the computation to the Dynamics computation and then memoize it too but using the corresponded function for that computation, or just take the predefined function that does namely this.

randomErlangSource

Arguments

:: Double

the scale (the reciprocal of the rate)

-> Int

the shape

-> Parameter Double 

Computation that returns a new Erlang random number with the specified scale (the reciprocal of the rate) and integer shape.

To create a parameter that would return the same value within the simulation run, you should memoize the computation, which is important for the Monte-Carlo simulation.

To create a random function that would return the same values in the integration time points within the simulation run, you should either lift the computation to the Dynamics computation and then memoize it too but using the corresponded function for that computation, or just take the predefined function that does namely this.

randomPoissonSource

Arguments

:: Double

the mean

-> Parameter Int 

Computation that returns a new Poisson random number with the specified mean.

To create a parameter that would return the same value within the simulation run, you should memoize the computation, which is important for the Monte-Carlo simulation.

To create a random function that would return the same values in the integration time points within the simulation run, you should either lift the computation to the Dynamics computation and then memoize it too but using the corresponded function for that computation, or just take the predefined function that does namely this.

randomBinomialSource

Arguments

:: Double

the probability

-> Int

the number of trials

-> Parameter Int 

Computation that returns a new binomial random number with the specified probability and trials.

To create a parameter that would return the same value within the simulation run, you should memoize the computation, which is important for the Monte-Carlo simulation.

To create a random function that would return the same values in the integration time points within the simulation run, you should either lift the computation to the Dynamics computation and then memoize it too but using the corresponded function for that computation, or just take the predefined function that does namely this.