Expression of a fixed-size or dynamic-size sub-vector.
- Parameters:
-
| VectorType | the type of the object in which we are taking a sub-vector |
| Size | size of the sub-vector we are taking at compile time (optional) |
This class represents an expression of either a fixed-size or dynamic-size sub-vector. It is the return type of DenseBase::segment(Index,Index) and DenseBase::segment<int>(Index) and most of the time this is the only way it is used.
However, if you want to directly maniputate sub-vector expressions, for instance if you want to write a function returning such an expression, you will need to use this class.
Here is an example illustrating the dynamic case:
Output:
- Note:
- Even though this expression has dynamic size, in the case where VectorType has fixed size, this expression inherits a fixed maximal size which means that evaluating it does not cause a dynamic memory allocation.
Here is an example illustrating the fixed-size case:
Output:
- See also:
- class Block, DenseBase::segment(Index,Index,Index,Index), DenseBase::segment(Index,Index)
Public Member Functions |
| | VectorBlock (VectorType &vector, Index start, Index size) |
| | Dynamic-size constructor.
|
| | VectorBlock (VectorType &vector, Index start) |
| | Fixed-size constructor.
|
| Index | rows () const |
| Index | cols () const |
| Scalar & | coeffRef (Index row, Index col) |
| const Scalar & | coeffRef (Index row, Index col) const |
| Scalar & | coeffRef (Index index) |
| const Scalar & | coeffRef (Index index) const |
EIGEN_STRONG_INLINE const
CoeffReturnType | coeff (Index row, Index col) const |
| const CoeffReturnType | coeff (Index index) const |
| PacketScalar | packet (Index row, Index col) const |
| PacketScalar | packet (Index index) const |
| void | writePacket (Index row, Index col, const PacketScalar &x) |
| void | writePacket (Index index, const PacketScalar &x) |
| const Scalar * | data () const |
| Index | innerStride () const |
| Index | outerStride () const |
const internal::remove_all
< typename XprType::Nested >
::type & | nestedExpression () const |
| Index | startRow () const |
| Index | startCol () const |
Protected Attributes |
| const XprType::Nested | m_xpr |
const
internal::variable_if_dynamic
< Index,
XprType::RowsAtCompileTime==1?0:Dynamic > | m_startRow |
const
internal::variable_if_dynamic
< Index,
XprType::ColsAtCompileTime==1?0:Dynamic > | m_startCol |
const
internal::variable_if_dynamic
< Index, RowsAtCompileTime > | m_blockRows |
const
internal::variable_if_dynamic
< Index, ColsAtCompileTime > | m_blockCols |
Private Types |
| enum | { IsColVector = !(internal::traits<VectorType>::Flags & RowMajorBit)
} |
typedef Block< VectorType,
internal::traits< VectorType >
::Flags &RowMajorBit?1:Size,
internal::traits< VectorType >
::Flags &RowMajorBit?Size:1 > | Base |