Cholesky space

The Cholesky space is a Riemannian manifold on the lower triangular matrices. Its metric is based on the cholesky decomposition. The CholeskySpace is used to define the LogCholeskyMetric on the manifold of SymmetricPositiveDefinite matrices.

Manifolds.CholeskySpaceType
CholeskySpace{N} <: Manifold{ℝ}

The manifold of lower triangular matrices with positive diagonal and a metric based on the cholesky decomposition. The formulae for this manifold are for example summarized in Table 1 of [Lin2019].

Constructor

CholeskySpace(n)

Generate the manifold of $n× n$ lower triangular matrices with positive diagonal.

Base.expMethod
exp(M::CholeskySpace, p, X)

Compute the exponential map on the CholeskySpaceM emanating from the lower triangular matrix with positive diagonal p towards the lower triangular matrix X The formula reads

\[\exp_p X = ⌊ p ⌋ + ⌊ X ⌋ + \operatorname{diag}(p) \operatorname{diag}(p)\exp\bigl( \operatorname{diag}(X)\operatorname{diag}(p)^{-1}\bigr),\]

where $⌊\cdot⌋$ denotes the strictly lower triangular matrix, and $\operatorname{diag}$ extracts the diagonal matrix.

Base.logMethod
log(M::CholeskySpace, X, p, q)

Compute the logarithmic map on the CholeskySpaceM for the geodesic emanating from the lower triangular matrix with positive diagonal p towards q. The formula reads

\[\log_p q = ⌊ p ⌋ - ⌊ q ⌋ + \operatorname{diag}(p)\log\bigl(\operatorname{diag}(q)\operatorname{diag}(p)^{-1}\bigr),\]

where $⌊\cdot⌋$ denotes the strictly lower triangular matrix, and $\operatorname{diag}$ extracts the diagonal matrix.

ManifoldsBase.check_manifold_pointMethod
check_manifold_point(M::CholeskySpace, p; kwargs...)

Check whether the matrix p lies on the CholeskySpaceM, i.e. it's size fits the manifold, it is a lower triangular matrix and has positive entries on the diagonal. The tolerance for the tests can be set using the kwargs....

ManifoldsBase.check_tangent_vectorMethod
check_tangent_vector(M::CholeskySpace, p, X; check_base_point = true, kwargs... )

Check whether v is a tangent vector to p on the CholeskySpaceM, i.e. after check_manifold_point(M,p), X has to have the same dimension as x and a symmetric matrix. The optional parameter check_base_point indicates whether to call check_manifold_point for p. The tolerance for the tests can be set using the kwargs....

ManifoldsBase.distanceMethod
distance(M::CholeskySpace, p, q)

Compute the Riemannian distance on the CholeskySpaceM between two matrices p, q that are lower triangular with positive diagonal. The formula reads

\[d_{\mathcal M}(p,q) = \sqrt{\sum_{i>j} (p_{ij}-q_{ij})^2 + \sum_{j=1}^m (\log p_{jj} - \log q_{jj})^2 }\]

ManifoldsBase.innerMethod
inner(M::CholeskySpace, p, X, Y)

Compute the inner product on the CholeskySpaceM at the lower triangular matric with positive diagonal p and the two tangent vectors X,Y, i.e they are both lower triangular matrices with arbitrary diagonal. The formula reads

\[g_p(X,Y) = \sum_{i>j} X_{ij}Y_{ij} + \sum_{j=1}^m X_{ii}Y_{ii}p_{ii}^{-2}\]

ManifoldsBase.vector_transport_toMethod
vector_transport_to(M::CholeskySpace, p, X, q, ::ParallelTransport)

Parallely transport the tangent vector X at p along the geodesic to q on the CholeskySpace manifold M. The formula reads

\[\mathcal P_{q←p}(X) = ⌊ X ⌋ + \operatorname{diag}(q)\operatorname{diag}(p)^{-1}\operatorname{diag}(X),\]

where $⌊\cdot⌋$ denotes the strictly lower triangular matrix, and $\operatorname{diag}$ extracts the diagonal matrix.

Literature

  • Lin2019

    Lin, Zenhua: "Riemannian Geometry of Symmetric Positive Definite Matrices via Cholesky Decomposition", arXiv: 1908.09326.