aivika-1.0: A multi-paradigm simulation library

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

Simulation.Aivika.Parameter.Random

Description

Tested with: GHC 7.6.3

This module defines the random parameters of simulation experiments.

Synopsis

Documentation

randomUniform Source

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.

randomNormal Source

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.

randomExponential Source

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.

randomErlang Source

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.

randomPoisson Source

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.

randomBinomial Source

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.