Ease of notation

The following terms introduce a nicer notation for some operations, for example using the ∈ operator, $p ∈ \mathcal M$, to determine whether $p$ is a point on the AbstractManifold $\mathcal M$.

Base.inFunction
Base.in(p, M::AbstractManifold; kwargs...)
p ∈ M

Check, whether a point p is a valid point (i.e. in) a AbstractManifold M. This method employs is_point deaticating the error throwing option.

source
Base.in(p, TpM::TangentSpaceAtPoint; kwargs...)
X ∈ TangentSpaceAtPoint(M,p)

Check whether X is a tangent vector from (in) the tangent space $T_p\mathcal M$, i.e. the TangentSpaceAtPoint at p on the AbstractManifold M. This method uses is_vector deactivating the error throw option.

source

Public documentation

The following functions are of interest for extending and using the ProductManifold.

Manifolds.submanifold_componentFunction
submanifold_component(M::AbstractManifold, p, i::Integer)
submanifold_component(M::AbstractManifold, p, ::Val(i)) where {i}
submanifold_component(p, i::Integer)
submanifold_component(p, ::Val(i)) where {i}

Project the product array p on M to its ith component. A new array is returned.

source
Manifolds.submanifold_componentsFunction
submanifold_components(M::AbstractManifold, p)
submanifold_components(p)

Get the projected components of p on the submanifolds of M. The components are returned in a Tuple.

source
Manifolds.ProductReprType
ProductRepr(parts)

A more general but slower representation of points and tangent vectors on a product manifold.

Example:

A product point on a product manifold Sphere(2) × Euclidean(2) might be created as

ProductRepr([1.0, 0.0, 0.0], [2.0, 3.0])

where [1.0, 0.0, 0.0] is the part corresponding to the sphere factor and [2.0, 3.0] is the part corresponding to the euclidean manifold.

source

Specific exception types

For some manifolds it is useful to keep an extra index, at which point on the manifold, the error occurred as well as to collect all errors that occurred on a manifold. This page contains the manifold-specific error messages this package introduces.