hammersley


hammersley, a C++ code which computes elements of a Hammersley Quasi Monte Carlo (QMC) sequence using a simple interface.

The standard M-dimensional Hammersley sequence based on N is simply composed of a first component of successive fractions 0/N, 1/N, ..., N/N, paired with M-1 1-dimensional van der Corput sequences, using as bases the first M-1 primes.

The HAMMERSLEY function will return the M-dimensional element of this sequence with index I.

The HAMMERSLEY_SEQUENCE function will return the M-dimensional elements of this sequence with indices I1 through I2.

The HAMMERSLEY_INVERSE function accepts an M-dimensional value, presumably computed by HAMMERSLEY, and returns its original index I.

Licensing:

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

Languages:

hammersley is available in a C version and a C++ version and a FORTRAN90 version and a MATLAB version and a Python version.

Related Data and Programs:

CVT, a C++ code which computes elements of a Centroidal Voronoi Tessellation.

FAURE, a C++ code which computes elements of a Faure sequence.

HALTON, a C++ code which computes elements of a Halton Quasi Monte Carlo (QMC) sequence.

hammersley_test

IHS, a C++ code which computes elements of an improved distributed Latin hypercube dataset.

LATIN_CENTER, a C++ code which computes elements of a Latin Hypercube dataset, choosing center points.

LATIN_EDGE, a C++ code which computes elements of a Latin Hypercube dataset, choosing edge points.

LATIN_RANDOM, a C++ code which computes elements of a Latin Hypercube dataset, choosing points at random.

LATTICE_RULE, a C++ code which approximates multidimensional integrals using lattice rules.

LCVT, a C++ code which computes a latinized Centroidal Voronoi Tessellation.

NIEDERREITER2, a C++ code which computes elements of a Niederreiter sequence using base 2.

SOBOL, a C++ code which computes elements of a Sobol sequence.

TOMS647, a C++ code which is a version of ACM TOMS algorithm 647, for evaluating Faure, Hammersley and Sobol sequences.

UNIFORM, a C++ code which computes elements of a uniform pseudorandom sequence.

VAN_DER_CORPUT, a C++ code which computes elements of a 1D van der Corput Quasi Monte Carlo (QMC) sequence using a simple interface.

Reference:

  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:


Last revised on 11 March 2020.