oneapi::mkl::rng::gaussian

Generates normally distributed random numbers.

Syntax

template<typename RealType = float, typename Method = 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);
RealType mean() const;
RealType stddev() const;
};

Devices supported: Host, CPU, and GPU.

Include Files

  • oneapi/mkl/rng.hpp

Description

The class object is used in oneapi::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:


image0

The cumulative distribution function is as follows:


image1

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 = oneapi::mkl::rng::gaussian_method::by_default

Generation method. The specific values are as follows: oneapi::mkl::rng::gaussian_method::box_muller oneapi::mkl::rng::gaussian_method::box_muller2 oneapi::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 σ.