umontreal.iro.lecuyer.rng
Class WELL607
- java.lang.Object
-
- umontreal.iro.lecuyer.rng.RandomStreamBase
-
- umontreal.iro.lecuyer.rng.WELL607
-
- All Implemented Interfaces:
- java.io.Serializable, java.lang.Cloneable, CloneableRandomStream, RandomStream
public class WELL607 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. The implemented generator is the WELL607, which has a state size of 607 bits and a period length of approximatively 2607. The values of V, W and Z are 2150, 2250 and 2400 respectively (seeRandomStreamfor 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.This implementation requires the use of about 100K 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 WELL607()Constructs a new stream.WELL607(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 WELL607clone()Clones the current generator and return its copy.int[]getState()Returns the current state of the stream, represented as an array of 19 integers.static voidmain(java.lang.String[] args)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 WELL607 to the 19 integers of the vector seed[0..18].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
-
WELL607
public WELL607()
Constructs a new stream.
-
WELL607
public WELL607(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 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:
seed- array of 19 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..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:
seed- array of 19 elements representing the seed
-
getState
public int[] getState()
Returns the current state of the stream, represented as an array of 19 integers.- Returns:
- the current state of the stream
-
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
-
clone
public WELL607 clone()
Clones the current generator and return its copy.- Specified by:
clonein interfaceCloneableRandomStream- Returns:
- A deep copy of the current generator
-
main
public static void main(java.lang.String[] args)
-
-
DMelt 3.0 © DataMelt by jWork.ORG