14#ifndef RANDOMGENERATOR
15#define RANDOMGENERATOR
28 : RandomDevice(), MersenneTwister(RandomDevice()),
29 RandomInt(MinOrMean, MaxOrStdDev),
30 RandomDouble(MinOrMean, MaxOrStdDev),
31 GaussianRandom(MinOrMean, MaxOrStdDev)
39 : RandomDevice(), MersenneTwister(r.MersenneTwister),
40 RandomInt(r.RandomInt), RandomDouble(r.RandomDouble), GaussianRandom(r.GaussianRandom)
53 return RandomInt(MersenneTwister);
59 return RandomDouble(MersenneTwister);
65 return GaussianRandom(MersenneTwister);
70 RandomDevice.entropy();
71 MersenneTwister.seed(RandomDevice());
76 template <
size_t N,
size_t M>
78 for(
size_t n = 1; n <= N; ++n){
79 for(
size_t m = 1; m <= M; ++m){
87 template <
size_t N,
size_t M>
89 for(
size_t n = 1; n <= N; ++n){
90 for(
size_t m = 1; m <= M; ++m){
99 std::random_device RandomDevice;
100 std::mt19937 MersenneTwister;
101 std::uniform_int_distribution<> RandomInt;
102 std::uniform_real_distribution<> RandomDouble;
103 std::normal_distribution<> GaussianRandom;
行列/ベクトル計算クラス(テンプレート版)
Definition Matrix.hh:44
constexpr void SetElement(size_t n, size_t m, TT val)
指定した要素番号に値を設定する関数
Definition Matrix.hh:480
乱数生成器
Definition RandomGenerator.hh:22
void GetGaussianRandomMatrix(Matrix< N, M > &Y)
ガウシアン乱数行列を生成する関数
Definition RandomGenerator.hh:88
~RandomGenerator()
デストラクタ
Definition RandomGenerator.hh:46
void GetRandomMatrix(Matrix< N, M > &Y)
乱数行列を生成する関数
Definition RandomGenerator.hh:77
double GetGaussianRandom(void)
正規分布(ガウシアン)乱数を返す関数
Definition RandomGenerator.hh:64
double GetDoubleRandom(void)
一様乱数を返す関数(浮動小数点版)
Definition RandomGenerator.hh:58
RandomGenerator(RandomGenerator &&r)
ムーブコンストラクタ
Definition RandomGenerator.hh:38
RandomGenerator(const double MinOrMean, const double MaxOrStdDev)
コンストラクタ
Definition RandomGenerator.hh:27
void ResetSeed(void)
乱数シードのリセット
Definition RandomGenerator.hh:69
int GetIntegerRandom(void)
一様乱数を返す関数(整数版)
Definition RandomGenerator.hh:52