diff --git a/Eigen/src/IterativeLinearSolvers/IterativeSolverBase.h b/Eigen/src/IterativeLinearSolvers/IterativeSolverBase.h index a7cb30cb9..5f4bcea11 100644 --- a/Eigen/src/IterativeLinearSolvers/IterativeSolverBase.h +++ b/Eigen/src/IterativeLinearSolvers/IterativeSolverBase.h @@ -212,13 +212,17 @@ public: Index rhsCols = b.cols(); Index size = b.rows(); Eigen::Matrix tb(size); - Eigen::Matrix tx(size); + Eigen::Matrix tx(cols()); + // We do not directly fill dest because sparse expressions have to be free of aliasing issue. + // For non square least-square problems, b and dest might not have the same size whereas they might alias each-other. + SparseMatrix tmp(cols(),rhsCols); for(Index k=0; k