HALTON The Halton Quasi Monte Carlo (QMC) Sequence

HALTON is a C library which computes elements of a Halton Quasi Monte Carlo (QMC) sequence using a simple interface.

A more sophisticated library is available in HALTON_ADVANCED, but I find this simple version to be preferable for everyday use!

The standard M-dimensional Halton sequence is simply composed of M 1-dimensional van der Corput sequences, using as bases the first M primes.

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

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

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

The HALTON_BASE function allows the user to replace the standard basis of primes with some other choice.

Languages:

HALTON 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:

HAMMERSLEY, a C library which computes elements of a Hammersley Quasi Monte Carlo (QMC) sequence, using a simple interface.

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

NORMAL, a C library which computes elements of a sequence of pseudorandom normally distributed values.

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

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

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.
Computational Investigations of Low-Discrepancy Sequences,
ACM Transactions on Mathematical Software,
Volume 23, Number 2, 1997, pages 266-294.

List of Routines:

• HALTON computes an element of a Halton sequence.
• HALTON_BASE computes an element of a Halton sequence with user bases.
• HALTON_INVERSE inverts an element of the Halton sequence.
• HALTON_SEQUENCE computes elements I1 through I2 of a Halton sequence.
• I4VEC_SUM sums the entries of an I4VEC.
• PRIME returns any of the first PRIME_MAX prime numbers.
• R8_MOD returns the remainder of R8 division.
• R8MAT_PRINT prints an R8MAT.
• R8MAT_PRINT_SOME prints some of an R8MAT.
• TIMESTAMP prints the current YMDHMS date as a time stamp.

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

Last revised on 12 August 2016.