SSJ
3.3.1
Stochastic Simulation in Java
|
Extends the abstract class RandomStreamBase, thus implementing the RandomStream interface indirectly. More...
Public Member Functions | |
MRG31k3p () | |
Constructs a new stream, initialized at its beginning. More... | |
MRG31k3p (String name) | |
Constructs a new stream with the identifier name (used when formatting the stream state). More... | |
void | setSeed (int seed[]) |
Use of this method is strongly discouraged. 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\). | |
int [] | getState () |
Returns the current state \(C_g\) of this stream. More... | |
MRG31k3p | clone () |
Clones the current generator and return its copy. More... | |
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... | |
Static Public Member Functions | |
static void | setPackageSeed (int seed[]) |
Sets the initial seed for the class MRG31k3p to the six integers of the vector seed[0..5] . 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 |
Extends the abstract class RandomStreamBase, thus implementing the RandomStream interface indirectly.
The backbone generator is the combined multiple recursive generator (CMRG) MRG31k3p
proposed by L’Ecuyer and Touzin [135] , implemented in 32-bit integer arithmetic. This RNG has a period length of \(\rho\approx\) \(2^{185}\). The values of \(V\), \(W\) and \(Z\) are \(2^{62}\), \(2^{72}\) and \(2^{134}\) respectively. (See RandomStream for their definition.) The seed and the state of a stream at any given step are six-dimensional vectors of 32-bit integers. The default initial seed is \((12345, 12345, 12345, 12345, 12345, 12345)\). The method nextValue
provides 31 bits of precision.
The difference between the RNG of class MRG32k3a and this one is that this one has all its coefficients of the form \(a = \pm2^q \pm2^r\). This permits a faster implementation than for arbitrary coefficients. On a 32-bit computer, MRG31k3p
is about twice as fast as MRG32k3a
. On the other hand, the latter does a little better in the spectral test and has been more extensively tested.
MRG31k3p | ( | ) |
Constructs a new stream, initialized at its beginning.
Its seed is \(Z = 2^{134}\) steps away from the previous seed.
MRG31k3p | ( | String | name | ) |
Constructs a new stream with the identifier name
(used when formatting the stream state).
name | name of the stream |
MRG31k3p clone | ( | ) |
Clones the current generator and return its copy.
Implements CloneableRandomStream.
int [] getState | ( | ) |
Returns the current state \(C_g\) of this stream.
This is a vector of 6 integers represented. This method is convenient if we want to save the state for subsequent use.
|
static |
Sets the initial seed for the class MRG31k3p
to the six integers of the vector seed[0..5]
.
This will be the initial state (or seed) of the next created stream. By default, if this method is not called, the first stream is created with the seed \((12345, 12345, 12345, 12345, 12345, 12345)\). If it is called, the first 3 values of the seed must all be less than \(m_1 = 2147483647\), and not all 0; and the last 3 values must all be less than \(m_2 = 2147462579\), and not all 0.
seed | array of 6 elements representing the seed |
void setSeed | ( | int | seed[] | ) |
Use of this method is strongly discouraged.
Initializes the stream at the beginning of a stream with the initial seed seed[0..5]
. This vector must satisfy the same conditions as in setPackageSeed
. This method only affects the specified stream, all the others are not modified, so the beginning of the streams are no longer spaced \(Z\) values apart. For this reason, this method should be used only in very exceptional situations; proper use of reset...
and of the stream constructor is preferable.
seed | array of 6 integers representing the new seed |
String toString | ( | ) |
Returns a string containing the current state of this stream.
Implements RandomStream.