Class PcgXshRs32
java.lang.Object
org.apache.commons.rng.core.BaseProvider
org.apache.commons.rng.core.source32.IntProvider
org.apache.commons.rng.core.source32.AbstractPcg6432
org.apache.commons.rng.core.source32.PcgXshRs32
- All Implemented Interfaces:
RandomIntSource
,RestorableUniformRandomProvider
,UniformRandomProvider
A Permuted Congruential Generator (PCG) that is composed of a 64-bit Linear Congruential
Generator (LCG) combined with the XSH-RS (xorshift; random shift) output
transformation to create 32-bit output.
State size is 128 bits and the period is 264.
Note: Although the seed size is 128 bits, only the first 64 are effective: in effect, two seeds that only differ by the last 64 bits may produce highly correlated sequences.
- Since:
- 1.3
- See Also:
-
Constructor Summary
ConstructorsConstructorDescriptionPcgXshRs32
(long[] seed) Creates a new instance.PcgXshRs32
(Long seed) Creates a new instance using a default increment. -
Method Summary
Modifier and TypeMethodDescriptionprotected int
transform
(long x) Transform the 64-bit state of the generator to a 32-bit output.Methods inherited from class org.apache.commons.rng.core.source32.AbstractPcg6432
getStateInternal, next, setStateInternal
Methods inherited from class org.apache.commons.rng.core.source32.IntProvider
nextBoolean, nextBytes, nextBytes, nextBytesFill, nextDouble, nextInt, nextLong, resetCachedState
Methods inherited from class org.apache.commons.rng.core.BaseProvider
checkIndex, checkStateSize, composeStateInternal, extendSeed, extendSeed, fillState, fillState, restoreState, saveState, splitStateInternal, toString
-
Constructor Details
-
PcgXshRs32
Creates a new instance using a default increment.- Parameters:
seed
- Initial state.- Since:
- 1.4
-
PcgXshRs32
public PcgXshRs32(long[] seed) Creates a new instance.Note: Although the seed size is 128 bits, only the first 64 are effective: in effect, two seeds that only differ by the last 64 bits may produce highly correlated sequences.
- Parameters:
seed
- Initial seed. If the length is larger than 2, only the first 2 elements will be used; if smaller, the remaining elements will be automatically set.The 1st element is used to set the LCG state. The 2nd element is used to set the LCG increment; the most significant bit is discarded by left shift and the increment is set to odd.
-
-
Method Details
-
transform
protected int transform(long x) Transform the 64-bit state of the generator to a 32-bit output. The transformation function shall vary with respect to different generators.- Specified by:
transform
in classAbstractPcg6432
- Parameters:
x
- State.- Returns:
- the output
-