Visible to Intel only — GUID: GUID-761999CF-7030-44B5-AED2-3660043F2D95
Visible to Intel only — GUID: GUID-761999CF-7030-44B5-AED2-3660043F2D95
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
The probability density function is given by:
![](/content/dam/docs/us/en/developer-reference-dpcpp/2023-1/790FB0C8-0646-49F1-913C-65B1123202CD-low.png)
The cumulative distribution function is as follows:
![](/content/dam/docs/us/en/developer-reference-dpcpp/2023-1/5920CE52-8BEA-4303-97A2-2D47E04424E0-low.png)
The cumulative distribution function can be expressed in terms of standard normal distribution
as
![](/content/dam/docs/us/en/developer-reference-dpcpp/2023-1/D66B14F3-41A3-46DE-8567-3186769563A1-low.png)
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 oneapi::mkl::rng::device::gaussian_method::icdf |
Note: To enable oneapi::mkl::rng::device::gaussian_method::box_muller2 based on Vector Math functions, define the MKL_RNG_USE_BINARY_CODE macro and link static oneMKL libraries according to the output produced by Intel® oneAPI Math Kernel Library Link Line Advisor. It may improve performance on some hardware.
Note: oneapi::mkl::rng::device::gaussian_method::icdf is available only if the MKL_RNG_USE_BINARY_CODE macro is defined. Also link static oneMKL libraries according to the output produced by Intel® oneAPI Math Kernel Library Link Line Advisor.
Input Parameters
Name |
Type |
Description |
---|---|---|
mean |
RealType (float, double) |
Mean value a. |
stddev |
RealType (float, double) |
Standard deviation |