LATIN_RANDOM_DATASET
Generate Latin Random Square Datasets
LATIN_RANDOM_DATASET
is a C library which
creates a Latin Random Square dataset.
A Latin square, in M dimensional space, with N points,
can be thought of as being constructed by dividing each of the
M coordinate dimensions into N equal intervals.
The Ith coordinates of the N subsquares are defined
by assigning each possible value exactly once to one subsquare.
Such a set is called a Latin Square.
If we now select at random one point from each subsquare,
we have what we will term a "Latin Random Square".
Usage:
latin_random_dataset m n seed
where

m is the spatial dimension;

n is the number of points to generate;

seed is the initial seed value.
The data is written to the file latin_random_m_n.txt.
Licensing:
The computer code and data files described and made available on this web page
are distributed under
the GNU LGPL license.
Languages:
LATIN_RANDOM_DATASET is available in
a C version and
a C++ version and
a FORTRAN77 version and
a FORTRAN90 version and
a MATLAB version.
Related Data and Programs:
LATIN_RANDOM,
a C library which
computes a Latin Hypercube in M dimensions of N points, randomly
placed within their subsquares.
Reference:

Paul Bratley, Bennett Fox, Linus Schrage,
A Guide to Simulation,
Springer Verlag, pages 201202, 1983.

CJ Colbourn, JH Dinitz,
CRC Handbook of Combinatorial Design,
CRC, 1996.

Bennett Fox,
Algorithm 647:
Implementation and Relative Efficiency of Quasirandom
Sequence Generators,
ACM Transactions on Mathematical Software,
Volume 12, Number 4, pages 362376, 1986.

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 239245, 1979.

Albert Nijenhuis, Herbert Wilf,
Combinatorial Algorithms,
Academic Press, 1978, second edition,
ISBN 0125192606.

Herbert Ryser,
Combinatorial Mathematics,
Mathematical Association of America, 1963.
Source Code:
Examples and Data:
List of Routines:

MAIN is the main program for LATIN_RANDOM_DATASET.

I4_UNIFORM_AB returns a scaled pseudorandom I4 between A and B.

LATIN_RANDOM_NEW returns points in a Latin Random square.

PERM_UNIFORM_NEW selects a random permutation of N objects.

R8MAT_UNIFORM_01_NEW returns a unit pseudorandom R8MAT.

R8MAT_WRITE writes an R8MAT file.

TIMESTAMP prints the current YMDHMS date as a time stamp.
You can go up one level to
the C source codes.
Last revised on 13 November 2014.