umontreal.iro.lecuyer.rng
Class WELL512
- java.lang.Object
-
- umontreal.iro.lecuyer.rng.RandomStreamBase
-
- umontreal.iro.lecuyer.rng.WELL512
-
- All Implemented Interfaces:
- java.io.Serializable, java.lang.Cloneable, CloneableRandomStream, RandomStream
public class WELL512 extends RandomStreamBase
This class implements theRandomStreaminterface via inheritance fromRandomStreamBase. The backbone generator is a Well Equidistributed Long period Linear Random Number Generator (WELL), proposed by F. Panneton, and which has a state size of 512 bits and a period length of approximatively 2512. The values of V, W and Z are 2150, 2200 and 2350 respectively (seeRandomStreamfor their definition). The seed of the RNG, and the state of a stream at any given step, is a 16-dimensional vector of 32-bit integers.This implementation requires about 70K of memory to run. This memory is shared between all instances of the class, and is only loaded when the first instance is created.
- See Also:
- Serialized Form
-
-
Constructor Summary
Constructors Constructor and Description WELL512()Constructs a new stream.WELL512(java.lang.String name)Constructs a new stream with the identifier name (used in the toString method).
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method and Description WELL512clone()Clones the current generator and return its copy.int[]getState()Returns the current state of the stream, represented as an array of 16 integers.static voidmain(java.lang.String[] args)This method is only meant to be used during the compilation process.voidresetNextSubstream()Reinitializes the stream to the beginning of its next substream: Ng is computed, and Cg and Bg are set to Ng.voidresetStartStream()Reinitializes the stream to its initial state Ig: Cg and Bg are set to Ig.voidresetStartSubstream()Reinitializes the stream to the beginning of its current substream: Cg is set to Bg.static voidsetPackageSeed(int[] seed)Sets the initial seed of the class WELL512 to the 16 integers of the vector seed[0..15].voidsetSeed(int[] seed)This method is discouraged for normal use.java.lang.StringtoString()Returns a string containing the current state of this stream.-
Methods inherited from class umontreal.iro.lecuyer.rng.RandomStreamBase
formatState, formatStateFull, increasedPrecision, nextArrayOfDouble, nextArrayOfInt, nextDouble, nextInt
-
-
-
-
Constructor Detail
-
WELL512
public WELL512()
Constructs a new stream.
-
WELL512
public WELL512(java.lang.String name)
Constructs a new stream with the identifier name (used in the toString method).- Parameters:
name- name of the stream
-
-
Method Detail
-
setPackageSeed
public static void setPackageSeed(int[] seed)
Sets the initial seed of the class WELL512 to the 16 integers of the vector seed[0..15]. This will be the initial seed of the class of the next created stream. At least one of the integers must be non-zero.- Parameters:
seed- array of 16 elements representing the seed
-
setSeed
public 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..15]. 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:
seed- array of 16 elements representing the seed
-
getState
public int[] getState()
Returns the current state of the stream, represented as an array of 16 integers.- Returns:
- the current state of the stream
-
clone
public WELL512 clone()
Clones the current generator and return its copy.- Specified by:
clonein interfaceCloneableRandomStream- Overrides:
clonein classRandomStreamBase- Returns:
- A deep copy of the current generator
-
resetStartStream
public void resetStartStream()
Description copied from interface:RandomStreamReinitializes the stream to its initial state Ig: Cg and Bg are set to Ig.- Specified by:
resetStartStreamin interfaceRandomStream- Specified by:
resetStartStreamin classRandomStreamBase
-
resetStartSubstream
public void resetStartSubstream()
Description copied from interface:RandomStreamReinitializes the stream to the beginning of its current substream: Cg is set to Bg.- Specified by:
resetStartSubstreamin interfaceRandomStream- Specified by:
resetStartSubstreamin classRandomStreamBase
-
resetNextSubstream
public void resetNextSubstream()
Description copied from interface:RandomStreamReinitializes the stream to the beginning of its next substream: Ng is computed, and Cg and Bg are set to Ng.- Specified by:
resetNextSubstreamin interfaceRandomStream- Specified by:
resetNextSubstreamin classRandomStreamBase
-
toString
public java.lang.String toString()
Description copied from interface:RandomStreamReturns a string containing the current state of this stream.- Specified by:
toStringin interfaceRandomStream- Specified by:
toStringin classRandomStreamBase- Returns:
- the state of the generator formated as a string
-
main
public static void main(java.lang.String[] args)
This method is only meant to be used during the compilation process. It is used to create the resource file the class need in order to run.
-
-
DMelt 3.0 © DataMelt by jWork.ORG