public class SobolSequence extends DigitalSequenceBase2
In Sobol's proposal, the generator matrices Cj are upper triangular matrices defined by a set of direction numbers
For each dimension j, the integers mj, c are defined by selecting a primitive polynomial over F2 of degree cj,
This list of primitive polynomials, as well as default choices for the direction numbers, are stored in precomputed tables. The ordered list of primitive polynomials was taken from Florent Chabaud's web site, at http://fchabaud.free.fr/. Each polynomial fj(z) is stored in the form of the integer 2cj + aj, 12cj-1 + ... + aj, cj, whose binary representation gives the polynomial coefficients.
For the set of direction numbers, there are several possibilities based on different selection criteria. The original values proposed by Sobol' and implemented in the code of Bratley and Fox for j <= 40 were selected in terms of his properties A and A', which are equivalent to s-distribution with one and two bits of accuracy, respectively. The default direction numbers used here have been taken from Lemieux et al. For j <= 40, they are the same as in Bratley and Fox. Several files of parameters for Sobol sequences are given on F. Kuo's Web site at http://web.maths.unsw.edu.au/~fkuo/sobol/index.html.
| Constructor and Description |
|---|
SobolSequence(int n,
int dim)
Constructs a Sobol point set with at least n points and 31
output digits, in dimension dim.
|
SobolSequence(int k,
int w,
int dim)
Constructs a new digital net with n = 2k points and w
output digits, in dimension dim, formed by taking the first
n points of the Sobol' sequence.
|
SobolSequence(java.lang.String filename,
int k,
int w,
int dim)
Constructs a new digital net using the direction numbers provided in file
filename.
|
| Modifier and Type | Method and Description |
|---|---|
void |
extendSequence(int k)
Increases the number of points to n = 2k from now on.
|
java.lang.String |
toString()
Formats a string that contains information about the point set.
|
iteratorShift, iteratorShiftNoGray, toNet, toNetShiftCjaddRandomShift, addRandomShift, clearRandomShift, getCoordinate, getCoordinateNoGray, iBinomialMatrixScramble, iBinomialMatrixScrambleFaurePermut, iBinomialMatrixScrambleFaurePermutAll, iBinomialMatrixScrambleFaurePermutDiag, iterator, iteratorNoGray, leftMatrixScramble, leftMatrixScrambleDiag, leftMatrixScrambleFaurePermut, leftMatrixScrambleFaurePermutAll, leftMatrixScrambleFaurePermutDiag, printGeneratorMatrices, printGeneratorMatricesTrans, rightMatrixScramble, stripedMatrixScramble, stripedMatrixScrambleFaurePermutAlleraseOriginalGeneratorMatrices, resetGeneratorMatrices, unrandomizeaddRandomShift, addRandomShift, formatPoints, formatPoints, formatPoints, formatPoints, formatPointsBase, formatPointsBase, formatPointsBase, formatPointsBase, formatPointsNumbered, formatPointsNumbered, getDimension, getNumPoints, getStream, randomize, randomize, randomize, randomize, randomize, setStreampublic SobolSequence(int k,
int w,
int dim)
k - there will be 2^k pointsw - number of output digitsdim - dimension of the point setpublic SobolSequence(int n,
int dim)
dim - dimension of the point setn - minimal number of pointspublic SobolSequence(java.lang.String filename,
int k,
int w,
int dim)
net = new SobolSequence(
"http://web.maths.unsw.edu.au/˜fkuo/sobol/joe-kuo-6.16900", k, w, dim);
The file must have the following format (the first line is treated as a comment by the program and discarded):
| dim | s | a | mi |
| 2 | 1 | 0 | 1 |
| 3 | 2 | 1 | 1 3 |
| 4 | 3 | 1 | 1 3 1 |
| 5 | 3 | 2 | 1 1 1 |
| 6 | 4 | 1 | 1 1 3 3 |
| 7 | 4 | 4 | 1 3 5 13 |
| ⋮ | ⋮ |
k - number of points is 2kw - number of output digitsdim - dimension of the point setfilename - file containing the direction numberspublic java.lang.String toString()
PointSettoString in class DigitalNetBase2public void extendSequence(int k)
DigitalSequenceBase2extendSequence in class DigitalSequenceBase2k - there will be 2^k pointsTo submit a bug or ask questions, send an e-mail to Pierre L'Ecuyer.