From f05dea6b2326836e5e0243fbaffbece84b833d64 Mon Sep 17 00:00:00 2001 From: Gael Guennebaud Date: Fri, 8 Jun 2018 10:14:57 +0200 Subject: [PATCH] bug #1550: prevent avoidable memory allocation in RealSchur --- Eigen/src/Eigenvalues/RealSchur.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Eigen/src/Eigenvalues/RealSchur.h b/Eigen/src/Eigenvalues/RealSchur.h index b72799e5b..4c53344bb 100644 --- a/Eigen/src/Eigenvalues/RealSchur.h +++ b/Eigen/src/Eigenvalues/RealSchur.h @@ -284,13 +284,13 @@ RealSchur& RealSchur::computeFromHessenberg(const HessMa using std::abs; m_matT = matrixH; + m_workspaceVector.resize(m_matT.cols()); if(computeU) - m_matU = matrixQ; + matrixQ.evalTo(m_matU, m_workspaceVector); Index maxIters = m_maxIters; if (maxIters == -1) maxIters = m_maxIterationsPerRow * matrixH.rows(); - m_workspaceVector.resize(m_matT.cols()); Scalar* workspace = &m_workspaceVector.coeffRef(0); // The matrix m_matT is divided in three parts.