NOX::Random Class Reference

A class to compute uniformly distributed random numbers in (-1,1). More...

#include <NOX_Random.H>

List of all members.

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.


Detailed Description

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).


Constructor & Destructor Documentation

NOX::Random::Random (  ) 

Initialize random number generator with a random seed.

The random seed is computed using the POSIX rand() function.

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.


Member Function Documentation

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^32-2 (inclusive). If the supplied seed is invalid, an error message is printed and the seed is replaced by 1.


The documentation for this class was generated from the following files:
Generated on Tue Oct 20 12:46:34 2009 for NOX by doxygen 1.4.7