|
SSJ
3.2.1
Stochastic Simulation in Java
|
This class implements the sequence of Halton [74] , which is essentially a modification of Hammersley nets for producing an infinite sequence of points having low discrepancy. More...
Public Member Functions | |
| HaltonSequence (int dim) | |
Constructs a new Halton sequence in dim dimensions. More... | |
| void | setStart (double[] x0) |
Initializes the Halton sequence starting at point x0. More... | |
| void | init (double[] x0) |
Initializes the Halton sequence starting at point x0. More... | |
| void | addFaureLemieuxPermutations () |
| Permutes the digits using permutations from [55] for all coordinates. More... | |
| void | addFaurePermutations () |
| Permutes the digits using Faure permutations for all coordinates. More... | |
| void | ErasePermutations () |
| Erases the permutations: from now on, the digits will not be permuted. | |
| int | getNumPoints () |
| double | getCoordinate (int i, int j) |
Public Member Functions inherited from PointSet | |
| int | getDimension () |
| Returns the dimension (number of available coordinates) of the point set. 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 | setStream (RandomStream stream) |
Sets the random stream used to generate random shifts to stream. More... | |
| RandomStream | getStream () |
| Returns the random stream used to generate random shifts. More... | |
| void | randomize (PointSetRandomization rand) |
Randomizes the point set using the given rand. More... | |
| void | addRandomShift (int d1, int d2, RandomStream stream) |
| This method does nothing for this generic class. More... | |
| void | addRandomShift (RandomStream stream) |
| This method does nothing for this generic class. More... | |
| void | addRandomShift (int d1, int d2) |
Similar to addRandomShift(d1, d2, stream), with the current random stream. | |
| void | addRandomShift () |
Similar to addRandomShift(0, d2, stream) with the current random stream and d2 the dimension of the current random shift. | |
| void | clearRandomShift () |
| Erases the current random shift, if any. | |
| void | randomize (int fromDim, int toDim, RandomStream stream) |
By default, this method simply calls addRandomShift (fromDim, toDim, stream), which does nothing. | |
| void | randomize (RandomStream stream) |
| By default, this method simply calls randomize(0, dim, stream). | |
| void | randomize (int d1, int d2) |
By default, this method simply calls addRandomShift(d1, d2). | |
| void | randomize () |
By default, this method simply calls addRandomShift(). | |
| void | unrandomize () |
By default, this method simply calls clearRandomShift(). | |
| 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 Attributes inherited from PointSet | |
| double | EpsilonHalf = 1.0 / Num.TWOEXP[55] |
| int | dim = 0 |
| int | numPoints = 0 |
| int | dimShift = 0 |
| int | capacityShift = 0 |
| RandomStream | shiftStream |
Static Protected Attributes inherited from PointSet | |
| static final int | MAXBITS = 31 |
This class implements the sequence of Halton [74] , which is essentially a modification of Hammersley nets for producing an infinite sequence of points having low discrepancy.
The \(i\)th point in \(s\) dimensions is
\[ \mathbf{u}_i = (\psi_{b_1}(i),\psi_{b_2}(i),…, \psi_{b_s}(i)), \tag{Halton-point2} \]
for \(i=0,1,2,…\), where \(\psi_b\) is the radical inverse function in base \(b\), defined in class RadicalInverse, and where \(2 = b_1 < \cdots< b_s\) are the \(s\) smallest prime numbers in increasing order.
A fast method is implemented to generate randomized Halton sequences [216], [224] , starting from an arbitrary point \(x_0\).
The points can be "scrambled" by applying a permutation to the digits of \(i\) before computing each coordinate via ( Halton-point ), in the same way as for the class HammersleyPointSet, for all coordinates \(j\ge0\).
| HaltonSequence | ( | int | dim | ) |
Constructs a new Halton sequence in dim dimensions.
| dim | dimension |
| void addFaureLemieuxPermutations | ( | ) |
Permutes the digits using permutations from [55] for all coordinates.
After the method is called, the coordinates \(u_{i,j}\) are generated via
\[ u_{i,j} = \sum_{r=0}^{k-1} \pi_j[a_r] b_j^{-r-1}, \]
for \(j=0,…,s-1\), where \(\pi_j\) is the Faure-Lemieux (2008) permutation of \(\{0,…,b_j-1\}\).
| void addFaurePermutations | ( | ) |
Permutes the digits using Faure permutations for all coordinates.
After the method is called, the coordinates \(u_{i,j}\) are generated via
\[ u_{i,j} = \sum_{r=0}^{k-1} \pi_j[a_r] b_j^{-r-1}, \]
for \(j=0,…,s-1\), where \(\pi_j\) is the Faure permutation of \(\{0,…,b_j-1\}\).
| void init | ( | double [] | x0 | ) |
Initializes the Halton sequence starting at point x0.
The dimension of x0 must be at least as large as the dimension of this object.
| x0 | starting point of the Halton sequence |
| void setStart | ( | double [] | x0 | ) |
Initializes the Halton sequence starting at point x0.
For each coordinate \(j\), the sequence starts at index \(i_j\) such that x0[ \(j\)] is the radical inverse of \(i_j\). The dimension of x0 must be at least as large as the dimension of this object.
| x0 | starting point of the Halton sequence |
1.8.14