Torus

The torus $๐•‹^d โ‰… [-ฯ€,ฯ€)^d$ is modeled as an AbstractPowerManifold of the (real-valued) Circle and uses ArrayPowerRepresentation. Points on the torus are hence row vectors, $x โˆˆ โ„^{d}$.

Example

The following code can be used to make a three-dimensional torus $๐•‹^3$ and compute a tangent vector:

using Manifolds
M = Torus(3)
p = [0.5, 0.0, 0.0]
q = [0.0, 0.5, 1.0]
X = log(M, p, q)
3-element Vector{Float64}:
 -0.5
  0.5
  1.0

Types and functions

Most functions are directly implemented for an AbstractPowerManifold with ArrayPowerRepresentation except the following special cases:

ManifoldsBase.check_vector โ€” Method
check_vector(M::Torus{n}, p, X; kwargs...)

Checks whether X is a valid tangent vector to p on the Torus M. This means, that p is valid, that X is of correct dimension and elementwise a tangent vector to the elements of p on the Circle.

source