From 72f3e20e74c45d08b8c23f7e4894e1b280f05665 Mon Sep 17 00:00:00 2001 From: Gael Guennebaud Date: Fri, 9 Jun 2017 11:57:53 +0200 Subject: [PATCH] Fix LeastSquareDiagonalPreconditioner for complexes (issue introduced in previous commit) (grafted from a7be4cd1b1ea4d85165f003d793f1d46b199b7bd ) --- Eigen/src/IterativeLinearSolvers/BasicPreconditioners.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Eigen/src/IterativeLinearSolvers/BasicPreconditioners.h b/Eigen/src/IterativeLinearSolvers/BasicPreconditioners.h index 279c9173c..facdaf890 100644 --- a/Eigen/src/IterativeLinearSolvers/BasicPreconditioners.h +++ b/Eigen/src/IterativeLinearSolvers/BasicPreconditioners.h @@ -158,18 +158,18 @@ class LeastSquareDiagonalPreconditioner : public DiagonalPreconditioner<_Scalar> for(Index j=0; j0) - m_invdiag(j) = RealScalar(1)/m_invdiag(j); + if(numext::real(m_invdiag(j))>RealScalar(0)) + m_invdiag(j) = RealScalar(1)/numext::real(m_invdiag(j)); } else { for(Index j=0; j0) + if(sum>RealScalar(0)) m_invdiag(j) = RealScalar(1)/sum; else m_invdiag(j) = RealScalar(1);