spd_learn.functional.transport_logeuclid#

spd_learn.functional.transport_logeuclid(X, A, B)[source]#

Parallel transport for log-Euclidean metric.

The parallel transport of matrices \(\mathbf{X}\) in tangent space from an initial SPD/HPD matrix \(\mathbf{A}\) to a final SPD/HPD matrix \(\mathbf{B}\) for log-Euclidean metric is given in Table 4 of [1]:

\[\mathbf{X}_\text{new} = [D_{\log \mathbf{B}} \exp] \left( [D_{\mathbf{A}} \log]\left(\mathbf{X}\right) \right)\]

Warning: this function must be applied to matrices \(\mathbf{X}\) already projected in tangent space with a logarithmic map at \(\mathbf{A}\), not to SPD/HPD matrices in manifold.

Parameters:
  • X (ndarray, shape (..., n, n)) – Symmetric/Hermitian matrices in tangent space at A.

  • A (ndarray, shape (n, n)) – Initial SPD/HPD matrix.

  • B (ndarray, shape (n, n)) – Final SPD/HPD matrix.

Returns:

X_new – Matrices in tangent space transported from A to B.

Return type:

ndarray, shape (…, n, n)

Notes

Added in version 0.10.

Changed in version 0.11: Correct formula.

Changed in version 0.12: Add support for NumPy and PyTorch.

See also

transport

References

[1]

O(n)-invariant Riemannian metrics on SPD matrices Y. Thanwerdas & X. Pennec. Linear Algebra and its Applications, 2023.