|
Uncommons Maths API (Version 1.2.3) |
||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object java.util.Random org.uncommons.maths.random.CMWC4096RNG
public class CMWC4096RNG
A Java version of George Marsaglia's
Complementary
Multiply With Carry (CMWC) RNG.
This is a very fast PRNG with an extremely long period (2^131104). It should be used
in preference to the MersenneTwisterRNG
when a very long period is required.
One potential drawback of this RNG is that it requires significantly more seed data than the other RNGs provided by Uncommons Maths. It requires just over 16 kilobytes, which may be a problem if your are obtaining seed data from a slow or limited entropy source. In contrast, the Mersenne Twister requires only 128 bits of seed data.
NOTE: Because instances of this class require 16-kilobyte seeds, it is not
possible to seed this RNG using the Random.setSeed(long)
method inherited
from Random
. Calls to this method will have no effect.
Instead the seed must be set by a constructor.
Constructor Summary | |
---|---|
CMWC4096RNG()
Creates a new RNG and seeds it using the default seeding strategy. |
|
CMWC4096RNG(byte[] seed)
Creates an RNG and seeds it with the specified seed data. |
|
CMWC4096RNG(SeedGenerator seedGenerator)
Seed the RNG using the provided seed generation strategy. |
Method Summary | |
---|---|
byte[] |
getSeed()
|
protected int |
next(int bits)
|
Methods inherited from class java.util.Random |
---|
nextBoolean, nextBytes, nextDouble, nextFloat, nextGaussian, nextInt, nextInt, nextLong, setSeed |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
---|
public CMWC4096RNG()
public CMWC4096RNG(SeedGenerator seedGenerator) throws SeedException
seedGenerator
- The seed generation strategy that will provide
the seed value for this RNG.
SeedException
- If there is a problem generating a seed.public CMWC4096RNG(byte[] seed)
seed
- The seed data used to initialise the RNG.Method Detail |
---|
public byte[] getSeed()
getSeed
in interface RepeatableRNG
protected int next(int bits)
next
in class Random
|
Uncommons Maths API (Version 1.2.3) |
||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |