Visible to Intel only — GUID: GUID-7A018119-E4DD-496B-8739-A8004C30E840
Visible to Intel only — GUID: GUID-7A018119-E4DD-496B-8739-A8004C30E840
oneapi::mkl::rng::gaussian_mv
Generates random numbers from multivariate normal distribution.
Description
The class object is used in the oneapi::mkl::rng::generate function to provide random numbers with d-variate normal (Gaussian) distribution with mean (a) and variance-covariance matrix C, where a ∈ Rd ; C is d x d symmetric positive-definite matrix.
The probability density function is given by:
where x``∈ ``Rd .
Matrix C can be represented as C = TTT, where T is a lower triangular matrix - Cholesky factor of C.
API
Syntax
template<typename RealType = float, layout Layout = layout::packed, typename Method = gaussian_mv_method::by_default> class gaussian_mv { public: using method_type = Method; using result_type = RealType; static constexpr layout layout_type = Layout; explicit gaussian_mv(std::uint32_t dimen, std::vector<RealType> mean, std::vector<RealType> matrix); // deprecated since oneMKL 2023.0 explicit gaussian_mv(std::uint32_t dimen, sycl::span<RealType> mean, sycl::span<RealType> matrix); explicit gaussian_mv(const param_type& pt); std::uint32_t dimen() const; std::vector<RealType> mean() const; std::vector<RealType> matrix() const; param_type param() const; void param(const param_type& pt); };
Devices supported: CPU and GPU.
Include Files
oneapi/mkl/rng.hpp
Template Parameters
Name |
Description |
---|---|
typename RealType = float |
Type of the produced values. The specific values are as follows: float double |
layout Layout = layout::packed |
Type of the matrix storage. The specific values are as follows: layout::packed layout::full layout::diagonal See brief descriptions of the methods in Distributions Template Parameter Method. |
typename Method = oneapi::mkl::rng::gaussian_mv_method::by_default |
Generation method. The specific values are as follows: oneapi::mkl::rng::gaussian_mv_method::box_muller oneapi::mkl::rng::gaussian_mv_method::box_muller2 oneapi::mkl::rng::gaussian_mv_method::icdf See brief descriptions of the methods in Distributions Template Parameter Method. |
Input Parameters
Name |
Type |
Description |
---|---|---|
dimen |
std::uint32_t |
Dimension of output random vectors |
mean |
sycl::span< RealType> (float, double |
Mean span a of dimension d. |
matrix |
sycl::span< RealType> (float, double |
Variance-covariance matrix C. |
- explicit gaussian_mv(std::uint32_t dimen, std::vector<RealType> mean, std::vector<RealType> matrix); is deprecated and will be removed in one of the next releases. Use explicit gaussian_mv(std::uint32_t dimen, sycl::span<RealType> mean, sycl::span<RealType> matrix); instead.
When passing a sycl::span that is constructed over a user’s memory to the constructor, users must manage the memory under sycl::span by themselves. They must not destroy the memory while data are processed.