12template <
typename _Scalar,
int _Dim>
15 static constexpr int Dim = _Dim;
25 Dim == Eigen::Dynamic,
26 "This constructor is only valid if the dimension is dynamic.");
29 int dim()
const {
return this->
nx_; }
35 template <
int N =
Dim,
36 typename =
typename std::enable_if_t<N != Eigen::Dynamic>>
41 template <
int OtherDim>
44 static_assert((
Dim == OtherDim) || (
Dim == Eigen::Dynamic));
53 VectorRef out)
const {
58 MatrixRef Jout,
int)
const {
63 MatrixRef,
int)
const {}
68 VectorRef out)
const {
73 MatrixRef Jout,
int arg)
const {
76 Jout.setIdentity() *= -1;
87 const Scalar &u, VectorRef out)
const {
88 out = u * x1 + (
static_cast<Scalar>(1.) - u) * x0;
#define ALIGATOR_DOMAIN_ERROR(...)
ManifoldAbstractTpl(int nx, int ndx)
void interpolate_impl(const ConstVectorRef &x0, const ConstVectorRef &x1, const Scalar &u, VectorRef out) const
Interpolation operation.
VectorSpaceTpl(const int dim)
Default constructor where the dimension is supplied.
VectorSpaceTpl()
Default constructor without arguments.
ALIGATOR_DYNAMIC_TYPEDEFS(Scalar)
void Jdifference_impl(const ConstVectorRef &, const ConstVectorRef &, MatrixRef Jout, int arg) const
void integrate_impl(const ConstVectorRef &x, const ConstVectorRef &v, VectorRef out) const
Perform the manifold integration operation.
void JintegrateTransport_impl(const ConstVectorRef &, const ConstVectorRef &, MatrixRef, int) const
ManifoldAbstractTpl< Scalar > Base
VectorSpaceTpl(const VectorSpaceTpl< Scalar, OtherDim > &other)
Build from VectorSpaceTpl of different dimension.
void difference_impl(const ConstVectorRef &x0, const ConstVectorRef &x1, VectorRef out) const
Implementation of the manifold retraction operation.
void Jintegrate_impl(const ConstVectorRef &, const ConstVectorRef &, MatrixRef Jout, int) const