spd_learn.functional.exp_map_olm#

spd_learn.functional.exp_map_olm(X: Tensor, max_iter: int = 15, tol: float = 1e-06) → Tensor[source]#

Off-Log Metric (OLM) exponential map [Hu et al., 2025].

Maps a hollow symmetric matrix \(X \in \text{Hol}(\mathcal{S}^n)\) to the correlation manifold \(\mathcal{C}_{++}^n\) by finding a diagonal scaling vector \(d\) such that \(\text{diag}(\exp(X + \text{diag}(d))) = I\).

The diagonal vector \(d\) is solved via fixed-point iteration, and gradients flow cleanly through \(X\) via matrix_exp() and cov_to_corr().

Parameters:
  • X (torch.Tensor) – Hollow symmetric tangent matrices of shape (…, n, n).

  • max_iter (int, default=15) – Maximum number of fixed-point iterations.

  • tol (float, default=1e-6) – Convergence tolerance on the maximum diagonal deviation.

Returns:

Correlation matrix with unit diagonal, shape (…, n, n).

Return type:

torch.Tensor