asa007, a C++ code which computes the inverse of a symmetric positive definite (SPD) matrix, by Michael Healy.

The code is Applied Statistics Algorithm 7.

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.


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


asa007 is available in a C version and a C++ version and a FORTRAN90 version and a MATLAB version

Related Data and Programs:

ASA006, a C++ code which computes the Cholesky factorization of a symmetric positive definite matrix. A version of this routine is used by ASA007.


ASA047, a C++ code which implements the Nelder-Mead minimization algorithm, and uses a version of ASA007 for the computation.

LAPACK_EXAMPLES, a FORTRAN77 program which demonstrates the use of the LAPACK linear algebra library.

LINPACK_D, a C++ code which includes routines to compute the inverse of symmetric positive matrix using double precision real arithmetic.


Michael Healy


  1. Michael Healy,
    Algorithm AS 7: Inversion of a Positive Semi-Definite Symmetric Matrix,
    Applied Statistics,
    Volume 17, Number 2, 1968, pages 198-199.

Source Code:

Last revised on 24 January 2020.