The $n$-dimensional Hyperbolic space $\mathbb H^n$ embedded in $\mathbb R^{n+1}$
The hyperbolic space $\mathbb H^n$ posesses the following instances of the abstract types Manifold, MPoint, and TVector.
Manopt.HnPoint — Type.HnPoint <: MPointA point $x$ on the manifold $\mathbb H^n$ represented by a vector $x\in\mathbb R^{n+1}$ with Minkowski inner product
.
Manopt.HnTVector — Type.HnTVector <: TVectorA tangent vector $\xi \in T_x\mathbb H^n$ to a HnPoint $x$ on the $n$-dimensional Hyperbolic space $\mathbb H^n$. To be precise $\xi\in\mathbb R^{n+1}$ is hyperbocally orthogonal to $x\in\mathbb R^{n+1}$, i.e. orthogonal with respect to the Minkowski inner product
Manopt.Hyperbolic — Type.Hyperbolic <: ManifoldThe manifold $\mathbb H^n$ is the set
where $\langle\cdot,\cdot\rangle_{\mathrm{M}}$ denotes the MinkowskiDot is Minkowski inner product, and this inner product in the embedded space yields the Riemannian metric when restricted to the tangent bundle $T\mathbb H^n$.
This manifold is a matrix manifold (see IsMatrixM) and embedded (see IsEmbeddedM).
Abbreviation
Hn
Constructor
Hyperbolic(n)generates the n-dimensional hyperbolic manifold embedded in $\mathbb R^{n+1}$.
Functions
Base.exp — Method.exp(M,x,ξ,[t=1.0])computes the exponential map on the Hyperbolic space $\mathbb H^n$ with respect to the HnPoint x and the HnTVector ξ, which can be shortened with t to tξ. The formula reads
Base.log — Method.log(M,x,y)computes the logarithmic map on the Hyperbolic space $\mathbb H^n$, i.e., the HnTVector whose corresponding geodesic starting from HnPoint x reaches the HnPoint y after time 1 on the Hyperbolic space $\mathbb H^n$. The formula reads for $x\neq y$
and is zero otherwise.
LinearAlgebra.dot — Method.dot(M,x,ξ,ν)compute the Riemannian inner product for two HnTVectors ξ and ν from $T_x\mathcal M$ of the Hyperbolic space $\mathbb H^n$ given by $\langle \xi, \nu \rangle_{\mathrm{M}}$ the MinkowskiDot Minkowski inner product on $\mathbb R^{n+1}$.
LinearAlgebra.norm — Method.norm(M,x,ξ)Computes the norm of the HnTVector ξ in the tangent space $T_x\mathcal M$ at HnPoint x of the Hyperbolic space $\mathbb H^n$.
Manopt.MinkowskiDot — Method.MinkowskiDot(a,b)computes the Minkowski inner product of two Vectors a and b of same length n+1, i.e.
Manopt.distance — Method.distance(M,x,y)compute the Riemannian distance on the Hyperbolic space $\mathbb H^n$ embedded in $\mathbb R^{n+1}$ can be computed as
where $\langle x,y\rangle_{\mathrm{M}} = -x_{n+1}y_{n+1} + \displaystyle\sum_{k=1}^n x_ky_k$ denotes the MinkowskiDot Minkowski inner product on $\mathbb R^{n+1}$.
Manopt.manifoldDimension — Method.manifoldDimension(x)returns the dimension of the Hyperbolic space $\mathbb H^n$, the HnPoint x, itself embedded in $\mathbb R^{n+1}$, belongs to.
Manopt.manifoldDimension — Method.manifoldDimension(M)returns the dimension of the Hyperbolic space $\mathbb H^n$.
Manopt.parallelTransport — Method.parallelTransport(M,x,y,ξ)Compute the paralllel transport of the HnTVector ξ from the tangent space $T_x\mathcal M$ at HnPoint x to $T_y\mathcal M$ at HnPoint y on the Hyperbolic space $\mathbb H^n$ along the unique geodesic $g(\cdot;x,y)$. The formula reads
Manopt.project — Method.ξ = project(M,x,v)perform an orthogonal projection with respect to the Minkowski inner product, i.e. ξ is a tangent vector at the HnPoint x on Hyperbolic space M.
The formula reads
where $\langle \cdot, \cdot \rangle_{\mathrm{M}$ denotes the Minkowski inner product in the embedding, see MinkowskiDot.
Manopt.randomMPoint — Method.randomMPoint(M:Hyperbolic)generate a random point by creating a randn point in $\mathbb R^n$ and calculate the remaining point such that the MinkowskiDot is -1.
Manopt.randomTVector — Method.randomTVector(M)Manopt.typicalDistance — Method.typicalDistance(M)returns the typical distance on the Hyperbolic space M: $\sqrt{n}$.
Manopt.validateMPoint — Method.validateMPoint(M,x)validate, that the HnPoint x is a valid point on the Hyperbolic space M, i.e. that the dimension of $x\in\mathbb H^n$ is correct and that its MinkowskiDot inner product is $\langle x,x\rangle_{\mathrm{M}} = -1$.
Manopt.validateTVector — Method.validateTVector(M,x,ξ)check that the HnTVector ξ is a valid tangent vector in the tangent space of the HnPoint x on the Hyperbolic space M, i.e. x is a valid point on M, the vectors within ξ and x agree in length and the Minkowski inner product MinkowskiDot(x,ξ)is zero.
Manopt.zeroTVector — Method.ξ = zeroTVector(M,x)returns a zero vector in the tangent space $T_x\mathcal M$ of the HnPoint $x\in\mathbb H^n$ on the Hyperbolic space M.