latinize
latinize,
a FORTRAN90 code which
adjusts an M dimensional dataset of N points
so that it forms a Latin hypercube.
On output, each row of the table will have the properties that:

the minimum and maximum row values are the same as on input;

the row contains N evenly spaced values between the
minimum and maximum.

in each row, the elements retain their ordering.
Licensing:
The computer code and data files described and made available on this web page
are distributed under
the GNU LGPL license.
Languages
latinize is available in
a C version and
a C++ version and
a Fortran90 version and
a MATLAB version and
an Octave version.
Related Data and Programs:
latin_cover,
a FORTRAN90 code which
produces N Latin squares which cover an NxN square,
or NxN Latin cubes which cover an NxNxN cube.
latinize_test
Reference:

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.

Yuki Saka, Max Gunzburger, John Burkardt,
Latinized, Improved LHS, and CVT Point Sets in Hypercubes,
International Journal of Numerical Analysis and Modeling,
Volume 4, Number 34, 2007, pages 729743,
Source Code:
Last revised on 24 July 2020.