How to obtain smallest eigenvalues with Arnoldi iteration

I understand that the Arnoldi iteration produces a basis which tends to include in its span the eigenvectors corresponding to eigenvalues of large magnitude (hence the analogy between the last vector of the Krylov subspace, $$A^{n - 1} b$$, and the result of $$n - 1$$ iterations of power iteration method made in this Wikipedia article).

However, most solver implementations (for example this) allow for the user to choose between obtaining the eigenvalues of largest or smallest magnitude, or even the ones of smallest real part.

How would that be implemented?

• A rather handwavy answer is already in the Wikipedia article: "To get the smallest eigenvalues of A, the inverse (operation) of A should be used instead. " How the action of the inverse of A should be implemented is an active research topic itself, but you can check Yousef Saad's Numerical Methods for Large Eigenvalue Problems. It is a little bit (9 years old) now and the literature shifted significantly. However, it is a good start. Jul 25 at 17:44