LATINIZE
Force a Dataset to be a Latin Hypercube
LATINIZE is a library of C++ routines, using double precision
arithmetic, which adjust an M dimensional dataset of N points so that it
forms a Latin hypercube.
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.
Related Data and Programs:
LATIN_CENTER
is a C++ library of routines for Latin Square datasets
choosing the center of each square.
LATIN_EDGE
is a C++ library of routines for Latin Square datasets
choosing the edge of each square.
LATIN_RANDOM
is a C++ library of routines for Latin Square datasets
choosing a random point of each square.
LATINIZE is also available in
a FORTRAN90 version
and
a MATLAB version.
TABLE
is the format used to store the input and output files
used by the program.
TABLE_LATINIZE
is an interactive C++ program which allows the
name of the data file to be specified on the command line.
Reference:
-
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.
Source Code:
Examples:
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:
-
CH_CAP capitalizes a single character.
-
CH_EQI is true if two characters are equal, disregarding case.
-
CH_TO_DIGIT returns the integer value of a base 10 digit.
-
DTABLE_DATA_READ reads the real table data from a TABLE file.
-
DTABLE_DATA_WRITE writes real table data to a TABLE file.
-
DTABLE_HEADER_READ reads the header from a TABLE file.
-
DTABLE_HEADER_WRITE writes the header of a TABLE file.
-
DTABLE_LATINIZE "Latinizes" a real table dataset.
-
DTABLE_PRINT prints a double precision matrix, with an optional title.
-
DTABLE_PRINT_SOME prints some of a double precision matrix.
-
DTABLE_TRANSPOSE_PRINT prints a real matrix, transposed.
-
DTABLE_TRANSPOSE_PRINT_SOME prints some of a real matrix, transposed.
-
FILE_COLUMN_COUNT counts the number of columns in the first line of a file.
-
FILE_NAME_EXT_GET determines the "extension" of a file name.
-
FILE_NAME_EXT_SWAP replaces the current "extension" of a file name.
-
FILE_ROW_COUNT counts the number of row records in a file.
-
I4_MAX returns the maximum of two integers.
-
I4_MIN returns the smaller of two integers.
-
R8_EPSILON returns the round off unit for doubleing arithmetic.
-
R8VEC_SORT_HEAP_INDEX_A does an indexed heap ascending sort of a real vector.
-
S_INDEX_LAST_C returns a pointer to the last occurrence of a given character.
-
S_LEN_TRIM returns the length of a string to the last nonblank.
-
S_TO_R8 reads an R8 from a string.
-
S_TO_R8VEC reads an R8VEC from a string.
-
S_WORD_COUNT counts the number of "words" in a string.
-
TIMESTAMP prints the current YMDHMS date as a time stamp.
-
TIMESTRING returns the current YMDHMS date as a string.
You can go up one level to
the C++ source codes.
Last revised on 13 November 2006.