From 2a54fba0980e028db3dd9de7e5171c88f5bd02b2 Mon Sep 17 00:00:00 2001 From: Abdullah Tahiri Date: Wed, 24 Jun 2015 15:10:24 +0200 Subject: [PATCH] Sketcher: SparseQR as default QR method ======================================= The SparseQR is set as default method. However, in accordance with the previous commit, only if a new enough Eigen library is present will SparseQR be executed. If the library is old and SparseQR can not be reliably used, FC will automatically fall back to use DenseQR. This ensures that users that have a new enough library > 3.2.2 will benefit from the performance increase, while the users that use older library will still have the same performance as in legacy FC. --- src/Mod/Sketcher/App/planegcs/GCS.cpp | 2 +- src/Mod/Sketcher/Gui/TaskSketcherSolverAdvanced.cpp | 2 +- src/Mod/Sketcher/Gui/TaskSketcherSolverAdvanced.ui | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/Mod/Sketcher/App/planegcs/GCS.cpp b/src/Mod/Sketcher/App/planegcs/GCS.cpp index a7979ffcd..a63ce3b70 100644 --- a/src/Mod/Sketcher/App/planegcs/GCS.cpp +++ b/src/Mod/Sketcher/App/planegcs/GCS.cpp @@ -175,7 +175,7 @@ System::System() maxIter(100), maxIterRedundant(100), sketchSizeMultiplier(true), sketchSizeMultiplierRedundant(true), convergence(1e-10), convergenceRedundant(1e-10), - qrAlgorithm(EigenDenseQR), debugMode(Minimal), + qrAlgorithm(EigenSparseQR), 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 8eb6c4687..d7d90281a 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 0 // DENSE=0, SPARSEQR=1 +#define DEFAULT_QRSOLVER 1 // DENSE=0, SPARSEQR=1 #define QR_PIVOT_THRESHOLD 1E-13 // under this value a Jacobian value is regarded as zero #define DEFAULT_SOLVER_DEBUG 1 // None=0, Minimal=1, IterationLevel=2 #define MAX_ITER_MULTIPLIER true diff --git a/src/Mod/Sketcher/Gui/TaskSketcherSolverAdvanced.ui b/src/Mod/Sketcher/Gui/TaskSketcherSolverAdvanced.ui index a9e194ad0..7d26cd91f 100644 --- a/src/Mod/Sketcher/Gui/TaskSketcherSolverAdvanced.ui +++ b/src/Mod/Sketcher/Gui/TaskSketcherSolverAdvanced.ui @@ -245,7 +245,7 @@ - 0 + 1 QRMethod