Source code for pyacs.lib.glinalg.cov_to_invcov
"""Return inverse of a covariance matrix."""
from scipy import linalg
[docs]
def cov_to_invcov(M):
"""Return the inverse of a covariance matrix.
Parameters
----------
M : numpy.ndarray
2D covariance matrix (symmetric positive definite).
Returns
-------
numpy.ndarray
Inverse covariance matrix.
"""
Q = linalg.lapack.dpotri(linalg.lapack.dpotrf(M)[0])[0]
Q = Q + Q.T
n = len(Q)
Q[range(n), range(n)] = Q[range(n), range(n)] / 2
return Q