This abstract class provides the basic structures for storing and manipulating a point set defined by a set of cycles. More...
Classes | |
| class | CycleBasedPointSetIterator |
Public Member Functions | |
| double | getCoordinate (int i, int j) |
| Returns \(u_{i,j}\), the coordinate \(j\) of the point \(i\). | |
| void | addRandomShift (int d1, int d2, RandomStream stream) |
| Same as the same method in PointSet. | |
| void | clearRandomShift () |
| Erases the current random shift, if any. | |
| int | getDimension () |
| Returns the dimension (number of available coordinates) of the points. | |
| PointSetIterator | iterator () |
| Constructs and returns a point set iterator. | |
| String | toString () |
| Formats a string that contains information about the point set. | |
| 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. | |
| Public Member Functions inherited from umontreal.ssj.hups.PointSet | |
| int | getNumPoints () |
| Returns the number of points. | |
| void | randomize (PointSetRandomization rand) |
| Randomizes this point set using the given rand. | |
| 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. | |
| 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 | addCycle (AbstractList c) |
| Adds the cycle c to the list of all cycles. | |
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 abstract class provides the basic structures for storing and manipulating a point set defined by a set of cycles.
The \(s\)-dimensional points are all the vectors of \(s\) successive values found in any of the cycles, from any starting point. Since this is defined for any positive integer \(s\), the points effectively have an infinite number of dimensions. The number of points, \(n\), is the sum of lengths of all the cycles. The cycles of the point set are simply stored as a list of arrays, where each array contains the successive values for a given cycle. By default, the values are stored in double.
This structure is convenient for implementing recurrence-based point sets, where the point set in \(s\) dimensions is defined as the set of all vectors of \(s\) successive values of a periodic recurrence, from all its possible initial states.
Definition at line 51 of file CycleBasedPointSet.java.
|
protected |
Adds the cycle c to the list of all cycles.
This method is used by subclass constructors to fill up the list of cycles.
Definition at line 115 of file CycleBasedPointSet.java.
| void umontreal.ssj.hups.CycleBasedPointSet.addRandomShift | ( | int | d1, |
| int | d2, | ||
| RandomStream | stream ) |
Same as the same method in PointSet.
| stream | Stream used to generate random numbers |
Reimplemented from umontreal.ssj.hups.PointSet.
Reimplemented in umontreal.ssj.hups.CycleBasedPointSetBase2.
Definition at line 79 of file CycleBasedPointSet.java.
| void umontreal.ssj.hups.CycleBasedPointSet.clearRandomShift | ( | ) |
Erases the current random shift, if any.
Reimplemented from umontreal.ssj.hups.PointSet.
Reimplemented in umontreal.ssj.hups.CycleBasedPointSetBase2.
Definition at line 106 of file CycleBasedPointSet.java.
| String umontreal.ssj.hups.CycleBasedPointSet.formatPoints | ( | ) |
Same as invoking formatPoints(n, d) with \(n\) and \(d\) equal to the number of points and the dimension of this object, respectively.
| UnsupportedOperationException | if the number of points or dimension of the point set is infinite |
Reimplemented from umontreal.ssj.hups.PointSet.
Reimplemented in umontreal.ssj.hups.CycleBasedPointSetBase2.
Definition at line 136 of file CycleBasedPointSet.java.
| double umontreal.ssj.hups.CycleBasedPointSet.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.
Reimplemented in umontreal.ssj.hups.CycleBasedPointSetBase2.
Definition at line 59 of file CycleBasedPointSet.java.
| int umontreal.ssj.hups.CycleBasedPointSet.getDimension | ( | ) |
Returns the dimension (number of available coordinates) of the points.
If the dimension is actually infinite, Integer.MAX_VALUE is returned.
Reimplemented from umontreal.ssj.hups.PointSet.
Definition at line 123 of file CycleBasedPointSet.java.
| PointSetIterator umontreal.ssj.hups.CycleBasedPointSet.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.
Reimplemented in umontreal.ssj.hups.CycleBasedPointSetBase2.
Definition at line 127 of file CycleBasedPointSet.java.
| String umontreal.ssj.hups.CycleBasedPointSet.toString | ( | ) |
Formats a string that contains information about the point set.
Reimplemented from umontreal.ssj.hups.PointSet.
Reimplemented in umontreal.ssj.hups.CycleBasedLFSR, umontreal.ssj.hups.F2wCycleBasedLFSR, umontreal.ssj.hups.F2wCycleBasedPolyLCG, and umontreal.ssj.hups.LCGPointSet.
Definition at line 131 of file CycleBasedPointSet.java.