Implements a recurrence-based point set defined via a linear congruential recurrence of the form \(x_i = a x_{i-1} \mod n\) and \(u_i = x_i / n\). More...
Public Member Functions | |
| LCGPointSet (int n, int a) | |
| Constructs and stores the set of cycles for an LCG with modulus. | |
| LCGPointSet (int b, int e, int c, int a) | |
| Constructs and stores the set of cycles for an LCG with modulus \(n = b^e +
c\) and multiplier \(a\). | |
| String | toString () |
| Formats a string that contains information about the point set. | |
| int | geta () |
| Returns the value of the multiplier \(a\). | |
| Public Member Functions inherited from umontreal.ssj.hups.CycleBasedPointSet | |
| 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 | 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. | |
Additional Inherited Members | |
| Static Public Member Functions inherited from umontreal.ssj.hups.PointSet | |
| static int | getMaxBits () |
| Returns the maximum number of usable bits. | |
| Protected Member Functions inherited from umontreal.ssj.hups.CycleBasedPointSet | |
| void | addCycle (AbstractList c) |
| Adds the cycle c to the list of all cycles. | |
| 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. | |
Implements a recurrence-based point set defined via a linear congruential recurrence of the form \(x_i = a x_{i-1} \mod n\) and \(u_i = x_i / n\).
The implementation is done by storing the values of \(u_i\) over the set of all cycles of the recurrence.
Definition at line 37 of file LCGPointSet.java.
| umontreal.ssj.hups.LCGPointSet.LCGPointSet | ( | int | n, |
| int | a ) |
Constructs and stores the set of cycles for an LCG with modulus.
\(n\) and multiplier \(a\). If the LCG has full period length \(n-1\), there are two cycles, the first one containing only 0 and the second one of period length \(n-1\).
| n | required number of points and modulus of the LCG |
| a | generator \(a\) of the LCG |
Definition at line 50 of file LCGPointSet.java.
| umontreal.ssj.hups.LCGPointSet.LCGPointSet | ( | int | b, |
| int | e, | ||
| int | c, | ||
| int | a ) |
Constructs and stores the set of cycles for an LCG with modulus \(n = b^e + c\) and multiplier \(a\).
Definition at line 85 of file LCGPointSet.java.
| int umontreal.ssj.hups.LCGPointSet.geta | ( | ) |
Returns the value of the multiplier \(a\).
Definition at line 111 of file LCGPointSet.java.
| String umontreal.ssj.hups.LCGPointSet.toString | ( | ) |
Formats a string that contains information about the point set.
Reimplemented from umontreal.ssj.hups.CycleBasedPointSet.
Definition at line 102 of file LCGPointSet.java.