SSJ  3.3.1
Stochastic Simulation in Java
Public Member Functions | Protected Member Functions | List of all members
MT19937 Class Reference

Implements the RandomStream interface via inheritance from RandomStreamBase. More...

Inheritance diagram for MT19937:
[legend]
Collaboration diagram for MT19937:
[legend]

Public Member Functions

 MT19937 (CloneableRandomStream rng)
 Constructs a new stream, using rng to fill its initial state. More...
 
 MT19937 (CloneableRandomStream rng, String name)
 Constructs a new stream with the identifier name (used in the toString method). More...
 
MT19937 clone ()
 Clones the current generator and return its copy. More...
 
void resetStartStream ()
 Reinitializes the stream to its initial state \(I_g\): \(C_g\) and \(B_g\) are set to \(I_g\).
 
void resetStartSubstream ()
 Reinitializes the stream to the beginning of its current substream: \(C_g\) is set to \(B_g\).
 
void resetNextSubstream ()
 Reinitializes the stream to the beginning of its next substream: \(N_g\) is computed, and \(C_g\) and \(B_g\) are set to \(N_g\).
 
String toString ()
 Returns a string containing the current state of this stream. More...
 
- Public Member Functions inherited from RandomStreamBase
abstract void resetStartStream ()
 Reinitializes the stream to its initial state \(I_g\): \(C_g\) and \(B_g\) are set to \(I_g\).
 
abstract void resetStartSubstream ()
 Reinitializes the stream to the beginning of its current substream: \(C_g\) is set to \(B_g\).
 
abstract void resetNextSubstream ()
 Reinitializes the stream to the beginning of its next substream: \(N_g\) is computed, and \(C_g\) and \(B_g\) are set to \(N_g\).
 
abstract String toString ()
 Returns a string containing the current state of this stream. More...
 
void increasedPrecision (boolean incp)
 After calling this method with incp = true, each call to the RNG (direct or indirect) for this stream will return a uniform random number with more bits of precision than what is returned by nextValue, and will advance the state of the stream by 2 steps instead of 1 (i.e., nextValue will be called twice for each random number). More...
 
double nextDouble ()
 Returns a uniform random number between 0 and 1 from the stream. More...
 
void nextArrayOfDouble (double[] u, int start, int n)
 Calls nextDouble n times to fill the array u. More...
 
int nextInt (int i, int j)
 Calls nextDouble once to create one integer between i and j. More...
 
void nextArrayOfInt (int i, int j, int[] u, int start, int n)
 Calls nextInt n times to fill the array u. More...
 
String formatState ()
 Use the toString method.
 
String formatStateFull ()
 Use the toStringFull method.
 
RandomStreamBase clone ()
 Clones the current generator and return its copy. More...
 

Protected Member Functions

double nextValue ()
 
- Protected Member Functions inherited from RandomStreamBase
abstract double nextValue ()
 This method should return the next random number (between 0 and 1) from the current stream. More...
 

Additional Inherited Members

- Protected Attributes inherited from RandomStreamBase
String name = null
 
boolean prec53 = false
 
boolean anti = false
 
- Static Protected Attributes inherited from RandomStreamBase
static double invtwo24 = 5.9604644775390625e-8
 

Detailed Description

Implements the RandomStream interface via inheritance from RandomStreamBase.

The backbone generator is the MT19937 Mersenne Twister, proposed by Matsumoto and Nishimura [179] , which has a state size of 19937 bits and a period length of \(\rho\approx\) \(2^{19937}\). Each instance uses another CloneableRandomStream to fill its initial state. With this design, the initial states of successive streams are not spaced by an equal number of steps, and there is no guarantee that different streams do not overlap, but damaging overlap is unlikely because of the huge size of the state space. The seed of the RNG, and the state of a stream at any given step, is a 624-dimensional vector of 32-bit integers. The output of nextValue has 32 bits of precision.

Constructor & Destructor Documentation

◆ MT19937() [1/2]

Constructs a new stream, using rng to fill its initial state.

Parameters
rngused to build the seed

◆ MT19937() [2/2]

MT19937 ( CloneableRandomStream  rng,
String  name 
)

Constructs a new stream with the identifier name (used in the toString method).

Parameters
rngused to build the seed
namename of the stream

Member Function Documentation

◆ clone()

MT19937 clone ( )

Clones the current generator and return its copy.

Returns
A deep copy of the current generator

Implements CloneableRandomStream.

◆ toString()

String toString ( )

Returns a string containing the current state of this stream.

Returns
the state of the generator formated as a string

Implements RandomStream.


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