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

Extends RandomStreamBase using a composite linear feedback shift register (LFSR) (or Tausworthe) RNG as defined in [147], [229] . More...

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

Public Member Functions

 LFSR113 ()
 Constructs a new stream.
 
 LFSR113 (String name)
 Constructs a new stream with the identifier name. 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 four integers. More...
 
LFSR113 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...
 
int nextInt (int i, int j)
 Returns a (pseudo)random number from the discrete uniform distribution over the integers \(\{i,i+1,…,j\}\), using 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 LFSR113 to the four integers of the vector seed[0..3]. 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

Extends RandomStreamBase using a composite linear feedback shift register (LFSR) (or Tausworthe) RNG as defined in [147], [229] .

This generator is the LFSR113 proposed by [149] . It has four 32-bit components combined by a bitwise xor. Its period length is \(\rho\approx2^{113}\). The values of \(V\), \(W\) and \(Z\) are \(2^{35}\), \(2^{55}\) and \(2^{90}\) respectively (see RandomStream for their definition). The seed of the RNG, and the state of a stream at any given step, are four-dimensional vectors of 32-bit integers. The default initial seed of the RNG is [1] (987654321, 987654321, 987654321, 987654321). The nextValue method returns numbers with 32 bits of precision.

Constructor & Destructor Documentation

◆ LFSR113()

LFSR113 ( String  name)

Constructs a new stream with the identifier name.

Parameters
namename of the stream

Member Function Documentation

◆ clone()

LFSR113 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 four integers.

Returns
the current state of the stream

◆ nextInt()

int nextInt ( int  i,
int  j 
)

Returns a (pseudo)random number from the discrete uniform distribution over the integers \(\{i,i+1,…,j\}\), using this stream.

(Calls nextDouble once.)

Parameters
ismallest integer that can be generated
jgreatest integer that can be generated
Returns
the generated integer

Implements RandomStream.

◆ setPackageSeed()

static void setPackageSeed ( int []  seed)
static

Sets the initial seed for the class LFSR113 to the four integers of the vector seed[0..3].

This will be the initial state of the next created stream. The default seed for the first stream is [2] (987654321, 987654321, 987654321, 987654321). The first, second, third and fourth integers of seed must be either negative, or greater than or equal to 2, 8, 16 and 128 respectively.

Parameters
seedarray of 4 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..3]. The seed must satisfy the same conditions as in setPackageSeed. This method only affects the specified stream; the others are not modified, so the beginning of the streams will not 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 4 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.


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