ManifoldsBase.jl
Basic interface for manifolds in Julia.
The project Manifolds.jl
is based on this interface and provides a variety of manifolds.
DefaultManifold
This interface includes a simple DefaultManifold
, which is a reduced version
of the Euclidean
manifold from Manifolds.jl
,
such that the interface functions can be tested.
ArrayManifold
The ArrayManifold
further illustrates how one can also used types to
represent points on a manifold, tangent vectors, and cotangent vectors,
where values are encapsulated in a certain type.
In general, ArrayManifold
might be used for manifolds where these three types are represented
by more complicated data structures or when it is necessary to distinguish these
by type.
This adds a semantic layer to the interface, and the default implementation of
ArrayManifold
adds checks to all inputs and outputs of typed data.