Skip to content

Remove poor non-convergence checks in NonLinearOptimization.

Both the levenberg_marquardt and NonLinearOptimization tests are essentially the same. For some reason, they purposely check for a specific status that indicates non-convergence, even though there are many closely related statuses based on tolerances. They also check for exact (or near exact) number of iterations. This makes no sense in general when dealing with multiple architectures, nor when considering things like FMA and optimization levels (e.g. -O3) can slightly change numerical results.

Removed a bunch of poor checks to allow these tests to pass.

Note: the NonLinearOptimization subpackage seems to be an "updated" version of LevenbergMarquardt. They have a bunch of colliding symbols and the test is nearly identical. We may consider removing one (or both) of these.

Merge request reports

Loading