Template Struct CartesianProductOperationVariantTpl

Inheritance Relationships

Base Type

  • public pinocchio::LieGroupBase< CartesianProductOperationVariantTpl< _Scalar, _Options, LieGroupCollectionTpl > > (Template Struct LieGroupBase)

Struct Documentation

template<typename _Scalar, int _Options, template<typename, int> class LieGroupCollectionTpl>
struct CartesianProductOperationVariantTpl : public pinocchio::LieGroupBase<CartesianProductOperationVariantTpl<_Scalar, _Options, LieGroupCollectionTpl>>

Dynamic Cartesian product composed of elementary Lie groups defined in LieGroupVariant.

Public Types

typedef LieGroupCollectionTpl<Scalar, Options> LieGroupCollection
typedef LieGroupCollection::LieGroupVariant LieGroupVariant
typedef LieGroupGenericTpl<LieGroupCollection> LieGroupGeneric

Public Functions

EIGEN_MAKE_ALIGNED_OPERATOR_NEW PINOCCHIO_LIE_GROUP_TPL_PUBLIC_INTERFACE(CartesianProductOperationVariantTpl)
inline CartesianProductOperationVariantTpl()

Default constructor.

inline explicit CartesianProductOperationVariantTpl(const LieGroupGeneric &lg)

Constructor with one single Lie group.

Parameters:

lg[in] Lie group variant to insert inside the Cartesian product

inline CartesianProductOperationVariantTpl(const LieGroupGeneric &lg1, const LieGroupGeneric &lg2)

Constructor with two Lie groups.

Parameters:
  • lg1[in] Lie group variant to insert inside the Cartesian product

  • lg2[in] Lie group variant to insert inside the Cartesian product

void append(const LieGroupGeneric &lg)

Append a Lie group to the Cartesian product.

Parameters:

lg[in] Lie group variant to insert inside the Cartesian product

template<typename LieGroupDerived>
inline void append(const LieGroupBase<LieGroupDerived> &lg)

Append a Lie group to the Cartesian product.

Parameters:

lg[in] Lie group to insert inside the Cartesian product

CartesianProductOperationVariantTpl operator*(const CartesianProductOperationVariantTpl &other) const

Cartesian product between *this and other.

Parameters:

other[in] CartesianProductOperation to compose with this

Returns:

A new Cartesian product betwenn *this and other.

CartesianProductOperationVariantTpl &operator*=(const CartesianProductOperationVariantTpl &other)

Append other to *this.

Parameters:

other[in] CartesianProductOperation to append to *this.

inline CartesianProductOperationVariantTpl &operator*=(const LieGroupGeneric &lg)

Append a Lie group to *this.

Parameters:

lg[in] LieGroupGeneric to append to *this.

template<typename LieGroupDerived>
inline CartesianProductOperationVariantTpl &operator*=(const LieGroupBase<LieGroupDerived> &lg)

Append a Lie group to *this.

Parameters:

lg[in] LieGroupGeneric to append to *this.

inline int nq() const
inline int nv() const
inline std::string name() const
inline ConfigVector_t neutral() const
template<class ConfigL_t, class ConfigR_t, class Tangent_t>
void difference_impl(const Eigen::MatrixBase<ConfigL_t> &q0, const Eigen::MatrixBase<ConfigR_t> &q1, const Eigen::MatrixBase<Tangent_t> &d) const
template<ArgumentPosition arg, class ConfigL_t, class ConfigR_t, class JacobianOut_t>
void dDifference_impl(const Eigen::MatrixBase<ConfigL_t> &q0, const Eigen::MatrixBase<ConfigR_t> &q1, const Eigen::MatrixBase<JacobianOut_t> &J) const
template<ArgumentPosition arg, class ConfigL_t, class ConfigR_t, class JacobianIn_t, class JacobianOut_t>
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
template<class ConfigIn_t, class Velocity_t, class ConfigOut_t>
void integrate_impl(const Eigen::MatrixBase<ConfigIn_t> &q, const Eigen::MatrixBase<Velocity_t> &v, const Eigen::MatrixBase<ConfigOut_t> &qout) const
template<class Config_t, class Jacobian_t>
void integrateCoeffWiseJacobian_impl(const Eigen::MatrixBase<Config_t> &q, const Eigen::MatrixBase<Jacobian_t> &J) const
template<class Config_t, class Tangent_t, class JacobianOut_t>
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
template<class Config_t, class Tangent_t, class JacobianOut_t>
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
template<class Config_t, class Tangent_t, class JacobianIn_t, class JacobianOut_t>
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
template<class Config_t, class Tangent_t, class JacobianIn_t, class JacobianOut_t>
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
template<class Config_t, class Tangent_t, class JacobianIn_t, class JacobianOut_t>
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
template<class Config_t, class Tangent_t, class JacobianOut_t>
void dIntegrateTransport_dq_impl(const Eigen::MatrixBase<Config_t> &q, const Eigen::MatrixBase<Tangent_t> &v, const Eigen::MatrixBase<JacobianOut_t> &J) const
template<class Config_t, class Tangent_t, class JacobianOut_t>
void dIntegrateTransport_dv_impl(const Eigen::MatrixBase<Config_t> &q, const Eigen::MatrixBase<Tangent_t> &v, const Eigen::MatrixBase<JacobianOut_t> &J) const
template<class ConfigL_t, class ConfigR_t>
Scalar squaredDistance_impl(const Eigen::MatrixBase<ConfigL_t> &q0, const Eigen::MatrixBase<ConfigR_t> &q1) const
template<class Config_t>
void normalize_impl(const Eigen::MatrixBase<Config_t> &qout) const
template<class Config_t>
bool isNormalized_impl(const Eigen::MatrixBase<Config_t> &qout, const Scalar &prec) const
template<class Config_t>
void random_impl(const Eigen::MatrixBase<Config_t> &qout) const
template<class ConfigL_t, class ConfigR_t, class ConfigOut_t>
void randomConfiguration_impl(const Eigen::MatrixBase<ConfigL_t> &lower, const Eigen::MatrixBase<ConfigR_t> &upper, const Eigen::MatrixBase<ConfigOut_t> &qout) const
template<class ConfigL_t, class ConfigR_t>
bool isSameConfiguration_impl(const Eigen::MatrixBase<ConfigL_t> &q0, const Eigen::MatrixBase<ConfigR_t> &q1, const Scalar &prec) const
bool isEqual_impl(const CartesianProductOperationVariantTpl &other) const
template<typename LieGroup1, typename LieGroup2>
bool isEqual(const CartesianProductOperation<LieGroup1, LieGroup2> &other) const

Protected Functions

PINOCCHIO_ALIGNED_STD_VECTOR (LieGroupGeneric) liegroups

Protected Attributes

Index m_nq
Index m_nv
std::vector<Index> lg_nqs
std::vector<Index> lg_nvs
std::string m_name
ConfigVector_t m_neutral