SOBOL_DATASET
Generate Sobol Datasets
SOBOL_DATASET
is a FORTRAN90 program which
creates a Sobol dataset.
Usage:
sobol_dataset m n skip
where

m is the spatial dimension.

n is the number of points to generate;

skip is the initial number of points to skip over.
The value of skip is used to allow the sequence to
"warm up". One common strategy is to set skip to
the smallest power of 2 which is equal to or greater than n.
The data is written to the file sobol_m_n.txt.
Licensing:
The computer code and data files described and made available on this web page
are distributed under
the GNU LGPL license.
Languages:
SOBOL_DATASET is available in
a C++ version and
a FORTRAN90 version and
a MATLAB version.
Related Data and Programs:
FAURE_DATASET,
a FORTRAN90 program which
creates a Faure quasirandom dataset;
GRID_DATASET,
a FORTRAN90 program which
creates a grid sequence and writes it to a file.
LATIN_CENTER_DATASET,
a FORTRAN90 program which
creates a Latin Center Hypercube dataset;
LATIN_EDGE_DATASET,
a FORTRAN90 program which
creates a Latin Edge Hypercube dataset;
LATIN_RANDOM_DATASET,
a FORTRAN90 program which
creates a Latin Random Hypercube dataset;
NIEDERREITER2_DATASET,
a FORTRAN90 program which
creates a Niederreiter quasirandom dataset with base 2;
NORMAL_DATASET,
a FORTRAN90 program which
generates a dataset of multivariate normal pseudorandom values and writes them to a file.
SOBOL,
a dataset directory which
contains sample Sobol datasets
created by SOBOL_DATASET.
SOBOL,
a FORTRAN90 library which
computes elements of a Sobol quasirandom sequence.
UNIFORM_DATASET,
a FORTRAN90 program which
generates a dataset of multivariate uniform pseudorandom values and writes them to a file.
VAN_DER_CORPUT_DATASET,
a FORTRAN90 program which
creates a van der Corput quasirandom sequence and writes it to a file.
Reference:

IA Antonov, VM Saleev,
An Economic Method of Computing LP TauSequences,
USSR Computational Mathematics and Mathematical Physics,
Volume 19, 1980, pages 252  256.

Paul Bratley, Bennett Fox,
Algorithm 659:
Implementing Sobol's Quasirandom Sequence Generator,
ACM Transactions on Mathematical Software,
Volume 14, Number 1, pages 88100, 1988.

Paul Bratley, Bennett Fox, Linus Schrage,
A Guide to Simulation,
Springer Verlag, pages 201202, 1983.

Paul Bratley, Bennett Fox, Harald Niederreiter,
Implementation and Tests of Low Discrepancy Sequences,
ACM Transactions on Modeling and Computer Simulation,
Volume 2, Number 3, pages 195213, 1992.

Bennett Fox,
Algorithm 647:
Implementation and Relative Efficiency of Quasirandom
Sequence Generators,
ACM Transactions on Mathematical Software,
Volume 12, Number 4, pages 362376, 1986.

Harald Niederreiter,
Random Number Generation and quasiMonte Carlo Methods,
SIAM, 1992.

William Press, Brian Flannery, Saul Teukolsky, William Vetterling,
Numerical Recipes: The Art of Scientific Computing,
Cambridge University Press.

Ilya Sobol,
USSR Computational Mathematics and Mathematical Physics,
Volume 16, pages 236242, 1977.

Ilya Sobol, Levitan,
The Production of Points Uniformly Distributed in a Multidimensional
Cube (in Russian),
Preprint IPM Akad. Nauk SSSR,
Number 40, Moscow 1976.
Source Code:
Examples and Tests:

sobol_02_00100.txt,
the Sobol dataset of dimension 2, computing 100 points, after skipping 128 points.
List of Routines:

MAIN is the main program for SOBOL_DATASET.

GET_UNIT returns a free FORTRAN unit number.

I8_BIT_HI1 returns the position of the high 1 bit base 2 in an integer.

I8_BIT_LO0 returns the position of the low 0 bit base 2 in an integer.

I8_SOBOL generates a new quasirandom Sobol vector with each call.

I8_SOBOL_GENERATE generates a Sobol dataset.

R8MAT_WRITE writes an R8MAT file.

S_TO_I4 reads an integer value from a string.

TIMESTAMP prints the current YMDHMS date as a time stamp.
You can go up one level to
the FORTRAN90 source codes.
Last revised on 30 August 2005.