# latin_random

latin_random, a Python code 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.

### Languages:

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

halton, a Python code which computes elements of a Halton Quasi Monte Carlo (QMC) sequence, using a simple interface.

hammersley, a python code which computes elements of a hammersley quasi monte carlo (qmc) sequence, using a simple interface.

uniform, a python code which computes elements of a uniform pseudorandom sequence.

van_der_corput, a python code which computes elements of a 1d van der corput quasi monte carlo (qmc) sequence using a simple interface.

### Reference:

1. Paul Bratley, Bennett Fox, Linus Schrage,
A Guide to Simulation,
Springer Verlag, pages 201-202, 1983.
2. C J Colbourn and 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. Michael McKay, William Conover, Richard 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,