gaussian_mv#
多変量正規分布の乱数を生成します。
説明#
クラス・オブジェクトは、generate 関数で使用され、平均 (a) と分散共分散行列 C を持つ d 変量正規 (ガウス) 分布の乱数を提供します。ここで、a ∈ Rd ; C は d x d 対称正定値行列です。
確率密度関数は次のように表されます。
ここで、x``∈ ``Rd です。
行列 C は C = TTT と表すことができます。ここで、T は下三角行列、つまり C のコレスキー因子です。
API#
構文#
namespace oneapi::mkl::rng {
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); // 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);
};
}サポートされるデバイス: CPU と GPU。
インクルード・ファイル#
oneapi/mkl/rng.hpp
テンプレート・パラメーター#
名前 |
説明 |
|---|---|
|
生成された値のタイプ。固有の値は次のとおりです:
|
|
行列ストレージのタイプ。固有の値は次のとおりです:
配布テンプレート・パラメーター・メソッドのメソッドの説明を参照してください。 |
|
生成メソッド。固有の値は次のとおりです:
配布テンプレート・パラメーター・メソッドのメソッドの説明を参照してください。 |
入力パラメーター#
名前 |
タイプ |
説明 |
|---|---|---|
dimen |
|
出力ランダムベクトルの次元 |
平均 |
|
次元 |
matrix |
|
分散共分散行列 |
注
explicit gaussian_mv(std::uint32_t dimen, std::vector<RealType> mean, std::vector<RealType> matrix);は非推奨であり、次のリリースのいずれかで削除される予定です。代わりにexplicit gaussian_mv(std::uint32_t dimen, sycl::span<RealType> mean, sycl::span<RealType> matrix);を使用してください。ユーザーメモリー上に構築された
sycl::spanをコンストラクターに渡す場合、ユーザーは sycl::span の下のメモリーを自身で管理する必要があります。データが処理されている間は、メモリーを破棄してはなりません。