Copyright | Copyright (c) 2009-2013, David Sorokin <david.sorokin@gmail.com> |
---|---|

License | BSD3 |

Maintainer | David Sorokin <david.sorokin@gmail.com> |

Stability | experimental |

Safe Haskell | Safe-Inferred |

Language | Haskell98 |

Tested with: GHC 7.6.3

This module defines the random parameters of simulation experiments.

- randomUniform :: Double -> Double -> Parameter Double
- randomNormal :: Double -> Double -> Parameter Double
- randomExponential :: Double -> Parameter Double
- randomErlang :: Double -> Int -> Parameter Double
- randomPoisson :: Double -> Parameter Int
- randomBinomial :: Double -> Int -> Parameter Int

# Documentation

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.

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.

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.

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

`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.

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

`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.

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

`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.