JuliaManifolds/ManifoldDiff.jl

What is `X` supposed to be in `riemannian_Hessian`?

Closed this issue · 1 comments

Here

function riemannian_Hessian!(M::AbstractManifold, Y, p, eG, eH, X)
I am not sure what the X needs to be initialized as?

On the manifold M at a point p, X is a tangent vector to p.
WE do not implement Hessians as a matrix (because that is hard to do when most representations are a bit larger than the manifold dimension), but We write Hessians as how they act on a incoming derivative direction. See also Definition 5.14 in https://www.nicolasboumal.net/book/IntroOptimManifolds_Boumal_2023.pdf (p. 95).
Of course Y is the in-place variant (also a tangent vector) for the result.

To mention the rest: eH is the Euclidean Hessian at (the embedding of) p in direction of (the embedding of) X, eG is the Euclidean Gradient at p (so another tangent vector).