Continuing the discussion from [ANN] Manopt.jl I would like to collect Ideas and approaches towards a common package that should be the base for “Things on manifolds”: Solving optimization problems (disclaimer, I am developing that in Manopt.jl), PDEs/ODEs on manifolds/integration and such. Basically any Julia package that might need tools from manifolds.
In my opinion a manifold should consist of 3, maybe four types: a manifold, a point on a manifold and a tangent vector. That way one could easily do
exponential maps via multiple dispatch. Since for a manifold like the symmetric positive definite matrices, the Riemannian metric might be changed (leading to different geodesics and hence different exp/log…) one might also consider a type for the metric or include that into the manifold type.
Finally it should be lightweight and for example conversions from vectors/matrices to the (power) Euclidean manifold should be done with
What one could also provide in general are “meta” manifolds like
TangentBundle or the just mentioned power manifold or a product manifold.
What are other ideas/approaches to manifolds a common framework/package should incorporate? Which functions should be implemented on a manifold (epx/log/distance…?)