$ \DeclareMathOperator{\arccosh}{arccosh} \DeclareMathOperator*{\argmin}{arg\,min} \DeclareMathOperator{\Exp}{Exp} \newcommand{\geo}[2]{\gamma_{\overset{\frown}{#1,#2}}} \newcommand{\geoS}{\gamma} \newcommand{\geoD}[2]{\gamma_} \newcommand{\geoL}[2]{\gamma(#2; #1)} \newcommand{\gradM}{\nabla_{\M}} \newcommand{\gradMComp}[1]{\nabla_{\M,#1}} \newcommand{\Grid}{\mathcal G} \DeclareMathOperator{\Log}{Log} \newcommand{\M}{\mathcal M} \newcommand{\N}{\mathcal N} \newcommand{\mat}[1]{\mathbf{#1}} \DeclareMathOperator{\prox}{prox} \newcommand{\PT}[3]{\mathrm{PT}_{#1\to#2}#3} \newcommand{\R}{\mathbb R} \newcommand{\SPD}[1]{\mathcal{P}(#1)} \DeclareMathOperator{\Tr}{Tr} \newcommand{\tT}{\mathrm{T}} \newcommand{\vect}[1]{\mathbf{#1}} $

Riemannian manifolds

The abstract idea of a Riemannian manifold represented as an object with all main functions implemented is one of the core concepts of this toolbox, all further algorithms for example are based on.

To start, you might want to look at the abstract manifold class, for the remaining implementations, this documentation also lists the implemented formulae. For further introductions to Riemannian manifolds or optimization thereon we refer for example to the text books [1,2,3].


The Hyperbolic Space $\mathbb H^n$

The Riemannian manifold called the hyperbolic space can be isometrically embedded into using the Minkowski inner product.

The Euclidean Space $\mathbb R^n$

This class is merely a class for checks on real valued data, which is of course just a special case of manifold-valued data.

The Sphere $\mathbb S^1$

The Sphere can be parametrized by an angle from . While it is also possible to use an embedding into , see the sphere , the amount of data to store is smaller for this special case.

The Space $(\mathbb S^1)^m\mathbb R^n$ of combined Cyclic and Vector Space Data

This class is a product manifold of a number of spheres and the Euclidean vector space .

The Sphere $\mathbb S^n$

The Sphere can be isometrically embedded into . Geodesics are always great arcs. Take two points , i.e. both are unit vectors . Assume first, they are not antipodal. Then the plane given by the origin, and is unique and we obtain two ways to get from to in this plane; both are great arcs and the shorter one is the shortest path on from to . This situation in the plane is equivalent to looking at the within this plane.

The symmetric positive definite $\SPD{n}$ matrices of size $n\times n$

The manifold consists of all matrices such that for all vectors the inequality


The manifold class

The Matlab class manifold represents a manifold in general and handles directly also everything as a product manifold using the vector and matrix features of Matlab.

All manifolds inherit from manifold, such that both the algorithms and several functions within the manifold are based on the following basic properties a child class should implement.



  1. Absil, P-A, Mahony, R and Sepulchre, R (2008). Optimization Algorithms on Matrix Manifolds. Princeton University Press, Princeton and Oxford
  2. do Carmo, M P (1992). Riemannian Geometry. Birkhäuser, Basel Tranlated by F. Flatherty.
  3. Jost, J (2017). Riemannian Geometry and Geometric Analysis. Springer, Cham