From 7b1de22eee4ebd0aef352c3b88872c65aceb2ee0 Mon Sep 17 00:00:00 2001
From: "Dmitry Yu. Naumov" <github@naumov.de>
Date: Sat, 19 Sep 2015 00:49:29 +0000
Subject: [PATCH] [MaL] Compress eigen matrix before solve.

---
 MathLib/LinAlg/Eigen/EigenLinearSolver.cpp | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/MathLib/LinAlg/Eigen/EigenLinearSolver.cpp b/MathLib/LinAlg/Eigen/EigenLinearSolver.cpp
index 3c66f5cef42..5c70304f827 100644
--- a/MathLib/LinAlg/Eigen/EigenLinearSolver.cpp
+++ b/MathLib/LinAlg/Eigen/EigenLinearSolver.cpp
@@ -37,6 +37,8 @@ public:
     void solve(EigenVector::RawVectorType &b, EigenVector::RawVectorType &x, EigenOption &/*opt*/) override
     {
         INFO("-> solve");
+        if (!_A.isCompressed())
+            _A.makeCompressed();
         _solver.compute(_A);
         if(_solver.info()!=Eigen::Success) {
             ERR("Failed during Eigen linear solver initialization");
@@ -70,6 +72,8 @@ public:
         INFO("-> solve");
         _solver.setTolerance(opt.error_tolerance);
         _solver.setMaxIterations(opt.max_iterations);
+        if (!_A.isCompressed())
+            _A.makeCompressed();
         _solver.compute(_A);
         if(_solver.info()!=Eigen::Success) {
             ERR("Failed during Eigen linear solver initialization");
-- 
GitLab