Class XoShiRo512StarStar
java.lang.Object
org.apache.commons.rng.core.BaseProvider
org.apache.commons.rng.core.source64.LongProvider
org.apache.commons.rng.core.source64.XoShiRo512StarStar
- All Implemented Interfaces:
RandomLongSource,RestorableUniformRandomProvider,UniformRandomProvider
public class XoShiRo512StarStar extends LongProvider
A fast all-purpose generator.
This is a member of the Xor-Shift-Rotate family of generators. Memory footprint is 512 bits
and the period is 2512-1. Speed is expected to be slower than
XoShiRo256StarStar.
- Since:
- 1.3
- See Also:
- Original source code, xorshiro / xoroshiro generators
-
Field Summary
Fields Modifier and Type Field Description protected longstate0State 0 of the generator.protected longstate1State 1 of the generator.protected longstate2State 2 of the generator.protected longstate3State 3 of the generator.protected longstate4State 4 of the generator.protected longstate5State 5 of the generator.protected longstate6State 6 of the generator.protected longstate7State 7 of the generator. -
Constructor Summary
Constructors Constructor Description XoShiRo512StarStar(long[] seed)Creates a new instance.XoShiRo512StarStar(long seed0, long seed1, long seed2, long seed3, long seed4, long seed5, long seed6, long seed7)Creates a new instance using an 8 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
-
state0
protected long state0State 0 of the generator. -
state1
protected long state1State 1 of the generator. -
state2
protected long state2State 2 of the generator. -
state3
protected long state3State 3 of the generator. -
state4
protected long state4State 4 of the generator. -
state5
protected long state5State 5 of the generator. -
state6
protected long state6State 6 of the generator. -
state7
protected long state7State 7 of the generator.
-
-
Constructor Details
-
XoShiRo512StarStar
public XoShiRo512StarStar(long[] seed)Creates a new instance.- Parameters:
seed- Initial seed. If the length is larger than 8, only the first 8 elements will be used; if smaller, the remaining elements will be automatically set. A seed containing all zeros will create a non-functional generator.
-
XoShiRo512StarStar
public XoShiRo512StarStar(long seed0, long seed1, long seed2, long seed3, long seed4, long seed5, long seed6, long seed7)Creates a new instance using an 8 element seed. A seed containing all zeros will create a non-functional generator.- Parameters:
seed0- Initial seed element 0.seed1- Initial seed element 1.seed2- Initial seed element 2.seed3- Initial seed element 3.seed4- Initial seed element 4.seed5- Initial seed element 5.seed6- Initial seed element 6.seed7- Initial seed element 7.
-
-
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)
-