Generates normally distributed random numbers.
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.
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:
The cumulative distribution function is as follows:
The cumulative distribution function Fa,σ(x) can be expressed in terms of standard normal distribution Φ(x) as
F a,σ (x) = Φ((x - a)/σ)
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 |
Name |
Type |
Description |
---|---|---|
mean |
RealType (float, double) |
Mean value a. |
stddev |
RealType (float, double) |
Standard deviation σ. |