# Using Cholesky decomposition to compute covariance matrix determinant

I am reading through this paper to try and code the model myself. The specifics of the paper don't matter, however in the authors matlab code I noticed they use a Cholesky decomposition instead of computing the determinant of a covariance matrix directly.

Specifically, the author has

$$\log\det(\Sigma) = 2 \sum_i \log [ diag(L)_i ]$$

where $$L$$ is the lower triangular matrix produced by a Cholesky decomposition of the covariance $$\Sigma$$.

I tested this out myself using various covariance matrices and found the relation above always works to within 14 decimal places (it's probably just a machine precision issue). I believe the author uses a cholesky decomposition because it is slightly faster to compute than computing the determinant directly (at least when I timed it on my machine).

My question is, why does this relation hold true? I couldn't find any references in the paper / code, or any material online.

• What does "computing the determinant directly" mean in this context? If you are using a library, the routine to compute determinants might well be using something like Gaussian elimination or Cholesky decomposition, or whatever, and not summing over all permutations or expanding by minors. – kimchi lover Mar 22 at 15:41
• $\Sigma=LL^T$ so you take det, use eigenvalues, then log and it follows immediately. – Michal Adamaszek Mar 22 at 15:52