philox4x32x10#

説明#

Philox4x32-10 カウンターベースの疑似乱数生成器 [Salmon11]。

API#

構文#

namespace oneapi::mkl::rng::device { 
  template<std::int32_t VecSize = 1> 
  class philox4x32x10 { 
  public: 
    static constexpr std::uint64_t default_seed = 1; 
    static constexpr std::int32_t vec_size = VecSize; 

    philox4x32x10() : philox4x32x10(default_seed) {} 
    philox4x32x10(std::uint64_t seed, std::uint64_t offset = 0); 
    philox4x32x10(std::initializer_list<std::uint64_t> seed, std::uint64_t offset = 0); 
    philox4x32x10(std::uint64_t seed, std::initializer_list<std::uint64_t> offset); 
    philox4x32x10(std::initializer_list<std::uint64_t> seed, std::initializer_list<std::uint64_t> offset); 
  }; 
}

インクルード・ファイル#

  • oneapi/mkl/rng/device.hpp

テンプレート・パラメーター#

名前

タイプ

説明

VecSize

std::int32_t

このエンジンの生成関数によって生成されるベクトルのサイズを指定します。VecSize 値は、sycl::vec クラスサイズとして 1、2、3、4、8、16 になります。デフォルトでは VecSize = 1 です。この場合、generate 関数によって 1 つの乱数が返されます。

コンストラクターの入力パラメーター#

名前

タイプ

説明

seed

std::uint64_t

std::initializer_list<std::uint64_t>

エンジン状態の初期条件。

offset

std::uint64_t

std::initializer_list<std::uint64_t>

スキップされた要素の数は、initializer_list オフセットの場合、次のように計算されます: num_to_skip[0]+ num_to_skip [1]*264+ num_to_skip [2] * 2128+ … +num_to_skip[n-1]*264 * (n-1)。

詳細については VS ノートを参照してください。