Colt 1.2.0

## cern.jet.random.engine
Class RandomEngine

    java.lang.Object
      cern.colt.PersistentObject
          cern.jet.random.engine.RandomEngine

All Implemented Interfaces:
  Cloneable, DoubleFunction, IntFunction, Serializable

Direct Known Subclasses:
  DRand, MersenneTwister

public abstract class RandomEngine
extends PersistentObject
implements DoubleFunction, IntFunction

Abstract base class for uniform pseudo-random number generating engines.

Most probability distributions are obtained by using a uniform pseudo-random number generation engine followed by a transformation to the desired distribution. Thus, subclasses of this class are at the core of computational statistics, simulations, Monte Carlo methods, etc.

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

Subclasses need to override one single method only: `nextInt()`. All other methods generating different data types or ranges are usually layered upon `nextInt()`. `long`'s are formed by concatenating two 32 bit `int`'s. `float`'s are formed by dividing the interval `[0.0f,1.0f]` into 232 sub intervals, then randomly choosing one subinterval. `double`'s are formed by dividing the interval `[0.0,1.0]` into 264 sub intervals, then randomly choosing one subinterval.

Note that this implementation is not synchronized.

Version:
  1.0, 09/24/99
See Also:
  `MersenneTwister`, `MersenneTwister64`, `Random`, Serialized Form

Field Summary

Fields inherited from class cern.colt.PersistentObject
`serialVersionUID`

Method Summary
`double` | `apply(double dummy)` Equivalent to `raw()`.
`int` | `apply(int dummy)` Equivalent to `nextInt()`.
`static RandomEngine` | `makeDefault()` Constructs and returns a new uniform random number engine seeded with the current time.
`double` | `nextDouble()` Returns a 64 bit uniformly distributed random number in the open unit interval `(0.0,1.0)` (excluding 0.0 and 1.0).
`float` | `nextFloat()` Returns a 32 bit uniformly distributed random number in the open unit interval `(0.0f,1.0f)` (excluding 0.0f and 1.0f).
`abstract 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`);
`long` | `nextLong()` Returns a 64 bit uniformly distributed random number in the closed interval `[Long.MIN_VALUE,Long.MAX_VALUE]` (including `Long.MIN_VALUE` and `Long.MAX_VALUE`).
`double` | `raw()` Returns a 32 bit uniformly distributed random number in the open unit interval `(0.0,1.0)` (excluding 0.0 and 1.0).

Methods inherited from class cern.colt.PersistentObject
`clone`

Methods inherited from class java.lang.Object
`equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Method Detail

### apply

    public double apply(double dummy)

  Equivalent to `raw()`. This has the effect that random engines can now be used as function objects, returning a random number upon function evaluation.

  Specified by:
    `apply` in interface `DoubleFunction`
  Parameters:
    `dummy` - argument passed to the function.
  Returns:
    the result of the function.

### apply

    public int apply(int dummy)

  Equivalent to `nextInt()`. This has the effect that random engines can now be used as function objects, returning a random number upon function evaluation.

  Specified by:
    `apply` in interface `IntFunction`
  Parameters:
    `dummy` - argument passed to the function.
  Returns:
    the result of the function.

### makeDefault

    public static RandomEngine makeDefault()

  Constructs and returns a new uniform random number engine seeded with the current time. Currently this is `MersenneTwister`.

### nextDouble

    public double nextDouble()

  Returns a 64 bit uniformly distributed random number in the open unit interval `(0.0,1.0)` (excluding 0.0 and 1.0).

### nextFloat

    public float nextFloat()

  Returns a 32 bit uniformly distributed random number in the open unit interval `(0.0f,1.0f)` (excluding 0.0f and 1.0f).

### nextInt

    public abstract 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`);

### nextLong

    public long nextLong()

  Returns a 64 bit uniformly distributed random number in the closed interval `[Long.MIN_VALUE,Long.MAX_VALUE]` (including `Long.MIN_VALUE` and `Long.MAX_VALUE`).

### raw

    public double raw()

  Returns a 32 bit uniformly distributed random number in the open unit interval `(0.0,1.0)` (excluding 0.0 and 1.0).

Colt 1.2.0

Jump to the Colt Homepage