Skip to content

cournape/arnoldi-py

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

40 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

  • Fundamental support for arbitrary matrices, largest eigen values only
    • basic arnoldi decomp w/ tests
    • add a key set of test matrices, using sparse matrix suite + synthetic (Markov, Laplace, etc.)
    • convergence tracking on Ritz values
    • explicit restart support with deflation
    • krylov-schur method
  • add support for shift-invert (arbitrary eigen values)
  • extend to Hermitian/symmetric matrices (Lanczos)

Existing alternative implementations

References

About

pure python reference implementation of sparse eigen solvers

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages