SST  13.0.0
StructuralSimulationToolkit
SST::RNG::XORShiftRNG Class Reference

Implements a lightweight RNG based on XOR-shift operations. More...

#include "sst/core/rng/xorshift.h"

Inheritance diagram for SST::RNG::XORShiftRNG:
SST::RNG::Random

Public Member Functions

 XORShiftRNG (unsigned int seed)
 Create a new Xorshift RNG with a specified seed. More...
 
 XORShiftRNG ()
 Creates a new Xorshift using a random seed which is obtained from the system clock. More...
 
double nextUniform () override
 Generates the next random number as a double value between 0 and 1.
 
uint32_t generateNextUInt32 () override
 Generates the next random number as an unsigned 32-bit integer.
 
uint64_t generateNextUInt64 () override
 Generates the next random number as an unsigned 64-bit integer.
 
int64_t generateNextInt64 () override
 Generates the next random number as a signed 64-bit integer.
 
int32_t generateNextInt32 () override
 Generates the next random number as a signed 32-bit integer.
 
void seed (uint64_t newSeed)
 Seed the XOR RNG.
 
 ~XORShiftRNG ()
 Destructor for Xorshift.
 
- Public Member Functions inherited from SST::RNG::Random
virtual ~Random ()
 Destroys the random number generator.
 

Protected Attributes

uint32_t x
 
uint32_t y
 
uint32_t z
 
uint32_t w
 

Detailed Description

Implements a lightweight RNG based on XOR-shift operations.

We utilize the XORSHIFT algorithm from: http://en.wikipedia.org/wiki/Xorshift. This is a very lightweight and inexpensive RNG.

Constructor & Destructor Documentation

◆ XORShiftRNG() [1/2]

XORShiftRNG::XORShiftRNG ( unsigned int  seed)

Create a new Xorshift RNG with a specified seed.

Parameters
[in]seedThe seed for this RNG

References seed().

◆ XORShiftRNG() [2/2]

XORShiftRNG::XORShiftRNG ( )

Creates a new Xorshift using a random seed which is obtained from the system clock.

Note this will give different results on different platforms and between runs.


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