1 #ifndef jb_testing_initialize_mersenne_twister_hpp 2 #define jb_testing_initialize_mersenne_twister_hpp 37 template <
typename Generator>
55 return Generator(seed);
75 auto const S = Generator::state_size * (Generator::word_size / 32);
78 std::vector<unsigned int> entropy(S);
79 if (token == default_initialization_marker) {
88 std::random_device rd;
89 std::generate(entropy.begin(), entropy.end(), [&rd]() {
return rd(); });
91 std::random_device rd(token);
92 std::generate(entropy.begin(), entropy.end(), [&rd]() {
return rd(); });
100 std::seed_seq seq(entropy.begin(), entropy.end());
101 return Generator(seq);
107 #endif // jb_testing_initialize_mersenne_twister_hpp Generator initialize_mersenne_twister(int seed, std::string const &token)
Initialize a Mersenne-Twister based generator.
char const default_initialization_marker[]
The top-level namespace for the JayBeams library.