SSJ API Documentation
Stochastic Simulation in Java
Loading...
Searching...
No Matches
umontreal.ssj.hups.CachedPointSet Class Reference

This container class caches a point set by precomputing and storing all the points locally in an array. More...

Inheritance diagram for umontreal.ssj.hups.CachedPointSet:
umontreal.ssj.hups.PointSet umontreal.ssj.hups.IndependentPointsCached umontreal.ssj.hups.LatinHypercube umontreal.ssj.hups.SortedAndCutPointSet umontreal.ssj.hups.StratifiedUnitCube umontreal.ssj.hups.StratifiedUnitCubeAnti

Classes

class  CachedPointSetIterator
 This class implements a CachedPointSet iterator which takes the values directly in the array x in which the points are cached, rather than calling CachedPointSet.getCoordinate. More...

Public Member Functions

 CachedPointSet (PointSet p, int fromPoint, int toPoint, int fromDim, int toDim)
 Creates a new PointSet object that contains an array storing the coordinates fromDim (inclusive) to toDim (exclusive) of the points numbered fromPoint (inclusive) to toPoint (exclusive) of p.
 CachedPointSet (PointSet p, int n, int dim)
 Same as CachedPointSet(p, 0, n, 0, dim).
 CachedPointSet (PointSet p)
 Creates a new PointSet object that contains an array storing the points of p.
PointSetIterator iterator ()
 Constructs and returns a point set iterator that gets the values directly from the cached array.
void setRandomizeParent (boolean randomizeParent)
 If randomizeParent is true, calls to randomize() will be defered to the parent point set (this is the default); otherwise, the randomize method of the PointSetRandomization instance is invoked with this CachedPointSet instance as its argument.
void addRandomShift (int d1, int d2, RandomStream stream)
 Generates a random shift, adds it to the contained point set, and re-caches the points.
void randomize (PointSetRandomization rand)
 Randomizes the underlying point set using rand and re-caches the points.
void sortByCoordinate (int j)
 Sorts the cached points by increasing order of coordinate j.
void stripCoordinates (int d)
 Removes the first d coordinates of each cached point.
String toString ()
 Formats a string that contains information about the point set.
double getCoordinate (int i, int j)
 Returns \(u_{i,j}\), the coordinate \(j\) of the point \(i\).
PointSet getParentPointSet ()
 Returns the reference point set that was passed to the constructor.
Public Member Functions inherited from umontreal.ssj.hups.PointSet
int getDimension ()
 Returns the dimension (number of available coordinates) of the points.
int getNumPoints ()
 Returns the number of points.
void addRandomShift (RandomStream stream)
 Same as addRandomShift(0, dim, stream), where dim is the dimension of the point set.
void addRandomShift (int d1, int d2)
 Refreshes the random shift (generates new uniform values for the random shift coordinates) for coordinates d1 to d2-1, using the saved shiftStream.
void addRandomShift ()
 Same as addRandomShift(0, dim), where dim is the dimension of the point set.
void clearRandomShift ()
 Erases the current random shift, if any.
String formatPoints ()
 Same as invoking formatPoints(n, d) with \(n\) and \(d\) equal to the number of points and the dimension of this object, respectively.
String formatPoints (int n, int d)
 Formats a string that displays the same information as returned by toString, together with the first \(d\) coordinates of the first.
String formatPoints (PointSetIterator iter)
 Same as invoking formatPoints(iter, n, d) with \(n\) and \(d\) equal to the number of points and the dimension, respectively.
String formatPoints (PointSetIterator iter, int n, int d)
 Same as invoking formatPoints(n, d), but prints the points by calling iter repeatedly.
String formatPointsBase (int b)
 Similar to formatPoints(), but the points coordinates are printed in base \(b\).
String formatPointsBase (int n, int d, int b)
 Similar to formatPoints(n, d), but the points coordinates are printed in base \(b\).
String formatPointsBase (PointSetIterator iter, int b)
 Similar to formatPoints(iter), but the points coordinates are printed in base.
String formatPointsBase (PointSetIterator iter, int n, int d, int b)
 Similar to formatPoints(iter, n, d), but the points coordinates are printed in base \(b\).
String formatPointsNumbered ()
 Same as invoking formatPointsNumbered(n, d) with \(n\) and \(d\) equal to the number of points and the dimension, respectively.
String formatPointsNumbered (int n, int d)
 Same as invoking formatPoints(n,d), except that the points are numbered.

Protected Member Functions

void fillCache (int fromDim, int dim)
 Caches the points, skipping fromDim coordinates and taking the next dim ones.

Package Functions

public< T > void sort (MultiDimSort< T > sort)
 Sorts the cached points (only) with the given.

Additional Inherited Members

Static Public Member Functions inherited from umontreal.ssj.hups.PointSet
static int getMaxBits ()
 Returns the maximum number of usable bits.
Protected Attributes inherited from umontreal.ssj.hups.PointSet
double EpsilonHalf = 1.0 / Num.TWOEXP[55]
 To avoid 0 for nextCoordinate when random shifting, we add this to each coordinate.
int dim = 0
 Dimension of the points.
int numPoints = 0
 Number of points.
int dimShift = 0
 Current dimension of the shift.
int capacityShift = 0
 Number of array elements in the shift vector, always >= dimShift.
double[] shift
 This is the shift vector as a double[] array, which contains the current random shift in case we apply a random shift modulo 1.
RandomStream shiftStream
 Stream used to generate the random shifts.
Static Protected Attributes inherited from umontreal.ssj.hups.PointSet
static final int MAXBITS = 31
 Since Java has no unsigned type, the 32nd bit cannot be used efficiently, so we have only 31 bits.

Detailed Description

This container class caches a point set by precomputing and storing all the points locally in an array.

Its primary usage is for the situations in which the points must be stored explicitly; see, e.g., LatinHypercube,

StratifiedUnitCube, and NestedUniformScambling. Some types of point sets are implemented directly as subclasses of this one, without having a contained point set p. It may also be used to speed up computations when using a small low-dimensional point set more than once.

There is a sort method available to sort the cached points via a umontreal.ssj.util.MultiDimSort, and a stripCoordinates method that remove some coordinates of the cached points. Those methods affect only the array where the points are cached; they have no impact on the (underlying) original point set. The randomize method, on the other hand, randomizes the underlying point set p and re-caches them.

Definition at line 52 of file CachedPointSet.java.

Constructor & Destructor Documentation

◆ CachedPointSet() [1/3]

umontreal.ssj.hups.CachedPointSet.CachedPointSet ( PointSet p,
int fromPoint,
int toPoint,
int fromDim,
int toDim )

Creates a new PointSet object that contains an array storing the coordinates fromDim (inclusive) to toDim (exclusive) of the points numbered fromPoint (inclusive) to toPoint (exclusive) of p.

Thus, the cached points have dim = fromDim - toDim coordinates and there are \(n = \mathtt{toPoint}-\mathtt{fromPoint}\) of them. The original point set p itself is not modified.

Parameters
ppoint set to be cached
fromPointnumber of skipped points (usually 0)
toPoint1 + number of the last point selected from p
fromDimnumber of skipped coordinates (often 0)
toDim1 + index of last coordinate in the original points

Definition at line 78 of file CachedPointSet.java.

◆ CachedPointSet() [2/3]

umontreal.ssj.hups.CachedPointSet.CachedPointSet ( PointSet p,
int n,
int dim )

Same as CachedPointSet(p, 0, n, 0, dim).

Definition at line 112 of file CachedPointSet.java.

◆ CachedPointSet() [3/3]

umontreal.ssj.hups.CachedPointSet.CachedPointSet ( PointSet p)

Creates a new PointSet object that contains an array storing the points of p.

The number of points and their dimension are the same as in the original point set. Both must be finite.

Parameters
ppoint set to be cached

Definition at line 123 of file CachedPointSet.java.

Member Function Documentation

◆ addRandomShift()

void umontreal.ssj.hups.CachedPointSet.addRandomShift ( int d1,
int d2,
RandomStream stream )

Generates a random shift, adds it to the contained point set, and re-caches the points.

See the doc of the overridden method addRandomShift(d1, d2, stream) in PointSet. In case there is no underlying point set, this method should be redefined to randomize the cached points.

Reimplemented from umontreal.ssj.hups.PointSet.

Reimplemented in umontreal.ssj.hups.IndependentPointsCached, umontreal.ssj.hups.LatinHypercube, umontreal.ssj.hups.SortedAndCutPointSet, umontreal.ssj.hups.StratifiedUnitCube, and umontreal.ssj.hups.StratifiedUnitCubeAnti.

Definition at line 153 of file CachedPointSet.java.

◆ fillCache()

void umontreal.ssj.hups.CachedPointSet.fillCache ( int fromDim,
int dim )
protected

Caches the points, skipping fromDim coordinates and taking the next dim ones.

Definition at line 100 of file CachedPointSet.java.

◆ getCoordinate()

double umontreal.ssj.hups.CachedPointSet.getCoordinate ( int i,
int j )

Returns \(u_{i,j}\), the coordinate \(j\) of the point \(i\).

When the points are randomized (e.g., a random shift is added), the values returned by this method should incorporate the randomizations. Richard: La méthode getCoordinate de certaines classes ne tient pas compte du random shift, contrairement à l’itérateur de la même classe. Faut-il que toutes les getCoordinate implémentent le random shift quand il existe? Oui.

Parameters
iindex of the point to look for
jindex of the coordinate to look for
Returns
the value of \(u_{i,j}\)

Reimplemented from umontreal.ssj.hups.PointSet.

Definition at line 216 of file CachedPointSet.java.

◆ getParentPointSet()

PointSet umontreal.ssj.hups.CachedPointSet.getParentPointSet ( )

Returns the reference point set that was passed to the constructor.

Definition at line 227 of file CachedPointSet.java.

◆ iterator()

PointSetIterator umontreal.ssj.hups.CachedPointSet.iterator ( )

Constructs and returns a point set iterator that gets the values directly from the cached array.

Reimplemented from umontreal.ssj.hups.PointSet.

Reimplemented in umontreal.ssj.hups.SortedAndCutPointSet.

Definition at line 131 of file CachedPointSet.java.

◆ randomize()

void umontreal.ssj.hups.CachedPointSet.randomize ( PointSetRandomization rand)

Randomizes the underlying point set using rand and re-caches the points.

In case there is no underlying point set, this method must be redefined to randomize the cached points in the appropriate way. If setRandomizeParent(false) was called, this method invokes rand.randomize(this) instead of on the parent point set.

Reimplemented from umontreal.ssj.hups.PointSet.

Reimplemented in umontreal.ssj.hups.IndependentPointsCached, umontreal.ssj.hups.LatinHypercube, umontreal.ssj.hups.SortedAndCutPointSet, umontreal.ssj.hups.StratifiedUnitCube, and umontreal.ssj.hups.StratifiedUnitCubeAnti.

Definition at line 165 of file CachedPointSet.java.

◆ setRandomizeParent()

void umontreal.ssj.hups.CachedPointSet.setRandomizeParent ( boolean randomizeParent)

If randomizeParent is true, calls to randomize() will be defered to the parent point set (this is the default); otherwise, the randomize method of the PointSetRandomization instance is invoked with this CachedPointSet instance as its argument.

Definition at line 141 of file CachedPointSet.java.

◆ sort()

public< T > void umontreal.ssj.hups.CachedPointSet.sort ( MultiDimSort< T > sort)
package

Sorts the cached points (only) with the given.

umontreal.ssj.util.MultiDimSort sorting algorithm sort. This does not affect the underlying point set p.

Definition at line 190 of file CachedPointSet.java.

◆ sortByCoordinate()

void umontreal.ssj.hups.CachedPointSet.sortByCoordinate ( int j)

Sorts the cached points by increasing order of coordinate j.

This is useful in the ArrayRQMC simulation method, for example. Note that the sort applies only to the cached points, and not to the original contained point set p.

Definition at line 180 of file CachedPointSet.java.

◆ stripCoordinates()

void umontreal.ssj.hups.CachedPointSet.stripCoordinates ( int d)

Removes the first d coordinates of each cached point.

This does not affect the underlying point set p. This could be useful in particular for the ArrayRQMC simulation method.

Definition at line 200 of file CachedPointSet.java.

◆ toString()

String umontreal.ssj.hups.CachedPointSet.toString ( )

Formats a string that contains information about the point set.

Returns
string representation of the point set information

Reimplemented from umontreal.ssj.hups.PointSet.

Reimplemented in umontreal.ssj.hups.IndependentPointsCached, umontreal.ssj.hups.LatinHypercube, umontreal.ssj.hups.SortedAndCutPointSet, umontreal.ssj.hups.StratifiedUnitCube, and umontreal.ssj.hups.StratifiedUnitCubeAnti.

Definition at line 207 of file CachedPointSet.java.


The documentation for this class was generated from the following file: