CHERIoT RTOS
A compartmentalised RTOS for CHERIoT hardware
Loading...
Searching...
No Matches
ds::xoroshiro::detail::XorOshiro< State, Result, A, B, C, Jump0, Jump1, LongJump0, LongJump1 > Class Template Reference

The xoroshiro+ (not ++) generator(s) of Blackman and Vigna's Scrambled Linear Pseudorandom Number Generators (https://arxiv.org/abs/1805.01407, Figure 1). More...

#include <xoroshiro.h>

Public Member Functions

 XorOshiro (State x=5489, State y=0)
void set_state (State nx, State ny=0)
Result next ()
Result operator() ()
void jump ()
 Jump.
void long_jump ()
 Jump a really long way.

Detailed Description

template<typename State, typename Result, State A, State B, State C, State Jump0 = 0, State Jump1 = 0, State LongJump0 = 0, State LongJump1 = 0>
class ds::xoroshiro::detail::XorOshiro< State, Result, A, B, C, Jump0, Jump1, LongJump0, LongJump1 >

The xoroshiro+ (not ++) generator(s) of Blackman and Vigna's Scrambled Linear Pseudorandom Number Generators (https://arxiv.org/abs/1805.01407, Figure 1).

This spelling is parameterized on the type of the two state variables used internally (State), the type of each sample (Result), and the seed state values (A, B, C).

Definition at line 45 of file xoroshiro.h.

Constructor & Destructor Documentation

◆ XorOshiro()

template<typename State, typename Result, State A, State B, State C, State Jump0 = 0, State Jump1 = 0, State LongJump0 = 0, State LongJump1 = 0>
ds::xoroshiro::detail::XorOshiro< State, Result, A, B, C, Jump0, Jump1, LongJump0, LongJump1 >::XorOshiro ( State x = 5489,
State y = 0 )
inline

Definition at line 89 of file xoroshiro.h.

Member Function Documentation

◆ jump()

template<typename State, typename Result, State A, State B, State C, State Jump0 = 0, State Jump1 = 0, State LongJump0 = 0, State LongJump1 = 0>
void ds::xoroshiro::detail::XorOshiro< State, Result, A, B, C, Jump0, Jump1, LongJump0, LongJump1 >::jump ( )
inline

◆ long_jump()

template<typename State, typename Result, State A, State B, State C, State Jump0 = 0, State Jump1 = 0, State LongJump0 = 0, State LongJump1 = 0>
void ds::xoroshiro::detail::XorOshiro< State, Result, A, B, C, Jump0, Jump1, LongJump0, LongJump1 >::long_jump ( )
inline

Jump a really long way.

If supported, this is equivalent to 2^96 calls to next().

Definition at line 144 of file xoroshiro.h.

◆ next()

template<typename State, typename Result, State A, State B, State C, State Jump0 = 0, State Jump1 = 0, State LongJump0 = 0, State LongJump1 = 0>
Result ds::xoroshiro::detail::XorOshiro< State, Result, A, B, C, Jump0, Jump1, LongJump0, LongJump1 >::next ( )
inline

Definition at line 109 of file xoroshiro.h.

◆ operator()()

template<typename State, typename Result, State A, State B, State C, State Jump0 = 0, State Jump1 = 0, State LongJump0 = 0, State LongJump1 = 0>
Result ds::xoroshiro::detail::XorOshiro< State, Result, A, B, C, Jump0, Jump1, LongJump0, LongJump1 >::operator() ( )
inline

Definition at line 126 of file xoroshiro.h.

◆ set_state()

template<typename State, typename Result, State A, State B, State C, State Jump0 = 0, State Jump1 = 0, State LongJump0 = 0, State LongJump1 = 0>
void ds::xoroshiro::detail::XorOshiro< State, Result, A, B, C, Jump0, Jump1, LongJump0, LongJump1 >::set_state ( State nx,
State ny = 0 )
inline

Definition at line 98 of file xoroshiro.h.


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