Class XoRoShiRo128Plus
java.lang.Object
org.apache.commons.rng.core.BaseProvider
org.apache.commons.rng.core.source64.LongProvider
org.apache.commons.rng.core.source64.XoRoShiRo128Plus
- All Implemented Interfaces:
RandomLongSource,RestorableUniformRandomProvider,UniformRandomProvider
public class XoRoShiRo128Plus extends LongProvider
A fast 64-bit generator suitable for
double generation. This is slightly faster than the
all-purpose generator XoRoShiRo128StarStar.
This is a member of the Xor-Shift-Rotate family of generators. Memory footprint is 128 bits
and the period is 2128-1. Speed is expected to be similar to
XoShiRo256Plus.
- Since:
- 1.3
- See Also:
- Original source code, xorshiro / xoroshiro generators
-
Field Summary
-
Constructor Summary
Constructors Constructor Description XoRoShiRo128Plus(long[] seed)Creates a new instance.XoRoShiRo128Plus(long seed0, long seed1)Creates a new instance using a 2 element seed. -
Method Summary
Modifier and Type Method Description protected byte[]getStateInternal()Creates a snapshot of the RNG state.longnext()protected voidsetStateInternal(byte[] s)Resets the RNG to the givenstate.Methods inherited from class org.apache.commons.rng.core.source64.LongProvider
nextBoolean, nextBytes, nextBytes, nextDouble, nextFloat, nextInt, nextLongMethods inherited from class org.apache.commons.rng.core.BaseProvider
checkIndex, checkStateSize, composeStateInternal, fillState, fillState, nextInt, nextLong, restoreState, saveState, splitStateInternal, toString
-
Field Details
-
Constructor Details
-
XoRoShiRo128Plus
public XoRoShiRo128Plus(long[] seed)Creates a new instance.- 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. A seed containing all zeros will create a non-functional generator.
-
XoRoShiRo128Plus
public XoRoShiRo128Plus(long seed0, long seed1)Creates a new instance using a 2 element seed. A seed containing all zeros will create a non-functional generator.- Parameters:
seed0- Initial seed element 0.seed1- Initial seed element 1.
-
-
Method Details
-
next
public long next()- Returns:
- the next random value.
-
getStateInternal
protected byte[] getStateInternal()Creates a snapshot of the RNG state.- Overrides:
getStateInternalin classLongProvider- Returns:
- the internal state.
-
setStateInternal
protected void setStateInternal(byte[] s)Resets the RNG to the givenstate.- Overrides:
setStateInternalin classLongProvider- Parameters:
s- State (previously obtained by a call toBaseProvider.getStateInternal()).- See Also:
BaseProvider.checkStateSize(byte[],int)
-