Class TwoCmres
- java.lang.Object
-
- org.apache.commons.rng.core.BaseProvider
-
- org.apache.commons.rng.core.source64.LongProvider
-
- org.apache.commons.rng.core.source64.TwoCmres
-
- All Implemented Interfaces:
RandomLongSource,RestorableUniformRandomProvider,UniformRandomProvider
public class TwoCmres extends LongProvider
Random number generator designed by Mark D. Overton.It is one of the many generators described by the author in the following article series:
- Since:
- 1.0
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description (package private) static classTwoCmres.CmresSubcycle generator.
-
Field Summary
Fields Modifier and Type Field Description private static TwoCmres.Cmres.FactoryFACTORYFactory of instances of this class.private static java.lang.StringINTERNAL_ERROR_MSGError message.private static byteSEED_GUARDA small positive integer.private TwoCmres.CmresxFirst subcycle generator.private longxxState of first subcycle generator.private TwoCmres.CmresySecond subcycle generator.private longyyState of second subcycle generator.
-
Constructor Summary
Constructors Modifier Constructor Description privateTwoCmres(int seed, TwoCmres.Cmres x, TwoCmres.Cmres y)Creates a new instance.TwoCmres(java.lang.Integer seed)Creates a new instance.TwoCmres(java.lang.Integer seed, int i, int j)Creates a new instance.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description protected byte[]getStateInternal()Creates a snapshot of the RNG state.longnext()Return the next random value.static intnumberOfSubcycleGenerators()Get the number of subcycle generators.private voidsetSeedInternal(int seed)protected voidsetStateInternal(byte[] s)Resets the RNG to the givenstate.java.lang.StringtoString()-
Methods inherited from class org.apache.commons.rng.core.source64.LongProvider
nextBoolean, nextInt, nextLong, resetCachedState
-
Methods inherited from class org.apache.commons.rng.core.BaseProvider
checkIndex, checkStateSize, composeStateInternal, extendSeed, extendSeed, fillState, fillState, restoreState, saveState, splitStateInternal
-
-
-
-
Field Detail
-
INTERNAL_ERROR_MSG
private static final java.lang.String INTERNAL_ERROR_MSG
Error message.- See Also:
- Constant Field Values
-
SEED_GUARD
private static final byte SEED_GUARD
A small positive integer.- See Also:
- Constant Field Values
-
FACTORY
private static final TwoCmres.Cmres.Factory FACTORY
Factory of instances of this class. Singleton.
-
x
private final TwoCmres.Cmres x
First subcycle generator.
-
y
private final TwoCmres.Cmres y
Second subcycle generator.
-
xx
private long xx
State of first subcycle generator.
-
yy
private long yy
State of second subcycle generator.
-
-
Constructor Detail
-
TwoCmres
private TwoCmres(int seed, TwoCmres.Cmres x, TwoCmres.Cmres y)Creates a new instance.- Parameters:
seed- Initial seed.x- First subcycle generator.y- Second subcycle generator.
-
TwoCmres
public TwoCmres(java.lang.Integer seed)
Creates a new instance.- Parameters:
seed- Seed.
-
TwoCmres
public TwoCmres(java.lang.Integer seed, int i, int j)Creates a new instance.- Parameters:
seed- Seed.i- Table entry for first subcycle generator.j- Table entry for second subcycle generator.- Throws:
java.lang.IllegalArgumentException- ifi == j.java.lang.IndexOutOfBoundsException- ifi < 0ori >= numberOfSubcycleGenerators().java.lang.IndexOutOfBoundsException- ifj < 0orj >= numberOfSubcycleGenerators().
-
-
Method Detail
-
next
public long next()
Return the next random value.- Returns:
- the next random value.
-
toString
public java.lang.String toString()
- Overrides:
toStringin classBaseProvider
-
numberOfSubcycleGenerators
public static int numberOfSubcycleGenerators()
Get the number of subcycle generators.- Returns:
- the number of subcycle generators.
-
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)
-
setSeedInternal
private void setSeedInternal(int seed)
- Parameters:
seed- Seed.
-
-