Class XoShiRo512Plus
- java.lang.Object
-
- org.apache.commons.rng.core.BaseProvider
-
- org.apache.commons.rng.core.source64.LongProvider
-
- org.apache.commons.rng.core.source64.XoShiRo512Plus
-
- All Implemented Interfaces:
RandomLongSource,RestorableUniformRandomProvider,UniformRandomProvider
public class XoShiRo512Plus extends LongProvider
A fast 64-bit generator suitable fordoublegeneration. This is slightly faster than the all-purpose generatorXoShiRo512StarStar.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
XoShiRo256Plus.- 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 XoShiRo512Plus(long[] seed)Creates a new instance.XoShiRo512Plus(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, nextLong
-
Methods inherited from class org.apache.commons.rng.core.BaseProvider
checkIndex, checkStateSize, composeStateInternal, fillState, fillState, nextInt, nextLong, restoreState, saveState, splitStateInternal, toString
-
-
-
-
Field Detail
-
state0
protected long state0
State 0 of the generator.
-
state1
protected long state1
State 1 of the generator.
-
state2
protected long state2
State 2 of the generator.
-
state3
protected long state3
State 3 of the generator.
-
state4
protected long state4
State 4 of the generator.
-
state5
protected long state5
State 5 of the generator.
-
state6
protected long state6
State 6 of the generator.
-
state7
protected long state7
State 7 of the generator.
-
-
Constructor Detail
-
XoShiRo512Plus
public XoShiRo512Plus(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.
-
XoShiRo512Plus
public XoShiRo512Plus(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 Detail
-
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)
-
-