big improvement of the block-manipulation API

- reduction of sizeof(Block) for vector types
- variants of block() and fixedBlock() for vector blocks
- convenience methods start() and end() for vectors
- convenience method corner() for matrices
This commit is contained in:
Benoit Jacob
2008-01-13 22:48:57 +00:00
parent 95dc68dc86
commit 6ce996f219
6 changed files with 186 additions and 24 deletions

View File

@@ -188,11 +188,23 @@ template<typename Scalar, typename Derived> class MatrixBase
const Block<Derived>
block(int startRow, int startCol, int blockRows, int blockCols) const;
Block<Derived> block(int start, int size);
const Block<Derived> block(int start, int size) const;
Block<Derived> start(int size);
const Block<Derived> start(int size) const;
Block<Derived> end(int size);
const Block<Derived> end(int size) const;
Block<Derived> corner(CornerType type, int cRows, int cCols);
const Block<Derived> corner(CornerType type, int cRows, int cCols) const;
template<int BlockRows, int BlockCols>
FixedBlock<Derived, BlockRows, BlockCols> fixedBlock(int startRow, int startCol);
template<int BlockRows, int BlockCols>
const FixedBlock<Derived, BlockRows, BlockCols> fixedBlock(int startRow, int startCol) const;
Transpose<Derived> transpose();
const Transpose<Derived> transpose() const;