hpp::constraints::MatrixOfExpressions< ValueType, JacobianType > Class Template Reference

Matrix having Expression elements. More...

#include <hpp/constraints/symbolic-calculus.hh>

Inheritance diagram for hpp::constraints::MatrixOfExpressions< ValueType, JacobianType >:
[legend]
Collaboration diagram for hpp::constraints::MatrixOfExpressions< ValueType, JacobianType >:
[legend]

Public Types

typedef Eigen::Matrix< value_type, Eigen::Dynamic, Eigen::Dynamic > Value_t
 
typedef Eigen::Matrix< value_type, Eigen::Dynamic, Eigen::Dynamic > Jacobian_t
 
typedef Eigen::Matrix< value_type, Eigen::Dynamic, Eigen::Dynamic > PseudoInv_t
 
typedef Eigen::Matrix< value_type, Eigen::Dynamic, Eigen::Dynamic > PseudoInvJacobian_t
 
typedef CalculusBase< MatrixOfExpressions, Value_t, Jacobian_tParent_t
 
typedef CalculusBaseAbstract< ValueType, JacobianType > Element_t
 
typedef Traits< Element_t >::Ptr_t ElementPtr_t
 
typedef Eigen::JacobiSVD< Value_tSVD_t
 
- Public Types inherited from hpp::constraints::CalculusBaseAbstract< Eigen::Matrix< value_type, Eigen::Dynamic, Eigen::Dynamic >, Eigen::Matrix< value_type, Eigen::Dynamic, Eigen::Dynamic > >
typedef Eigen::Matrix< value_type, Eigen::Dynamic, Eigen::Dynamic > ValueType_t
 
typedef Eigen::Matrix< value_type, Eigen::Dynamic, Eigen::Dynamic > JacobianType_t
 

Public Member Functions

 MatrixOfExpressions (const Eigen::Ref< const Value_t > &value, const Eigen::Ref< const Jacobian_t > &jacobian)
 
 MatrixOfExpressions (const Parent_t &other)
 
 MatrixOfExpressions (const MatrixOfExpressions &matrix)
 
void setSize (std::size_t nRows, std::size_t nCols)
 
ElementPtr_toperator() (std::size_t i, std::size_t j)
 
void set (std::size_t i, std::size_t j, const ElementPtr_t ptr)
 
void impl_value (const ConfigurationIn_t arg)
 
void impl_jacobian (const ConfigurationIn_t arg)
 
const PseudoInv_tpinv () const
 
const PseudoInvJacobian_tpinvJacobian () const
 
void computeSVD (const ConfigurationIn_t arg)
 
void computePseudoInverse (const ConfigurationIn_t arg)
 
void computePseudoInverseJacobian (const ConfigurationIn_t arg, const Eigen::Ref< const Eigen::Matrix< value_type, Eigen::Dynamic, 1 > > &rhs)
 
void jacobianTimes (const ConfigurationIn_t arg, const Eigen::Ref< const Eigen::Matrix< value_type, Eigen::Dynamic, 1 > > &rhs, Eigen::Ref< Jacobian_t > cache) const
 
void jacobianTransposeTimes (const ConfigurationIn_t arg, const Eigen::Ref< const Eigen::Matrix< value_type, Eigen::Dynamic, 1 > > &rhs, Eigen::Ref< Jacobian_t > cache) const
 
Eigen::JacobiSVD< Value_t > & svd ()
 
void invalidate ()
 
- Public Member Functions inherited from hpp::constraints::CalculusBase< MatrixOfExpressions< ValueType, JacobianType >, Eigen::Matrix< value_type, Eigen::Dynamic, Eigen::Dynamic >, Eigen::Matrix< value_type, Eigen::Dynamic, Eigen::Dynamic > >
 CalculusBase ()
 
 CalculusBase (const Eigen::Matrix< value_type, Eigen::Dynamic, Eigen::Dynamic > &value, const Eigen::Matrix< value_type, Eigen::Dynamic, Eigen::Dynamic > &jacobian)
 
 CalculusBase (const CalculusBase &o)
 
const Eigen::Matrix< value_type, Eigen::Dynamic, Eigen::Dynamic > & value () const
 
const Eigen::Matrix< value_type, Eigen::Dynamic, Eigen::Dynamic > & jacobian () const
 
void computeValue (const ConfigurationIn_t arg)
 
void computeJacobian (const ConfigurationIn_t arg)
 
void invalidate ()
 
const CrossMatrixcross () const
 
void computeCrossValue (const ConfigurationIn_t arg)
 

Public Attributes

std::size_t nRows_
 
std::size_t nCols_
 
std::vector< std::vector< ElementPtr_t > > elements_
 

Additional Inherited Members

- Protected Member Functions inherited from hpp::constraints::CalculusBase< MatrixOfExpressions< ValueType, JacobianType >, Eigen::Matrix< value_type, Eigen::Dynamic, Eigen::Dynamic >, Eigen::Matrix< value_type, Eigen::Dynamic, Eigen::Dynamic > >
void init (const typename Traits< MatrixOfExpressions< ValueType, JacobianType > >::Ptr_t &ptr)
 
- Protected Attributes inherited from hpp::constraints::CalculusBase< MatrixOfExpressions< ValueType, JacobianType >, Eigen::Matrix< value_type, Eigen::Dynamic, Eigen::Dynamic >, Eigen::Matrix< value_type, Eigen::Dynamic, Eigen::Dynamic > >
Eigen::Matrix< value_type, Eigen::Dynamic, Eigen::Dynamic > value_
 
Eigen::Matrix< value_type, Eigen::Dynamic, Eigen::Dynamic > jacobian_
 
CrossMatrix cross_
 
bool vValid_
 
bool jValid_
 
bool cValid_
 

Detailed Description

template<typename ValueType = eigen::vector3_t, typename JacobianType = JacobianMatrix>
class hpp::constraints::MatrixOfExpressions< ValueType, JacobianType >

Matrix having Expression elements.

Member Typedef Documentation

template<typename ValueType = eigen::vector3_t, typename JacobianType = JacobianMatrix>
typedef CalculusBaseAbstract<ValueType, JacobianType> hpp::constraints::MatrixOfExpressions< ValueType, JacobianType >::Element_t
template<typename ValueType = eigen::vector3_t, typename JacobianType = JacobianMatrix>
typedef Traits<Element_t>::Ptr_t hpp::constraints::MatrixOfExpressions< ValueType, JacobianType >::ElementPtr_t
template<typename ValueType = eigen::vector3_t, typename JacobianType = JacobianMatrix>
typedef Eigen::Matrix<value_type, Eigen::Dynamic, Eigen::Dynamic > hpp::constraints::MatrixOfExpressions< ValueType, JacobianType >::Jacobian_t
template<typename ValueType = eigen::vector3_t, typename JacobianType = JacobianMatrix>
typedef CalculusBase<MatrixOfExpressions, Value_t, Jacobian_t > hpp::constraints::MatrixOfExpressions< ValueType, JacobianType >::Parent_t
template<typename ValueType = eigen::vector3_t, typename JacobianType = JacobianMatrix>
typedef Eigen::Matrix<value_type, Eigen::Dynamic, Eigen::Dynamic > hpp::constraints::MatrixOfExpressions< ValueType, JacobianType >::PseudoInv_t
template<typename ValueType = eigen::vector3_t, typename JacobianType = JacobianMatrix>
typedef Eigen::Matrix<value_type, Eigen::Dynamic, Eigen::Dynamic > hpp::constraints::MatrixOfExpressions< ValueType, JacobianType >::PseudoInvJacobian_t
template<typename ValueType = eigen::vector3_t, typename JacobianType = JacobianMatrix>
typedef Eigen::JacobiSVD<Value_t> hpp::constraints::MatrixOfExpressions< ValueType, JacobianType >::SVD_t
template<typename ValueType = eigen::vector3_t, typename JacobianType = JacobianMatrix>
typedef Eigen::Matrix<value_type, Eigen::Dynamic, Eigen::Dynamic > hpp::constraints::MatrixOfExpressions< ValueType, JacobianType >::Value_t

Constructor & Destructor Documentation

template<typename ValueType = eigen::vector3_t, typename JacobianType = JacobianMatrix>
hpp::constraints::MatrixOfExpressions< ValueType, JacobianType >::MatrixOfExpressions ( const Eigen::Ref< const Value_t > &  value,
const Eigen::Ref< const Jacobian_t > &  jacobian 
)
inline
template<typename ValueType = eigen::vector3_t, typename JacobianType = JacobianMatrix>
hpp::constraints::MatrixOfExpressions< ValueType, JacobianType >::MatrixOfExpressions ( const Parent_t other)
inline
template<typename ValueType = eigen::vector3_t, typename JacobianType = JacobianMatrix>
hpp::constraints::MatrixOfExpressions< ValueType, JacobianType >::MatrixOfExpressions ( const MatrixOfExpressions< ValueType, JacobianType > &  matrix)
inline

Member Function Documentation

template<typename ValueType = eigen::vector3_t, typename JacobianType = JacobianMatrix>
void hpp::constraints::MatrixOfExpressions< ValueType, JacobianType >::computePseudoInverse ( const ConfigurationIn_t  arg)
inline
template<typename ValueType = eigen::vector3_t, typename JacobianType = JacobianMatrix>
void hpp::constraints::MatrixOfExpressions< ValueType, JacobianType >::computePseudoInverseJacobian ( const ConfigurationIn_t  arg,
const Eigen::Ref< const Eigen::Matrix< value_type, Eigen::Dynamic, 1 > > &  rhs 
)
inline
template<typename ValueType = eigen::vector3_t, typename JacobianType = JacobianMatrix>
void hpp::constraints::MatrixOfExpressions< ValueType, JacobianType >::computeSVD ( const ConfigurationIn_t  arg)
inline
template<typename ValueType = eigen::vector3_t, typename JacobianType = JacobianMatrix>
void hpp::constraints::MatrixOfExpressions< ValueType, JacobianType >::impl_jacobian ( const ConfigurationIn_t  arg)
inline
template<typename ValueType = eigen::vector3_t, typename JacobianType = JacobianMatrix>
void hpp::constraints::MatrixOfExpressions< ValueType, JacobianType >::impl_value ( const ConfigurationIn_t  arg)
inline
template<typename ValueType = eigen::vector3_t, typename JacobianType = JacobianMatrix>
void hpp::constraints::MatrixOfExpressions< ValueType, JacobianType >::invalidate ( )
inlinevirtual
template<typename ValueType = eigen::vector3_t, typename JacobianType = JacobianMatrix>
void hpp::constraints::MatrixOfExpressions< ValueType, JacobianType >::jacobianTimes ( const ConfigurationIn_t  arg,
const Eigen::Ref< const Eigen::Matrix< value_type, Eigen::Dynamic, 1 > > &  rhs,
Eigen::Ref< Jacobian_t cache 
) const
inline
template<typename ValueType = eigen::vector3_t, typename JacobianType = JacobianMatrix>
void hpp::constraints::MatrixOfExpressions< ValueType, JacobianType >::jacobianTransposeTimes ( const ConfigurationIn_t  arg,
const Eigen::Ref< const Eigen::Matrix< value_type, Eigen::Dynamic, 1 > > &  rhs,
Eigen::Ref< Jacobian_t cache 
) const
inline
template<typename ValueType = eigen::vector3_t, typename JacobianType = JacobianMatrix>
ElementPtr_t& hpp::constraints::MatrixOfExpressions< ValueType, JacobianType >::operator() ( std::size_t  i,
std::size_t  j 
)
inline
template<typename ValueType = eigen::vector3_t, typename JacobianType = JacobianMatrix>
const PseudoInv_t& hpp::constraints::MatrixOfExpressions< ValueType, JacobianType >::pinv ( ) const
inline
template<typename ValueType = eigen::vector3_t, typename JacobianType = JacobianMatrix>
const PseudoInvJacobian_t& hpp::constraints::MatrixOfExpressions< ValueType, JacobianType >::pinvJacobian ( ) const
inline
template<typename ValueType = eigen::vector3_t, typename JacobianType = JacobianMatrix>
void hpp::constraints::MatrixOfExpressions< ValueType, JacobianType >::set ( std::size_t  i,
std::size_t  j,
const ElementPtr_t  ptr 
)
inline
template<typename ValueType = eigen::vector3_t, typename JacobianType = JacobianMatrix>
void hpp::constraints::MatrixOfExpressions< ValueType, JacobianType >::setSize ( std::size_t  nRows,
std::size_t  nCols 
)
inline
template<typename ValueType = eigen::vector3_t, typename JacobianType = JacobianMatrix>
Eigen::JacobiSVD<Value_t>& hpp::constraints::MatrixOfExpressions< ValueType, JacobianType >::svd ( )
inline

Member Data Documentation

template<typename ValueType = eigen::vector3_t, typename JacobianType = JacobianMatrix>
std::vector<std::vector <ElementPtr_t> > hpp::constraints::MatrixOfExpressions< ValueType, JacobianType >::elements_
template<typename ValueType = eigen::vector3_t, typename JacobianType = JacobianMatrix>
std::size_t hpp::constraints::MatrixOfExpressions< ValueType, JacobianType >::nCols_
template<typename ValueType = eigen::vector3_t, typename JacobianType = JacobianMatrix>
std::size_t hpp::constraints::MatrixOfExpressions< ValueType, JacobianType >::nRows_