mkl::rng::gaussian

Generates normally distributed random numbers.

Syntax

template<typename RealType = float, typename Method = mkl::rng::gaussian_method::by_default>

class gaussian {

public:

using method_type = Method;

using result_type = RealType;

gaussian(): gaussian((RealType)0.0, (RealType)1.0){}

explicit gaussian(RealType mean, RealType stddev);

explicit gaussian(const gaussian<RealType, Method>& other);

RealType mean() const;

RealType stddev() const;

gaussian<RealType, Method>& operator=(const gaussian<RealType, Method>& other);

};

Devices supported: Host, CPU, and GPU.

Include Files

Description

The class object is used in mkl::rng::generate function to provide random numbers with normal (Gaussian) distribution with mean (a) and standard deviation (stddev, σ), where a, σ ∈ R ; σ > 0.

The probability density function is given by:


Equation

The cumulative distribution function is as follows:


Equation

The cumulative distribution function Fa,σ(x) can be expressed in terms of standard normal distribution Φ(x) as

				F
				
					a,σ
				(x) = Φ((x - a)/σ)

Template Parameters

typename RealType = float

Type of the produced values. The specific values are as follows:

float

double

typename Method = mkl::rng::gaussian_method::by_default

Generation method. The specific values are as follows:

mkl::rng::gaussian_method::box_muller

mkl::rng::gaussian_method::box_muller2

mkl::rng::gaussian_method::icdf

See brief descriptions of the methods in Distributions Template Parameter Method Values

Input Parameters

Name

Type

Description

mean

RealType (float, double)

Mean value a.

stddev

RealType (float, double)

Standard deviation σ.