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.