This is a fast random number generator, which uses linear congruences. It uses the modulus 263. More...
#include <random_number_generator.h>
Public Member Functions | |
FastM2P63LinearCongruenceRandomNumberGenerator (unsigned long long multiplier, unsigned long long adder, unsigned long long seed) | |
The constructor. More... | |
std::string | GetName () |
Returns a string representation of this object. More... | |
void | LoadData (std::ifstream *) |
Loads data to reset the state of the random number generator to the state which was stored. More... | |
long long | RandomLongLong () |
Creates a random long long value. More... | |
mpf_t * | RandomMpft () |
Creates a random mpf_t value in the interval [0,1]. More... | |
void | StoreData (std::ofstream *) |
Stores the current state of this random number generator, such that it can completely restore the current state with this data. More... | |
Public Member Functions inherited from arbitraryprecisioncalculation::RandomNumberGenerator | |
virtual | ~RandomNumberGenerator () |
The destructor. More... | |
Detailed Description
This is a fast random number generator, which uses linear congruences. It uses the modulus 263.
Constructor & Destructor Documentation
arbitraryprecisioncalculation::FastM2P63LinearCongruenceRandomNumberGenerator::FastM2P63LinearCongruenceRandomNumberGenerator | ( | unsigned long long | multiplier, |
unsigned long long | adder, | ||
unsigned long long | seed | ||
) |
The constructor.
- Parameters
-
multiplier The factor in the linear congruence. adder The additive value in the linear congruence. seed The initial seed of the random number generator.
Member Function Documentation
|
virtual |
Returns a string representation of this object.
- Returns
- The name of the object.
Implements arbitraryprecisioncalculation::RandomNumberGenerator.
|
virtual |
Loads data to reset the state of the random number generator to the state which was stored.
- Parameters
-
input_stream The stream which contains the data about the state of the random number generator.
Implements arbitraryprecisioncalculation::RandomNumberGenerator.
|
virtual |
Creates a random long long value.
Calculates the next random by the equation (adder + multiplier · S) mod 263, where S is the previous random value or the initial seed (if it is the first call of this function) and mod means the modulo operation.
- Returns
- The random value.
Implements arbitraryprecisioncalculation::RandomNumberGenerator.
|
virtual |
Creates a random mpf_t value in the interval [0,1].
The random value is generated by a call of the random long long function and a division by the modulus 263.
- Returns
- The random value.
Implements arbitraryprecisioncalculation::RandomNumberGenerator.
|
virtual |
Stores the current state of this random number generator, such that it can completely restore the current state with this data.
- Parameters
-
output_stream The output stream where the state should be stored.
Implements arbitraryprecisioncalculation::RandomNumberGenerator.
The documentation for this class was generated from the following file:
- src/arbitrary_precision_calculation/random_number_generator.h