Extend qr unit test

This commit is contained in:
Gael Guennebaud 2014-07-21 11:45:54 +02:00
parent 50eef6dfc3
commit 946b99dd5c
2 changed files with 7 additions and 3 deletions

View File

@ -41,6 +41,10 @@ template<typename MatrixType> void qr()
VERIFY_IS_APPROX(m1, c); VERIFY_IS_APPROX(m1, c);
// stress the ReturnByValue mechanism
MatrixType tmp;
VERIFY_IS_APPROX(tmp.noalias() = qr.matrixQ() * r, (qr.matrixQ() * r).eval());
MatrixType m2 = MatrixType::Random(cols,cols2); MatrixType m2 = MatrixType::Random(cols,cols2);
MatrixType m3 = m1*m2; MatrixType m3 = m1*m2;
m2 = MatrixType::Random(cols,cols2); m2 = MatrixType::Random(cols,cols2);

View File

@ -104,8 +104,8 @@ template<typename ArrayType> void vectorwiseop_array(const ArrayType& m)
m2 = m1; m2 = m1;
// yes, there might be an aliasing issue there but ".rowwise() /=" // yes, there might be an aliasing issue there but ".rowwise() /="
// is suppposed to evaluate " m2.colwise().sum()" into to temporary to avoid // is supposed to evaluate " m2.colwise().sum()" into a temporary to avoid
// evaluating the reducions multiple times // evaluating the reduction multiple times
if(ArrayType::RowsAtCompileTime>2 || ArrayType::RowsAtCompileTime==Dynamic) if(ArrayType::RowsAtCompileTime>2 || ArrayType::RowsAtCompileTime==Dynamic)
{ {
m2.rowwise() /= m2.colwise().sum(); m2.rowwise() /= m2.colwise().sum();