分散

分布#

oneMKL RNG ルーチンは、さまざまなタイプの分布を持つ乱数の生成に使用されます。各関数グループは、基礎となる分布タイプ別に以下で紹介されており、その機能の簡単な説明、呼び出しシーケンスの仕様、および入力および出力パラメーターの説明が含まれています。次の表は、乱数生成ルーチンとそのデータタイプおよび出力分布を示し、生成ルーチンのデータタイプと基本乱数生成ルーチンとの対応を示します。

分布のタイプ

データタイプ

BRNG データタイプ

説明

uniform (連続)

float、double

float、double

区間 [a,b) 上の一様連続分布

gaussian

float、double

float、double

正規分布 (ガウス分布)

gaussian_mv

float、double

float、double

正規分布 (ガウス分布)

exponential

float、double

float、double

指数分布

laplace

float、double

float、double

ラプラス分布 (二重指数分布)

weibull

float、double

float、double

ワイブル分布

cauchy

float、double

float、double

コーシー分布

rayleigh

float、double

float、double

レイリー分布

lognormal

float、double

float、double

対数正規分布

gumbel

float、double

float、double

ガンベル (極値) 分布

gamma

float、double

float、double

ガンマ分布

gamma

float、double

float、double

ベータ分布

chi_square

float、double

float、double

カイ二乗分布

分布のタイプ

データタイプ

BRNG データタイプ

説明

uniform (離散)

整数

GPU:

oneapi::mkl::rng::uniform_method::standard の float、

oneapi::mkl::rng::method::accurate の double

CPU:

どちらの方法でも double

区間 [a,b) 上の一様離散分布

uniform_bits

整数

整数

32 ビットのチャンクに均一に分布されたビット

整数

整数

64 ビットのチャンクに均一に分布されたビット

bits

整数

整数

基礎となる BRNG 整数シーケンスのビット

bernoulli

整数

float

ベルヌーイ分布

geometric

整数

float

幾何分布

binomial

整数

double

二項分布

hypergeometric

整数

double

超幾何分布

poisson

整数

float の場合、oneapi::mkl::rng::poisson_method::gaussian_icdf_based float (分布パラメーター \(\lambda \ge 27\) および double \(\lambda < 27\)) の場合、(oneapi::mkl::rng::poisson_method::ptpe の場合)

ポアソン分布

poisson_v

整数

double

平均が変化するポアソン分布

negative_binomial

整数

double

負の二項分布、またはパスカル分布

multinomial

整数

CPU - float、GPU - double

多項分布

注: integer の場合はサポートされているデータタイプの必要な分布を確認します。

乱数の生成モード#

このライブラリーは、正確で高速な 2 つの乱数生成モードを提供します。正確な生成モードは、計算の精度が要求されるアプリケーションを対象としています。このモードで使用すると、生成器は分布パラメーターのすべての値に対して定義領域内に完全に含まれる乱数を生成します。たとえば、区間 [a,b] で均一な連続分布の生成器から取得された乱数は、ab の値が何であっても、この区間に属します。高速モードでは、高い生成パフォーマンスで、生成された乱数が分布パラメーターの特定の値を除いて定義領域に属することが保証されます。生成モードは、生成器ルーチン内のメソッド・パラメーターの関連する値を指定することによって設定されます。正確な生成モードをサポートする分布リストを以下の表に示します。

分布

分布方法

uniform (離散)

oneapi::mkl::rng::unform_method::accurate

exponential

oneapi::mkl::rng::exponential_method::icdf_accurate

weibull

oneapi::mkl::rng::weibull_method::icdf_accurate

rayleigh

oneapi::mkl::rng::rayleigh_method::icdf_accurate

lognormal

oneapi::mkl::rng::lognormal_method::icdf_accurate oneapi::mkl::rng::lognormal_method::box_muller2_accurate

gamma

oneapi::mkl::rng::gamma_method::marsaglia_accurate

gamma

oneapi::mkl::rng::beta_method::cja_accurate