cern.jet.random.engine
Class DRand

java.lang.Object
  extended by cern.colt.PersistentObject
      extended by cern.jet.random.engine.RandomEngine
          extended by cern.jet.random.engine.DRand
All Implemented Interfaces:
DoubleFunction, IntFunction, java.io.Serializable, java.lang.Cloneable

public class DRand
extends RandomEngine

Quick medium quality uniform pseudo-random number generator. Produces uniformly distributed int's and long's in the closed intervals [Integer.MIN_VALUE,Integer.MAX_VALUE] and [Long.MIN_VALUE,Long.MAX_VALUE], respectively, as well as float's and double's in the open unit intervals (0.0f,1.0f) and (0.0,1.0), respectively.

The seed can be any integer satisfying 0 < 4*seed+1 < 232. In other words, there must hold seed >= 0 && seed < 1073741823.

Quality: This generator follows the multiplicative congruential method of the form

z(i+1) = a * z(i) (mod m) with a=663608941 (=0X278DDE6DL), m=232.
z(i) assumes all different values 0 < 4*seed+1 < m during a full period of 230.

Performance: TO_DO

Implementation: TO_DO

Note that this implementation is not synchronized.

Author:
wolfgang.hoschek@cern.ch
See Also:
MersenneTwister, Random, Serialized Form

Field Summary
static int DEFAULT_SEED
           
 
Fields inherited from class cern.colt.PersistentObject
serialVersionUID
 
Constructor Summary
DRand()
          Constructs and returns a random number generator with a default seed, which is a constant.
DRand(java.util.Date d)
          Constructs and returns a random number generator seeded with the given date.
DRand(int seed)
          Constructs and returns a random number generator with the given seed.
 
Method Summary
 int nextInt()
          Returns a 32 bit uniformly distributed random number in the closed interval [Integer.MIN_VALUE,Integer.MAX_VALUE] (including Integer.MIN_VALUE and Integer.MAX_VALUE).
protected  void setSeed(int seed)
          Sets the receiver's seed.
 
Methods inherited from class cern.jet.random.engine.RandomEngine
apply, apply, makeDefault, nextDouble, nextFloat, nextLong, raw
 
Methods inherited from class cern.colt.PersistentObject
clone
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

DEFAULT_SEED

public static final int DEFAULT_SEED
See Also:
Constant Field Values
Constructor Detail

DRand

public DRand()
Constructs and returns a random number generator with a default seed, which is a constant.


DRand

public DRand(int seed)
Constructs and returns a random number generator with the given seed.

Parameters:
seed - should not be 0, in such a case DRand.DEFAULT_SEED is substituted.

DRand

public DRand(java.util.Date d)
Constructs and returns a random number generator seeded with the given date.

Parameters:
d - typically new java.util.Date()
Method Detail

nextInt

public int nextInt()
Returns a 32 bit uniformly distributed random number in the closed interval [Integer.MIN_VALUE,Integer.MAX_VALUE] (including Integer.MIN_VALUE and Integer.MAX_VALUE).

Specified by:
nextInt in class RandomEngine

setSeed

protected void setSeed(int seed)
Sets the receiver's seed. This method resets the receiver's entire internal state. The following condition must hold: seed >= 0 && seed < (232-1) / 4.

Parameters:
seed - if the above condition does not hold, a modified seed that meets the condition is silently substituted.