machine precision as our experiments indicate.

Although it is advisable for computational reasons to keep $m$ large, $nev$ should not be too large because it increases the eigCG cost without providing more than a few good eigenpair approximations from one linear system. Computing many eigenpairs through the Incremental eigCG allows us to choose modest values for $nev$. In our experiments, we used $nev=10$ while larger values did not consistently improve the results. Other dynamic techniques for setting $nev$ based on monitoring eigenvalue separation and convergence are also possible but not explored in this paper.

Computationally, if the number of vectors in $U$ is $l$, the above algorithm costs $nev$ matrix-vector operations and $(4 l nev + 4 nev^2)N + 2 l nev N$ flops of level 3 BLAS for each new system solved. For very large $l$ this time could become noticeable, in which case we could use the following two optimizations. First, we note that orthogonalization of the new vectors is only performed to reduce the conditioning of $H$, so it does not need to be carried out accurately. Moreover, it would suffice to orthogonalize only those Ritz vectors in $V$ with large components in $U$. These can be 