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:

  • Two parallelograms

  • Triangle

  • Left exponential tail

  • Right exponential tail

poisson_method::ptpe

poisson

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

  • Two parallelograms

  • Triangle

  • Left exponential tail

  • Right exponential tail

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:

  • Rectangular

  • Left exponential tail

  • Right exponential tail

negative_binomial_method::nbar

negative_binomial

Acceptance/rejection method for:

with decomposition into five regions:

  • Rectangular

  • (2) trapezoid

  • Left exponential tail

  • Right exponential tail

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.