pinocchio  3.9.0
A fast and flexible implementation of Rigid Body Dynamics algorithms and their analytical derivatives
Loading...
Searching...
No Matches
Symmetric3Tpl< _Scalar, _Options > Class Template Reference
Inheritance diagram for Symmetric3Tpl< _Scalar, _Options >:
Collaboration diagram for Symmetric3Tpl< _Scalar, _Options >:

Classes

struct  AlphaSkewSquare
struct  SkewSquare

Public Types

enum  { Options = _Options }
typedef Eigen::Matrix< Scalar, 2, 2, Options > Matrix2
typedef Eigen::Matrix< Scalar, 3, 3, Options > Matrix3
typedef Eigen::Matrix< Scalar, 3, 2, Options > Matrix32
typedef _Scalar Scalar
typedef Eigen::Matrix< Scalar, 3, 1, Options > Vector3
typedef Eigen::Matrix< Scalar, 6, 1, Options > Vector6
Public Types inherited from NumericalBase< Symmetric3Tpl< _Scalar, _Options > >
typedef traits< Symmetric3Tpl< _Scalar, _Options > >::Scalar Scalar

Public Member Functions

template<typename Sc, int Opt>
 Symmetric3Tpl (const Eigen::Matrix< Sc, 3, 3, Opt > &I)
 Symmetric3Tpl (const Scalar &a0, const Scalar &a1, const Scalar &a2, const Scalar &a3, const Scalar &a4, const Scalar &a5)
 Symmetric3Tpl (const Symmetric3Tpl &other)
template<typename S2, int O2>
 Symmetric3Tpl (const Symmetric3Tpl< S2, O2 > &other)
 Symmetric3Tpl (const Vector6 &I)
template<typename NewScalar>
Symmetric3Tpl< NewScalar, Options > cast () const
Vector6 & data ()
const Vector6 & data () const
Matrix32 decomposeltI () const
 Computes L for a symmetric matrix A.
void fill (const Scalar value)
Matrix3 inverse () const
template<typename Matrix3Like>
void inverse (const Eigen::MatrixBase< Matrix3Like > &res_) const
bool isApprox (const Symmetric3Tpl &other, const Scalar &prec=Eigen::NumTraits< Scalar >::dummy_precision()) const
bool isZero (const Scalar &prec=Eigen::NumTraits< Scalar >::dummy_precision()) const
Matrix3 matrix () const
 operator Matrix3 () const
bool operator!= (const Symmetric3Tpl &other) const
const Scalar & operator() (const int i, const int j) const
template<typename V3>
Vector3 operator* (const Eigen::MatrixBase< V3 > &v) const
Symmetric3Tploperator*= (const Scalar s)
template<typename Matrix3Like>
Symmetric3Tpl operator+ (const Eigen::MatrixBase< Matrix3Like > &S) const
Symmetric3Tpl operator+ (const Symmetric3Tpl &s2) const
Symmetric3Tploperator+= (const Symmetric3Tpl &s2)
Symmetric3Tpl operator- (const AlphaSkewSquare &v) const
template<typename Matrix3Like>
Symmetric3Tpl operator- (const Eigen::MatrixBase< Matrix3Like > &S) const
Symmetric3Tpl operator- (const SkewSquare &v) const
Symmetric3Tpl operator- (const Symmetric3Tpl &s2) const
Symmetric3Tploperator-= (const AlphaSkewSquare &v)
Symmetric3Tploperator-= (const SkewSquare &v)
Symmetric3Tploperator-= (const Symmetric3Tpl &s2)
Symmetric3Tploperator= (const Symmetric3Tpl &clone)
 Copy assignment operator.
bool operator== (const Symmetric3Tpl &other) const
template<typename D>
Symmetric3Tpl rotate (const Eigen::MatrixBase< D > &R) const
template<typename Vector3Like>
void setDiagonal (const Eigen::MatrixBase< Vector3Like > &diag)
void setIdentity ()
void setRandom ()
void setZero ()
template<typename Vector3>
Matrix3 svx (const Eigen::MatrixBase< Vector3 > &v) const
 Performs the operation $ M = S_{3} [v]_{\times} $.
Scalar vtiv (const Vector3 &v) const
template<typename Vector3>
Matrix3 vxs (const Eigen::MatrixBase< Vector3 > &v) const
 Performs the operation $ [v]_{\times} S $. This operation is equivalent to applying the cross product of v on each column of S.

Static Public Member Functions

static Symmetric3Tpl Identity ()
static Symmetric3Tpl Random ()
static Symmetric3Tpl RandomPositive ()
template<typename V3in, typename V3out>
static void rhsMult (const Symmetric3Tpl &S3, const Eigen::MatrixBase< V3in > &vin, const Eigen::MatrixBase< V3out > &vout)
template<typename Vector3, typename Matrix3>
static void svx (const Eigen::MatrixBase< Vector3 > &v, const Symmetric3Tpl &S3, const Eigen::MatrixBase< Matrix3 > &M)
 Performs the operation $ M = S_{3} [v]_{\times} $.
template<typename Vector3, typename Matrix3>
static void vxs (const Eigen::MatrixBase< Vector3 > &v, const Symmetric3Tpl &S3, const Eigen::MatrixBase< Matrix3 > &M)
 Performs the operation $ M = [v]_{\times} S_{3} $. This operation is equivalent to applying the cross product of v on each column of S.
static Symmetric3Tpl Zero ()

Protected Attributes

Vector6 m_data

Friends

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

Detailed Description

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

Definition at line 21 of file symmetric3.hpp.

Member Typedef Documentation

◆ Matrix2

template<typename _Scalar, int _Options>
typedef Eigen::Matrix<Scalar, 2, 2, Options> Matrix2

Definition at line 32 of file symmetric3.hpp.

◆ Matrix3

template<typename _Scalar, int _Options>
typedef Eigen::Matrix<Scalar, 3, 3, Options> Matrix3

Definition at line 31 of file symmetric3.hpp.

◆ Matrix32

template<typename _Scalar, int _Options>
typedef Eigen::Matrix<Scalar, 3, 2, Options> Matrix32

Definition at line 33 of file symmetric3.hpp.

◆ Scalar

template<typename _Scalar, int _Options>
typedef _Scalar Scalar

Definition at line 24 of file symmetric3.hpp.

◆ Vector3

template<typename _Scalar, int _Options>
typedef Eigen::Matrix<Scalar, 3, 1, Options> Vector3

Definition at line 29 of file symmetric3.hpp.

◆ Vector6

template<typename _Scalar, int _Options>
typedef Eigen::Matrix<Scalar, 6, 1, Options> Vector6

Definition at line 30 of file symmetric3.hpp.

Member Enumeration Documentation

◆ anonymous enum

template<typename _Scalar, int _Options>
anonymous enum

Definition at line 25 of file symmetric3.hpp.

Constructor & Destructor Documentation

◆ Symmetric3Tpl() [1/6]

template<typename _Scalar, int _Options>
Symmetric3Tpl()
inline

Definition at line 38 of file symmetric3.hpp.

◆ Symmetric3Tpl() [2/6]

template<typename _Scalar, int _Options>
template<typename Sc, int Opt>
Symmetric3Tpl(const Eigen::Matrix< Sc, 3, 3, Opt > &I)
inlineexplicit

Definition at line 43 of file symmetric3.hpp.

◆ Symmetric3Tpl() [3/6]

template<typename _Scalar, int _Options>
Symmetric3Tpl(const Vector6 &I)
inlineexplicit

Definition at line 54 of file symmetric3.hpp.

◆ Symmetric3Tpl() [4/6]

template<typename _Scalar, int _Options>
Symmetric3Tpl(const Symmetric3Tpl< _Scalar, _Options > &other)
inline

Definition at line 59 of file symmetric3.hpp.

◆ Symmetric3Tpl() [5/6]

template<typename _Scalar, int _Options>
template<typename S2, int O2>
Symmetric3Tpl(const Symmetric3Tpl< S2, O2 > &other)
inlineexplicit

Definition at line 65 of file symmetric3.hpp.

◆ Symmetric3Tpl() [6/6]

template<typename _Scalar, int _Options>
Symmetric3Tpl(const Scalar &a0,
const Scalar &a1,
const Scalar &a2,
const Scalar &a3,
const Scalar &a4,
const Scalar &a5 )
inline

Definition at line 81 of file symmetric3.hpp.

Member Function Documentation

◆ cast()

template<typename _Scalar, int _Options>
template<typename NewScalar>
Symmetric3Tpl< NewScalar, Options > cast()const
inline
Returns
An expression of *this with the Scalar type casted to NewScalar.

Definition at line 605 of file symmetric3.hpp.

◆ data() [1/2]

template<typename _Scalar, int _Options>
Vector6 & data()
inline

Definition at line 277 of file symmetric3.hpp.

◆ data() [2/2]

template<typename _Scalar, int _Options>
const Vector6 & data()const
inline

Definition at line 273 of file symmetric3.hpp.

◆ decomposeltI()

template<typename _Scalar, int _Options>
Matrix32 decomposeltI()const
inline

Computes L for a symmetric matrix A.

Definition at line 552 of file symmetric3.hpp.

◆ fill()

template<typename _Scalar, int _Options>
void fill(const Scalarvalue)
inline

Definition at line 158 of file symmetric3.hpp.

◆ Identity()

template<typename _Scalar, int _Options>
Symmetric3Tpl Identity()
inlinestatic

Definition at line 117 of file symmetric3.hpp.

◆ inverse() [1/2]

template<typename _Scalar, int _Options>
Matrix3 inverse()const
inline

Definition at line 181 of file symmetric3.hpp.

◆ inverse() [2/2]

template<typename _Scalar, int _Options>
template<typename Matrix3Like>
void inverse(const Eigen::MatrixBase< Matrix3Like > &res_)const
inline

Definition at line 164 of file symmetric3.hpp.

◆ isApprox()

template<typename _Scalar, int _Options>
bool isApprox(const Symmetric3Tpl< _Scalar, _Options > &other,
const Scalar &prec = Eigen::NumTraits<Scalar>::dummy_precision() ) const
inline

Definition at line 146 of file symmetric3.hpp.

◆ isZero()

template<typename _Scalar, int _Options>
bool isZero(const Scalar &prec = Eigen::NumTraits<Scalar>::dummy_precision())const
inline

Definition at line 153 of file symmetric3.hpp.

◆ matrix()

template<typename _Scalar, int _Options>
Matrix3 matrix()const
inline

Definition at line 304 of file symmetric3.hpp.

◆ operator Matrix3()

template<typename _Scalar, int _Options>
operator Matrix3()const
inline

Definition at line 318 of file symmetric3.hpp.

◆ operator!=()

template<typename _Scalar, int _Options>
bool operator!=(const Symmetric3Tpl< _Scalar, _Options > &other)const
inline

Definition at line 141 of file symmetric3.hpp.

◆ operator()()

template<typename _Scalar, int _Options>
const Scalar & operator()(const inti,
const intj ) const
inline

Definition at line 525 of file symmetric3.hpp.

◆ operator*()

template<typename _Scalar, int _Options>
template<typename V3>
Vector3 operator*(const Eigen::MatrixBase< V3 > &v)const
inline

Definition at line 506 of file symmetric3.hpp.

◆ operator*=()

template<typename _Scalar, int _Options>
Symmetric3Tpl & operator*=(const Scalars)
inline

Definition at line 483 of file symmetric3.hpp.

◆ operator+() [1/2]

template<typename _Scalar, int _Options>
template<typename Matrix3Like>
Symmetric3Tpl operator+(const Eigen::MatrixBase< Matrix3Like > &S)const
inline

Definition at line 540 of file symmetric3.hpp.

◆ operator+() [2/2]

template<typename _Scalar, int _Options>
Symmetric3Tpl operator+(const Symmetric3Tpl< _Scalar, _Options > &s2)const
inline

Definition at line 461 of file symmetric3.hpp.

◆ operator+=()

template<typename _Scalar, int _Options>
Symmetric3Tpl & operator+=(const Symmetric3Tpl< _Scalar, _Options > &s2)
inline

Definition at line 471 of file symmetric3.hpp.

◆ operator-() [1/4]

template<typename _Scalar, int _Options>
Symmetric3Tpl operator-(const AlphaSkewSquare &v)const
inline

Definition at line 252 of file symmetric3.hpp.

◆ operator-() [2/4]

template<typename _Scalar, int _Options>
template<typename Matrix3Like>
Symmetric3Tpl operator-(const Eigen::MatrixBase< Matrix3Like > &S)const
inline

Definition at line 531 of file symmetric3.hpp.

◆ operator-() [3/4]

template<typename _Scalar, int _Options>
Symmetric3Tpl operator-(const SkewSquare &v)const
inline

Definition at line 202 of file symmetric3.hpp.

◆ operator-() [4/4]

template<typename _Scalar, int _Options>
Symmetric3Tpl operator-(const Symmetric3Tpl< _Scalar, _Options > &s2)const
inline

Definition at line 466 of file symmetric3.hpp.

◆ operator-=() [1/3]

template<typename _Scalar, int _Options>
Symmetric3Tpl & operator-=(const AlphaSkewSquare &v)
inline

Definition at line 261 of file symmetric3.hpp.

◆ operator-=() [2/3]

template<typename _Scalar, int _Options>
Symmetric3Tpl & operator-=(const SkewSquare &v)
inline

Definition at line 210 of file symmetric3.hpp.

◆ operator-=() [3/3]

template<typename _Scalar, int _Options>
Symmetric3Tpl & operator-=(const Symmetric3Tpl< _Scalar, _Options > &s2)
inline

Definition at line 477 of file symmetric3.hpp.

◆ operator=()

template<typename _Scalar, int _Options>
Symmetric3Tpl & operator=(const Symmetric3Tpl< _Scalar, _Options > &clone)
inline

Copy assignment operator.

Parameters
[in]otherSymmetric3 to copy

Definition at line 75 of file symmetric3.hpp.

◆ operator==()

template<typename _Scalar, int _Options>
bool operator==(const Symmetric3Tpl< _Scalar, _Options > &other)const
inline

Definition at line 136 of file symmetric3.hpp.

◆ Random()

template<typename _Scalar, int _Options>
Symmetric3Tpl Random()
inlinestatic

Definition at line 101 of file symmetric3.hpp.

◆ RandomPositive()

template<typename _Scalar, int _Options>
Symmetric3Tpl RandomPositive()
inlinestatic

Definition at line 291 of file symmetric3.hpp.

◆ rhsMult()

template<typename _Scalar, int _Options>
template<typename V3in, typename V3out>
void rhsMult(const Symmetric3Tpl< _Scalar, _Options > &S3,
const Eigen::MatrixBase< V3in > &vin,
const Eigen::MatrixBase< V3out > &vout )
inlinestatic

Definition at line 490 of file symmetric3.hpp.

◆ rotate()

template<typename _Scalar, int _Options>
template<typename D>
Symmetric3Tpl rotate(const Eigen::MatrixBase< D > &R)const
inline

Definition at line 562 of file symmetric3.hpp.

◆ setDiagonal()

template<typename _Scalar, int _Options>
template<typename Vector3Like>
void setDiagonal(const Eigen::MatrixBase< Vector3Like > &diag)
inline

Definition at line 127 of file symmetric3.hpp.

◆ setIdentity()

template<typename _Scalar, int _Options>
void setIdentity()
inline

Definition at line 121 of file symmetric3.hpp.

◆ setRandom()

template<typename _Scalar, int _Options>
void setRandom()
inline

Definition at line 105 of file symmetric3.hpp.

◆ setZero()

template<typename _Scalar, int _Options>
void setZero()
inline

Definition at line 96 of file symmetric3.hpp.

◆ svx() [1/2]

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

Performs the operation $ M = S_{3} [v]_{\times} $.

Template Parameters
Vector3
Parameters
[in]va vector of dimension 3.
Returns
the result $ S [v]_{\times} $.

Definition at line 454 of file symmetric3.hpp.

◆ svx() [2/2]

template<typename _Scalar, int _Options>
template<typename Vector3, typename Matrix3>
void svx(const Eigen::MatrixBase< Vector3 > &v,
const Symmetric3Tpl< _Scalar, _Options > &S3,
const Eigen::MatrixBase< Matrix3 > &M )
inlinestatic

Performs the operation $ M = S_{3} [v]_{\times} $.

Template Parameters
Vector3,Matrix3
Parameters
[in]va vector of dimension 3.
[in]S3a symmetric matrix of dimension 3x3.
[out]Man output matrix of dimension 3x3.

Definition at line 412 of file symmetric3.hpp.

◆ vtiv()

template<typename _Scalar, int _Options>
Scalar vtiv(const Vector3 &v)const
inline

Definition at line 323 of file symmetric3.hpp.

◆ vxs() [1/2]

template<typename _Scalar, int _Options>
template<typename Vector3>
Matrix3 vxs(const Eigen::MatrixBase< Vector3 > &v)const
inline

Performs the operation $ [v]_{\times} S $. This operation is equivalent to applying the cross product of v on each column of S.

Template Parameters
Vector3
Parameters
[in]va vector of dimension 3.
Returns
the result $ [v]_{\times} S $.

Definition at line 395 of file symmetric3.hpp.

◆ vxs() [2/2]

template<typename _Scalar, int _Options>
template<typename Vector3, typename Matrix3>
void vxs(const Eigen::MatrixBase< Vector3 > &v,
const Symmetric3Tpl< _Scalar, _Options > &S3,
const Eigen::MatrixBase< Matrix3 > &M )
inlinestatic

Performs the operation $ M = [v]_{\times} S_{3} $. This operation is equivalent to applying the cross product of v on each column of S.

Template Parameters
Vector3,Matrix3
Parameters
[in]va vector of dimension 3.
[in]S3a symmetric matrix of dimension 3x3.
[out]Man output matrix of dimension 3x3.

Definition at line 351 of file symmetric3.hpp.

◆ Zero()

template<typename _Scalar, int _Options>
Symmetric3Tpl Zero()
inlinestatic

Definition at line 92 of file symmetric3.hpp.

◆ operator*

template<typename _Scalar, int _Options>
AlphaSkewSquare operator*(const Scalar &m,
const SkewSquare &sk )
friend

Definition at line 247 of file symmetric3.hpp.

◆ operator<<

template<typename _Scalar, int _Options>
std::ostream & operator<<(std::ostream &os,
const Symmetric3Tpl< Scalar, Options > &S3 )
friend

Definition at line 610 of file symmetric3.hpp.

Member Data Documentation

◆ m_data

template<typename _Scalar, int _Options>
Vector6 m_data
protected

Definition at line 626 of file symmetric3.hpp.


The documentation for this class was generated from the following files: