oneapi::mkl::rng::device::gaussian

Generates normally distributed random numbers.

Description

The oneapi::mkl::rng::device::gaussian class object is used in the oneapi::mkl::rng::device::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:

f_{a, \sigma} (x) =
\frac{1}{\sigma \sqrt{2 \pi}}
\exp
\left(
   - \frac{(y-a)^2}{2\sigma^2}
\right) dy,
- \infty < x < + \infty

The cumulative distribution function is as follows:

F_{a, \sigma} (x) =
\int_{-\infty}^{x}
\frac{1}{\sigma \sqrt{2 \pi}}
\exp
\left(
   - \frac{(y-a)^2}{2\sigma^2}
\right) dy,
- \infty < x < + \infty

The cumulative distribution function Fa,\sigma (x) can be expressed in terms of standard normal distribution \phi(x) as

F

     a,\sigma
  (x) = \phi((x - a)/\sigma)

API

Syntax

template<typename RealType, typename Method>
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 param_type& pt);
RealType mean() const;
RealType stddev() const;
param_type param() const;
void param(const param_type& pt);
};

Include Files

  • oneapi/mkl/rng/device.hpp

Template Parameters

typename RealType

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

float

double

typename Method

Generation method. The specific values are as follows:

oneapi::mkl::rng::device::gaussian_method::box_muller2

Input Parameters

Name

Type

Description

mean

RealType (float, double)

Mean value a.

stddev

RealType (float, double)

Standard deviation σ.