Contents
ALGORITHMS
Site map
Links
Site and author
News
About the site
FAQ
Contact
TERMS OF USE
Contents - Matrix and vector operations - Operations on symmetric matrices - Determinant of a symmetric positive definite matrix

Determinant of a symmetric positive definite matrix

If the symmetric positive definite matrix A is represented by its Cholesky decomposition A = LL T or A = U TU, then the determinant of this matrix can be calculated as the product of squares of the diagonal elements of L or U.

As Cholesky decomposition is twice as fast as LU-decomposition which is used to calculate general matrix determinants, it is recommended to use Cholesky decomposition when calculating a determinant of a symmetric positive definite matrix. In order to calculate the determinant of a symmetric matrix which is not positive definite algorithm on the basis of LDLT-decomposition can be used.

Subroutine description

There are two subroutines in this module. The first subroutine, SPDMatrixCholeskyDet, calculates the determinant of a matrix whose Cholesky decomposition has already been generated. The second subroutine, SPDMatrixDet (Symmetric Positive Definite), works with symmetric matrices whose Cholesky decomposition hasn't been generated yet.

If the input matrix is not positive definite, then SPDMatrixDet subroutine cannot calculate the determinant, therefore the subroutine returns to a negative number. This error is easily recognized because the determinant of a positive definite matrix is a strictly positive number.

Report a bug

Source codes

C#

C# 1.0 source.
spddet.csharp.zip - Determinant of a symmetric positive definite matrix


C++

C++ source.
spddet.cpp.zip - Determinant of a symmetric positive definite matrix
ablas.zip - optimized basic linear algebra subroutines with SSE2 support (for C++ sources only)


C++, multiple precision arithmetic

C++ source. MPFR/GMP is used.
GMP source is available from gmplib.org. MPFR source is available from www.mpfr.org.
spddet.mpfr.zip - Determinant of a symmetric positive definite matrix
mpfr.zip - precompiled Win32 MPFR/GMP binaries


Delphi

Delphi source.
Can be compiled under FPC (in Delphi compatibility mode).
spddet.delphi.zip - Determinant of a symmetric positive definite matrix


Visual Basic 6

Visual Basic 6 source.
spddet.vb6.zip - Determinant of a symmetric positive definite matrix


Zonnon beta

Zonnon source.
Zonnon is an experimental language developed at ETH Zurich.
See www.zonnon.ethz.ch for more information.
spddet.zonnon.zip - Determinant of a symmetric positive definite matrix



 
 
Sergey Bochkanov, Vladimir Bystritsky
Copyright © 1999-2008