Thanks for providing the code, despite the fact that my Product
, ProdMPoint
and ProdTVector
are called a little differently (and log and exp are actually called log and exp in Manopt.jl), our implementations might be similar. For the power space, I also allow arbitrary n-dimensional arrays, not just vectors, but that’s also not that much of a difference (most functions can even be written with the same comprehension).
I however defined the geodesic on a general manifold just using exp (to not implement it again and again and again), so you only haver to override that if you have geodesics but no nice exp. And I haven’t yet worked on an approach to work ambient.
For your optimization approach, I also tried to modularise that, having a Stepsize type, stopping criterion type (functors actually) to abstract from those, see for example my steepestDescent.
for the discussion on a common framework I started a thread here Towards a common Manifold Framework / Package – also for the metric you’re right it might be better to really have two manifolds though they most probably share the same points/tangent vector representations – but still one could work on a common type for those and just have a different manifold-type for each metric.