ROSE
0.9.6a
|
Linear congruential generator. More...
#include <LinearCongruentialGenerator.h>
Public Member Functions | |
LinearCongruentialGenerator () | |
Initialize the generator with a random seed. More... | |
LinearCongruentialGenerator (int seed) | |
Initialize the generator with a seed. More... | |
void | init () |
Random initialization. More... | |
void | reset () |
Reset the sequence back to the first value. More... | |
void | reseed (int seed) |
Start a new sequence of random values. More... | |
int | seed () const |
Return the seed for the current sequence. More... | |
uint64_t | again () const |
Return the last returned value again. More... | |
uint64_t | max () |
Return the maximum possible value. More... | |
bool | flip_coin () |
Return a random boolean value. More... | |
uint64_t | next (size_t nbits=64, size_t niter=1) |
Return the next value in the sequence. More... | |
uint64_t | operator() () |
Return the next value in the sequence. More... | |
Protected Attributes | |
int | seed_ |
uint64_t | value_ |
Linear congruential generator.
Generates a repeatable sequence of pseudo-random numbers.
Definition at line 8 of file LinearCongruentialGenerator.h.
|
inline |
Initialize the generator with a random seed.
Definition at line 11 of file LinearCongruentialGenerator.h.
References init().
|
inline |
Initialize the generator with a seed.
The seed determines which sequence of numbers is returned.
Definition at line 14 of file LinearCongruentialGenerator.h.
void LinearCongruentialGenerator::init | ( | ) |
Random initialization.
This uses /dev/urandom or /dev/random to initailize the sequence.
Referenced by LinearCongruentialGenerator().
|
inline |
Reset the sequence back to the first value.
Definition at line 20 of file LinearCongruentialGenerator.h.
|
inline |
Start a new sequence of random values.
The seed identifies which sequence is returned.
Definition at line 23 of file LinearCongruentialGenerator.h.
|
inline |
Return the seed for the current sequence.
Definition at line 26 of file LinearCongruentialGenerator.h.
References seed_.
Referenced by reseed().
|
inline |
Return the last returned value again.
Definition at line 29 of file LinearCongruentialGenerator.h.
References value_.
uint64_t LinearCongruentialGenerator::max | ( | ) |
Return the maximum possible value.
uint64_t LinearCongruentialGenerator::next | ( | size_t | nbits = 64 , |
size_t | niter = 1 |
||
) |
Return the next value in the sequence.
If nbits is specified, then only the low-order bits are randomized and the high order bits are always cleared. For instance, to get only positive values for casting to a 32-bit signed integer, use nbits=31. The niter
indicates the number of values that should be consumed, all of which are exclusive-ORed together to create the return value. If niter
is zero this function returns zero without consume any values.
Referenced by operator()().
|
inline |
Return the next value in the sequence.
If nbits is specified, then only the low-order bits are randomized and the high order bits are always cleared. For instance, to get only positive values for casting to a 32-bit signed integer, use nbits=31. The niter
indicates the number of values that should be consumed, all of which are exclusive-ORed together to create the return value. If niter
is zero this function returns zero without consume any values.
Definition at line 40 of file LinearCongruentialGenerator.h.
References next().
bool LinearCongruentialGenerator::flip_coin | ( | ) |
Return a random boolean value.
|
protected |
Definition at line 47 of file LinearCongruentialGenerator.h.
|
protected |
Definition at line 48 of file LinearCongruentialGenerator.h.