|
SSJ
3.3.1
Stochastic Simulation in Java
|
This class creates a point set based upon a linear feedback shift register sequence. More...
Public Member Functions | |
| F2wCycleBasedLFSR (int w, int r, int modQ, int step, int nbcoeff, int coeff[], int nocoeff[]) | |
| Constructs a point set with \(2^{rw}\) points. More... | |
| F2wCycleBasedLFSR (String filename, int no) | |
Constructs a point set after reading its parameters from file filename; the parameters are located at line numbered no of filename. More... | |
| String | toString () |
Public Member Functions inherited from CycleBasedPointSetBase2 | |
| double | getCoordinate (int i, int j) |
| PointSetIterator | iterator () |
| void | addRandomShift (int d1, int d2, RandomStream stream) |
Adds a random digital shift in base 2 to all the points of the point set, using stream stream to generate the random numbers, for coordinates d1 to d2 - 1. More... | |
| void | clearRandomShift () |
| Erases the current digital random shift, if any. | |
| String | formatPoints () |
Public Member Functions inherited from CycleBasedPointSet | |
| double | getCoordinate (int i, int j) |
| void | addRandomShift (int d1, int d2, RandomStream stream) |
Same as the same method in PointSet. More... | |
| void | clearRandomShift () |
| Erases the current random shift, if any. | |
| int | getDimension () |
| PointSetIterator | iterator () |
| String | toString () |
| String | formatPoints () |
Public Member Functions inherited from PointSet | |
| int | getDimension () |
| Returns the dimension (number of available coordinates) of the points. More... | |
| int | getNumPoints () |
| Returns the number of points. More... | |
| abstract double | getCoordinate (int i, int j) |
| Returns \(u_{i,j}\), the coordinate \(j\) of the point \(i\). More... | |
| PointSetIterator | iterator () |
| Constructs and returns a point set iterator. More... | |
| void | randomize (PointSetRandomization rand) |
Randomizes this point set using the given rand. More... | |
| 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. More... | |
| void | addRandomShift (RandomStream stream) |
Same as addRandomShift(0, dim, stream), where dim is the dimension of the point set. More... | |
| 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 | toString () |
| Formats a string that contains information about the point set. More... | |
| 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. More... | |
| 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 \(n\) points. More... | |
| 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. More... | |
| String | formatPoints (PointSetIterator iter, int n, int d) |
Same as invoking formatPoints(n, d), but prints the points by calling iter repeatedly. More... | |
| String | formatPointsBase (int b) |
| Similar to formatPoints(), but the points coordinates are printed in base \(b\). More... | |
| String | formatPointsBase (int n, int d, int b) |
| Similar to formatPoints(n, d), but the points coordinates are printed in base \(b\). More... | |
| String | formatPointsBase (PointSetIterator iter, int b) |
| Similar to formatPoints(iter), but the points coordinates are printed in base \(b\). More... | |
| 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\). More... | |
| String | formatPointsNumbered () |
| Same as invoking formatPointsNumbered(n, d) with \(n\) and \(d\) equal to the number of points and the dimension, respectively. More... | |
| String | formatPointsNumbered (int n, int d) |
| Same as invoking formatPoints(n,d), except that the points are numbered. More... | |
Additional Inherited Members | |
Protected Member Functions inherited from CycleBasedPointSet | |
| void | addCycle (AbstractList c) |
Adds the cycle c to the list of all cycles. More... | |
Protected Attributes inherited from CycleBasedPointSetBase2 | |
| int | numBits |
| double | normFactor |
Protected Attributes inherited from CycleBasedPointSet | |
| int | numCycles = 0 |
| ObjectArrayList | cycles = new ObjectArrayList() |
Protected Attributes inherited from 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. More... | |
| 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. More... | |
| RandomStream | shiftStream |
| Stream used to generate the random shifts. More... | |
Static Protected Attributes inherited from 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. More... | |
This class creates a point set based upon a linear feedback shift register sequence.
The recurrence used to produce the point set is
\[ m_n = \sum_{i=1}^r b_i m_{n-i} \]
where \(m_n\in\mathbb F_{2^w}\), \(n\geq0\) and \(b_i\in\mathbb F_{2^w}\). There is a polynomial in \(\mathbb F_{2^w}[z]\) associated with this recurrence called the characteristic polynomial. It is
\[ P(z) = z^r + \sum_{i=1}^r b_i z^{r-i}. \]
In the implementation, this polynomial is stored in an object F2wStructure.
Let \({\mathbf{x}} = (x^{(0)}, …, x^{(p-1)}) \in\mathbb F_2^p\) be a \(p\)-bit vector. Let us define the function \(\phi(\mathbf{x}) = \sum_{i=1}^p 2^{-i} x^{(i-1)}\). The point set in \(t\) dimensions produced by this class is
\[ \left\{ (\phi(\mathbf{y}_0),\phi(\mathbf{y}_s),…,\phi(\mathbf{y}_{s(t-1)}): (\mathbf{v}_0,…,\mathbf{v}_{r-1})\in\mathbb F_2^{rw}\right\} \]
where \(\mathbf{y}_n = \mbox{trunc}_h(\mathbf{v}_n, \mathbf{v}_{n+1},…)\), \(\mathbf{v}_n\) is the representation of \(m_n\) under the polynomial basis of \(\mathbb F_{2^w}\) over \(\mathbb F_2\), and \(h=w\lfloor31/w\rfloor\). The parameter \(s\) is called the stepping parameter of the recurrence.
| F2wCycleBasedLFSR | ( | int | w, |
| int | r, | ||
| int | modQ, | ||
| int | step, | ||
| int | nbcoeff, | ||
| int | coeff[], | ||
| int | nocoeff[] | ||
| ) |
Constructs a point set with \(2^{rw}\) points.
See the description of the class umontreal.ssj.hups.F2wStructure for the meaning of the parameters. Constructs and stores the set of cycles for an LCG with modulus n and multiplier a. If pgcd(a, n) = 1, this constructs a full-period LCG which has two cycles, one containing 0 and one, the LCG period.
| n | required number of points and modulo of the LCG |
| a | generator a of the LCG |
| F2wCycleBasedLFSR | ( | String | filename, |
| int | no | ||
| ) |
Constructs a point set after reading its parameters from file filename; the parameters are located at line numbered no of filename.
The available files are listed in the description of class umontreal.ssj.hups.F2wStructure.
1.8.14