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.CholeskySpace — TypeCholeskySpace{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.exp — Methodexp(M::CholeskySpace, p, X)Compute the exponential map on the CholeskySpace M emanating from the lower triangular matrix with positive diagonal p towards the lower triangular matrix X The formula reads
where $⌊\cdot⌋$ denotes the strictly lower triangular matrix, and $\operatorname{diag}$ extracts the diagonal matrix.
Base.log — Methodlog(M::CholeskySpace, X, p, q)Compute the logarithmic map on the CholeskySpace M for the geodesic emanating from the lower triangular matrix with positive diagonal p towards q. The formula reads
where $⌊\cdot⌋$ denotes the strictly lower triangular matrix, and $\operatorname{diag}$ extracts the diagonal matrix.
ManifoldsBase.check_manifold_point — Methodcheck_manifold_point(M::CholeskySpace, p; kwargs...)Check whether the matrix p lies on the CholeskySpace M, 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_vector — Methodcheck_tangent_vector(M::CholeskySpace, p, X; check_base_point = true, kwargs... )Check whether v is a tangent vector to p on the CholeskySpace M, 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.distance — Methoddistance(M::CholeskySpace, p, q)Compute the Riemannian distance on the CholeskySpace M between two matrices p, q that are lower triangular with positive diagonal. The formula reads
ManifoldsBase.inner — Methodinner(M::CholeskySpace, p, X, Y)Compute the inner product on the CholeskySpace M 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
ManifoldsBase.manifold_dimension — Methodmanifold_dimension(M::CholeskySpace)Return the manifold dimension for the CholeskySpace M, i.e.
ManifoldsBase.representation_size — Methodreporesentation_size(M::CholeskySpace)Return the representation size for the CholeskySpace{N} M, i.e. (N,N).
ManifoldsBase.vector_transport_to — Methodvector_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
where $⌊\cdot⌋$ denotes the strictly lower triangular matrix, and $\operatorname{diag}$ extracts the diagonal matrix.
ManifoldsBase.zero_tangent_vector — Methodzero_tangent_vector(M::CholeskySpace, p)Return the zero tangent vector on the CholeskySpace M at p.
Literature
- Lin2019
Lin, Zenhua: "Riemannian Geometry of Symmetric Positive Definite Matrices via Cholesky Decomposition", arXiv: 1908.09326.