DIAPHONY
the "Diaphony" (dispersion)
of an M-dimensional Pointset
DIAPHONY
is a C++ 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.
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.010 |
Licensing:
The computer code and data files described and made available on this web page
are distributed under
the GNU LGPL license.
Languages:
DIAPHONY 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:
STAR_DISCREPANCY,
a C++ program which
reads a TABLE file of points (presumed to lie in the
unit hypercube) and computes bounds on the star discrepancy,
a measure of dispersion, by Eric Thiemard.
TABLE_LATINIZE,
a C++ program which
reads a file of
points and creates a "latinized" version by adjusting the data.
TABLE_QUALITY,
a C++ program which
reads a file of
points and computes the quality of dispersion.
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:
List of Routines:
-
MAIN is the main program for DIAPHONY.
-
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.
-
DIAPHONY_COMPUTE evaluates the diaphony of a N-dimensional point set.
-
FILE_COLUMN_COUNT counts the columns in the first line of a file.
-
FILE_ROW_COUNT counts the number of row records in a file.
-
I4_POWER returns the value of I^J.
-
R8_ABS returns the absolute value of an R8.
-
R8_MODP returns the nonnegative remainder of R8 division.
-
R8MAT_DATA_READ reads the data from an R8MAT file.
-
R8MAT_HEADER_READ reads the header from an R8MAT file.
-
R8MAT_MAX returns the maximum entry of an R8MAT.
-
R8MAT_MIN returns the minimum entry of an R8MAT.
-
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.
You can go up one level to
the C++ source codes.
Last revised on 25 January 2012.