Go to the documentation of this file.
5 #ifndef __pinocchio_cartesian_product_variant_hpp__
6 #define __pinocchio_cartesian_product_variant_hpp__
19 template<
typename,
int>
class LieGroupCollectionTpl = LieGroupCollectionDefaultTpl>
27 template<
typename _Scalar,
int _Options,
template<
typename,
int>
class LieGroupCollectionTpl>
42 template<
typename _Scalar,
int _Options,
template<
typename,
int>
class LieGroupCollectionTpl>
43 struct CartesianProductOperationVariantTpl
44 :
public LieGroupBase<
45 CartesianProductOperationVariantTpl<_Scalar, _Options, LieGroupCollectionTpl>>
47 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
107 template<
typename LieGroupDerived>
148 template<
typename LieGroupDerived>
152 append<LieGroupDerived>(lg);
175 template<
class ConfigL_t,
class ConfigR_t,
class Tangent_t>
177 const Eigen::MatrixBase<ConfigL_t> &
q0,
178 const Eigen::MatrixBase<ConfigR_t> &
q1,
179 const Eigen::MatrixBase<Tangent_t> &
d)
const;
181 template<ArgumentPosition arg,
class ConfigL_t,
class ConfigR_t,
class JacobianOut_t>
183 const Eigen::MatrixBase<ConfigL_t> &
q0,
184 const Eigen::MatrixBase<ConfigR_t> &
q1,
185 const Eigen::MatrixBase<JacobianOut_t> &
J)
const;
194 const ConfigL_t &
q0,
195 const ConfigR_t &
q1,
196 const JacobianIn_t & Jin,
197 JacobianOut_t & Jout,
198 bool dDifferenceOnTheLeft,
201 template<
class ConfigIn_t,
class Velocity_t,
class ConfigOut_t>
203 const Eigen::MatrixBase<ConfigIn_t> &
q,
204 const Eigen::MatrixBase<Velocity_t> &
v,
205 const Eigen::MatrixBase<ConfigOut_t> &
qout)
const;
207 template<
class Config_t,
class Jacobian_t>
209 const Eigen::MatrixBase<Config_t> &
q,
const Eigen::MatrixBase<Jacobian_t> &
J)
const;
211 template<
class Config_t,
class Tangent_t,
class JacobianOut_t>
213 const Eigen::MatrixBase<Config_t> &
q,
214 const Eigen::MatrixBase<Tangent_t> &
v,
215 const Eigen::MatrixBase<JacobianOut_t> &
J,
218 template<
class Config_t,
class Tangent_t,
class JacobianOut_t>
220 const Eigen::MatrixBase<Config_t> &
q,
221 const Eigen::MatrixBase<Tangent_t> &
v,
222 const Eigen::MatrixBase<JacobianOut_t> &
J,
225 template<
class Config_t,
class Tangent_t,
class JacobianIn_t,
class JacobianOut_t>
229 const JacobianIn_t & Jin,
230 JacobianOut_t & Jout,
231 bool dIntegrateOnTheLeft,
235 template<
class Config_t,
class Tangent_t,
class JacobianIn_t,
class JacobianOut_t>
237 const Eigen::MatrixBase<Config_t> &
q,
238 const Eigen::MatrixBase<Tangent_t> &
v,
239 const Eigen::MatrixBase<JacobianIn_t> & J_in,
240 const Eigen::MatrixBase<JacobianOut_t> & J_out)
const;
242 template<
class Config_t,
class Tangent_t,
class JacobianIn_t,
class JacobianOut_t>
244 const Eigen::MatrixBase<Config_t> &
q,
245 const Eigen::MatrixBase<Tangent_t> &
v,
246 const Eigen::MatrixBase<JacobianIn_t> & J_in,
247 const Eigen::MatrixBase<JacobianOut_t> & J_out)
const;
249 template<
class Config_t,
class Tangent_t,
class JacobianOut_t>
251 const Eigen::MatrixBase<Config_t> &
q,
252 const Eigen::MatrixBase<Tangent_t> &
v,
253 const Eigen::MatrixBase<JacobianOut_t> &
J)
const;
255 template<
class Config_t,
class Tangent_t,
class JacobianOut_t>
257 const Eigen::MatrixBase<Config_t> &
q,
258 const Eigen::MatrixBase<Tangent_t> &
v,
259 const Eigen::MatrixBase<JacobianOut_t> &
J)
const;
261 template<
class ConfigL_t,
class ConfigR_t>
263 const Eigen::MatrixBase<ConfigL_t> &
q0,
const Eigen::MatrixBase<ConfigR_t> &
q1)
const;
265 template<
class Config_t>
268 template<
class Config_t>
271 template<
class Config_t>
274 template<
class ConfigL_t,
class ConfigR_t,
class ConfigOut_t>
276 const Eigen::MatrixBase<ConfigL_t> & lower,
277 const Eigen::MatrixBase<ConfigR_t> & upper,
278 const Eigen::MatrixBase<ConfigOut_t> &
qout)
const;
280 template<
class ConfigL_t,
class ConfigR_t>
282 const Eigen::MatrixBase<ConfigL_t> &
q0,
283 const Eigen::MatrixBase<ConfigR_t> &
q1,
284 const Scalar & prec)
const;
288 template<
typename LieGroup1,
typename LieGroup2>
302 #include <pinocchio/multibody/liegroup/cartesian-product-variant.hxx>
304 #endif // ifndef __pinocchio_cartesian_product_variant_hpp__
void append(const LieGroupGeneric &lg)
Append a Lie group to the Cartesian product.
EIGEN_MAKE_ALIGNED_OPERATOR_NEW PINOCCHIO_LIE_GROUP_TPL_PUBLIC_INTERFACE(CartesianProductOperationVariantTpl)
bool isEqual_impl(const CartesianProductOperationVariantTpl &other) const
void random_impl(const Eigen::MatrixBase< Config_t > &qout) const
void integrate_impl(const Eigen::MatrixBase< ConfigIn_t > &q, const Eigen::MatrixBase< Velocity_t > &v, const Eigen::MatrixBase< ConfigOut_t > &qout) const
void dDifference_impl(const Eigen::MatrixBase< ConfigL_t > &q0, const Eigen::MatrixBase< ConfigR_t > &q1, const Eigen::MatrixBase< JacobianOut_t > &J) const
CartesianProductOperationVariantTpl operator*(const CartesianProductOperationVariantTpl &other) const
Cartesian product between *this and other.
std::vector< Index > lg_nqs
Dynamic Cartesian product composed of elementary Lie groups defined in LieGroupVariant.
CartesianProductOperationVariantTpl & operator*=(const LieGroupBase< LieGroupDerived > &lg)
Append a Lie group to *this.
ArgumentPosition
Argument position. Used as template parameter to refer to an argument.
CartesianProductOperationVariantTpl & operator*=(const CartesianProductOperationVariantTpl &other)
Append other to *this.
void dIntegrate_dv_impl(const Eigen::MatrixBase< Config_t > &q, const Eigen::MatrixBase< Tangent_t > &v, const Eigen::MatrixBase< JacobianOut_t > &J, const AssignmentOperatorType op=SETTO) const
void dIntegrateTransport_dv_impl(const Eigen::MatrixBase< Config_t > &q, const Eigen::MatrixBase< Tangent_t > &v, const Eigen::MatrixBase< JacobianIn_t > &J_in, const Eigen::MatrixBase< JacobianOut_t > &J_out) const
PINOCCHIO_COMPILER_DIAGNOSTIC_POP typedef std::size_t Index
bool isEqual(const CartesianProductOperation< LieGroup1, LieGroup2 > &other) const
void dDifference_product_impl(const ConfigL_t &q0, const ConfigR_t &q1, const JacobianIn_t &Jin, JacobianOut_t &Jout, bool dDifferenceOnTheLeft, const AssignmentOperatorType op) const
CartesianProductOperationVariantTpl()
Default constructor.
void append(const LieGroupBase< LieGroupDerived > &lg)
Append a Lie group to the Cartesian product.
void randomConfiguration_impl(const Eigen::MatrixBase< ConfigL_t > &lower, const Eigen::MatrixBase< ConfigR_t > &upper, const Eigen::MatrixBase< ConfigOut_t > &qout) const
void normalize_impl(const Eigen::MatrixBase< Config_t > &qout) const
JointCollectionTpl const Eigen::MatrixBase< ConfigVectorIn1 > & q0
PINOCCHIO_ALIGNED_STD_VECTOR(LieGroupGeneric) liegroups
void integrateCoeffWiseJacobian_impl(const Eigen::MatrixBase< Config_t > &q, const Eigen::MatrixBase< Jacobian_t > &J) const
std::vector< Index > lg_nvs
ConfigVector_t neutral() const
CartesianProductOperationVariantTpl(const LieGroupGeneric &lg1, const LieGroupGeneric &lg2)
Constructor with two Lie groups.
JointCollectionTpl const Eigen::MatrixBase< ConfigVectorType > & q
CartesianProductOperationVariantTpl(const LieGroupGeneric &lg)
Constructor with one single Lie group.
JointCollectionTpl const Eigen::MatrixBase< ConfigVectorType > const Eigen::MatrixBase< TangentVectorType > & v
CartesianProductOperationVariantTpl & operator*=(const LieGroupGeneric &lg)
Append a Lie group to *this.
Scalar squaredDistance_impl(const Eigen::MatrixBase< ConfigL_t > &q0, const Eigen::MatrixBase< ConfigR_t > &q1) const
bool isSameConfiguration_impl(const Eigen::MatrixBase< ConfigL_t > &q0, const Eigen::MatrixBase< ConfigR_t > &q1, const Scalar &prec) const
void difference_impl(const Eigen::MatrixBase< ConfigL_t > &q0, const Eigen::MatrixBase< ConfigR_t > &q1, const Eigen::MatrixBase< Tangent_t > &d) const
CartesianProductOperationVariantTpl< context::Scalar, context::Options, LieGroupCollectionDefaultTpl > CartesianProductOperationVariant
LieGroupGenericTpl< LieGroupCollection > LieGroupGeneric
JointCollectionTpl const Eigen::MatrixBase< ConfigVectorIn1 > const Eigen::MatrixBase< ConfigVectorIn2 > & q1
void dIntegrate_dq_impl(const Eigen::MatrixBase< Config_t > &q, const Eigen::MatrixBase< Tangent_t > &v, const Eigen::MatrixBase< JacobianOut_t > &J, const AssignmentOperatorType op=SETTO) const
void dIntegrateTransport_dq_impl(const Eigen::MatrixBase< Config_t > &q, const Eigen::MatrixBase< Tangent_t > &v, const Eigen::MatrixBase< JacobianIn_t > &J_in, const Eigen::MatrixBase< JacobianOut_t > &J_out) const
Common traits structure to fully define base classes for CRTP.
void dIntegrate_product_impl(const Config_t &q, const Tangent_t &v, const JacobianIn_t &Jin, JacobianOut_t &Jout, bool dIntegrateOnTheLeft, const ArgumentPosition arg, const AssignmentOperatorType op) const
LieGroupCollection::LieGroupVariant LieGroupVariant
PINOCCHIO_SCALAR_TYPE Scalar
LieGroupCollectionTpl< Scalar, Options > LieGroupCollection
bool isNormalized_impl(const Eigen::MatrixBase< Config_t > &qout, const Scalar &prec) const
Main pinocchio namespace.
pinocchio
Author(s):
autogenerated on Sun Dec 22 2024 03:41:06