From 22bcb4048426a5bd0fc19bbb7b762403dee0b721 Mon Sep 17 00:00:00 2001 From: Abdullah Tahiri Date: Sun, 21 Jun 2015 15:20:27 +0200 Subject: [PATCH] Sketcher: Bug fix: Dense QR is set by default ============================================= EigenQR branch 3.2 with debug code fails an assertion. The result is generally ok if we disable the assertions, however it eventually leads to memory leakage. This commit reenables Eigen's assertions when in debug mode, and sets dense QR as default QR algoritm until Eigen's issue is solved. --- src/Mod/Sketcher/App/CMakeLists.txt | 2 +- src/Mod/Sketcher/App/planegcs/GCS.cpp | 2 +- src/Mod/Sketcher/Gui/TaskSketcherSolverAdvanced.cpp | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/Mod/Sketcher/App/CMakeLists.txt b/src/Mod/Sketcher/App/CMakeLists.txt index 50f02edfd..43a7b3c8c 100644 --- a/src/Mod/Sketcher/App/CMakeLists.txt +++ b/src/Mod/Sketcher/App/CMakeLists.txt @@ -10,7 +10,7 @@ if (OPENMP_FOUND) set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}") endif() -set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DEIGEN_NO_DEBUG") # Necessary to avoid SparseQR crash with Eigen 3.2 due to a wrong assertion +# set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DEIGEN_NO_DEBUG") # Necessary to avoid SparseQR crash with Eigen 3.2 due to a wrong assertion include_directories( ${CMAKE_BINARY_DIR} diff --git a/src/Mod/Sketcher/App/planegcs/GCS.cpp b/src/Mod/Sketcher/App/planegcs/GCS.cpp index 43af042a4..ae3cf1680 100644 --- a/src/Mod/Sketcher/App/planegcs/GCS.cpp +++ b/src/Mod/Sketcher/App/planegcs/GCS.cpp @@ -162,7 +162,7 @@ System::System() maxIter(100), maxIterRedundant(100), sketchSizeMultiplier(true), sketchSizeMultiplierRedundant(true), convergence(1e-10), convergenceRedundant(1e-10), - qrAlgorithm(EigenSparseQR), debugMode(Minimal), + qrAlgorithm(EigenDenseQR), debugMode(Minimal), LM_eps(1E-10), LM_eps1(1E-80), LM_tau(1E-3), DL_tolg(1E-80), DL_tolx(1E-80), DL_tolf(1E-10), LM_epsRedundant(1E-10), LM_eps1Redundant(1E-80), LM_tauRedundant(1E-3), diff --git a/src/Mod/Sketcher/Gui/TaskSketcherSolverAdvanced.cpp b/src/Mod/Sketcher/Gui/TaskSketcherSolverAdvanced.cpp index c64e48c59..bda2f65c6 100644 --- a/src/Mod/Sketcher/Gui/TaskSketcherSolverAdvanced.cpp +++ b/src/Mod/Sketcher/Gui/TaskSketcherSolverAdvanced.cpp @@ -54,7 +54,7 @@ #define MAX_ITER 100 #define DEFAULT_SOLVER 2 // DL=2, LM=1, BFGS=0 #define DEFAULT_RSOLVER 2 // DL=2, LM=1, BFGS=0 -#define DEFAULT_QRSOLVER 1 // DENSE=0, SPARSEQR=1 +#define DEFAULT_QRSOLVER 0 // DENSE=0, SPARSEQR=1 #define DEFAULT_SOLVER_DEBUG 1 // None=0, Minimal=1, IterationLevel=2 #define MAX_ITER_MULTIPLIER true