An series of "Xorshiro128+" generators, with state vectors for all of them and the means for seeding the series based on long jumps from a single state vector.
More...
#include <random.h>
|
size_t | getGeneratorCount () const |
| Get the number of (forward-jumped) generators.
|
|
size_t | getDepth () const |
| Get the depth of the bank for each generator.
|
|
size_t | getRefreshStride () const |
| Get the number of generators for which to refesh all banked values at one time.
|
|
T | getBankValue (size_t generator_index, size_t layer_index) const |
| Get a random number out of the bank.
|
|
void | uniformRandomNumbers (size_t first_gen, size_t last_gen) |
| Populate a portion of this object's bank with random numbers from each of the respective generators.
|
|
void | gaussianRandomNumbers (size_t first_gen, size_t last_gen) |
| Populate a portion of this object's bank with normally distributed random numbers from each of the respective generators.
|
|
|
| RandomNumberMill (const ullint2 state_in, size_t generators_in=1LLU, size_t depth_in=2LLU, RandomNumberKind init_kind=RandomNumberKind::GAUSSIAN, size_t bank_limit=constants::giga_zu) |
| The constructor can work off of a simple random initialization seed integer or a specific state vector for the first generator in the series.
|
|
| RandomNumberMill (const ullint4 state_in, size_t generators_in=1LLU, size_t depth_in=2LLU, RandomNumberKind init_kind=RandomNumberKind::GAUSSIAN, size_t bank_limit=constants::giga_zu) |
|
| RandomNumberMill (size_t generators_in=1LLU, size_t depth_in=2LLU, RandomAlgorithm style_in=RandomAlgorithm::XOSHIRO_256PP, RandomNumberKind init_kind=RandomNumberKind::GAUSSIAN, int igseed_in=default_random_seed, int niter=default_xoshiro256pp_scrub, size_t bank_limit=constants::giga_zu) |
|
template<typename T>
class stormm::random::RandomNumberMill< T >
An series of "Xorshiro128+" generators, with state vectors for all of them and the means for seeding the series based on long jumps from a single state vector.
◆ RandomNumberMill()
template<typename T>
stormm::random::RandomNumberMill< T >::RandomNumberMill |
( |
const ullint2 | state_in, |
|
|
size_t | generators_in = 1LLU, |
|
|
size_t | depth_in = 2LLU, |
|
|
RandomNumberKind | init_kind = RandomNumberKind::GAUSSIAN, |
|
|
size_t | bank_limit = constants::giga_zu ) |
The constructor can work off of a simple random initialization seed integer or a specific state vector for the first generator in the series.
- Parameters
-
generators_in | The count of generators in the series |
depth_in | Quantity of random numbers from each generator to store in the bank |
init_kind | Style in which to initialize the random numbers in the bank, i.e. from a uniform or a normal distribution |
igseed_in | The seed for the first generator in the series |
niter | The number of iterations to use in initializing each generator |
bank_limit | The maximum length of the random number cache |
state_in | The state to apply to generator zero, thus determining the initial states of all other generators |
◆ gaussianRandomNumbers()
Populate a portion of this object's bank with normally distributed random numbers from each of the respective generators.
- Parameters
-
first_gen | Index of the first generator to draw random numbers from |
last_gen | Index of the generator before which to stop drawing new random numbers |
◆ getBankValue()
Get a random number out of the bank.
- Parameters
-
generator_index | The generator series from which to obtain the value |
layer_index | Layer from which to obtain the value |
◆ uniformRandomNumbers()
Populate a portion of this object's bank with random numbers from each of the respective generators.
- Parameters
-
first_gen | Index of the first generator to draw random numbers from |
last_gen | Index of the generator before which to stop drawing new random numbers |
The documentation for this class was generated from the following file: