This container class permits one to select a subset of a point set. More...
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. | |
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.
Definition at line 57 of file SubsetOfPointSet.java.
| 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.
| p | point set for which a subset is constructed |
Definition at line 69 of file SubsetOfPointSet.java.
| 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.
| i | index of the point to look for |
| j | index of the coordinate to look for |
Reimplemented from umontreal.ssj.hups.PointSet.
Definition at line 145 of file SubsetOfPointSet.java.
| 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.
Reimplemented from umontreal.ssj.hups.PointSet.
Definition at line 169 of file SubsetOfPointSet.java.
| void umontreal.ssj.hups.SubsetOfPointSet.selectCoordinates | ( | int[] | coordIndices, |
| int | numCoord ) |
Selects the numCoord coordinates whose numbers are provided in the array coordIndices.
| coordIndices | array of coordinate indices to be selected |
| numCoord | number of coordinatess for each point in the subset of point set |
Definition at line 137 of file SubsetOfPointSet.java.
| 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.
| from | index of the coordinate, in the contained point set, corresponding to the coordinate 0 of each point of this point set |
| to | index of the last coordinate taken for each point from the contained point set |
Definition at line 120 of file SubsetOfPointSet.java.
| void umontreal.ssj.hups.SubsetOfPointSet.selectPoints | ( | int[] | pointIndices, |
| int | numPoints ) |
Selects the numPoints points whose numbers are provided in the array pointIndices.
| pointIndices | array of point indices to be selected |
| numPoints | number of points in the subset of point set |
Definition at line 104 of file SubsetOfPointSet.java.
| 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.
| from | index of the point, in the contained point set, corresponding to the point 0 of this point set |
| to | index of the last point taken from the contained point set |
Definition at line 87 of file SubsetOfPointSet.java.
| String umontreal.ssj.hups.SubsetOfPointSet.toString | ( | ) |
Formats a string that contains information about the point set.
Reimplemented from umontreal.ssj.hups.PointSet.
Definition at line 173 of file SubsetOfPointSet.java.