Implement mixed static/dynamic-size .block() (bug #579)

This commit is contained in:
Jitse Niesen
2013-06-18 14:29:15 +01:00
parent 05da15bf40
commit e37ff98bbb
9 changed files with 238 additions and 2 deletions

View File

@@ -77,6 +77,12 @@ template<typename MatrixType> void block(const MatrixType& m)
// check that fixed block() and block() agree
Matrix<Scalar,Dynamic,Dynamic> b = m1.template block<BlockRows,BlockCols>(3,3);
VERIFY_IS_EQUAL(b, m1.block(3,3,BlockRows,BlockCols));
// same tests with mixed fixed/dynamic size
m1.template block<BlockRows,Dynamic>(1,1,BlockRows,BlockCols) *= s1;
m1.template block<BlockRows,Dynamic>(1,1,BlockRows,BlockCols)(0,3) = m1.template block<2,5>(1,1)(1,2);
Matrix<Scalar,Dynamic,Dynamic> b2 = m1.template block<Dynamic,BlockCols>(3,3,2,5);
VERIFY_IS_EQUAL(b2, m1.block(3,3,BlockRows,BlockCols));
}
if (rows>2)