NOX  Development
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
Public Member Functions | Static Public Member Functions | Static Protected Member Functions | Static Protected Attributes | List of all members
NOX::Random Class Reference

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.
 

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.

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.

Member Function Documentation

int NOX::Random::checkSeed ( const std::string &  func,
int  s 
)
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.

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.

Referenced by NOX::LAPACK::Vector::random(), and LOCA::Extended::Vector::random().


The documentation for this class was generated from the following files: