Specific manifold functions

This small section extends the functions available from ManifoldsBase.jl and Manifolds.jl, especially a few random generators, that are simpler than the available functions.

ManifoldsBase.mid_pointMethod
mid_point(M, p, q, x)
mid_point!(M, y, p, q, x)

Compute the mid point between p and q. If there is more than one mid point of (not neccessarily minimizing) geodesics (e.g. on the sphere), the one nearest to x is returned (in place of y).

source
Manopt.max_stepsizeMethod
max_stepsize(M::TangentBundle, p)

Tangent bundle has injectivity radius of either infinity (for flat manifolds) or 0 (for non-flat manifolds). This makes a guess of what a reasonable maximum stepsize on a tangent bundle might be.

source
Manopt.reflectMethod
reflect(M, p, x)
reflect!(M, q, p, x)

reflect the point x from the manifold M at point p, i.e.

$$$\operatorname{refl}_p(x) = \exp_p(-\log_p x).$$$

where exp and log denote the exponential and logarithmic map on M. This can also be done in place of q.

source
Manopt.reflectMethod
reflect(M, f, x)
reflect!(M, q, f, x)

reflect the point x from the manifold M at the point f(x) of the function $f: \mathcal M → \mathcal M$, i.e.,

$$$\operatorname{refl}_f(x) = \operatorname{refl}_{f(x)}(x),$$$

Compute the result in q.

see also reflect(M,p,x).

source