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 <: MPoint
A 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 <: TVector
A 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 <: Manifold
The 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 HnTVector
s ξ
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
.