NOX Development
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.

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

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

The documentation for this class was generated from the following files:
• NOX_Random.H
• NOX_Random.C