PDS Geodesic Distance

Geodesic distance between two positive definite symmetrics matrices based on Bhatia (2007) [1]. This metrics is the affine-invariant Riemannian distance between two positive definite symmetric matrices.

[1] Bhatia, R. (2007). Positive Definite Matrices. Princeton: Princeton University Press. https://doi.org/10.1515/9781400827787

Parameters:

Name Type Description Default
pds_0 ndarray

Positive definite symmetric matrix.

required
pds_1 ndarray

Positive definite symmetric matrix.

required

Returns:

Type Description
float

Distance between the two matrices.

Source code in magyc/utils/utils.py
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
def pds_geodesic_distance(pds_0: np.ndarray, pds_1: np.ndarray) -> float:
    """
    Geodesic distance between two positive definite symmetrics matrices based on Bhatia (2007) [1]. This metrics is the
    affine-invariant Riemannian distance between two positive definite symmetric matrices.

    [1] Bhatia, R. (2007). Positive Definite Matrices. Princeton: Princeton University Press.
    https://doi.org/10.1515/9781400827787

    Args:
        pds_0 (np.ndarray): Positive definite symmetric matrix.
        pds_1 (np.ndarray): Positive definite symmetric matrix.

    Returns:
        Distance between the two matrices.
    """
    return np.linalg.norm(logm(pds_0) - logm(pds_1), 'fro')