umontreal.iro.lecuyer.rng
Class BakerTransformedStream
- java.lang.Object
-
- umontreal.iro.lecuyer.rng.BakerTransformedStream
-
- All Implemented Interfaces:
- RandomStream
public class BakerTransformedStream extends java.lang.Object implements RandomStream
This container class permits one to apply the baker's transformation to the output of anyRandomStream. It transforms each u∈[0, 1] into 2u if u <= 1/2 and 2(1 - u) if u > 1/2. ThenextDoublemethod will return the result of this transformation and the other next... methods are affected accordingly. Any instance of this class contains aRandomStreamcalled 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
RandomStreamis actually an iterator over a point set used for quasi-Monte Carlo integration (see the hups package).
-
-
Constructor Summary
Constructors Constructor and Description BakerTransformedStream(RandomStream stream)Constructs a new baker transformed stream, using the random numbers from the base stream stream.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method and Description voidnextArrayOfDouble(double[] u, int start, int n)Calls nextArrayOfDouble (u, start, n) for the base stream, then applies the baker transformation.voidnextArrayOfInt(int i, int j, int[] u, int start, int n)Fills up the array by calling nextInt (i, j).doublenextDouble()Returns the baker transformation of s.nextDouble() where s is the base stream.intnextInt(int i, int j)Generates a random integer in {i,..., j} vianextDouble(in which the baker transformation is applied).voidresetNextSubstream()Reinitializes the stream to the beginning of its next substream: Ng is computed, and Cg and Bg are set to Ng.voidresetStartStream()Reinitializes the stream to its initial state Ig: Cg and Bg are set to Ig.voidresetStartSubstream()Reinitializes the stream to the beginning of its current substream: Cg is set to Bg.java.lang.StringtoString()Returns a string starting with "Baker transformation of " and finishing with the result of the call to the toString method of the generator.
-
-
-
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:RandomStreamReinitializes the stream to its initial state Ig: Cg and Bg are set to Ig.- Specified by:
resetStartStreamin interfaceRandomStream
-
resetStartSubstream
public void resetStartSubstream()
Description copied from interface:RandomStreamReinitializes the stream to the beginning of its current substream: Cg is set to Bg.- Specified by:
resetStartSubstreamin interfaceRandomStream
-
resetNextSubstream
public void resetNextSubstream()
Description copied from interface:RandomStreamReinitializes the stream to the beginning of its next substream: Ng is computed, and Cg and Bg are set to Ng.- Specified by:
resetNextSubstreamin interfaceRandomStream
-
toString
public java.lang.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:
toStringin interfaceRandomStream- Overrides:
toStringin classjava.lang.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:
nextDoublein interfaceRandomStream- Returns:
- the next generated uniform
-
nextInt
public int nextInt(int i, int j)Generates a random integer in {i,..., j} vianextDouble(in which the baker transformation is applied).- Specified by:
nextIntin interfaceRandomStream- Parameters:
i- smallest integer that can be generatedj- 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:
nextArrayOfDoublein interfaceRandomStream- Parameters:
u- the array in which the numbers will be storedstart- the first index of u to be usedn- 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:
nextArrayOfIntin interfaceRandomStream- Parameters:
i- the smallest possible integer to put in uj- the largest possible integer to put in uu- the array in which the numbers will be storedstart- the first index of u to be usedn- the number of random numbers to put in u
-
-
DMelt 3.0 © DataMelt by jWork.ORG