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

TRNG::CLCG4 Class Reference

combined generator. More...

#include <trng.h>

Inheritance diagram for TRNG::CLCG4:

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

 CLCG4 (long a1= 376555083l, long m1=2147482951l, long a2=1028879659l, long m2=2147482949l, long a3= 225802979l, long m3=2147482943l, long a4=2028073966l, long m4=2147482859l, long seed_=0l)
 constructor. More...


Static Public Attributes

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


Detailed Description

combined generator.

This is a combined linear congruential random number generator with four generators.

Author(s):
Heiko Bauke

Definition at line 1447 of file trng.h.


Constructor & Destructor Documentation

TRNG::CLCG4::CLCG4 ( long a1 = 376555083l,
long m1 = 2147482951l,
long a2 = 1028879659l,
long m2 = 2147482949l,
long a3 = 225802979l,
long m3 = 2147482943l,
long a4 = 2028073966l,
long m4 = 2147482859l,
long seed_ = 0l )
 

The constructor's default values implement a pseudo random number generator with

This generator has a period of . The multipliers were found by an exhausive search applying the spectral test in up to eight dimensions.

Parameters:
a1   multiplier
m1   prime modulus
a2   multiplier
m2   prime modulus
a3   multiplier
m3   prime modulus
a4   multiplier
m4   prime modulus
seed_   default seed


Member Function Documentation

const char* TRNG::CLCG4::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::CLCG4::reset ( void )
 

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

Reimplemented from TRNG::RNG.

void TRNG::CLCG4::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::CLCG4::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::CLCG4::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::CLCG4::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::CLCG4::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::CLCG4::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::CLCG4::type = CLCG4_t [static]
 

This numerical value determins the random number generator type.

Reimplemented from TRNG::RNG.

Definition at line 1455 of file trng.h.


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