HAMMERSLEY_DATASET
Generate Hammersley Datasets {#hammersley_dataset-generate-hammersley-datasets align="center"}
HAMMERSLEY_DATASET is a C++ program which creates a Hammersley dataset and writes it to a file.
The program is interactive, and allows the user to choose the parameters that define the sequence.
The program applies the user's data to select elements of a "leaped" subsequence of the Hammersley sequence. The subsequence elements are indexed by a quantity called STEP, which starts at 0. The STEP-th subsequence element is simply the Hammersley 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 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 sequence.
default: LEAP(1:NDIM) = (1, 1, ..., 1).
required: 1 <= LEAP(1:NDIM). - BASE(1:NDIM), the Hammersley bases.
default: BASE(1:NDIM) = (2, 3, 5, 7, 11... ), or
(-N, 2, 3, 5, 7, 11, ... ) if N is known,
required: 1 < BASE(I) for any van der Corput dimension I, or BASE(I) < 0 to generate the fractional sequence J/|BASE(I)|.
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.
The computer code and data files described and made available on this web page are distributed under the GNU LGPL license.
HAMMERSLEY_DATASET is available in a C++ version and a FORTRAN90 version and a MATLAB version.
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.
HAMMERSLEY, a C++ library which actually computes the Hammersley sequences requested by HAMMERSLEY_DATASET. A compiled copy of the library must be available in order to build HAMMERSLEY_DATASET.
HAMMERSLEY, a dataset directory which contains examples of datasets created by HAMMERSLEY_DATASET.
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.
- John Hammersley,
Monte Carlo methods for solving multivariable problems,
Proceedings of the New York Academy of Science,
Volume 86, 1960, pages 844-874. - Ladislav Kocis, William Whiten,
Computational Investigations of Low-Discrepancy Sequences,
ACM Transactions on Mathematical Software,
Volume 23, Number 2, 1997, pages 266-294.
- hammersley_dataset.cpp, the source code.
- hammersley_dataset_input.txt, is a simple input file for creation of sequences of dimension 2, 3 and 7.
- hammersley_dataset_output.txt, is the printed output from a run of the program with the input file.
- hammersley_02_00020.txt, a leaped Hammersley subsequence dataset with NDIM = 2 and N = 20.
- hammersley_03_00010.txt, a leaped Hammersley subsequence dataset with NDIM = 3 and N = 10.
- hammersley_07_00010.txt, a leaped Hammersley subsequence dataset with NDIM = 7 and N = 10.
- MAIN is the main program for HAMMERSLEY_DATASET.
You can go up one level to the C++ source codes.
Last revised on 31 August 2005.