23 lines
552 B
C++
23 lines
552 B
C++
#include "../rng.h"
|
|
#include "./generator.h"
|
|
#include <cstdint>
|
|
#include "./xorshift.h"
|
|
// parameters recommended by Nakazawa & Nakazawa
|
|
// https://en.wikipedia.org/wiki/Lehmer_random_number_generator
|
|
|
|
namespace splat {
|
|
|
|
xorshift32_generator::xorshift32_generator(uint32_t genSeed) : PRNG(genSeed) {
|
|
state = genSeed;
|
|
}
|
|
u_int32_t xorshift32_generator::generate() {
|
|
state ^= state << 13;
|
|
state ^= state >> 17;
|
|
state ^= state << 5;
|
|
return state;
|
|
}
|
|
std::string xorshift32_generator::getName() {
|
|
return "xorshift32";
|
|
}
|
|
}
|