# Distributions Template Parameter Method¶

Method Type

Distributions

Math Description

`uniform_method::standard` `uniform_method::standard_accurate`

`uniform(s,d)` `uniform(i)`

Standard method. Currently there is only one method for these functions. `uniform_method::standard_accurate` is supported for uniform(s,d) only.

`gaussian_method::box_muller`

`gaussian`

Generates normally distributed random number x thru the pair of uniformly distributed numbers u1 and u2 according to the formula:

`gaussian_method::box_muller2`

`gaussian`

Generates normally distributed random numbers x1 and x2 thru the pair of uniformly distributed numbers u1 and u2 according to the formulas: Lognormal distribution: generated normally distributed random numbers x1 and x2 are converted to lognormal distribution

`gaussian_method::icdf` `geometric_method::icdf`

`gaussian` `geometric`

Inverse cumulative distribution function (ICDF) method.

`exponential_method::icdf` `exponential_method::icdf_accurate`

`exponential`

Inverse cumulative distribution function (ICDF) method.

`weibull_method::icdf` `weibull_method::icdf_accurate`

`weibull`

Inverse cumulative distribution function (ICDF) method.

`cauchy_method::icdf`

`cauchy`

Inverse cumulative distribution function (ICDF) method.

`rayleigh_method::icdf` `rayleigh_method::icdf_accurate`

`rayleigh`

Inverse cumulative distribution function (ICDF) method.

`lognormal_method::icdf` `lognormal_method::icdf_accurate`

`lognormal`

Inverse cumulative distribution function (ICDF) method.

`lognormal_method::box_muller2` `lognormal_method::box_muller2_accurate`

`lognormal`

Normally distributed random numbers x1 and x2 are produced through the pair of uniformly distributed numbers u1 and u2 according to the formulas: Then x1 and x2 are converted to lognormal distribution.

`gumbel_method::icdf`

`gumbel`

Inverse cumulative distribution function (ICDF) method.

`bernoulli_method::icdf`

`bernoulli`

Inverse cumulative distribution function (ICDF) method.

`gamma_method::marsaglia` `gamma_method::marsaglia_accurate`

`gamma`

For α > 1, a gamma distributed random number is generated as a cube of properly scaled normal random number; for 0.6 ≤α < 1, a gamma distributed random number is generated using rejection from Weibull distribution; for α < 0.6, a gamma distributed random number is obtained using transformation of exponential power distribution; for α = 1, gamma distribution is reduced to exponential distribution.

`beta_method::cja` `beta_method::cja_accurate`

`beta`

Cheng-Jonhnk-Atkinson method. For min(p, q) > 1, Cheng method is used; for min(p, q) < 1, Johnk method is used, if q + K·p2+ C≤ 0 (K = 0.852…, C=-0.956…) otherwise, Atkinson switching algorithm is used; for max(p, q) < 1, method of Johnk is used; for min(p, q) < 1, max(p, q)> 1, Atkinson switching algorithm is used (CJA stands for Cheng, Johnk, Atkinson); for p = 1or q = 1, inverse cumulative distribution function method is used;for p = 1 and q = 1, beta distribution is reduced to uniform distribution.

`chi_square_method::gamma_based`

`chi_square`

(most common): If ν ≥ 17 or ν is odd and 5 ≤ ν ≤ 15, a chi-square distribution is reduced to a Gamma distribution with these parameters: Shape α = ν / 2 Offset a = 0 Scale factor β = 2 The random numbers of the Gamma distribution are generated.

`gaussian_mv_method::box_muller` `gaussian_mv_method::box_muller2` `gaussian_mv_method::icdf`

`gaussian_mv` `gaussian_mv` `gaussian_mv`

BoxMuller method for multivariate Gaussian distribution. BoxMuller_2 method for multivariate Gaussian distribution. Inverse cumulative distribution function (ICDF) method.

`binomial_method::btpe`

`binomial`

Acceptance/rejection method for ntrial·min(p, 1p) ≥ 30 with decomposition into four regions:

`poisson_method::ptpe`

`poisson`

Acceptance/rejection method for λ≥ 27 with decomposition into four regions:

`poisson_method::gaussian_icdf_based` `poisson_v_method::gaussian_icdf_based`

`poisson` `poisson_v`

for λ≥ 1, method based on Poisson inverse CDF approximation by Gaussian inverse CDF; for λ < 1, table lookup method is used.

`hypergeometric_method::h2pe`

`hypergeometric`

Acceptance/rejection method for large mode of distribution with decomposition into three regions:

`negative_binomial_method::nbar`

`negative_binomial`

Acceptance/rejection method for: with decomposition into five regions:

`multinomial_method::poisson_icdf_based`

`multinomial`

Multinomial distribution with parameters m, k, and a probability vector p. Random numbers of the multinomial distribution are generated by Poisson Approximation method.