11template <
typename _Scalar,
int _Dim,
int _Options>
13 using Scalar = _Scalar;
14 enum { Dim = _Dim, Options = _Options };
21 template <
int N = Dim,
22 typename =
typename std::enable_if_t<N == Eigen::Dynamic>>
28 template <
int N = Dim,
29 typename =
typename std::enable_if_t<N != Eigen::Dynamic>>
32 inline int nx()
const {
return dim_; }
33 inline int ndx()
const {
return dim_; }
40 VectorRef out)
const {
44 void Jintegrate_impl(
const ConstVectorRef &,
const ConstVectorRef &,
45 MatrixRef Jout,
int)
const {
50 MatrixRef,
int)
const {}
55 VectorRef out)
const {
59 void Jdifference_impl(
const ConstVectorRef &,
const ConstVectorRef &,
60 MatrixRef Jout,
int arg)
const {
63 Jout = -MatrixXs::Identity(
ndx(),
ndx());
69 throw std::runtime_error(
"Wrong arg value.");
74 const Scalar &u, VectorRef out)
const {
75 out = u * x1 + (
static_cast<Scalar
>(1.) - u) * x0;
#define PROXSUITE_NLP_DYNAMIC_TYPEDEFS(Scalar)
void JintegrateTransport(const ConstVectorRef &, const ConstVectorRef &, MatrixRef, int) const
Perform the parallel transport operation.
int nx() const
Get manifold representation dimension.
void interpolate_impl(const ConstVectorRef &x0, const ConstVectorRef &x1, const Scalar &u, VectorRef out) const
Interpolation operation.
void difference_impl(const ConstVectorRef &x0, const ConstVectorRef &x1, VectorRef out) const
Implementation of the manifold retraction operation.
VectorSpaceTpl(const int dim)
Default constructor where the dimension is supplied.
int ndx() const
Get manifold tangent space dimension.
void integrate_impl(const ConstVectorRef &x, const ConstVectorRef &v, VectorRef out) const
Perform the manifold integration operation.
VectorSpaceTpl()
Default constructor without arguments.