JuliaLinearAlgebra / ArnoldiMethod.jl

The Arnoldi Method with Krylov-Schur restart, natively in Julia.
https://julialinearalgebra.github.io/ArnoldiMethod.jl/dev
MIT License
96 stars 18 forks source link

Krylov-Schur restart: use Given's rotations to zero out Q-column #139

Closed haampie closed 7 months ago

haampie commented 7 months ago

This should be slightly more stable than the Householder reflection that was computed before.

The Q-vector may have entries with vastly different orders of magnitude, so looks more stable to use a few Given's rotations to zero out Q.

Happens especially with eigenvalues close to zero, since they need an even smaller residual thanks to the stopping criterion.

Will check if a better strategy would be to just properly purge converged vecs, so their residuals don't even show up in the bits of Q we need to compute a reflector for.

codecov[bot] commented 7 months ago

Codecov Report

All modified and coverable lines are covered by tests :white_check_mark:

Comparison is base (2a264db) 95.47% compared to head (0bfd442) 95.68%.

Additional details and impacted files ```diff @@ Coverage Diff @@ ## master #139 +/- ## ========================================== + Coverage 95.47% 95.68% +0.21% ========================================== Files 10 10 Lines 839 835 -4 ========================================== - Hits 801 799 -2 + Misses 38 36 -2 ```

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.