HALTON_DATASET
Generate Halton Datasets
HALTON_DATASET is a C++ program, using double precision
arithmetic, 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:
-
NDIM, the spatial dimension,
default: NDIM = 1,
required: 1 <= NDIM;
-
N, the number of entries of the subsequence to compute,
required: 1 <= N;
-
STEP, the subsequence index of the first entry to compute,
default: STEP = 0,
required: 0 <= STEP.
-
SEED(1:NDIM), the Halton sequence index corresponding
to STEP = 0.
default: SEED(1:NDIM) = (0, 0, ... 0),
required: 0 <= SEED(1:NDIM);
-
LEAP(1:NDIM), the succesive jumps in the Halton sequence.
default: LEAP(1:NDIM) = (1, 1, ..., 1).
required: 1 <= LEAP(1:NDIM).
-
BASE(1:NDIM), the Halton bases.
default: BASE(1:NDIM) = (2, 3, 5, 7, 11... ),
required: 1 < BASE(1:NDIM).
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.
Related Data and Programs:
HALTON
is a C++ library of routines for defining Halton sequences.
The HALTON_DATASET program needs a copy of this library
when it is being built.
HALTON
is a dataset directory which contains example Halton sequence
datasets.
HALTON_DATASET is also available in
a FORTRAN90 version and
a MATLAB version.
TABLE
is the format used for the output files created by
HALTON_DATASET.
TABLE_DISCREPANCY
is an executable C++ program which can
read a TABLE file of points (presumed to lie in the
unit hypercube) and compute bounds on the star discrepancy,
a measure of dispersion.
Reference:
-
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.
-
John Halton, GB Smith,
Algorithm 247: Radical-Inverse Quasi-Random Point Sequence,
Communications of the ACM,
Volume 7, 1964, pages 701-702.
-
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:
-
halton_dataset.inp,
is a simple input file for creation of sequences of
dimension 2, 3 and 7.
-
halton_dataset.out,
is the printed output from a run of the program with
the input file.
-
halton_2_10.txt,
a leaped Halton subsequence dataset with NDIM = 2, N = 10.
-
halton_02_00010.png,
a PNG image of
the dataset.
-
halton_3_100.txt,
a leaped Halton subsequence dataset with NDIM = 3, N = 100.
-
halton_7_1000.txt,
a leaped Halton subsequence dataset with NDIM = 7, N = 1000.
List of Routines:
-
MAIN is the main program for HALTON_DATASET.
You can go up one level to
the C++ source codes.
Last revised on 26 September 2005.