Implementations of Sobol sequences
List of existing implementations, sorted by language
For each reference, the maximal dimension is given.
C
C++
- Boost [source] — 3667
- Openturns [source] — 1111
- BRODA [doc] — 65536
- Joe & Kuo [doc] [source] — 21201
- Burkardt [doc] [source] — 1111
Python
Fortran
Matlab / Scilab
- Burkardt [source] - 1111
- lowdisc [source] - 40
Wrappers
Here we can list wrappers to implementations written in other languages.
For instance, randtoolbox provides a wrapper in R for an implementation written in C up to dimension 1111, see CRAN page.
For instance, Openturns provides a wrapper in Python for an implementation written in C++,
see Doc.
Discussion
Careful about checking that the first point is indeed included in the sequence.
Openturns and Boost for instance are missing it. Art Owen showed significant performance drop if you omit the first point: https:arxiv.orgbs/2008.08051
Aside from the dimensionality, consider:
- the scrambling methods which are implemented or not.
- the number of bits which is used. Ex NLOpt only uses 32 bits, hence you can sample only up to 2^32-1 points.