diff options
-rw-r--r-- | Eigen/src/QR/ColPivHouseholderQR.h | 3 | ||||
-rw-r--r-- | test/qr_colpivoting.cpp | 2 |
2 files changed, 2 insertions, 3 deletions
diff --git a/Eigen/src/QR/ColPivHouseholderQR.h b/Eigen/src/QR/ColPivHouseholderQR.h index 4e983684f..e59ecac66 100644 --- a/Eigen/src/QR/ColPivHouseholderQR.h +++ b/Eigen/src/QR/ColPivHouseholderQR.h @@ -366,7 +366,8 @@ struct ei_solve_retval<ColPivHouseholderQR<_MatrixType>, Rhs> .template triangularView<UpperTriangular>() .solveInPlace(c.corner(TopLeft, dec().rank(), c.cols())); - dst = dec().colsPermutation() * c; + for(int i = 0; i < dec().rank(); ++i) dst.row(dec().colsPermutation().indices().coeff(i)) = c.row(i); + for(int i = dec().rank(); i < cols; ++i) dst.row(dec().colsPermutation().indices().coeff(i)).setZero(); } }; diff --git a/test/qr_colpivoting.cpp b/test/qr_colpivoting.cpp index bdf273926..600a94133 100644 --- a/test/qr_colpivoting.cpp +++ b/test/qr_colpivoting.cpp @@ -57,8 +57,6 @@ template<typename MatrixType> void qr() MatrixType c = MatrixType::Zero(rows,cols); for(int i = 0; i < cols; ++i) c.col(qr.colsPermutation().indices().coeff(i)) = b.col(i); - std::cout << "m1:\n" << m1 << std::endl; - std::cout << "c:\n" << c << std::endl; VERIFY_IS_APPROX(m1, c); MatrixType m2 = MatrixType::Random(cols,cols2); |