Uncommons Maths API
(Version 1.2.2)

org.uncommons.maths.random
Class XORShiftRNG

java.lang.Object
  extended by java.util.Random
      extended by org.uncommons.maths.random.XORShiftRNG
All Implemented Interfaces:
Serializable, RepeatableRNG

public class XORShiftRNG
extends Random
implements RepeatableRNG

Very fast pseudo random number generator. See this page for a description. This RNG has a period of about 2^160, which is not as long as the MersenneTwisterRNG but it is faster.

Since:
1.2
Author:
Daniel Dyer
See Also:
Serialized Form

Constructor Summary
XORShiftRNG()
          Creates a new RNG and seeds it using the default seeding strategy.
XORShiftRNG(byte[] seed)
          Creates an RNG and seeds it with the specified seed data.
XORShiftRNG(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

XORShiftRNG

public XORShiftRNG()
Creates a new RNG and seeds it using the default seeding strategy.


XORShiftRNG

public XORShiftRNG(SeedGenerator seedGenerator)
            throws SeedException
Seed the RNG using the provided seed generation strategy.

Parameters:
seedGenerator - The seed generation strategy that will provide the seed value for this RNG.
Throws:
SeedException - If there is a problem generating a seed.

XORShiftRNG

public XORShiftRNG(byte[] seed)
Creates an RNG and seeds it with the specified seed data.

Parameters:
seed - The seed data used to initialise the RNG.
Method Detail

getSeed

public byte[] getSeed()

Specified by:
getSeed in interface RepeatableRNG
Returns:
The seed data used to initialise this pseudo-random number generator.

next

protected int next(int bits)

Overrides:
next in class Random

Uncommons Maths API
(Version 1.2.2)