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:
  • Field Summary

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

    Constructors
    Constructor
    Description
    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.
    Constructs and returns a random number generator seeded with the given date.
  • Method Summary

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