VCV Rack API v2
Loading...
Searching...
No Matches
rack::random::Xoroshiro128Plus Struct Reference

xoroshiro128+. More...

#include <random.hpp>

Public Types

using result_type = uint64_t

Public Member Functions

 Xoroshiro128Plus ()
 Xoroshiro128Plus (uint64_t s0, uint64_t s1=0)
void seed (uint64_t s0, uint64_t s1=0)
bool isSeeded ()
uint64_t operator() ()

Static Public Member Functions

static uint64_t rotl (uint64_t x, int k)
static constexpr uint64_t min ()
static constexpr uint64_t max ()

Public Attributes

uint64_t state [2] = {}

Detailed Description

xoroshiro128+.

Very fast, not-cryptographic random number generator. From https://prng.di.unimi.it/ Example:

std::random_device rd;
random::Xoroshiro128Plus rng(rd(), rd());
uint64_t r = rng();

std::uniform_real_distribution<float> uniform(0.f, 1.f);
float r = uniform(rng);

std::normal_distribution<> normal(0.0, 1.0);
double r = normal(rng);

Member Typedef Documentation

◆ result_type

Constructor & Destructor Documentation

◆ Xoroshiro128Plus() [1/2]

rack::random::Xoroshiro128Plus::Xoroshiro128Plus ( )
inline

◆ Xoroshiro128Plus() [2/2]

rack::random::Xoroshiro128Plus::Xoroshiro128Plus ( uint64_t s0,
uint64_t s1 = 0 )
inlineexplicit

Member Function Documentation

◆ seed()

void rack::random::Xoroshiro128Plus::seed ( uint64_t s0,
uint64_t s1 = 0 )
inline

◆ isSeeded()

bool rack::random::Xoroshiro128Plus::isSeeded ( )
inline

◆ rotl()

uint64_t rack::random::Xoroshiro128Plus::rotl ( uint64_t x,
int k )
inlinestatic

◆ operator()()

uint64_t rack::random::Xoroshiro128Plus::operator() ( )
inline

◆ min()

constexpr uint64_t rack::random::Xoroshiro128Plus::min ( )
inlinestaticconstexpr

◆ max()

constexpr uint64_t rack::random::Xoroshiro128Plus::max ( )
inlinestaticconstexpr

Member Data Documentation

◆ state

uint64_t rack::random::Xoroshiro128Plus::state[2] = {}

The documentation for this struct was generated from the following file: