HALTON_DATASET
Generate Halton Datasets


HALTON_DATASET is a C++ program which creates a Halton sequence dataset.

The program is interactive, and allows the user to choose the parameters that define the sequence.

The NDIM-dimensional Halton sequence is really NDIM separate sequences, each generated by a particular base.

The program applies the user's data to select elements of a "leaped" subsequence of the Halton sequence. The subsequence elements are indexed by a quantity called STEP, which starts at 0. The STEP-th subsequence element is simply the Halton sequence element with index

        SEED(1:NDIM) + STEP * LEAP(1:NDIM).
      

The data that the user may set include:

Once these parameters are set, the program generates the data, and writes it to a file. The user may then specify another set of data, or terminate the program.

Licensing:

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

Languages:

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

Related Data and Programs:

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.

HALTON, a C++ library which defines Halton sequences. The HALTON_DATASET program needs a copy of this library when it is being built.

HALTON, a dataset directory which contains example Halton sequence datasets.

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_DATASET, a C++ program which computes a Sobol quasirandom sequence and writes it to a file.

UNIFORM_DATASET, a C++ program which generates a dataset of 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:

  1. John Halton,
    On the efficiency of certain quasi-random sequences of points in evaluating multi-dimensional integrals,
    Numerische Mathematik,
    Volume 2, 1960, pages 84-90.
  2. John Halton, GB Smith,
    Algorithm 247: Radical-Inverse Quasi-Random Point Sequence,
    Communications of the ACM,
    Volume 7, 1964, pages 701-702.
  3. Ladislav Kocis, William Whiten,
    Computational Investigations of Low-Discrepancy Sequences,
    ACM Transactions on Mathematical Software,
    Volume 23, Number 2, 1997, pages 266-294.

Source Code:

Examples and Tests:

List of Routines:

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


Last revised on 26 September 2005.