SSJ
3.3.1
Stochastic Simulation in Java
|
Implements a RNG using the Rijndael block cipher algorithm (AES) with key and block lengths of 128 bits. More...
Public Member Functions | |
RandRijndael () | |
Constructs a new stream. | |
RandRijndael (String name) | |
Constructs a new stream with the identifier name (used in the toString method). More... | |
void | setSeed (byte seed[]) |
This method is discouraged for normal use. More... | |
byte [] | getState () |
Returns the current state of the stream, represented as an array of four integers. More... | |
RandRijndael | 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... | |
Static Public Member Functions | |
static void | setPackageSeed (byte seed[]) |
Sets the initial seed for the class RandRijndael to the 16 bytes of the vector seed[0..15] . 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... | |
Static Package Functions | |
[static initializer] | |
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 |
Implements a RNG using the Rijndael block cipher algorithm (AES) with key and block lengths of 128 bits.
A block of 128 bits is encrypted by the Rijndael algorithm to generate 128 pseudo-random bits. Those bits are split into four words of 32 bits which are returned successively by the method nextValue
. The unencrypted block is the state of the generator. It is incremented by 1 at every four calls to nextValue
. Thus, the period is \(2^{130}\) and jumping ahead is easy. The values of \(V\), \(W\) and \(Z\) are \(2^{40}\), \(2^{42}\) and \(2^{82}\), respectively (see RandomStream for their definition). Seeds/states must be given as 16-dimensional vectors of bytes (8-bit integers). The default initial seed is a vector filled with zeros.
The Rijndael implementation used here is that of the Cryptix Development Team, which can be found on the Rijndael creators’ page http://www.esat.kuleuven.ac.be/~rijmen/rijndael/.
RandRijndael | ( | String | name | ) |
Constructs a new stream with the identifier name
(used in the toString
method).
name | name of the stream |
RandRijndael clone | ( | ) |
Clones the current generator and return its copy.
Implements CloneableRandomStream.
byte [] getState | ( | ) |
Returns the current state of the stream, represented as an array of four integers.
It should be noted that each state of this generator returns 4 successive values. The particular value of these 4 which will be returned next is not given by this method.
|
static |
Sets the initial seed for the class RandRijndael
to the 16 bytes of the vector seed[0..15]
.
This will be the initial state (or seed) of the next created stream. The default seed for the first stream is \((0, 0, …, 0, 0)\).
seed | array of 16 elements representing the seed |
void setSeed | ( | byte | seed[] | ) |
This method is discouraged for normal use.
Initializes the stream at the beginning of a stream with the initial seed seed[0..15]
. 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.
seed | array of 16 elements representing the seed |
String toString | ( | ) |
Returns a string containing the current state of this stream.
Implements RandomStream.