org.apache.commons.math3.random

## Class Well512a

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

- All Implemented Interfaces:
    java.io.Serializable, RandomGenerator

      public class Well512a
      extends AbstractWell

  This class implements the WELL512a 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: Well512a.java 1416643 2012-12-03 19:37:14Z tn $
  See Also:
    WELL Random number generator, Serialized Form

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `private static int` | `K` Number of bits in the pool.
    `private static int` | `M1` First parameter of the algorithm.
    `private static int` | `M2` Second parameter of the algorithm.
    `private static int` | `M3` Third parameter of the algorithm.
    `private static long` | `serialVersionUID` Serializable version identifier.

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

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

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `Well512a()` Creates a new random number generator.
    `Well512a(int seed)` Creates a new random number generator using a single int seed.
    `Well512a(int[] seed)` Creates a new random number generator using an int array seed.
    `Well512a(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`

- - ### Field Detail

    - #### serialVersionUID

          private static final long serialVersionUID

      Serializable version identifier.
      See Also:
        Constant Field Values

    - #### K

          private static final int K

      Number of bits in the pool.
      See Also:
        Constant Field Values

    - #### M1

          private static final int M1

      First parameter of the algorithm.
      See Also:
        Constant Field Values

    - #### M2

          private static final int M2

      Second parameter of the algorithm.
      See Also:
        Constant Field Values

    - #### M3

          private static final int M3

      Third parameter of the algorithm.
      See Also:
        Constant Field Values

  - ### Constructor Detail

    - #### Well512a

          public Well512a()

      Creates a new random number generator.

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

    - #### Well512a

          public Well512a(int seed)

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

    - #### Well512a

          public Well512a(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

    - #### Well512a

          public Well512a(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 (c) 2003-2013 Apache Software Foundation