public class FaureSequence extends DigitalSequence
| xj, c, c | = | 1 | for c = 0,..., k - 1, |
| xj, 0, c | = | jxj, 0, c-1 | for c = 1,..., k - 1, |
| xj, l, c | = | xj, l-1, c-1 + jxj, l, c-1 | for 2 <= c < l <= k - 1, |
| xj, l, c | = | 0 | for c > l or l >= k. |
For any integer m > 0 and ν >= 0, if we look at the vector (ui, j, 1,..., ui, j, m) (the first m digits of coordinate j of the output) when i goes from νbm to (ν +1)bm - 1, this vector takes each of its bm possible values exactly once. In particular, for ν = 0, ui, j visits each value in the set {0, 1/bm, 2/bm,...,(bm -1)/bm} exactly once, so all one-dimensional projections of the point set are identical. However, the values are visited in a different order for the different values of j (otherwise all coordinates would be identical). For j = 0, they are visited in the same order as in the van der Corput sequence in base b.
An important property of Faure nets is that for any integers m > 0 and ν >= 0, the point set {ui for i = νbm,...,(ν +1)bm -1} is a (0, m, s)-net in base b. In particular, for n = bk, the first n points form a (0, k, s)-net in base b. The Faure nets are also projection-regular and dimension-stationary.
To obtain digital nets from the generalized Faure sequence
, where
Pj is left-multiplied by some
invertible matrix
Aj, it suffices to apply an appropriate
matrix scramble (e.g., via leftMatrixScramble).
This changes the order in which ui, j visits its different
values, for each coordinate j, but does not change the set of values
that are visited. The (0, m, s)-net property stated above remains valid.
| Constructor and Description |
|---|
FaureSequence(int n,
int dim)
Same as
FaureSequence(b, k, w, w, dim)
with base b equal to the smallest prime larger or equal to dim,
and with at least n points. |
FaureSequence(int b,
int k,
int r,
int w,
int dim)
Constructs a digital net in base b,
with n = bk points and w output digits,
in dim dimensions.
|
| Modifier and Type | Method and Description |
|---|---|
void |
extendSequence(int k)
Increases the number of points to n = bk from now on.
|
java.lang.String |
toString()
Formats a string that contains information about the point set.
|
iteratorShift, iteratorShiftNoGray, toNet, toNetShiftCjaddRandomShift, addRandomShift, clearRandomShift, eraseOriginalGeneratorMatrices, getCoordinate, getCoordinateNoGray, iBinomialMatrixScramble, iBinomialMatrixScrambleFaurePermut, iBinomialMatrixScrambleFaurePermutAll, iBinomialMatrixScrambleFaurePermutDiag, iterator, iteratorNoGray, leftMatrixScramble, leftMatrixScrambleDiag, leftMatrixScrambleFaurePermut, leftMatrixScrambleFaurePermutAll, leftMatrixScrambleFaurePermutDiag, printGeneratorMatrices, resetGeneratorMatrices, rightMatrixScramble, stripedMatrixScramble, stripedMatrixScrambleFaurePermutAll, unrandomizeaddRandomShift, addRandomShift, formatPoints, formatPoints, formatPoints, formatPoints, formatPointsBase, formatPointsBase, formatPointsBase, formatPointsBase, formatPointsNumbered, formatPointsNumbered, getDimension, getNumPoints, getStream, randomize, randomize, randomize, randomize, randomize, setStreampublic FaureSequence(int b,
int k,
int r,
int w,
int dim)
b - basek - there will be b^k pointsr - number of rows in the generator matricesw - number of output digitsdim - dimension of the point setpublic FaureSequence(int n,
int dim)
FaureSequence(b, k, w, w, dim)
with base b equal to the smallest prime larger or equal to dim,
and with at least n points.
The values of k, r, and w are taken as
k = ceil(logbn) and
r = w = max(k, floor(30/log2b)).n - minimal number of pointsdim - dimension of the point setpublic java.lang.String toString()
PointSettoString in class DigitalNetpublic void extendSequence(int k)
DigitalSequenceextendSequence in class DigitalSequencek - there will be b^k pointsTo submit a bug or ask questions, send an e-mail to Pierre L'Ecuyer.