TABLE_LATINIZE
Force a Dataset to be a Latin Hypercube


TABLE_LATINIZE is a C++ program which allows the user to specify a file of data to be read in and adjusted to form a Latin hypercube.

The data in the file represents N points in M-dimensional space.

The algorithm is actually very simple. In each spatial dimension, the point coordinates are sorted, and then replaced by the appropriate values for a Latin hypercube. In particular, if there are four points, then in every coordinate, the four points will be assigned values of 1/8, 3/8, 5/8 and 7/8 (in some order). The hope is that if the initial dataset has some nice dispersion property, then the resulting adjusted dataset will inherit some of this dispersion as well; in particular, more dispersion than typically seen in an arbitrary Latin hypercube.

Usage:

table_latinize file(s)
reads the user's data file(s) and writes "latinized" versions which will have an extension of "latin.txt".

Licensing:

The computer code and data files described and made available on this web page are distributed under the GNU LGPL license.

Languages:

TABLE_LATINIZE is available in a C++ version and a FORTRAN90 version and a MATLAB version.

Related Data and Programs:

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;

LATINIZE, a C++ library which carries out the calculations needed by TABLE_LATINIZE.

TABLE, a file format which is used for the input and output of TABLE_LATINIZE.

TABLE_DELAUNAY, a C++ program which reads a file of 2d point coordinates and computes the Delaunay triangulation.

TABLE_IO, a C++ library which can read or write a TABLE file.

TABLE_QUALITY, a C++ program which can read a TABLE file and print out measures of the quality of dispersion of the points.

Reference:

  1. 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 3-4, 2007, pages 729-743,

Source Code:

Examples and Tests:

CVT_02_00010 is a set of 10 CVT points in 2D:

CVT_03_00007 is a set of 7 CVT points in 3D:

CVT_03_00056 is a set of 56 CVT points in 3D:

CVT_07_00100 is a set of 100 CVT points in 7D:

List of Routines:

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


Last revised on 23 September 2005.