diaphony, a MATLAB code 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=2DM=7DM=16D 1/Sqrt(N)
N=100.2460.316 0.3160.316
N=1000.0430.099 0.0990.100
N=10000.0060.031 0.0310.031
N=100000.0010.009 0.0090.010


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


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

Related Data and Programs:



  1. 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.
  2. 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.
  3. Peter Heelekalek, Hannes Leeb,
    Dyadic Diaphony,
    Acta Arithmetica,
    Volume 80, Number 2, 1997, pages 187-196.

Source Code:

Last revised on 06 January 2019.