37 void seed(uint64_t s0, uint64_t s1 = 0) {
48 static uint64_t
rotl(uint64_t x,
int k) {
49 return (x << k) | (x >> (64 - k));
53 uint64_t s0 =
state[0];
54 uint64_t s1 =
state[1];
55 uint64_t result = s0 + s1;
58 state[0] =
rotl(s0, 55) ^ s1 ^ (s1 << 14);
64 static constexpr uint64_t
min() {
67 static constexpr uint64_t
max() {
89inline uint32_t
get() {
95inline uint16_t
get() {
131 float radius = std::sqrt(-2.f * std::log(1.f -
get<float>()));
133 return radius * std::sin(theta);
145inline void buffer(uint8_t* out,
size_t len) {
147 for (
size_t i = 0; i < len; i += 4) {
153 out[i + 2] = r >> 16;
155 out[i + 3] = r >> 24;
160inline std::vector<uint8_t>
vector(
size_t len) {
161 std::vector<uint8_t> v(len);
Random number generation.
Definition random.hpp:9
float normal()
Returns a normal random number with mean 0 and standard deviation 1.
Definition random.hpp:129
void buffer(uint8_t *out, size_t len)
Fills an array with random bytes.
Definition random.hpp:145
Xoroshiro128Plus & local()
Returns the generator.
uint64_t u64()
Returns a uniform random uint64_t from 0 to UINT64_MAX.
Definition random.hpp:122
float uniform()
Returns a uniform random float in the interval [0.0, 1.0).
Definition random.hpp:126
std::vector< uint8_t > vector(size_t len)
Creates a vector of random bytes.
Definition random.hpp:160
T get()
Definition random.hpp:83
uint32_t u32()
Returns a uniform random uint32_t from 0 to UINT32_MAX.
Definition random.hpp:124
Root namespace for the Rack API.
Definition AudioDisplay.hpp:9
xoroshiro128+.
Definition random.hpp:26
Xoroshiro128Plus()
Definition random.hpp:31
static constexpr uint64_t min()
Definition random.hpp:64
void seed(uint64_t s0, uint64_t s1=0)
Definition random.hpp:37
Xoroshiro128Plus(uint64_t s0, uint64_t s1=0)
Definition random.hpp:33
static uint64_t rotl(uint64_t x, int k)
Definition random.hpp:48
uint64_t operator()()
Definition random.hpp:52
uint64_t result_type
Definition random.hpp:27
static constexpr uint64_t max()
Definition random.hpp:67
bool isSeeded()
Definition random.hpp:44
uint64_t state[2]
Definition random.hpp:29