public DistributionRNG!F toDistributionRNG(Rng, F = ReturnType!(Rng.front))(Rng rng)

Example

DistributionRNG!double rng = GammaSRNG!double(rndGen, 1, 3).toDistributionRNG;

public T rNormal(T = double)() 
if(isFloatingPoint!T)

Function to generate random observationb from standard normal distribution.

public T rNormal(T = double, UniformRNG)(ref UniformRNG rng) 
if(isFloatingPoint!T && isUniformRNG!UniformRNG)

Function to generate random observationb from standard normal distribution.

Example

auto x = rNormal() * 5 + 1;

public T rExponential(T = double)() 
if(isFloatingPoint!T)

Function to generate random observation from standard exponential distribution.

public T rExponential(T = double, UniformRNG)(ref UniformRNG rng) 
if(isFloatingPoint!T && isUniformRNG!UniformRNG)

Function to generate random observation from standard exponential distribution.

Example

auto x = rExponential() * 5;

public T rGamma(T = double)(T shape) 
if(isFloatingPoint!T)

Function to generate random observation from a gamma distribution.

References "Computer Generation of Statistical Distributions" by Richard Saucier

public T rGamma(T = double, UniformRNG)(
    ref UniformRNG rng, 
    T shape) 
if(isFloatingPoint!T && isUniformRNG!UniformRNG)

Function to generate random observation from a gamma distribution.

Contracts

in
{
    assert (shape.isNormal);
    assert (shape > 0);
}

References "Computer Generation of Statistical Distributions" by Richard Saucier

Example

auto x = rGamma(2.0) * 5;

public T rGeneralizedGamma(T = double)(
    T shape, 
    T power) 
if(isFloatingPoint!T)

Function to generate random observation from a generalized gamma distribution.

public T rGeneralizedGamma(T = double, UniformRNG)(
    ref UniformRNG rng, 
    T shape, 
    T power) 
if(isFloatingPoint!T && isUniformRNG!UniformRNG)

Function to generate random observation from a generalized gamma distribution.

Contracts

in
{
    assert (power.isFinite);
    assert (shape.isNormal);
    assert (shape > 0);
}

Example

auto x = rGeneralizedGamma(0.8, 3.0) * 5;

public T rInverseGamma(T = double)(T shape) 
if(isFloatingPoint!T)

Function to generate random observation from a inverse-gamma distribution.

public T rInverseGamma(T = double, UniformRNG)(
    ref UniformRNG rng, 
    T shape) 
if(isFloatingPoint!T && isUniformRNG!UniformRNG)

Function to generate random observation from a inverse-gamma distribution.

Contracts

in
{
    assert (shape.isNormal);
    assert (shape > 0);
}

Example

auto x = rInverseGamma(2.0) * 5;

public T rInverseGaussian(T = double)(
    T lambda, 
    T mu) 
if(isFloatingPoint!T)

Function to generate random observation from a inverse Gaussian distribution.

References

Michael, John R.; Schucany, William R.; Haas, Roy W. (May 1976). "Generating Random Variates Using Transformations with Multiple Roots".
public T rInverseGaussian(T = double, UniformRNG)(
    ref UniformRNG rng, 
    T lambda, 
    T mu) 
if(isFloatingPoint!T && isUniformRNG!UniformRNG)

Function to generate random observation from a inverse Gaussian distribution.

Contracts

in
{
    assert (lambda.isNormal);
    assert (lambda > 0);
    assert (mu.isNormal);
    assert (mu > 0);
}

References

Michael, John R.; Schucany, William R.; Haas, Roy W. (May 1976). "Generating Random Variates Using Transformations with Multiple Roots".

Example

auto x = rInverseGaussian(2.0, 3.0) * 5;

public T rChiSquare(T = double)(T shape) 
if(isFloatingPoint!T)

Function to generate random observation from a Chi-squared distribution.

public T rChiSquare(T = double, UniformRNG)(
    ref UniformRNG rng, 
    T shape) 
if(isFloatingPoint!T && isUniformRNG!UniformRNG)

Function to generate random observation from a Chi-squared distribution.

Contracts

in
{
    assert (shape.isNormal);
    assert (shape > 0);
}

Example

auto x = rChiSquare(2.0) * 5;

public T rStudentT(T = double)(T shape) 
if(isFloatingPoint!T)

Function to generate random observation from a Student's t-distribution.

public T rStudentT(T = double, UniformRNG)(
    ref UniformRNG rng, 
    T shape) 
if(isFloatingPoint!T && isUniformRNG!UniformRNG)

Function to generate random observation from a Student's t-distribution.

Contracts

in
{
    assert (shape.isNormal);
    assert (shape > 0);
}

Example

auto x = rStudentT(2.0) * 5;

public T rWeibull(T = double)(T shape) 
if(isFloatingPoint!T)

Function to generate random observation from a Weibull distribution.

public T rWeibull(T = double, UniformRNG)(
    ref UniformRNG rng, 
    T power) 
if(isFloatingPoint!T && isUniformRNG!UniformRNG)

Function to generate random observation from a Weibull distribution.

Contracts

in
{
    assert (power.isFinite);
}

Example

auto x = rWeibull(2.0) * 5 + 1;

Copyright

© 2014-2015 Ilya Yaroshenko

License

MIT

Functions

toDistributionRNG
rNormal

Function to generate random observationb from standard normal distribution.

rNormal

Function to generate random observationb from standard normal distribution.

rExponential

Function to generate random observation from standard exponential distribution.

rExponential

Function to generate random observation from standard exponential distribution.

rGamma

Function to generate random observation from a gamma distribution.

rGamma

Function to generate random observation from a gamma distribution.

rGeneralizedGamma

Function to generate random observation from a generalized gamma distribution.

rGeneralizedGamma

Function to generate random observation from a generalized gamma distribution.

rInverseGamma

Function to generate random observation from a inverse-gamma distribution.

rInverseGamma

Function to generate random observation from a inverse-gamma distribution.

rInverseGaussian

Function to generate random observation from a inverse Gaussian distribution.

rInverseGaussian

Function to generate random observation from a inverse Gaussian distribution.

rChiSquare

Function to generate random observation from a Chi-squared distribution.

rChiSquare

Function to generate random observation from a Chi-squared distribution.

rStudentT

Function to generate random observation from a Student's t-distribution.

rStudentT

Function to generate random observation from a Student's t-distribution.

rWeibull

Function to generate random observation from a Weibull distribution.

rWeibull

Function to generate random observation from a Weibull distribution.

Structs

GammaSRNG

Class to generate random observations from a gamma distribution.

InverseGammaSRNG

Class to generate random observations from a inverse-gamma distribution.

GeneralizedGammaSRNG

Class to generate random observations from a generalized gamma distribution.

InverseGaussianSRNG

Class to generate random observations from a inverse Gaussian distribution.

ProperGeneralizedInverseGaussianSRNG

Class to generate random observations from a proper (chi > 0, psi > 0) generalized inverse Gaussian distribution. The algorithm is based on that given by Dagpunar (1989).

Interfaces

DistributionRNG

Interface for infinity input range of random numbers.

Classes

NormalVarianceMeanMixtureRNG

Class to create normal variance-mean mixture random number generators. Assume U has mixing probability density, Y ~ N(0, 1). Class constructs RNG for Z = Y*U^(1/2)+beta*U.

GeneralizedInverseGaussianRNG

Class to generate random observations from a generalized inverse Gaussian distribution.

VarianceGammaRNG

Class to generate random observations from a variance-gamma distribution using normal variance-mean mixture of gamma distribution.

HyperbolicAsymmetricTRNG

Class to generate random observations from a hyperbolic asymmetric t-distribution using normal variance-mean mixture of inverse-gamma distribution.

GeneralizedVarianceGammaRNG

Class to generate random observations from a generalized variance-gamma distribution using normal variance-mean mixture of generalized gamma distribution.

NormalInverseGaussianRNG

Class to generate random observations from a normal inverse Gaussian distribution using normal variance-mean mixture of inverse Gaussian distribution.

ProperGeneralizedHyperbolicRNG

Class to generate random observations from a proper generalized hyperbolic distribution using normal variance-mean mixture of proper generalized inverse Gaussian distribution.

GeneralizedHyperbolicRNG

Class to generate random observations from a generalized hyperbolic distribution using normal variance-mean mixture of generalized inverse Gaussian distribution.