Main Page   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members  

TRNG::MRG2 Class Reference

multiple recursive generator. More...

#include <trng.h>

Inheritance diagram for TRNG::MRG2:

TRNG::RNG List of all members.

Public Methods

const char* name (void)
 pseudo random number generator's name. More...

void reset (void)
 reset the pseudo random number generator. More...

void seed (long s=0l)
 seed the pseudo random number generator. More...

long rand (void)
 next pseudo random number. More...

void split (long s, long n)
 sequence splitting. More...

void jump2 (long s)
 sequence splitting. More...

void save_status (std::vector<long> &s)
 status saving. More...

void load_status (const std::vector<long> &s)
 status restoring. More...

 MRG2 (long a0_=1498809829l, long a1_=1160990996l, long modulus_=2147483647l, long seed_=0l)
 constructor. More...


Static Public Attributes

const RNG_type type = MRG2_t
 pseudo random number generator type. More...


Detailed Description

multiple recursive generator.

This multiple recursive generator uses a linear recurrence of order two with a prime modulus.

Author(s):
Heiko Bauke

Definition at line 1180 of file trng.h.


Constructor & Destructor Documentation

TRNG::MRG2::MRG2 ( long a0_ = 1498809829l,
long a1_ = 1160990996l,
long modulus_ = 2147483647l,
long seed_ = 0l )
 

The constructor's default values implement a pseudo random number generator with , and . This generator has a period of .

Parameters:
a0_   multiplier
a1_   multiplier
m_   prime modulus
seed_   default seed


Member Function Documentation

const char* TRNG::MRG2::name ( void )
 

Returns a pointer to a zero terminated string containing the pseudo random number generator's name.

Returns:
pointer to a zero termiated string

Reimplemented from TRNG::RNG.

void TRNG::MRG2::reset ( void )
 

The pseudo random number generator's parameters are set to some default values.

Reimplemented from TRNG::RNG.

void TRNG::MRG2::seed ( long s = 0l )
 

The pseudo random number generator's state is set. Calling reset() and seed() with the seed value used by the initialisation will set the generator in the same state as after initialisation.

Parameters:
s   new seed
Exceptions:
error   if
See also:
TRNG::error

Reimplemented from TRNG::RNG.

long TRNG::MRG2::rand ( void )
 

This is the generator's core method. It calculates the next pseudo random number. It's an integer number with . You can determine the upper bound by calling the method max().

Returns:
next integer pseudo random number

Reimplemented from TRNG::RNG.

void TRNG::MRG2::split ( long s,
long n )
 

The pseudo random number generator's sequence is splitted into sequences using the leapfrog method. Sequence number is selected.

Parameters:
s   number of sequences
n   selected sequence
Exceptions:
error   if or or
See also:
TRNG::error

Reimplemented from TRNG::RNG.

void TRNG::MRG2::jump2 ( long s )
 

The pseudo random number generator jumps steps ahead.

Parameters:
s   determines the jump size
Exceptions:
error   if
See also:
TRNG::error

Reimplemented from TRNG::RNG.

void TRNG::MRG2::save_status ( std::vector< long >& s )
 

The status of the pseudo random number generator is saved into a vector.

Parameters:
s   reference to a vector of long

Reimplemented from TRNG::RNG.

void TRNG::MRG2::load_status ( const std::vector< long >& s )
 

The status of the pseudo random number generator is restored from a vector.

Parameters:
s   reference to a vector of long

Reimplemented from TRNG::RNG.


Member Data Documentation

const RNG_type TRNG::MRG2::type = MRG2_t [static]
 

This numerical value determins the random number generator type.

Reimplemented from TRNG::RNG.

Definition at line 1187 of file trng.h.


The documentation for this class was generated from the following file:
Generated at Tue Apr 30 12:03:18 2002 for Tina's Random Number Generators by doxygen1.2.3 written by Dimitri van Heesch, © 1997-2000