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

This container class permits one to select a subset of a point set. More...

Inheritance diagram for umontreal.ssj.hups.SubsetOfPointSet:
umontreal.ssj.hups.PointSet

Public Member Functions

 SubsetOfPointSet (PointSet p)
 Constructs a new PointSet object, initially identical to p, and from which a subset of the points and/or a subset of the coordinates is to be extracted.
void selectPointsRange (int from, int to)
 Selects the points numbered from "<tt>from</tt>" to "<tt>to - 1</tt>" from the original point set.
void selectPoints (int[] pointIndices, int numPoints)
 Selects the numPoints points whose numbers are provided in the array pointIndices.
void selectCoordinatesRange (int from, int to)
 Selects the coordinates from "<tt>from</tt>" to "<tt>to - 1</tt>" from the original point set.
void selectCoordinates (int[] coordIndices, int numCoord)
 Selects the numCoord coordinates whose numbers are provided in the array coordIndices.
double getCoordinate (int i, int j)
 Returns \(u_{i,j}\), the coordinate \(j\) of the point \(i\).
PointSetIterator iterator ()
 Constructs and returns a point set iterator.
String toString ()
 Formats a string that contains information about the point set.
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 randomize (PointSetRandomization rand)
 Randomizes this point set using the given rand.
void addRandomShift (int d1, int d2, RandomStream stream)
 By default, this method generates a random shift in the protected double[] array shift, to be used eventually for a random shift modulo 1.
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.

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 permits one to select a subset of a point set.

This is done by selecting a range or providing an array of either point or coordinate indices. A typical application of a range selection is to make the number of points or the dimension finite. It is also possible to provide, for example, a random permutation in the selection of components. It is possible also to take projections of coordinates for selected dimensions.

Selecting a new subset of points or coordinates overwrites the previous selection. The specification of a subset with respect to the points is independent from selecting a subset with respect to the coordinates. The number of points and the dimension are adapted to the current selection and all indices still start from 0, i.e., the subset works just like an ordinary point set.

When the points or coordinates ranges are changed, existing iterators become invalid. They should be reconstructed or reset to avoid inconsistencies.

Additional Information

Remarks
Pierre: Code à reviser.

Definition at line 57 of file SubsetOfPointSet.java.

Constructor & Destructor Documentation

◆ SubsetOfPointSet()

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

Constructs a new PointSet object, initially identical to p, and from which a subset of the points and/or a subset of the coordinates is to be extracted.

Parameters
ppoint set for which a subset is constructed

Definition at line 69 of file SubsetOfPointSet.java.

Member Function Documentation

◆ getCoordinate()

double umontreal.ssj.hups.SubsetOfPointSet.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 145 of file SubsetOfPointSet.java.

◆ iterator()

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

Constructs and returns a point set iterator.

The default implementation returns an iterator that uses the method getCoordinate(i,j) to iterate over the points and coordinates, but subclasses can reimplement it for better efficiency.

Returns
point set iterator for the point set

Reimplemented from umontreal.ssj.hups.PointSet.

Definition at line 169 of file SubsetOfPointSet.java.

◆ selectCoordinates()

void umontreal.ssj.hups.SubsetOfPointSet.selectCoordinates ( int[] coordIndices,
int numCoord )

Selects the numCoord coordinates whose numbers are provided in the array coordIndices.

Parameters
coordIndicesarray of coordinate indices to be selected
numCoordnumber of coordinatess for each point in the subset of point set

Definition at line 137 of file SubsetOfPointSet.java.

◆ selectCoordinatesRange()

void umontreal.ssj.hups.SubsetOfPointSet.selectCoordinatesRange ( int from,
int to )

Selects the coordinates from "<tt>from</tt>" to "<tt>to - 1</tt>" from the original point set.

Parameters
fromindex of the coordinate, in the contained point set, corresponding to the coordinate 0 of each point of this point set
toindex of the last coordinate taken for each point from the contained point set

Definition at line 120 of file SubsetOfPointSet.java.

◆ selectPoints()

void umontreal.ssj.hups.SubsetOfPointSet.selectPoints ( int[] pointIndices,
int numPoints )

Selects the numPoints points whose numbers are provided in the array pointIndices.

Parameters
pointIndicesarray of point indices to be selected
numPointsnumber of points in the subset of point set

Definition at line 104 of file SubsetOfPointSet.java.

◆ selectPointsRange()

void umontreal.ssj.hups.SubsetOfPointSet.selectPointsRange ( int from,
int to )

Selects the points numbered from "<tt>from</tt>" to "<tt>to - 1</tt>" from the original point set.

Parameters
fromindex of the point, in the contained point set, corresponding to the point 0 of this point set
toindex of the last point taken from the contained point set

Definition at line 87 of file SubsetOfPointSet.java.

◆ toString()

String umontreal.ssj.hups.SubsetOfPointSet.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.

Definition at line 173 of file SubsetOfPointSet.java.


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