Closed stevengj closed 1 month ago
All modified and coverable lines are covered by tests :white_check_mark:
Project coverage is 98.54%. Comparing base (
d5bbb69
) to head (a529373
).
:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.
Should fix #109.
Our arbitrary-precision eigensolver works by Newton's method on $\det(J - \lambda I)$ where $J$ is the Jacobi matrix, but the problem is that the determinant calculation easily underflows. However, since what we actually want is only the ratio $\det(J - \lambda I) / \det'(J - \lambda I)$ (the Newton step), we can rescale to this ratio at each step of the tridiagonal-determinant iteration to suppress under/ovrerflow.
On a separate note, the Newton iteration was missing the
break
statement on the convergence check, so it was taking 1000x longer than necessary!