JuliaLang/julia — pull request #4350 by Jutho (2013-09-23 21:36:21+00:00)
Title: Eigs (arpack) starting vector and additional output

I have added the functionality of specifying a starting vector for the eigs routine, which uses the Arnoldi solver in ARPACK. As mentioned in the ARPACK user's guide:
"The parameter info should be set to 0 on the initial call to dsaupd unless the user wants to supply the starting vector that initializes the IRLM. Normally, this default is a reasonable choice. However, if this eigenvalue calculation is one of a sequence of closely related problems then convergence may be accelerated if a suitable starting vector is specified. Typical choices in this situation might be to use the final value of the starting vector from the previous eigenvalue calculation (that vector will already be in the first column of V) or to construct a starting vector by taking a linear combination of the computed eigenvectors from the previously converged eigenvalue calculation. If the starting vector is to be supplied, then it should be placed in the array resid and info should be set to 1 on entry to dsaupd."

Eigs now also returns additional information regarding the convergence of the Arnoldi eigensolver. In particular, next to the Ritz vectors and eigenvalues, it returns the number of iterations, the number of matrix vector multiplications and the residual vector.