Template Class Symmetric3Tpl

Nested Relationships

Nested Types

Inheritance Relationships

Base Type

Class Documentation

template<typename _Scalar, int _Options>
class Symmetric3Tpl : public pinocchio::NumericalBase<Symmetric3Tpl<_Scalar, _Options>>

Public Types

Values:

enumerator Options
typedef _Scalar Scalar
typedef Eigen::Matrix<Scalar, 3, 1, Options> Vector3
typedef Eigen::Matrix<Scalar, 6, 1, Options> Vector6
typedef Eigen::Matrix<Scalar, 3, 3, Options> Matrix3
typedef Eigen::Matrix<Scalar, 2, 2, Options> Matrix2
typedef Eigen::Matrix<Scalar, 3, 2, Options> Matrix32

Public Functions

inline Symmetric3Tpl()
template<typename Sc, int Opt>
inline explicit Symmetric3Tpl(const Eigen::Matrix<Sc, 3, 3, Opt> &I)
inline explicit Symmetric3Tpl(const Vector6 &I)
inline Symmetric3Tpl(const Symmetric3Tpl &other)
template<typename S2, int O2>
inline explicit Symmetric3Tpl(const Symmetric3Tpl<S2, O2> &other)
inline Symmetric3Tpl &operator=(const Symmetric3Tpl &clone)

Copy assignment operator.

Parameters:

other[in] Symmetric3 to copy

inline Symmetric3Tpl(const Scalar &a0, const Scalar &a1, const Scalar &a2, const Scalar &a3, const Scalar &a4, const Scalar &a5)
inline void setZero()
inline void setRandom()
inline void setIdentity()
template<typename Vector3Like>
inline void setDiagonal(const Eigen::MatrixBase<Vector3Like> &diag)
inline bool operator==(const Symmetric3Tpl &other) const
inline bool operator!=(const Symmetric3Tpl &other) const
inline bool isApprox(const Symmetric3Tpl &other, const Scalar &prec = Eigen::NumTraits<Scalar>::dummy_precision()) const
inline bool isZero(const Scalar &prec = Eigen::NumTraits<Scalar>::dummy_precision()) const
inline void fill(const Scalar value)
template<typename Matrix3Like>
inline void inverse(const Eigen::MatrixBase<Matrix3Like> &res_) const
inline Matrix3 inverse() const
inline Symmetric3Tpl operator-(const SkewSquare &v) const
inline Symmetric3Tpl &operator-=(const SkewSquare &v)
inline Symmetric3Tpl operator-(const AlphaSkewSquare &v) const
inline Symmetric3Tpl &operator-=(const AlphaSkewSquare &v)
inline const Vector6 &data() const
inline Vector6 &data()
inline Matrix3 matrix() const
inline operator Matrix3() const
inline Scalar vtiv(const Vector3 &v) const
template<typename Vector3>
inline Matrix3 vxs(const Eigen::MatrixBase<Vector3> &v) const

Performs the operation [v]×S. This operation is equivalent to applying the cross product of v on each column of S.

Template Parameters:

Vector3

Parameters:

v[in] a vector of dimension 3.

Returns:

the result [v]×S.

template<typename Vector3>
inline Matrix3 svx(const Eigen::MatrixBase<Vector3> &v) const

Performs the operation M=S3[v]×.

Template Parameters:

Vector3

Parameters:

v[in] a vector of dimension 3.

Returns:

the result S[v]×.

inline Symmetric3Tpl operator+(const Symmetric3Tpl &s2) const
inline Symmetric3Tpl operator-(const Symmetric3Tpl &s2) const
inline Symmetric3Tpl &operator+=(const Symmetric3Tpl &s2)
inline Symmetric3Tpl &operator-=(const Symmetric3Tpl &s2)
inline Symmetric3Tpl &operator*=(const Scalar s)
template<typename V3>
inline Vector3 operator*(const Eigen::MatrixBase<V3> &v) const
inline const Scalar &operator()(const int i, const int j) const
template<typename Matrix3Like>
inline Symmetric3Tpl operator-(const Eigen::MatrixBase<Matrix3Like> &S) const
template<typename Matrix3Like>
inline Symmetric3Tpl operator+(const Eigen::MatrixBase<Matrix3Like> &S) const
inline Matrix32 decomposeltI() const

Computes L for a symmetric matrix A.

template<typename D>
inline Symmetric3Tpl rotate(const Eigen::MatrixBase<D> &R) const
template<typename NewScalar>
inline Symmetric3Tpl<NewScalar, Options> cast() const
Returns:

An expression of *this with the Scalar type casted to NewScalar.

Public Static Functions

static inline Symmetric3Tpl Zero()
static inline Symmetric3Tpl Random()
static inline Symmetric3Tpl Identity()
static inline Symmetric3Tpl RandomPositive()
template<typename Vector3, typename Matrix3>
static inline void vxs(const Eigen::MatrixBase<Vector3> &v, const Symmetric3Tpl &S3, const Eigen::MatrixBase<Matrix3> &M)

Performs the operation M=[v]×S3. This operation is equivalent to applying the cross product of v on each column of S.

Template Parameters:

Vector3, Matrix3

Parameters:
  • v[in] a vector of dimension 3.

  • S3[in] a symmetric matrix of dimension 3x3.

  • M[out] an output matrix of dimension 3x3.

template<typename Vector3, typename Matrix3>
static inline void svx(const Eigen::MatrixBase<Vector3> &v, const Symmetric3Tpl &S3, const Eigen::MatrixBase<Matrix3> &M)

Performs the operation M=S3[v]×.

Template Parameters:

Vector3, Matrix3

Parameters:
  • v[in] a vector of dimension 3.

  • S3[in] a symmetric matrix of dimension 3x3.

  • M[out] an output matrix of dimension 3x3.

template<typename V3in, typename V3out>
static inline void rhsMult(const Symmetric3Tpl &S3, const Eigen::MatrixBase<V3in> &vin, const Eigen::MatrixBase<V3out> &vout)

Protected Attributes

Vector6 m_data

Friends

inline friend AlphaSkewSquare operator*(const Scalar &m, const SkewSquare &sk)
inline friend std::ostream &operator<<(std::ostream &os, const Symmetric3Tpl<Scalar, Options> &S3)
struct AlphaSkewSquare

Public Functions

inline AlphaSkewSquare(const Scalar &m, const SkewSquare &v)
inline AlphaSkewSquare(const Scalar &m, const Vector3 &v)
inline operator Symmetric3Tpl() const

Public Members

const Scalar &m
const Vector3 &v
struct SkewSquare

Public Functions

inline SkewSquare(const Vector3 &v)
inline operator Symmetric3Tpl() const

Public Members

const Vector3 &v