Distributions Template Parameter Method
Method Type |
Distributions |
Math Description |
|---|---|---|
uniform_method::standard uniform_method::accurate |
uniform |
Standard method. It involves transforming the output of a generator by scaling and shifting it to fit within the desired interval. uniform_method::accurate checks for additional s and d data types. For integer data types, it uses d as a BRNG data type (sBRNG data type is used in uniform_method::standard method on GPU). |
gaussian_method::box_muller |
gaussian |
Generates normally distributed random number x through the pair of uniformly distributed numbers u1 and u2 according to the formula: \(x = \sqrt {-2 \ln u_1} \sin {2 \pi u_2}\). |
gaussian_method::box_muller2 |
gaussian |
Generates normally distributed random numbers x1 and x2 through the pair of uniformly distributed numbers u1 and u2 according to the formulas: \(x_1 = \sqrt{-2 \ln u_1} \sin {2 \pi u_2}\), \(x_2 = \sqrt{-2 \ln u_1} \cos {2 \pi u_2}\). |
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: \(x_1 = -2 \ln u_1 \sin {2 \pi u_2}\), \(x_2 = -2 \ln u_1 \cos {2 \pi u_2}\) 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 \(\alpha > 1\), a gamma distributed random number is generated as a cube of a properly scaled normal random number; for \(0.6 \le \alpha < 1\), a gamma distributed random number is generated using rejection from Weibull distribution; for \(\alpha < 0.6\), a gamma distributed random number is obtained using transformation of exponential power distribution; for \(\alpha = 1\), gamma distribution is reduced to exponential distribution. |
beta_method::cja beta_method::cja_accurate |
beta |
|
chi_square_method::gamma_based |
chi_square |
(most common): If \(\nu \ge 17\) or ν is odd and \(5 \le \nu \le 15\), a chi-square distribution is reduced to a Gamma distribution with these parameters: Shape \(\alpha = \nu / 2\) Offset \(a = 0\) Scale factor \(\beta = 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 |
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) \ge 30\) with decomposition into four regions: Two parallelograms Triangle Left exponential tail Right exponential tail |
poisson_method::ptpe |
poisson |
Acceptance/rejection method for \(\lambda \ge 27\) with decomposition into four regions: Two parallelograms Triangle Left exponential tail Right exponenetial tail |
poisson_method::gaussian_icdf_based poisson_v_method::gaussian_icdf_based |
poissonpoisson_v |
for \(\lambda \ge 1\), method based on Poisson inverse CDF approximation by Gaussian inverse CDF; for \(\lambda < 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: \(\frac{(a-1) \cdot (1-p)}{p} \geq 100\) 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. |