Class JenkinsSmallFast32
java.lang.Object
org.apache.commons.rng.core.BaseProvider
org.apache.commons.rng.core.source32.IntProvider
org.apache.commons.rng.core.source32.JenkinsSmallFast32
- All Implemented Interfaces:
RandomIntSource, RestorableUniformRandomProvider, UniformRandomProvider
Implement Bob Jenkins's small fast (JSF) 32-bit generator.
The state size is 128-bits; the shortest period is expected to be about 294 and it expected that about one seed will run into another seed within 264 values.
- Since:
- 1.3
- See Also:
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected byte[]Creates a snapshot of the RNG state.final intnext()Return the next random value.private voidsetSeedInternal(int seed) Seeds the RNG.protected voidsetStateInternal(byte[] s) Resets the RNG to the givenstate.Methods inherited from class IntProvider
nextBoolean, nextBytes, nextBytes, nextBytesFill, nextDouble, nextInt, nextLong, resetCachedStateMethods inherited from class BaseProvider
checkIndex, checkStateSize, composeStateInternal, extendSeed, extendSeed, fillState, fillState, restoreState, saveState, splitStateInternal, toString
-
Field Details
-
a
private int aState a. -
b
private int bState b. -
c
private int cState c. -
d
private int dStatd d.
-
-
Constructor Details
-
JenkinsSmallFast32
Creates an instance with the given seed.- Parameters:
seed- Initial seed.
-
-
Method Details
-
setSeedInternal
private void setSeedInternal(int seed) Seeds the RNG.- Parameters:
seed- Seed.
-
next
public final int next()Return the next random value.- Returns:
- the next random value.
-
getStateInternal
protected byte[] getStateInternal()Creates a snapshot of the RNG state.- Overrides:
getStateInternalin classIntProvider- Returns:
- the internal state.
-
setStateInternal
protected void setStateInternal(byte[] s) Resets the RNG to the givenstate.- Overrides:
setStateInternalin classIntProvider- Parameters:
s- State (previously obtained by a call toBaseProvider.getStateInternal()).- See Also:
-