diff options
author | 2009-11-17 08:14:54 -0500 | |
---|---|---|
committer | 2009-11-17 08:14:54 -0500 | |
commit | 9f21e2aab7953b84c323258177b615ea6cff91ce (patch) | |
tree | 0cbb81d232e956747b7087bbba5bcdad2744c345 /Eigen/src/LU | |
parent | 30b610a10f764529c7f93b6b7cd3cbf86a36e73d (diff) |
port the QR module to PermutationMatrix
Diffstat (limited to 'Eigen/src/LU')
-rw-r--r-- | Eigen/src/LU/FullPivLU.h | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/Eigen/src/LU/FullPivLU.h b/Eigen/src/LU/FullPivLU.h index 607fe261f..28dc0cd47 100644 --- a/Eigen/src/LU/FullPivLU.h +++ b/Eigen/src/LU/FullPivLU.h @@ -594,7 +594,8 @@ struct ei_image_retval<FullPivLU<_MatrixType> > pivots.coeffRef(p++) = i; ei_internal_assert(p == rank()); - dst.block(0,0,dst.rows(),rank()) = (originalMatrix()*dec().permutationQ()).block(0,0,dst.rows(),rank()); + for(int i = 0; i < rank(); ++i) + dst.col(i) = originalMatrix().col(dec().permutationQ().indices().coeff(pivots.coeff(i))); } }; @@ -630,8 +631,7 @@ struct ei_solve_retval<FullPivLU<_MatrixType>, Rhs> typename Rhs::PlainMatrixType c(rhs().rows(), rhs().cols()); // Step 1 - for(int i = 0; i < rows; ++i) - c.row(dec().permutationP().indices().coeff(i)) = rhs().row(i); + c = dec().permutationP() * rhs(); // Step 2 dec().matrixLU() |