Skip to content

Latest commit

 

History

History
139 lines (105 loc) · 5.32 KB

sobol_dataset.md

File metadata and controls

139 lines (105 loc) · 5.32 KB

SOBOL_DATASET
Generate Sobol Datasets {#sobol_dataset-generate-sobol-datasets align="center"}


SOBOL_DATASET is a C++ program which creates a Sobol dataset.

Usage: {#usage align="center"}

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: {#licensing align="center"}

The computer code and data files described and made available on this web page are distributed under the GNU LGPL license.

Languages: {#languages align="center"}

SOBOL_DATASET is available in a C++ version and a FORTRAN90 version and a MATLAB version.

Related Data and Programs: {#related-data-and-programs align="center"}

FAURE_DATASET, a C++ program which creates a Faure quasirandom dataset;

GRID_DATASET, a C++ program which creates a grid sequence and writes it to a file.

LATIN_CENTER_DATASET, a C++ program which creates a Latin Center Hypercube dataset;

LATIN_EDGE_DATASET, a C++ program which creates a Latin Edge Hypercube dataset;

LATIN_RANDOM_DATASET, a C++ program which creates a Latin Random Hypercube dataset;

NIEDERREITER2_DATASET, a C++ program which creates a Niederreiter quasirandom dataset with base 2;

NORMAL_DATASET, a C++ 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 C++ library which computes elements of a Sobol quasirandom sequence.

UNIFORM_DATASET, a C++ program which generates a dataset of multivariate uniform pseudorandom values and writes them to a file.

VAN_DER_CORPUT_DATASET, a C++ program which creates a van der Corput quasirandom sequence and writes it to a file.

Reference: {#reference align="center"}

  1. IA Antonov, VM Saleev,
    An Economic Method of Computing LP Tau-Sequences,
    USSR Computational Mathematics and Mathematical Physics,
    Volume 19, 1980, pages 252 - 256.
  2. Paul Bratley, Bennett Fox,
    Algorithm 659: Implementing Sobol's Quasirandom Sequence Generator,
    ACM Transactions on Mathematical Software,
    Volume 14, Number 1, pages 88-100, 1988.
  3. Paul Bratley, Bennett Fox, Linus Schrage,
    A Guide to Simulation,
    Springer Verlag, pages 201-202, 1983.
  4. 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 195-213, 1992.
  5. Bennett Fox,
    Algorithm 647: Implementation and Relative Efficiency of Quasirandom Sequence Generators,
    ACM Transactions on Mathematical Software,
    Volume 12, Number 4, pages 362-376, 1986.
  6. Harald Niederreiter,
    Random Number Generation and quasi-Monte Carlo Methods,
    SIAM, 1992.
  7. William Press, Brian Flannery, Saul Teukolsky, William Vetterling,
    Numerical Recipes: The Art of Scientific Computing,
    Cambridge University Press.
  8. Ilya Sobol,
    USSR Computational Mathematics and Mathematical Physics,
    Volume 16, pages 236-242, 1977.
  9. 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: {#source-code align="center"}

Examples and Tests: {#examples-and-tests align="center"}

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

List of Routines: {#list-of-routines align="center"}

  • MAIN is the main program for SOBOL_DATASET.
  • 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.
  • TIMESTAMP prints the current YMDHMS date as a time stamp.

You can go up one level to the C++ source codes.


Last revised on 30 August 2005.