SSJ  3.3.1
Stochastic Simulation in Java
Public Member Functions | Static Public Member Functions | Protected Member Functions | Static Package Attributes | List of all members
WELL607 Class Reference

This class implements the RandomStream interface via inheritance from RandomStreamBase. More...

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

Public Member Functions

 WELL607 ()
 Constructs a new stream.
 
 WELL607 (String name)
 Constructs a new stream with the identifier name (used in the toString method). More...
 
void setSeed (int seed[])
 This method is discouraged for normal use. More...
 
int [] getState ()
 Returns the current state of the stream, represented as an array of 19 integers. 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...
 
WELL607 clone ()
 Clones the current generator and return its copy. More...
 
- Public Member Functions inherited from WELL607base
WELL607base clone ()
 Clones the current object and returns its copy. 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 of the class WELL607 to the 19 integers of the vector seed[0..18]. More...
 

Protected Member Functions

double nextValue ()
 
- Protected Member Functions inherited from WELL607base
void advanceSeed (int[] seed, int [] p)
 
- 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...
 

Static Package Attributes

static final int [] pw
 
static final int [] pz
 
- Static Package Attributes inherited from WELL607base
static final double NORM = (1.0 / 0x100000001L)
 
static final int R = 19
 
static final int BUFFER_SIZE = 32
 
static final int NUM_BITS = 608
 
static final int MASK_STATE = 0x0000001F
 
static final int W = 32
 
static final int P = 1
 
static final int MASKU = (0xffffffff >>> (W - P))
 
static final int MASKL = (~MASKU)
 
static final int M1 = 16
 
static final int M2 = 15
 
static final int M3 = 14
 
static final int R1 = 18
 
static final int R2 = 17
 
static final int w = 250
 
static final int v = 150
 

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
 
- Package Functions inherited from WELL607base
int [] getState ()
 
String stringState ()
 
int nextInt ()
 
- Static Package Functions inherited from WELL607base
static void verifySeed (int seed[])
 
- Package Attributes inherited from WELL607base
int state_i
 
int [] state
 
int [] stream
 
int [] substream
 

Detailed Description

This class implements the RandomStream interface via inheritance from RandomStreamBase.

The backbone generator is a Well Equidistributed Long period Linear Random Number Generator (WELL), proposed by F. Panneton in [198], [199] . The implemented generator is the WELL607, which has a state size of 607 bits and a period length of \(\rho\approx\) \(2^{607}\). The values of \(V\), \(W\) and \(Z\) are \(2^{150}\), \(2^{250}\) and \(2^{400}\) respectively (see RandomStream for their definition). The seed of the RNG, and the state of a stream at any given step, is a 19-dimensional vector of 32-bit integers. The output of nextValue has 32 bits of precision.

Constructor & Destructor Documentation

◆ WELL607()

WELL607 ( String  name)

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

Parameters
namename of the stream

Member Function Documentation

◆ clone()

WELL607 clone ( )

Clones the current generator and return its copy.

Returns
A deep copy of the current generator

Implements CloneableRandomStream.

◆ getState()

int [] getState ( )

Returns the current state of the stream, represented as an array of 19 integers.

Returns
the current state of the stream

◆ setPackageSeed()

static void setPackageSeed ( int  seed[])
static

Sets the initial seed of the class WELL607 to the 19 integers of the vector seed[0..18].

This will be the initial seed of the next created stream. At least one of the integers must not be zero and if this integer is the last one, it must not be equal to 0x80000000.

Parameters
seedarray of 19 elements representing the seed

◆ setSeed()

void setSeed ( int  seed[])

This method is discouraged for normal use.

Initializes the stream at the beginning of a stream with the initial seed seed[0..18]. The seed must satisfy the same conditions as in setPackageSeed. This method only affects the specified stream; the others are not modified. Hence after calling this method, the beginning of the streams will no longer be spaced \(Z\) values apart. For this reason, this method should only be used in very exceptional cases; proper use of the reset... methods and of the stream constructor is preferable.

Parameters
seedarray of 19 elements representing the seed

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

Member Data Documentation

◆ pw

final int [] pw
staticpackage
Initial value:
= new int[]
{0x83167621, 0x6b5515c8, 0x61a62bd2, 0xbceaa78f,
0xac04b304, 0x28a75ea4, 0xa9104058, 0x595ea53b,
0x35687e95, 0x7f8eca9b, 0x30beffb8, 0xc61e6111,
0x284ee30e, 0x4e9cd901, 0x659633ba, 0x344cc69e,
0xd6052ac1, 0x5d508b69, 0x62cf130}

◆ pz

final int [] pz
staticpackage
Initial value:
= new int[]
{0x70b2bdee, 0x595828f1, 0x85a17885, 0x5100c7b2,
0xd3333da2, 0xb42857de, 0xf8a7a4a7, 0xabad2a33,
0xa2580cf, 0xf94c465e, 0x7df951d5, 0x35467053,
0xb3c9a4e, 0x6a33977, 0x443910e, 0xc25aec3d,
0xeb72e8c5, 0x8873b01, 0x7da57636}

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