Class DRand

All Implemented Interfaces:
DoubleFunction, IntFunction, Serializable, 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.

Version:
1.0, 09/24/99
Author:
wolfgang.hoschek@cern.ch
See Also:
MersenneTwister, Random, Serialized Form
  • Field Summary

    Fields 
    Modifier and Type Field Description
    static int DEFAULT_SEED  
  • Constructor Summary

    Constructors 
    Constructor Description
    DRand()
    Constructs and returns a random number generator with a default seed, which is a constant.
    DRand​(int seed)
    Constructs and returns a random number generator with the given seed.
    DRand​(Date d)
    Constructs and returns a random number generator seeded with the given date.
  • Method Summary

    Modifier and Type Method Description
    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 Details

  • Constructor Details

    • 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​(Date d)
      Constructs and returns a random number generator seeded with the given date.
      Parameters:
      d - typically new java.util.Date()
  • Method Details

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