Overview | Package | Class | Tree | Deprecated | Index | Help
| SSJ V. 2.1.1.
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## umontreal.iro.lecuyer.rng
Class BakerTransformedStream

    java.lang.Object
      umontreal.iro.lecuyer.rng.BakerTransformedStream

All Implemented Interfaces:
  RandomStream

    public class BakerTransformedStream

extends Object
implements RandomStream

This container class permits one to apply the baker's transformation to the output of any `RandomStream`. It transforms each u∈[0, 1] into 2u if u <= 1/2 and 2(1 - u) if u > 1/2. The `nextDouble` method will return the result of this transformation and the other `next...` methods are affected accordingly. Any instance of this class contains a `RandomStream` called its base stream, used to generate its numbers and to which the transformation is applied. Any call to one of the `next...` methods of this class will modify the state of the base stream.

The baker transformation is often applied when the `RandomStream` is actually an iterator over a point set used for quasi-Monte Carlo integration (see the `hups` package).

Constructor Summary
`BakerTransformedStream(RandomStream stream)` Constructs a new baker transformed stream, using the random numbers from the base stream `stream`.

Method Summary
`void` | `nextArrayOfDouble(double[] u, int start, int n)` Calls `nextArrayOfDouble (u, start, n)` for the base stream, then applies the baker transformation.
`void` | `nextArrayOfInt(int i, int j, int[] u, int start, int n)` Fills up the array by calling `nextInt (i, j)`.
`double` | `nextDouble()` Returns the baker transformation of `s.nextDouble()` where `s` is the base stream.
`int` | `nextInt(int i, int j)` Generates a random integer in {i,..., j} via `nextDouble` (in which the baker transformation is applied).
`void` | `resetNextSubstream()` Reinitializes the stream to the beginning of its next substream: Ng is computed, and Cg and Bg are set to Ng.
`void` | `resetStartStream()` Reinitializes the stream to its initial state Ig: Cg and Bg are set to Ig.
`void` | `resetStartSubstream()` Reinitializes the stream to the beginning of its current substream: Cg is set to Bg.
`String` | `toString()` Returns a string starting with `"Baker transformation of "` and finishing with the result of the call to the `toString` method of the generator.

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

Constructor Detail

### BakerTransformedStream

    public BakerTransformedStream(RandomStream stream)

  Constructs a new baker transformed stream, using the random numbers from the base stream `stream`.

Method Detail

### resetStartStream

    public void resetStartStream()

  Description copied from interface: `RandomStream`
  Reinitializes the stream to its initial state Ig: Cg and Bg are set to Ig.

  Specified by:
    `resetStartStream` in interface `RandomStream`

### resetStartSubstream

    public void resetStartSubstream()

  Description copied from interface: `RandomStream`
  Reinitializes the stream to the beginning of its current substream: Cg is set to Bg.

  Specified by:
    `resetStartSubstream` in interface `RandomStream`

### resetNextSubstream

    public void resetNextSubstream()

  Description copied from interface: `RandomStream`
  Reinitializes the stream to the beginning of its next substream: Ng is computed, and Cg and Bg are set to Ng.

  Specified by:
    `resetNextSubstream` in interface `RandomStream`

### toString

    public String toString()

  Returns a string starting with `"Baker transformation of "` and finishing with the result of the call to the `toString` method of the generator.

  Specified by:
    `toString` in interface `RandomStream`
  Overrides:
    `toString` in class `Object`
  Returns:
    the state of the generator formated as a string

### nextDouble

    public double nextDouble()

  Returns the baker transformation of `s.nextDouble()` where `s` is the base stream.

  Specified by:
    `nextDouble` in interface `RandomStream`
  Returns:
    the next generated uniform

### nextInt

    public int nextInt(int i,
                       int j)

  Generates a random integer in {i,..., j} via `nextDouble` (in which the baker transformation is applied).

  Specified by:
    `nextInt` in interface `RandomStream`
  Parameters:
    `i` - smallest integer that can be generated
    `j` - greatest integer that can be generated
  Returns:
    the generated integer

### nextArrayOfDouble

    public void nextArrayOfDouble(double[] u,
                                  int start,
                                  int n)

  Calls `nextArrayOfDouble (u, start, n)` for the base stream, then applies the baker transformation.

  Specified by:
    `nextArrayOfDouble` in interface `RandomStream`
  Parameters:
    `u` - the array in which the numbers will be stored
    `start` - the first index of `u` to be used
    `n` - the number of random numbers to put in `u`

### nextArrayOfInt

    public void nextArrayOfInt(int i,
                               int j,
                               int[] u,
                               int start,
                               int n)

  Fills up the array by calling `nextInt (i, j)`.

  Specified by:
    `nextArrayOfInt` in interface `RandomStream`
  Parameters:
    `i` - the smallest possible integer to put in `u`
    `j` - the largest possible integer to put in `u`
    `u` - the array in which the numbers will be stored
    `start` - the first index of `u` to be used
    `n` - the number of random numbers to put in `u`

Overview | Package | Class | Tree | Deprecated | Index | Help
| SSJ V. 2.1.1.
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

To submit a bug or ask questions, send an e-mail to Pierre L'Ecuyer.