From 6b99afa5ae6b723a2c7678b07c4abcf7fc0b2129 Mon Sep 17 00:00:00 2001 From: Gael Guennebaud Date: Wed, 2 Sep 2015 15:34:03 +0200 Subject: [PATCH] Fix LSCG::solve with a sparse destination. --- Eigen/src/IterativeLinearSolvers/IterativeSolverBase.h | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) 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