SSJ
3.3.1
Stochastic Simulation in Java
|
This class represents a random variate generator whose values are cached for more efficiency when using common random numbers. More...
Public Member Functions | |
RandomVariateGenWithCache (RandomVariateGen rvg) | |
Constructs a new cached random variate generator with internal generator rvg . More... | |
RandomVariateGenWithCache (RandomVariateGen rvg, int initialCapacity) | |
Constructs a new cached random variate generator with internal generator rvg . More... | |
boolean | isCaching () |
Determines if the random variate generator is caching values, default being true . More... | |
void | setCaching (boolean caching) |
Sets the caching indicator to caching . More... | |
RandomVariateGen | getCachedGen () |
Returns a reference to the random variate generator whose values are cached. More... | |
void | setCachedGen (RandomVariateGen rvg) |
Sets the random variate generator whose values are cached to rvg . More... | |
void | clearCache () |
Clears the cached values for this cached generator. More... | |
void | initCache () |
Resets this generator to recover values from the cache. More... | |
int | getNumCachedValues () |
Returns the total number of values cached by this generator. More... | |
int | getCacheIndex () |
Return the index of the next cached value that will be returned by the generator. More... | |
void | setCacheIndex (int newIndex) |
Sets the index, in the cache, of the next value returned by #nextDouble. More... | |
DoubleArrayList | getCachedValues () |
Returns an array list containing the values cached by this random variate generator. More... | |
void | setCachedValues (DoubleArrayList values) |
Sets the array list containing the cached values to values . More... | |
double | nextDouble () |
void | nextArrayOfDouble (double[] v, int start, int n) |
RandomStream | getStream () |
Distribution | getDistribution () |
Public Member Functions inherited from RandomVariateGen | |
RandomVariateGen (RandomStream s, Distribution dist) | |
Creates a new random variate generator from the distribution dist , using stream s . More... | |
double | nextDouble () |
Generates a random number from the continuous distribution contained in this object. More... | |
void | nextArrayOfDouble (double[] v, int start, int n) |
Generates n random numbers from the continuous distribution contained in this object. More... | |
double [] | nextArrayOfDouble (int n) |
Generates n random numbers from the continuous distribution contained in this object, and returns them in a new array of size n . More... | |
RandomStream | getStream () |
Returns the umontreal.ssj.rng.RandomStream used by this generator. More... | |
void | setStream (RandomStream stream) |
Sets the umontreal.ssj.rng.RandomStream used by this generator to stream . | |
Distribution | getDistribution () |
Returns the umontreal.ssj.probdist.Distribution used by this generator. More... | |
String | toString () |
Returns a String containing information about the current generator. | |
Additional Inherited Members | |
Protected Attributes inherited from RandomVariateGen | |
RandomStream | stream |
Distribution | dist |
This class represents a random variate generator whose values are cached for more efficiency when using common random numbers.
An object from this class is constructed with a reference to a RandomVariateGen instance used to get the random numbers. These numbers are stored in an internal array to be retrieved later. The dimension of the array increases as the values are generated. If the #nextDouble method is called after the object is reset (by calling setCachedValues(DoubleArrayList) ), it gives back the cached values instead of computing new ones. If the cache is exhausted before the generator is reset, new values are computed and added to the cache.
Such caching allows for a better performance with common random numbers, when generating random variates is time-consuming. However, using such caching may lead to memory problems if a large quantity of random numbers are needed.
Constructs a new cached random variate generator with internal generator rvg
.
rvg | the random variate generator whose values are cached. |
NullPointerException | if rvg is null . |
RandomVariateGenWithCache | ( | RandomVariateGen | rvg, |
int | initialCapacity | ||
) |
Constructs a new cached random variate generator with internal generator rvg
.
The initialCapacity
parameter is used to set the initial capacity of the internal array which can grow as needed; it does not limit the maximal number of cached values.
rvg | the random variate generator whose values are cached. |
initialCapacity | the number of cached values. |
NullPointerException | if rvg is null . |
void clearCache | ( | ) |
Clears the cached values for this cached generator.
Any subsequent call will then obtain new values from the internal generator.
RandomVariateGen getCachedGen | ( | ) |
Returns a reference to the random variate generator whose values are cached.
DoubleArrayList getCachedValues | ( | ) |
Returns an array list containing the values cached by this random variate generator.
int getCacheIndex | ( | ) |
Return the index of the next cached value that will be returned by the generator.
If the cache is exhausted, the returned value corresponds to the value returned by getNumCachedValues, and a subsequent call to #nextDouble will generate a new variate rather than reading a previous one from the cache. If caching is disabled, this always returns 0.
int getNumCachedValues | ( | ) |
Returns the total number of values cached by this generator.
void initCache | ( | ) |
Resets this generator to recover values from the cache.
Subsequent calls to #nextDouble will return the cached random values until all the values are returned. When the array of cached values is exhausted, the internal random variate generator is used to generate new values which are added to the internal array as well. This method is equivalent to calling setCacheIndex(int).
boolean isCaching | ( | ) |
Determines if the random variate generator is caching values, default being true
.
When caching is turned OFF, the #nextDouble method simply calls the corresponding method on the internal random variate generator, without storing the generated values.
void setCachedGen | ( | RandomVariateGen | rvg | ) |
Sets the random variate generator whose values are cached to rvg
.
If the generator is changed, the clearCache method is called.
rvg | the new random variate generator whose values are cached. |
NullPointerException | if rvg is null . |
void setCachedValues | ( | DoubleArrayList | values | ) |
Sets the array list containing the cached values to values
.
This resets the cache index to the size of the given array.
values | the array list of cached values. |
NullPointerException | if values is null . |
void setCacheIndex | ( | int | newIndex | ) |
Sets the index, in the cache, of the next value returned by #nextDouble.
If newIndex
is 0, this is equivalent to calling initCache. If newIndex
is getNumCachedValues, subsequent calls to #nextDouble will add new values to the cache.
newIndex | the new index. |
IllegalArgumentException | if newIndex is negative or greater than or equal to the cache size. |
void setCaching | ( | boolean | caching | ) |
Sets the caching indicator to caching
.
If caching is turned OFF, this method calls clearCache to clear the cached values.
caching | the new value of the caching indicator. |