asa006


asa006, a Fortran77 code which computes the Cholesky factor of a positive definite symmetric matrix, by Michael Healy.

This is a version of Applied Statistics Algorithm 6.

If A is a positive definite symmetric matrix, then there is an upper triangular matrix U with the property that

A = U' * U
The matrix U is known as the Cholesky factor of A, and can be used to easily solve linear systems involving A or compute the inverse of A.

The algorithm implemented here uses a compressed storage for both the matrix A and the factor U. This saves some storage, but can make computations a little awkward.

Licensing:

The information on this web page is distributed under the MIT license.

Languages:

asa006 is available in a C version and a C++ version and a Fortran90 version and a MATLAB version and an Octave version and a Python version.

Related Data and Programs:

asa006_test

asa007, a Fortran77 library which computes the inverse of a symmetric positive definite matrix, and uses a version of ASA006 for for Cholesky factorization.

asa047, a Fortran77 library which implements the Nelder-Mead minimization algorithm, and uses a version of ASA006 for Cholesky factorization.

nl2sol, a Fortran77 library which solves nonlinear least squares problems, and includes routines for Cholesky factorization.

pppack, a Fortran77 library which carries out piecewise polynomial interpolation and includes routines for Cholesky factorization.

Author:

Original Fortran77 version by Michael Healy; This version by John Burkardt.

Reference:

  1. PR Freeman,
    Remark AS R44: A Remark on AS 6 and AS7: Triangular decomposition of a symmetric matrix and Inversion of a positive semi-definite symmetric matrix,
    Applied Statistics,
    Volume 31, Number 3, 1982, pages 336-339.
  2. Michael Healy,
    Algorithm AS 6: Triangular decomposition of a symmetric matrix,
    Applied Statistics,
    Volume 17, Number 2, 1968, pages 195-197.

Source Code:


Last revised on 01 February 2008.