Skip to content

Latest commit

 

History

History
143 lines (106 loc) · 5.82 KB

hammersley_dataset.md

File metadata and controls

143 lines (106 loc) · 5.82 KB

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.

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"}

HAMMERSLEY_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.

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.

Reference: {#reference align="center"}

  1. John Hammersley,
    Monte Carlo methods for solving multivariable problems,
    Proceedings of the New York Academy of Science,
    Volume 86, 1960, pages 844-874.
  2. 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: {#source-code align="center"}

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

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

  • 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.