You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Adding root polishing step to solve_quartic function.
Newton-Raphson step added to polish initial roots found by the solve_quartic
function. The core solve_quartic tolerance allows roots to drift from <0.0
to >0.0 values with the latter causing artifacts and additional root
filtering. This the very likely the reason for the long too large 1e-2
intersection depth value in blob.cpp now reduced to
MIN_ISECT_DEPTH_RETURNED.
As part of this change created a new FUDGE_FACTOR4(1e-8) constant DBL value
to replace previous use of SMALL_ENOUGH(1e-10) within solve_quartic. Looks
like the value had been smaller to make roots more accurate, but at the cost
of missing roots in some difficult equation cases. With the root polishing
can move back to a larger value so as to always get roots. Yes, this better
addresses most of what the already remove difficult_coeffs() function and
bump into polysolve was trying to do.
0 commit comments