Class LongProvider
- java.lang.Object
-
- org.apache.commons.rng.core.BaseProvider
-
- org.apache.commons.rng.core.source64.LongProvider
-
- All Implemented Interfaces:
RandomLongSource,RestorableUniformRandomProvider,UniformRandomProvider
- Direct Known Subclasses:
AbstractL128,AbstractL64,AbstractXoRoShiRo1024,AbstractXoRoShiRo128,AbstractXoShiRo256,AbstractXoShiRo512,DotyHumphreySmallFastCounting64,JenkinsSmallFast64,MersenneTwister64,PcgRxsMXs64,SplitMix64,TwoCmres,XorShift1024Star
public abstract class LongProvider extends BaseProvider implements RandomLongSource
Base class for all implementations that provide along-based source randomness.
-
-
Field Summary
Fields Modifier and Type Field Description private longbooleanSourceProvides a bit source for booleans.private static longEMPTY_BOOL_SOURCEEmpty boolean source.private static longEMPTY_INT_SOURCEEmpty int source.private longintSourceProvides a source for ints.
-
Constructor Summary
Constructors Modifier Constructor Description LongProvider()Creates a new instance.protectedLongProvider(LongProvider source)Creates a new instance copying the state from the source.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected byte[]getStateInternal()Creates a snapshot of the RNG state.booleannextBoolean()Generates abooleanvalue.intnextInt()Generates anintvalue.longnextLong()Generates alongvalue.protected voidresetCachedState()Reset the cached state used in the default implementation ofnextBoolean()andnextInt().protected voidsetStateInternal(byte[] s)Resets the RNG to the givenstate.-
Methods inherited from class org.apache.commons.rng.core.BaseProvider
checkIndex, checkStateSize, composeStateInternal, extendSeed, extendSeed, fillState, fillState, restoreState, saveState, splitStateInternal, toString
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface org.apache.commons.rng.core.source64.RandomLongSource
next
-
-
-
-
Field Detail
-
EMPTY_BOOL_SOURCE
private static final long EMPTY_BOOL_SOURCE
Empty boolean source. This is the location of the sign-bit after 63 right shifts on the boolean source.- See Also:
- Constant Field Values
-
EMPTY_INT_SOURCE
private static final long EMPTY_INT_SOURCE
Empty int source. This requires a negative value as the sign-bit is used to trigger a refill.- See Also:
- Constant Field Values
-
booleanSource
private long booleanSource
Provides a bit source for booleans.A cached value from a call to
RandomLongSource.next().Only stores 63-bits when full as 1 bit has already been consumed. The sign bit is a flag that shifts down so the source eventually equals 1 when all bits are consumed and will trigger a refill.
-
intSource
private long intSource
Provides a source for ints.A cached half-value value from a call to
RandomLongSource.next(). The int is stored in the lower 32 bits with zeros in the upper bits. When empty this is set to negative to trigger a refill.
-
-
Constructor Detail
-
LongProvider
public LongProvider()
Creates a new instance.
-
LongProvider
protected LongProvider(LongProvider source)
Creates a new instance copying the state from the source.This provides base functionality to allow a generator to create a copy, for example for use in the
JumpableUniformRandomProviderinterface.- Parameters:
source- Source to copy.- Since:
- 1.3
-
-
Method Detail
-
resetCachedState
protected void resetCachedState()
Reset the cached state used in the default implementation ofnextBoolean()andnextInt().This should be used when the state is no longer valid, for example after a jump performed for the
JumpableUniformRandomProviderinterface.- Since:
- 1.3
-
getStateInternal
protected byte[] getStateInternal()
Creates a snapshot of the RNG state.- Overrides:
getStateInternalin classBaseProvider- Returns:
- the internal state.
-
setStateInternal
protected void setStateInternal(byte[] s)
Resets the RNG to the givenstate.- Overrides:
setStateInternalin classBaseProvider- Parameters:
s- State (previously obtained by a call toBaseProvider.getStateInternal()).- See Also:
BaseProvider.checkStateSize(byte[],int)
-
nextLong
public long nextLong()
Generates alongvalue.- Specified by:
nextLongin interfaceUniformRandomProvider- Returns:
- the next random value.
-
nextInt
public int nextInt()
Generates anintvalue.- Specified by:
nextIntin interfaceUniformRandomProvider- Returns:
- the next random value.
-
nextBoolean
public boolean nextBoolean()
Generates abooleanvalue.- Specified by:
nextBooleanin interfaceUniformRandomProvider- Returns:
- the next random value.
-
-