Some manifolds can be exactly equivalent to their representation chosen by the user of this API. Some examples are the manifold of matrices, or vector spaces (tuple of real numbers).
This comes with the following drawback: It would be awkward to use a Manifold instance instead of the representation that is diffeomorphic to the manifold that we desire to describe. This is the case of Charts and parametrizations. The map from /to the manifold to/from Rn. The user might like to have Eigen::Vector as input/output of this maps.
We introduce Faithfull manifolds as those which are diffeomorphic to their representation type. They are introduces as a new template paramenter and use SNIFAE to defind cast and assigment operator as follows
Some manifolds can be exactly equivalent to their representation chosen by the user of this API. Some examples are the manifold of matrices, or vector spaces (tuple of real numbers).
This comes with the following drawback: It would be awkward to use a Manifold instance instead of the representation that is diffeomorphic to the manifold that we desire to describe. This is the case of Charts and parametrizations. The map from /to the manifold to/from Rn. The user might like to have
Eigen::Vector
as input/output of this maps.We introduce
Faithfull
manifolds as those which are diffeomorphic to their representation type. They are introduces as a new template paramenter and use SNIFAE to defind cast and assigment operator as follows