jburkardt

LATIN_RANDOM\ Latin Random Squares in M dimensions {#latin_random-latin-random-squares-in-m-dimensions align=”center”} ====================================


LATIN_RANDOM is a C++ library which makes Latin Random Squares.

A Latin square is a selection of one point from each row and column of a square matrix or table. In M dimensions, the corresponding item is a set of N points, where, in each dimension, there is exactly one point whose coordinates are in a given “column” or range of values. To emphasize the use of higher dimensions, these objects are sometimes called Latin hypersquares.

A Latin Random Square (I just made up this name) is a set of N points, where one point is taken at random from each of the subsquares of a Latin Square. These points may be regarded as an M dimensional quasirandom pointset.

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

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

BOX_BEHNKEN, a C++ library which computes a Box-Behnken design, that is, a set of arguments to sample the behavior of a function of multiple parameters;

CVT, a C++ library which computes points in a Centroidal Voronoi Tessellation.

FAURE, a C++ library which computes Faure sequences.

GRID, a C++ library which computes points on a grid.

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

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

HEX_GRID, a C++ library which computes sets of points in a 2D hexagonal grid.

IHS, a C++ library which computes improved Latin Hypercube datasets.

LATIN_CENTER, a C++ library which computes Latin square data choosing the center value.

LATIN_COVER, a C++ library which produces N Latin squares which cover an NxN square, or NxN Latin cubes which cover an NxNxN cube.

LATIN_EDGE, a C++ library which computes Latin square data choosing the edge value.

LATIN_RANDOM_DATASET, a C++ program which creates a Latin Random Hypercube dataset;

NIEDERREITER2, a C++ library which computes Niederreiter sequences with base 2.

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

SOBOL, a C++ library which computes Sobol sequences.

UNIFORM, a C++ library which computes uniform random values.

VAN_DER_CORPUT, a C++ library which computes van der Corput sequences.

Reference: {#reference align=”center”}

  1. Paul Bratley, Bennett Fox, Linus Schrage,\ A Guide to Simulation,\ Springer Verlag, pages 201-202, 1983.
  2. C J Colbourn, J H Dinitz,\ CRC Handbook of Combinatorial Design,\ CRC, 1996.
  3. Bennett Fox,\ Algorithm 647:\ Implementation and Relative Efficiency of Quasirandom Sequence Generators,\ ACM Transactions on Mathematical Software,\ Volume 12, Number 4, pages 362-376, 1986.
  4. M D McKay, W J Conover, R J Beckman,\ A Comparison of Three Methods for Selecting Values of Input Variables in the Analysis of Output From a Computer Code,\ Technometrics,\ Volume 21, pages 239-245, 1979.
  5. Albert Nijenhuis, Herbert Wilf,\ Combinatorial Algorithms,\ Academic Press, 1978, second edition,\ ISBN 0-12-519260-6.
  6. Herbert Ryser,\ Combinatorial Mathematics,\ Mathematical Association of America, 1963.

Source Code: {#source-code align=”center”}

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

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

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


Last revised on 12 November 2014.