ASA053
Wishart Variate Generator
ASA053
is a MATLAB library which
returns samples from the Wishart distribution.
As far as I can tell, there are two mistakes in the printed text
of the algorithm; one involves incorrectly determining the number
of degrees of freedom for the ChiSquared distribution; the
other omits an absolute value sign when inverting the WilsonHilferty
formula, so that square roots of negative values are occasionally
requested. These mistakes have been corrected here.
Source code for many Applied Statistics Algorithms is available through
STATLIB.
Licensing:
The computer code and data files made available on this
web page are distributed under
the GNU LGPL license.
Languages:
ASA053 is available in
a C version and
a C++ version and
a FORTRAN90 version and
a MATLAB version and
a Python version.
Related Data and Programs:
asa053_test
WISHART,
a MATLAB library which
produces sample matrices from the Wishart or Bartlett distributions,
useful for sampling random covariance matrices.
Reference:

Stanley Sawyer,
Wishart Distributions and InverseWishart Sampling,
Washington University,
30 April 2007, 12 pages.

William Smith, Ronald Hocking,
Algorithm AS 53, Wishart Variate Generator,
Applied Statistics,
Volume 21, Number 3, pages 341345, 1972.
Original Source Code:

asa053_original.f,
the original text of the source code. Note that the
line "DF = N  I + 1" is believed (by me) to be incorrect,
and is replaced in the present version by "DF = NP  I + 1".
Source Code:

r8_uniform_01.m,
returns a pseudorandom R8 scaled to [0,1].

r8mat_print.m,
prints an R8MAT.

r8mat_print_some.m,
prints some of an R8MAT.

r8pp_print.m,
prints an R8PP matrix.

r8pp_print_some.m,
prints some of an R8PP matrix.

r8utp_print.m,
prints an R8UTP matrix.

r8utp_print_some.m,
prints some of an R8UTP matrix.

rnorm.m,
returns two independent standard random normal deviates.

timestamp.m,
prints the YMDHMS date as a timestamp.

wshrt.m,
returns sample deviates from the Wishart distribution.
Last revised on 13 November 2018.