TABLE_DIAPHONY
the "Diaphony" (dispersion)
of an M-dimensional Pointset
TABLE_DIAPHONY is a FORTRAN90 program
which computes
the "diaphony" of an M-dimensional pointset.
The "diaphony" of an M-dimensional pointset is a numeric measure
of the uniformity of the dispersion of the points throughout
the unit hypercube.
The point sets we are interested in have been generated by a
variety of algorithms, and are stored as datasets, of
spatial dimension 2, 7 and 16, and sample sizes 10, 100,
1,000 and 10,000. The point set types include:
-
CVT (Centroidal Voronoi Tessellation) values,
-
Faure quasirandom values,
-
points on a uniform grid, with five centering options,
-
Halton quasirandom values,
-
Hammersley quasirandom values,
-
IHS (Improved Distributed Hypercube Sampling) values,
-
Latin Center Square values,
-
Latin Edge Square values,
-
Latin Random Square values,
-
LHS (Latin Hypercube Sampling) due to Vicente Romero,
-
Niederreiter quasirandom values (base 2),
-
Sobol quasirandom values,
-
uniform random values.
Regarded as a random variable itself, the diaphony of a set of N points
has an expected value of 1/sqrt(N).
For the Halton datasets in 2D, 7D and 16D, here is the table
of the number of points versus the diaphony:
| Diaphony(M,N) | M=2D | M=7D | M=16D |
1/Sqrt(N) |
| N=10 | 0.246 | 0.316 |
0.316 | 0.316 |
| N=100 | 0.043 | 0.099 |
0.099 | 0.100 |
| N=1000 | 0.006 | 0.031 |
0.031 | 0.031 |
| N=10000 | 0.001 | 0.009 |
0.009 | 0.001 |
Related Data and Programs:
The TABLE format
is used for the input to this program.
TABLE_BARPLOT_PPMA
is an executable program which reads a table file and creates a
PPMA bargraph of the data.
TABLE_BORDER
is an executable program which can be used to add a border
(of zero values) to a table file.
TABLE_COLUMNS
is an executable program which can extract specific columns of data
from a table file.
TABLE_COLUMNS_PERMUTE
is an executable FORTRAN90 program which permutes the columns of a
table file.
TABLE_DELAUNAY computes the Delaunay triangulation of a set
of points.
TABLE_DIAPHONY computes the diaphony of a set of points
stored in a table file.
TABLE_HISTOGRAM can make a histogram of a set of points
stored in a table file.
The TABLE_IO library
supplies the routines used to read the TABLE file.
TABLE_LATINIZE is a FORTRAN90 program that reads a file of
points and creates a "latinized" version by adjusting the data.
TABLE_MERGE is a FORTRAN90 program that reads a file of
points, and removes duplicates, and points that are close to each other.
TABLE_ORTHONORMALIZE is a FORTRAN90 program that reads a file of
points and orthonormalizes the columns.
TABLE_QUALITY is a FORTRAN90 program that reads a file of
points and computes the quality of dispersion.
TABLE_READ is a MATLAB script that can read in a TABLE file.
TABLE_RECORD_MATCH is an executable
program that can be used to find close records in a table file.
TABLE_SCALE is an executable
program that can be used to multiply the entries of a table file
by a scale vector.
TABLE_SHIFT is an executable
program that can be used to shift the entries of a table file
by a shift vector.
TABLE_STATS is an executable
program that can read a table file and compute certain statistics.
TABLE_TET_MESH
is an executable
program that can read a table file of 3D data, and compute a
tetrahedral mesh.
TABLE_TOP
is an executable FORTRAN90
program that can read a table file of M-dimensional data and
make a table of plots of all pairs of coordinates.
TABLE_UNBORDER is an executable
program that can be used to remove the border from a table file.
TABLE_UNIFORM_NOISE is an executable
program that can be used to add a uniform noise term to the data
in a table file.
TABLE_VORONOI can be used to compute information about
the Voronoi diagram of the points.
Reference:
-
Peter Heelekalek,
On Correlation Analysis of Pseudorandom Numbers,
in Monte Carlo and Quasi-Monte Carlo Methods 1996,
edited by Harald Niederreiter, Peter Hellekalek,
Gerhard Larcher, and Peter Zinterhof,
Volume 127 of Lecture Notes in Statistics,
Springer Verlag, 1997, pages 251-265.
-
Peter Heelekalek, Harald Niederreiter,
The Weighted Spectral Test: Diaphony,
ACM Transactions on Modeling and Computer Simulation,
Volume 8, Number 1, January 1998, pages 43-60.
-
Peter Heelekalek, Hannes Leeb,
Dyadic Diaphony,
Acta Arithmetica,
Volume 80, Number 2, 1997, pages 187-196.
Source Code:
Examples and Tests:
-
diaphony_cvt.csh,
commands to compute the diaphony of the CVT datasets.
-
diaphony_faure.csh,
commands to compute the diaphony of the FAURE datasets.
-
diaphony_grid_1.csh,
commands to compute the diaphony of the GRID 1 datasets.
-
diaphony_grid_2.csh,
commands to compute the diaphony of the GRID 2 datasets.
-
diaphony_grid_3.csh,
commands to compute the diaphony of the GRID 3 datasets.
-
diaphony_grid_4.csh,
commands to compute the diaphony of the GRID 4 datasets.
-
diaphony_grid_5.csh,
commands to compute the diaphony of the GRID 5 datasets.
-
diaphony_halton.csh,
commands to compute the diaphony of the HALTON datasets.
-
diaphony_hammersley.csh,
commands to compute the diaphony of the HAMMERSLEY datasets.
-
diaphony_ihs.csh,
commands to compute the diaphony of the IHS datasets.
-
diaphony_latin_center.csh,
commands to compute the diaphony of the LATIN CENTER datasets.
-
diaphony_latin_edge.csh,
commands to compute the diaphony of the LATIN EDGE datasets.
-
diaphony_latin_random.csh,
commands to compute the diaphony of the LATIN RANDOM datasets.
-
diaphony_lhs.csh,
commands to compute the diaphony of the LHS datasets.
-
diaphony_niederreiter2.csh,
commands to compute the diaphony of the NIEDERREITER2 datasets.
-
diaphony_sobol.csh,
commands to compute the diaphony of the SOBOL datasets.
-
diaphony_uniform.csh,
commands to compute the diaphony of the UNIFORM datasets.
List of Routines:
-
MAIN is the main program for TABLE_DIAPHONY.
-
DIAPHONY evaluates the diaphony of a N-dimensional point set.
-
F evaluates the function used to calculate the diaphony.
-
FILE_COLUMN_COUNT counts the number of columns in the first line of a file.
-
FILE_LINE_COUNT counts the number of lines in a file.
-
GET_FILE_NAME gets the input file name.
-
GET_UNIT returns a free FORTRAN unit number.
-
R8_MODP returns the nonnegative remainder of real division.
-
READ_INPUT_FILE reads the data from the input file.
-
S_WORD_COUNT counts the number of "words" in a string.
-
TIMESTAMP prints the current YMDHMS date as a time stamp.
You can go up one level to
the FORTRAN90 source codes.
Last revised on 27 November 2006.