  In this work we present and evaluate an implementation of the
purify-shift-and-project method [J. Chem. Phys. 128, 176101 (2008)] for linear
scaling computation of multiple eigenvectors around the homo-lumo gap of the
Fock/Kohn-Sham matrix. Recursive polynomial expansions allow for linear scaling
density matrix construction if matrices are sufficiently sparse. However, a
drawback is that, compared to the traditional diagonalization approach,
eigenvectors of the Fock/Kohn-Sham matrix are not readily available. The sharp
polynomial filter, constructed in intermediate iterations of the recursive
polynomial expansion, increases the relative separation of eigenvalues near the
homo-lumo gap. The computed density matrix approximation is used to project
away the uninteresting part of the spectrum, so that the eigenvalues of
interest become the extreme eigenvalues, enabling fast convergence of a Lanczos
eigensolver. We implement the purify-shift-and-project algorithm in the quantum
chemistry program Ergo [SoftwareX 7, 107 (2018)]. We illustrate the performance
of the method by computing 30 eigenvectors around the homo-lumo gap for large
scale systems.
