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.  
Random (int s)  
Initialize random number generator with the given seed.  
Static Public Member Functions  
static void  setSeed (int s) 
Set the seed to s.  
static double  number () 
Compute a random number.  
Static Protected Member Functions  
static int  checkSeed (const string &func, int s) 
Checks that the supplied seed value is valid and returns a valid seed.  
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 pseudorandom (double precision) numbers uniformly distributed between 1.0 and 1.0 using a multiplicative congruential generator with modulus 2^311 (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^322 (inclusive). If the supplied seed is invalid, an error message is printed and the seed is replaced by 1.
int NOX::Random::checkSeed  (  const string &  func, 
int  s  
)  [static, protected] 
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.
void NOX::Random::setSeed  (  int  s  )  [static] 
Set the seed to s.
The seed should be an integer between 1 and 2147483646 = 2^322 (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().