Skip to content

Latest commit

 

History

History
61 lines (51 loc) · 4.01 KB

File metadata and controls

61 lines (51 loc) · 4.01 KB

Arnoldi

This is an attempt to write an eigensolver for sparse matrices that only relies on NumPy and BLAS/LAPACK, without depending on ARPACK. Ultimately, the hope is to be a viable replacement for scipy.sparse.eigen, and remove the fortran dependency.

Why ?

ARPACK-NG is a fortran library for sparse eigen solvers. It has the following issues:

  • the fortran code is not thread-safe. In particular, it is not re-entrant
  • it does not incorporate some of the more recent improvements discovered for large problems, e.g. A Krylov-Schur Algorithm for Large Eigenproblems, G. W. Stewart, SIAM J. M ATRIX A NAL. A PPL ., Vol. 23, No. 3, pp. 601–614

TODO

  • Basic support for symmetric/hermitian matrices, largest eigen values only
    • add a basic set of test matrices, using sparse matrix suite + synthetic
    • add basic unrestarted Lanczos algorithm
    • add convergence tracking on Ritz values
    • add block + full reortho
    • try implicit / explicit restart (notebooks)
    • add locking / deflate
    • partial reorthogonalization
    • try krylov-schur method
  • add support for shift-invert (arbitrary eigen values)
  • extend to Hermitian/symmetric matrices (Arnoldi)

Existing alternative implementations

References