org.apache.commons.math3.random

## Class Well19937c

- java.lang.Object
- - org.apache.commons.math3.random.BitsStreamGenerator
  - - org.apache.commons.math3.random.AbstractWell
    - - org.apache.commons.math3.random.Well19937c

- All Implemented Interfaces:
    Serializable, RandomGenerator

      public class Well19937c
      extends AbstractWell

  This class implements the WELL19937c pseudo-random number generator from François Panneton, Pierre L'Ecuyer and Makoto Matsumoto.

  This generator is described in a paper by François Panneton, Pierre L'Ecuyer and Makoto Matsumoto Improved Long-Period Generators Based on Linear Recurrences Modulo 2 ACM Transactions on Mathematical Software, 32, 1 (2006). The errata for the paper are in wellrng-errata.txt.

  Since:
    2.2
  Version:
    $Id: Well19937c.java 1244107 2012-02-14 16:17:55Z erans $
  See Also:
    WELL Random number generator, Serialized Form

- - ### Field Summary

    - ### Fields inherited from class org.apache.commons.math3.random.AbstractWell

      `i1, i2, i3, index, iRm1, iRm2, v`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `Well19937c()` Creates a new random number generator.
    `Well19937c(int seed)` Creates a new random number generator using a single int seed.
    `Well19937c(int[] seed)` Creates a new random number generator using an int array seed.
    `Well19937c(long seed)` Creates a new random number generator using a single long seed.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected int` | `next(int bits)` Generate next pseudorandom number.

    - ### Methods inherited from class org.apache.commons.math3.random.AbstractWell

      `setSeed, setSeed, setSeed`

    - ### Methods inherited from class org.apache.commons.math3.random.BitsStreamGenerator

      `clear, nextBoolean, nextBytes, nextDouble, nextFloat, nextGaussian, nextInt, nextInt, nextLong`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### Well19937c

          public Well19937c()

      Creates a new random number generator.

      The instance is initialized using the current time as the seed.

    - #### Well19937c

          public Well19937c(int seed)

      Creates a new random number generator using a single int seed.
      Parameters:
        `seed` - the initial seed (32 bits integer)

    - #### Well19937c

          public Well19937c(int[] seed)

      Creates a new random number generator using an int array seed.
      Parameters:
        `seed` - the initial seed (32 bits integers array), if null the seed of the generator will be related to the current time

    - #### Well19937c

          public Well19937c(long seed)

      Creates a new random number generator using a single long seed.
      Parameters:
        `seed` - the initial seed (64 bits integer)

  - ### Method Detail

    - #### next

          protected int next(int bits)

      Generate next pseudorandom number.

      This method is the core generation algorithm. It is used by all the public generation methods for the various primitive types `BitsStreamGenerator.nextBoolean()`, `BitsStreamGenerator.nextBytes(byte[])`, `BitsStreamGenerator.nextDouble()`, `BitsStreamGenerator.nextFloat()`, `BitsStreamGenerator.nextGaussian()`, `BitsStreamGenerator.nextInt()`, `BitsStreamGenerator.next(int)` and `BitsStreamGenerator.nextLong()`.

      Specified by:
        `next` in class `AbstractWell`
      Parameters:
        `bits` - number of random bits to produce
      Returns:
        random bits generated

Copyright © 2003-2012 The Apache Software Foundation. All Rights Reserved.