org.apache.mahout.math.jet.random.engine
Class DRand

java.lang.Object
  extended by org.apache.mahout.math.PersistentObject
      extended by org.apache.mahout.math.jet.random.engine.RandomEngine
          extended by org.apache.mahout.math.jet.random.engine.DRand
All Implemented Interfaces:
java.io.Serializable, java.lang.Cloneable, DoubleFunction, IntFunction, UnaryFunction

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.

See Also:
MersenneTwister, Random, Serialized Form

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 org.apache.mahout.math.jet.random.engine.RandomEngine
apply, apply, makeDefault, nextDouble, nextFloat, nextLong, raw
 
Methods inherited from class org.apache.mahout.math.PersistentObject
clone
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

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 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.


Copyright © 2008-2010 The Apache Software Foundation. All Rights Reserved.