template<typename T>
Xorshift class
class to create a fast xorshift-based pseudo-random number generator
| Template parameters | |
|---|---|
| T | unsigned integral type used as the internal state (supported uint32_t and uint64_t) |
This class implements a lightweight xorshift pseudo-random number generator suitable for performance-critical paths such as schedulers, work-stealing victim selection, and randomized backoff. The implementation is branchless on the hot path and has a very small state footprint (one machine word). All operations are integer-only.
Constructors, destructors, conversion operators
Public functions
- void seed(T value)
- seeds the generator with a new value
- auto operator()() -> T
- generates the next pseudo-random value
Function documentation
template<typename T>
void tf:: Xorshift<T>:: seed(T value)
seeds the generator with a new value
| Parameters | |
|---|---|
| value | the new seed value |
The seed value must be non-zero. A zero seed results in a degenerated generator that always returns zero.
template<typename T>
T tf:: Xorshift<T>:: operator()()
generates the next pseudo-random value
| Returns | a pseudo-random value of type T |
|---|
For 32-bit state, this function implements the Xorshift32 algorithm. For 64-bit state, this function implements the Xorshift64 algorithm with a multiplicative output transformation to improve distribution.