aboutsummaryrefslogtreecommitdiffhomepage
path: root/Eigen/src/LU
diff options
context:
space:
mode:
authorGravatar Benoit Jacob <jacob.benoit.1@gmail.com>2009-11-17 08:14:54 -0500
committerGravatar Benoit Jacob <jacob.benoit.1@gmail.com>2009-11-17 08:14:54 -0500
commit9f21e2aab7953b84c323258177b615ea6cff91ce (patch)
tree0cbb81d232e956747b7087bbba5bcdad2744c345 /Eigen/src/LU
parent30b610a10f764529c7f93b6b7cd3cbf86a36e73d (diff)
port the QR module to PermutationMatrix
Diffstat (limited to 'Eigen/src/LU')
-rw-r--r--Eigen/src/LU/FullPivLU.h6
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()