Eigen::MatrixBlockView< _ArgType, _Rows, _Cols, _allRows, _allCols > Class Template Reference

A view of an Eigen matrix. More...

#include <hpp/constraints/matrix-view.hh>

Inheritance diagram for Eigen::MatrixBlockView< _ArgType, _Rows, _Cols, _allRows, _allCols >:
[legend]
Collaboration diagram for Eigen::MatrixBlockView< _ArgType, _Rows, _Cols, _allRows, _allCols >:
[legend]

Classes

struct  block_iterator
 
struct  block_t
 

Public Types

enum  {
  Rows = _Rows,
  Cols = _Cols,
  AllRows = _allRows,
  AllCols = _allCols
}
 
typedef hpp::constraints::size_type size_type
 
typedef MatrixBase< MatrixBlockView< _ArgType, _Rows, _Cols, _allRows, _allCols > > Base
 
typedef Matrix< Scalar, RowsAtCompileTime, ColsAtCompileTime > PlainObject
 
typedef _ArgType ArgType
 
typedef internal::ref_selector< ArgType >::type ArgTypeNested
 
typedef internal::remove_all< ArgType >::type NestedExpression
 
typedef block_t< ArgType >::type BlockXprType
 
typedef block_t< const ArgType >::type BlockConstXprType
 
typedef MatrixBlocks< _allRows, _allCols > MatrixIndices_t
 
typedef MatrixIndices_t::segments_t Indices_t
 
typedef internal::conditional< _allRows, const internal::empty_struct, const Indices_t & >::type RowIndices_t
 
typedef internal::conditional< _allCols, const internal::empty_struct, const Indices_t & >::type ColIndices_t
 

Public Member Functions

 MatrixBlockView (ArgType &arg, const size_type &nbRows, const RowIndices_t rows, const size_type &nbCols, const ColIndices_t cols)
 
 MatrixBlockView (ArgType &arg, const size_type &nbIndices, const Indices_t &indices)
 Valid only when _allRows or _allCols is true. More...
 
EIGEN_STRONG_INLINE size_type rows () const
 
EIGEN_STRONG_INLINE size_type cols () const
 
EIGEN_STRONG_INLINE CoeffReturnType coeff (size_type index) const
 
EIGEN_STRONG_INLINE CoeffReturnType coeff (size_type row, size_type col) const
 
EIGEN_STRONG_INLINE Scalar & coeffRef (size_type index)
 
EIGEN_STRONG_INLINE Scalar & coeffRef (size_type row, const size_type &col)
 
template<typename Dest >
EIGEN_STRONG_INLINE void evalTo (Dest &dst) const
 
template<typename Dest >
EIGEN_STRONG_INLINE void writeTo (Dest &dst) const
 
EIGEN_STRONG_INLINE PlainObject eval () const
 
template<typename OtherDerived >
EIGEN_STRONG_INLINE MatrixBlockViewoperator= (const EigenBase< OtherDerived > &other)
 
EIGEN_STRONG_INLINE size_type _blocks () const
 
EIGEN_STRONG_INLINE BlockXprType _block (const block_iterator &b)
 
EIGEN_STRONG_INLINE const BlockConstXprType _block (const block_iterator &b) const
 
EIGEN_STRONG_INLINE block_iterator _block_iterator () const
 
EIGEN_STRONG_INLINE bool isZero (const RealScalar &prec=NumTraits< Scalar >::dummy_precision()) const
 

Public Attributes

ArgTypem_arg
 
size_type m_nbRows
 
RowIndices_t m_rows
 
size_type m_nbCols
 
ColIndices_t m_cols
 

Detailed Description

template<typename _ArgType, int _Rows = _ArgType::RowsAtCompileTime, int _Cols = _ArgType::ColsAtCompileTime, bool _allRows = false, bool _allCols = false>
class Eigen::MatrixBlockView< _ArgType, _Rows, _Cols, _allRows, _allCols >

A view of an Eigen matrix.

Instances of MatrixBlockView are easily built from a MatrixBlocks object.

As of the date of this documentation, this class does not support all operations on matrices. See tests/matrix-view.cc for a list of supported features.

Although it is usually not useful to iterate over the blocks, it is possible to do it as follows:

MatrixBlockView view = ...;
for (MatrixBlockView::block_iterator block (view); block.valid(); ++block)
{
// Access the current block
view._block(block); // Returns an Eigen::Block object.
// For the current block
block.ri() // row, input
block.ci() // col, input
block.ro() // row, output
block.co() // col, output
block.rs() // number of rows
block.cs() // number of cols
}
See also
MatrixBlocks, MatrixBlockView::block_iterator

Member Typedef Documentation

template<typename _ArgType , int _Rows = _ArgType::RowsAtCompileTime, int _Cols = _ArgType::ColsAtCompileTime, bool _allRows = false, bool _allCols = false>
typedef _ArgType Eigen::MatrixBlockView< _ArgType, _Rows, _Cols, _allRows, _allCols >::ArgType
template<typename _ArgType , int _Rows = _ArgType::RowsAtCompileTime, int _Cols = _ArgType::ColsAtCompileTime, bool _allRows = false, bool _allCols = false>
typedef internal::ref_selector<ArgType>::type Eigen::MatrixBlockView< _ArgType, _Rows, _Cols, _allRows, _allCols >::ArgTypeNested
template<typename _ArgType , int _Rows = _ArgType::RowsAtCompileTime, int _Cols = _ArgType::ColsAtCompileTime, bool _allRows = false, bool _allCols = false>
typedef MatrixBase< MatrixBlockView<_ArgType, _Rows, _Cols, _allRows, _allCols> > Eigen::MatrixBlockView< _ArgType, _Rows, _Cols, _allRows, _allCols >::Base
template<typename _ArgType , int _Rows = _ArgType::RowsAtCompileTime, int _Cols = _ArgType::ColsAtCompileTime, bool _allRows = false, bool _allCols = false>
typedef block_t<const ArgType>::type Eigen::MatrixBlockView< _ArgType, _Rows, _Cols, _allRows, _allCols >::BlockConstXprType
template<typename _ArgType , int _Rows = _ArgType::RowsAtCompileTime, int _Cols = _ArgType::ColsAtCompileTime, bool _allRows = false, bool _allCols = false>
typedef block_t<ArgType>::type Eigen::MatrixBlockView< _ArgType, _Rows, _Cols, _allRows, _allCols >::BlockXprType
template<typename _ArgType , int _Rows = _ArgType::RowsAtCompileTime, int _Cols = _ArgType::ColsAtCompileTime, bool _allRows = false, bool _allCols = false>
typedef internal::conditional<_allCols, const internal::empty_struct, const Indices_t& >::type Eigen::MatrixBlockView< _ArgType, _Rows, _Cols, _allRows, _allCols >::ColIndices_t
template<typename _ArgType , int _Rows = _ArgType::RowsAtCompileTime, int _Cols = _ArgType::ColsAtCompileTime, bool _allRows = false, bool _allCols = false>
typedef MatrixIndices_t::segments_t Eigen::MatrixBlockView< _ArgType, _Rows, _Cols, _allRows, _allCols >::Indices_t
template<typename _ArgType , int _Rows = _ArgType::RowsAtCompileTime, int _Cols = _ArgType::ColsAtCompileTime, bool _allRows = false, bool _allCols = false>
typedef MatrixBlocks<_allRows, _allCols> Eigen::MatrixBlockView< _ArgType, _Rows, _Cols, _allRows, _allCols >::MatrixIndices_t
template<typename _ArgType , int _Rows = _ArgType::RowsAtCompileTime, int _Cols = _ArgType::ColsAtCompileTime, bool _allRows = false, bool _allCols = false>
typedef internal::remove_all<ArgType>::type Eigen::MatrixBlockView< _ArgType, _Rows, _Cols, _allRows, _allCols >::NestedExpression
template<typename _ArgType , int _Rows = _ArgType::RowsAtCompileTime, int _Cols = _ArgType::ColsAtCompileTime, bool _allRows = false, bool _allCols = false>
typedef Matrix<Scalar, RowsAtCompileTime, ColsAtCompileTime> Eigen::MatrixBlockView< _ArgType, _Rows, _Cols, _allRows, _allCols >::PlainObject
template<typename _ArgType , int _Rows = _ArgType::RowsAtCompileTime, int _Cols = _ArgType::ColsAtCompileTime, bool _allRows = false, bool _allCols = false>
typedef internal::conditional<_allRows, const internal::empty_struct, const Indices_t& >::type Eigen::MatrixBlockView< _ArgType, _Rows, _Cols, _allRows, _allCols >::RowIndices_t
template<typename _ArgType , int _Rows = _ArgType::RowsAtCompileTime, int _Cols = _ArgType::ColsAtCompileTime, bool _allRows = false, bool _allCols = false>
typedef hpp::constraints::size_type Eigen::MatrixBlockView< _ArgType, _Rows, _Cols, _allRows, _allCols >::size_type

Member Enumeration Documentation

template<typename _ArgType , int _Rows = _ArgType::RowsAtCompileTime, int _Cols = _ArgType::ColsAtCompileTime, bool _allRows = false, bool _allCols = false>
anonymous enum
Enumerator
Rows 
Cols 
AllRows 
AllCols 

Constructor & Destructor Documentation

template<typename _ArgType , int _Rows = _ArgType::RowsAtCompileTime, int _Cols = _ArgType::ColsAtCompileTime, bool _allRows = false, bool _allCols = false>
Eigen::MatrixBlockView< _ArgType, _Rows, _Cols, _allRows, _allCols >::MatrixBlockView ( ArgType arg,
const size_type nbRows,
const RowIndices_t  rows,
const size_type nbCols,
const ColIndices_t  cols 
)
inline
template<typename _ArgType , int _Rows = _ArgType::RowsAtCompileTime, int _Cols = _ArgType::ColsAtCompileTime, bool _allRows = false, bool _allCols = false>
Eigen::MatrixBlockView< _ArgType, _Rows, _Cols, _allRows, _allCols >::MatrixBlockView ( ArgType arg,
const size_type nbIndices,
const Indices_t indices 
)
inline

Valid only when _allRows or _allCols is true.

Member Function Documentation

template<typename _ArgType , int _Rows = _ArgType::RowsAtCompileTime, int _Cols = _ArgType::ColsAtCompileTime, bool _allRows = false, bool _allCols = false>
EIGEN_STRONG_INLINE const BlockConstXprType Eigen::MatrixBlockView< _ArgType, _Rows, _Cols, _allRows, _allCols >::_block ( const block_iterator b) const
inline
template<typename _ArgType , int _Rows = _ArgType::RowsAtCompileTime, int _Cols = _ArgType::ColsAtCompileTime, bool _allRows = false, bool _allCols = false>
EIGEN_STRONG_INLINE block_iterator Eigen::MatrixBlockView< _ArgType, _Rows, _Cols, _allRows, _allCols >::_block_iterator ( ) const
inline
template<typename _ArgType , int _Rows = _ArgType::RowsAtCompileTime, int _Cols = _ArgType::ColsAtCompileTime, bool _allRows = false, bool _allCols = false>
EIGEN_STRONG_INLINE size_type Eigen::MatrixBlockView< _ArgType, _Rows, _Cols, _allRows, _allCols >::_blocks ( ) const
inline
template<typename _ArgType , int _Rows = _ArgType::RowsAtCompileTime, int _Cols = _ArgType::ColsAtCompileTime, bool _allRows = false, bool _allCols = false>
EIGEN_STRONG_INLINE CoeffReturnType Eigen::MatrixBlockView< _ArgType, _Rows, _Cols, _allRows, _allCols >::coeff ( size_type  index) const
inline

References Eigen::assert().

template<typename _ArgType , int _Rows = _ArgType::RowsAtCompileTime, int _Cols = _ArgType::ColsAtCompileTime, bool _allRows = false, bool _allCols = false>
EIGEN_STRONG_INLINE CoeffReturnType Eigen::MatrixBlockView< _ArgType, _Rows, _Cols, _allRows, _allCols >::coeff ( size_type  row,
size_type  col 
) const
inline

References Eigen::assert().

template<typename _ArgType , int _Rows = _ArgType::RowsAtCompileTime, int _Cols = _ArgType::ColsAtCompileTime, bool _allRows = false, bool _allCols = false>
EIGEN_STRONG_INLINE Scalar& Eigen::MatrixBlockView< _ArgType, _Rows, _Cols, _allRows, _allCols >::coeffRef ( size_type  index)
inline

References Eigen::assert().

template<typename _ArgType , int _Rows = _ArgType::RowsAtCompileTime, int _Cols = _ArgType::ColsAtCompileTime, bool _allRows = false, bool _allCols = false>
EIGEN_STRONG_INLINE Scalar& Eigen::MatrixBlockView< _ArgType, _Rows, _Cols, _allRows, _allCols >::coeffRef ( size_type  row,
const size_type col 
)
inline

References Eigen::assert().

template<typename _ArgType , int _Rows = _ArgType::RowsAtCompileTime, int _Cols = _ArgType::ColsAtCompileTime, bool _allRows = false, bool _allCols = false>
EIGEN_STRONG_INLINE size_type Eigen::MatrixBlockView< _ArgType, _Rows, _Cols, _allRows, _allCols >::cols ( ) const
inline
template<typename _ArgType , int _Rows = _ArgType::RowsAtCompileTime, int _Cols = _ArgType::ColsAtCompileTime, bool _allRows = false, bool _allCols = false>
EIGEN_STRONG_INLINE PlainObject Eigen::MatrixBlockView< _ArgType, _Rows, _Cols, _allRows, _allCols >::eval ( ) const
inline
template<typename _ArgType , int _Rows = _ArgType::RowsAtCompileTime, int _Cols = _ArgType::ColsAtCompileTime, bool _allRows = false, bool _allCols = false>
template<typename Dest >
EIGEN_STRONG_INLINE void Eigen::MatrixBlockView< _ArgType, _Rows, _Cols, _allRows, _allCols >::evalTo ( Dest &  dst) const
inline
template<typename _ArgType , int _Rows = _ArgType::RowsAtCompileTime, int _Cols = _ArgType::ColsAtCompileTime, bool _allRows = false, bool _allCols = false>
EIGEN_STRONG_INLINE bool Eigen::MatrixBlockView< _ArgType, _Rows, _Cols, _allRows, _allCols >::isZero ( const RealScalar &  prec = NumTraits<Scalar>::dummy_precision()) const
inline
template<typename _ArgType , int _Rows = _ArgType::RowsAtCompileTime, int _Cols = _ArgType::ColsAtCompileTime, bool _allRows = false, bool _allCols = false>
template<typename OtherDerived >
EIGEN_STRONG_INLINE MatrixBlockView& Eigen::MatrixBlockView< _ArgType, _Rows, _Cols, _allRows, _allCols >::operator= ( const EigenBase< OtherDerived > &  other)
inline
template<typename _ArgType , int _Rows = _ArgType::RowsAtCompileTime, int _Cols = _ArgType::ColsAtCompileTime, bool _allRows = false, bool _allCols = false>
EIGEN_STRONG_INLINE size_type Eigen::MatrixBlockView< _ArgType, _Rows, _Cols, _allRows, _allCols >::rows ( ) const
inline
template<typename _ArgType , int _Rows = _ArgType::RowsAtCompileTime, int _Cols = _ArgType::ColsAtCompileTime, bool _allRows = false, bool _allCols = false>
template<typename Dest >
EIGEN_STRONG_INLINE void Eigen::MatrixBlockView< _ArgType, _Rows, _Cols, _allRows, _allCols >::writeTo ( Dest &  dst) const
inline

Member Data Documentation

template<typename _ArgType , int _Rows = _ArgType::RowsAtCompileTime, int _Cols = _ArgType::ColsAtCompileTime, bool _allRows = false, bool _allCols = false>
ArgType& Eigen::MatrixBlockView< _ArgType, _Rows, _Cols, _allRows, _allCols >::m_arg
template<typename _ArgType , int _Rows = _ArgType::RowsAtCompileTime, int _Cols = _ArgType::ColsAtCompileTime, bool _allRows = false, bool _allCols = false>
ColIndices_t Eigen::MatrixBlockView< _ArgType, _Rows, _Cols, _allRows, _allCols >::m_cols
template<typename _ArgType , int _Rows = _ArgType::RowsAtCompileTime, int _Cols = _ArgType::ColsAtCompileTime, bool _allRows = false, bool _allCols = false>
size_type Eigen::MatrixBlockView< _ArgType, _Rows, _Cols, _allRows, _allCols >::m_nbCols
template<typename _ArgType , int _Rows = _ArgType::RowsAtCompileTime, int _Cols = _ArgType::ColsAtCompileTime, bool _allRows = false, bool _allCols = false>
size_type Eigen::MatrixBlockView< _ArgType, _Rows, _Cols, _allRows, _allCols >::m_nbRows