ManifoldsBase.jl

Build Statuscodecov.io

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.