OK let's assume sketcher works way faster on Windows compared to Linux and the difference just gets bigger and bigger in complex sketches. Let's assume it's not a bug because operation does get completed it just take more time or something else happens that aborts "infinite loop" after preset maximum number of iterations is reached.
It's definitely a different behaviour in the while-loop. I debugged through and the number of iterations was either 1 or 0. In case of 0 it was because "fx_inf <= tolf" was true and thus it left the loop immediately. So, the different behaviour has probably something to do with Eigen3 directly.
Could there be difference how Eigen is set up before compile time something like OpenMP is used on Windows and not on Linux? Or could it be OpenMP is the culprit in the first place this sounds very similar to what wmayer is describing:
The above excludes that OpenMP can be the culprit because:
1. Eigen3 is a pure template library which means that you don't have a library file. So, if there were some OpenMP related stuff you would set it in the CMakeLists.txt file of the Sketcher module. But there isn't anything.
2. The Windows packages on SF were built with the Express edition of Visual Studio which doesn't offer OpenMP.
Debugging info of System::solve_DL when going to edit mode:
VisualStudio wrote:xsize = 172
csize = 171
err = 1.89e-14
g_inf = 8.6893e-8
fx_inf = 1.13e-7
maxIterNumber = 17200
divergingLim = 1000000000000.0000
alpha = 1.0162805417041498
rel_error = 6.334e-5
err_new = 1.59e-22
dL = 1.89e-14
dF = 1.89e-14
rho = 1.0 (but > 1)
g_inf = 1.39e-11
fx_inf = 1.39e-11
reduce = -1
2nd iteration stops because "fx_inf <= tolf"