public class LFSR258 extends RandomStreamBase
RandomStreamBase using a 64-bit composite linear feedback
shift register (LFSR) (or Tausworthe) RNG as defined in.
This generator is the LFSR258 proposed in.
It has five components combined by a bitwise xor.
Its period length is approximatively 2^258
. The values of V, W and Z are 2100,
2100 and 2200 respectively (see RandomStream for their
definition). The seed of the RNG, and the state of a stream at any given
step, are five-dimensional vectors of 32-bit integers.
The default initial seed of the RNG is
(1234567890, 1234567890, 1234567890, 1234567890, 1234567890).
The nextValue method returns numbers with 53 bits of precision.
This generator is fast for 64-bit machines.| Constructor and Description |
|---|
LFSR258()
Constructs a new stream.
|
LFSR258(java.lang.String name)
Constructs a new stream with the identifier name.
|
| Modifier and Type | Method and Description |
|---|---|
LFSR258 |
clone()
Clones the current generator and return its copy.
|
long[] |
getState()
Returns the current state of the stream, represented as
an array of five integers.
|
int |
nextInt(int i,
int j)
Calls nextDouble once to create one integer between
i and j.
|
void |
resetNextSubstream()
Reinitializes the stream to the beginning of its next
substream: Ng is computed, and
Cg and Bg are set to Ng.
|
void |
resetStartStream()
Reinitializes the stream to its initial state Ig:
Cg and Bg are set to Ig.
|
void |
resetStartSubstream()
Reinitializes the stream to the beginning of its current
substream: Cg is set to Bg.
|
static void |
setPackageSeed(long[] seed)
Sets the initial seed for the class LFSR258 to the five
integers of array seed[0..4].
|
void |
setSeed(long[] seed)
This method is discouraged for normal use.
|
java.lang.String |
toString()
Returns a string containing the current state of this stream.
|
formatState, formatStateFull, increasedPrecision, nextArrayOfDouble, nextArrayOfInt, nextDoublepublic LFSR258()
public LFSR258(java.lang.String name)
name - name of the streampublic static void setPackageSeed(long[] seed)
seed - array of 5 elements representing the seedpublic void setSeed(long[] seed)
seed - array of 5 elements representing the seedpublic long[] getState()
public LFSR258 clone()
clone in interface CloneableRandomStreamclone in class RandomStreamBasepublic void resetStartStream()
RandomStreamresetStartStream in interface RandomStreamresetStartStream in class RandomStreamBasepublic void resetStartSubstream()
RandomStreamresetStartSubstream in interface RandomStreamresetStartSubstream in class RandomStreamBasepublic void resetNextSubstream()
RandomStreamresetNextSubstream in interface RandomStreamresetNextSubstream in class RandomStreamBasepublic java.lang.String toString()
RandomStreamtoString in interface RandomStreamtoString in class RandomStreamBasepublic int nextInt(int i,
int j)
RandomStreamBasenextInt in interface RandomStreamnextInt in class RandomStreamBasei - the smallest possible returned integerj - the largest possible returned integerTo submit a bug or ask questions, send an e-mail to Pierre L'Ecuyer.