Notation#

This page defines the mathematical notation used throughout SPD Learn documentation and source code. Consistent notation follows the conventions established in Congedo et al. [2017] and related literature.

Spaces and Manifolds#

Symbol

Description

Example

\(\mathcal{S}^n_{++}\)

SPD manifold: \(n \times n\) symmetric positive definite matrices

[Congedo et al., 2017]

\(\text{Sym}(n)\)

Space of \(n \times n\) symmetric matrices

Tangent space at identity

\(\mathcal{S}^n\)

Space of symmetric matrices (same as \(\text{Sym}(n)\))

Log-Euclidean codomain

\(\mathbb{R}^{n \times n}\)

Space of \(n \times n\) real matrices

General matrix space

\(\mathbb{R}^n\)

\(n\)-dimensional Euclidean space

Vector space

\(\mathcal{M}\)

Generic Riemannian manifold

Abstract manifold notation

\(\mathcal{L}_+\)

Cholesky space: lower-triangular matrices with positive diagonal

Log-Cholesky metric

Groups#

Symbol

Description

Usage

\(GL(n)\)

General linear group: invertible \(n \times n\) matrices

Affine invariance

\(\text{St}(n, k)\)

Stiefel manifold: \(n \times k\) matrices with orthonormal columns

BiMap weights

Tangent Spaces#

Symbol

Description

Convention

\(T_P \mathcal{M}\)

Tangent space at point \(P\) on manifold \(\mathcal{M}\)

Uppercase \(P\)

\(T_P \mathcal{S}^n_{++}\)

Tangent space at \(P\) on SPD manifold

\(\cong \text{Sym}(n)\)

Note

We use uppercase letters (e.g., \(P\), \(Q\)) for points on the SPD manifold to distinguish them from lowercase scalars or indices. This convention is consistent with Pennec et al. [2006].

The tangent space \(T_P \mathcal{S}^n_{++}\) is isomorphic to \(\text{Sym}(n)\), denoted by \(\cong\) (not \(\equiv\)).

Maps and Operations#

Exponential and Logarithmic Maps#

Symbol

Description

Domain → Codomain

\(\text{Exp}_P\)

Riemannian exponential map at \(P\)

\(T_P\mathcal{M} \to \mathcal{M}\)

\(\text{Log}_P\)

Riemannian logarithmic map at \(P\)

\(\mathcal{M} \to T_P\mathcal{M}\)

\(\exp(S)\)

Matrix exponential

\(\text{Sym}(n) \to \mathcal{S}^n_{++}\)

\(\log(X)\)

Matrix logarithm

\(\mathcal{S}^n_{++} \to \text{Sym}(n)\)

Cholesky Operations#

Symbol

Description

Notes

\(\log_{\text{chol}}\)

Log-Cholesky logarithm

Applies log to diagonal

\(\exp_{\text{chol}}\)

Log-Cholesky exponential

Applies exp to diagonal

\(\text{tril}(L, k)\)

Lower-triangular part with offset \(k\)

\(k=-1\) excludes diagonal

Riemannian Metrics#

Inner Products#

Symbol

Definition

Metric

\(g^{\text{AIRM}}_P(v, w)\)

\(\langle P^{-1/2} v P^{-1/2}, P^{-1/2} w P^{-1/2} \rangle_F\)

Affine-Invariant

\(g^{\text{LEM}}_P(v, w)\)

\(\langle D_P \log(v), D_P \log(w) \rangle_F\)

Log-Euclidean

\(g^{\text{BW}}_P(V, W)\)

\(\text{tr}(\mathcal{L}_P[V] W)\)

Bures-Wasserstein

\(g^{\text{LCM}}_P(v, w)\)

See Geometric Concepts

Log-Cholesky

Distance Functions#

Symbol

Formula

Metric

\(d_{\text{AIRM}}(A, B)\)

\(\| \log(A^{-1/2} B A^{-1/2}) \|_F\)

Affine-Invariant

\(d_{\text{LEM}}(A, B)\)

\(\| \log(A) - \log(B) \|_F\)

Log-Euclidean

\(d_{\text{BW}}(A, B)\)

\(\sqrt{\text{tr}(A) + \text{tr}(B) - 2\text{tr}((A^{1/2} B A^{1/2})^{1/2})}\)

Bures-Wasserstein

\(d_{\text{LCM}}(A, B)\)

\(\| \text{logchol}(L_A) - \text{logchol}(L_B) \|_F\)

Log-Cholesky

Special Symbols#

Symbol

Meaning

LaTeX

\(I\) or \(I_n\)

Identity matrix (of size \(n \times n\))

I or I_n

\(\cong\)

Isomorphic to

\cong

\(\langle \cdot, \cdot \rangle_F\)

Frobenius inner product

\langle \cdot, \cdot \rangle_F

\(\| \cdot \|_F\)

Frobenius norm

\| \cdot \|_F

\(\text{tr}(\cdot)\)

Matrix trace

\text{tr}(\cdot)

\(\text{diag}(\cdot)\)

Diagonal matrix or diagonal elements

\text{diag}(\cdot)

\(\odot\)

Log-Euclidean multiplication

\odot

\(\circledast\)

Log-Euclidean scalar multiplication

\circledast

\(d(\cdot, \cdot)\)

Generic distance function on the manifold

d(\cdot, \cdot)

\(G(P_1, \ldots, P_k)\)

Geometric (Riemannian) mean of SPD matrices

G(P_1, \ldots, P_k)

Log-Euclidean Group Operations#

The Log-Euclidean framework defines group operations on SPD matrices:

\[A \odot B = \exp(\log(A) + \log(B))\]
\[t \circledast A = \exp(t \cdot \log(A)) = A^t\]

Layer Notation#

Symbol

Operation

Module

\(\text{ReEig}(X)\)

\(U \max(\Lambda, \varepsilon) U^\top\)

ReEig

\(\text{LogEig}(X)\)

\(U \log(\Lambda) U^\top\)

LogEig

\(\text{ExpEig}(X)\)

\(U \exp(\Lambda) U^\top\)

ExpEig

\(\mathcal{G}\)

Fréchet mean (batch normalization)

SPDBatchNormMeanVar

Common Variables#

Symbol

Description

Type

\(X, A, B, P, Q\)

SPD matrices

\(\in \mathcal{S}^n_{++}\)

\(S, V, W\)

Symmetric matrices (tangent vectors)

\(\in \text{Sym}(n)\)

\(U\)

Orthogonal matrix (eigenvectors)

\(U^\top U = I\)

\(\Lambda\)

Diagonal matrix (eigenvalues)

\(\lambda_i > 0\)

\(L\)

Lower-triangular Cholesky factor

\(\in \mathcal{L}_+\)

\(W\)

Stiefel matrix (BiMap weights)

\(\in \text{St}(n, k)\)

\(n\)

Matrix dimension

Positive integer

\(t\)

Geodesic parameter

\(t \in [0, 1]\)

Documentation Macros#

SPD Learn provides LaTeX-style macros for consistent notation in documentation. These macros work in both HTML (via MathJax) and PDF (via LaTeX) output.

Usage in RST files:

The SPD manifold :math:`\spd` equipped with the AIRM metric...

The distance :math:`\dairm{A}{B}` between matrices...

The tangent space :math:`\tangent{P}` at point :math:`P`...

Available Macros:

Macro

Renders As

Description

\spd

\(\mathcal{S}^n_{++}\)

SPD manifold

\sym

\(\text{Sym}(n)\)

Symmetric matrices

\manifold

\(\mathcal{M}\)

Generic manifold

\choleskyspace

\(\mathcal{L}_+\)

Cholesky space

\tangent{P}

\(T_P \mathcal{M}\)

Tangent space at P

\tangentspd{P}

\(T_P \mathcal{S}^n_{++}\)

Tangent space on SPD at P

\Exp{P}

\(\text{Exp}_P\)

Riemannian exponential at P

\Log{P}

\(\text{Log}_P\)

Riemannian logarithm at P

\dairm{A}{B}

\(d_{\text{AIRM}}(A, B)\)

AIRM distance

\dlem{A}{B}

\(d_{\text{LEM}}(A, B)\)

Log-Euclidean distance

\dbw{A}{B}

\(d_{\text{BW}}(A, B)\)

Bures-Wasserstein distance

\dlcm{A}{B}

\(d_{\text{LCM}}(A, B)\)

Log-Cholesky distance

\gairm{P}

\(g^{\text{AIRM}}_P\)

AIRM inner product at P

\frob{X}

\(\| X \|_F\)

Frobenius norm

\frobinner{X}{Y}

\(\langle X, Y \rangle_F\)

Frobenius inner product

\tr

\(\text{tr}\)

Trace operator

\diag

\(\text{diag}\)

Diagonal operator

\reeig

\(\text{ReEig}\)

ReEig layer

\logeig

\(\text{LogEig}\)

LogEig layer

\frechet

\(\mathcal{G}\)

Fréchet mean

\geomean

\(G\)

Geometric mean

\I or \In

\(I\) or \(I_n\)

Identity matrix

\transpose

\(^\top\)

Transpose symbol

Note

Macros are defined in docs/source/conf.py under mathjax3_config (for HTML) and latex_elements["preamble"] (for PDF). When adding new notation, update both locations and this reference table.

References#

[1] (1,2)

Marco Congedo, Alexandre Barachant, and Rajendra Bhatia. Riemannian geometry for eeg-based brain-computer interfaces; a primer and a review. Brain-Computer Interfaces, 4(3):155–174, 2017. doi:10.1080/2326263X.2017.1297192.

[2]

Xavier Pennec, Pierre Fillard, and Nicholas Ayache. A riemannian framework for tensor computing. International Journal of Computer Vision, 66(1):41–66, 2006. doi:10.1007/s11263-005-3222-z.

See also