NOX
Development
|
A class to compute uniformly distributed random numbers in (-1,1). More...
#include <NOX_Random.H>
Public Member Functions | |
Random () | |
Initialize random number generator with a random seed. More... | |
Random (int s) | |
Initialize random number generator with the given seed. More... | |
Static Public Member Functions | |
static void | setSeed (int s) |
Set the seed to s. More... | |
static double | number () |
Compute a random number. | |
Static Protected Member Functions | |
static int | checkSeed (const std::string &func, int s) |
Checks that the supplied seed value is valid and returns a valid seed. More... | |
Static Protected Attributes | |
static double | seed = 1.0 |
Seed value. | |
A class to compute uniformly distributed random numbers in (-1,1).
The Random class computes pseudo-random (double precision) numbers uniformly distributed between -1.0 and 1.0 using a multiplicative congruential generator with modulus 2^31-1 (a Lehmer generator). For a numerical and mathematical treatment of the algorithm, see "Random number generators: good ones are hard to find" by Stephen K. Park and Keith W. Miller, Communications of the ACM, Vol. 31 No. 10 (1988).
NOX::Random::Random | ( | ) |
Initialize random number generator with a random seed.
The random seed is computed using the POSIX rand() function.
References seed.
NOX::Random::Random | ( | int | s | ) |
Initialize random number generator with the given seed.
The seed should be an integer between 1 and 2147483646 = 2^32-2 (inclusive). If the supplied seed is invalid, an error message
is printed and the seed is replaced by 1.
|
staticprotected |
Checks that the supplied seed value is valid and returns a valid seed.
The string argument supplies the calling function name for an error message in the case that the supplied seed is invalid.
|
static |
Set the seed to s.
The seed should be an integer between 1 and 2147483646 = 2^32-2 (inclusive). If the supplied seed is invalid, an error message
is printed and the seed is replaced by 1.
Referenced by NOX::LAPACK::Vector::random(), and LOCA::Extended::Vector::random().