EIGIFP.m:   -  A matlab program that computes a few (algebraically) smallest or largest eigenvalues of a large symmetric matrix A or the generalized eigenvalue problem for a pencil (A, B):


A x = lambda x    or      A x = lambda B x


where A and B are symmetric and B is positive definite.


  • It is a black-box implementation of the inverse free preconditioned Krylov subspace method of

G. Golub  and  Q.  Ye An Inverse Free Preconditioned Krylov Subspace Method for
Symmetric Generalized Eigenvalue ProblemsSIAM Journal on Scientific Computing, 24:312-334.



1.      A two level iteration with a projection on Krylov subspaces generated by a shifted matrix A-lambda_k B in the inner iteration;  Either the Lanczos algorithm or the Arnoldi algorithm is employed for the projection; Adaptive choice of inner iterations;


2.      A preconditioning technique based on a congruence transformation to accelerate convergence;


3.      A built-in preconditioner using threshold ILU factorization;  Particularly suitable for problems where any of the following applies:


a)      factorization of B (i.e. inverting B) is difficult;

b)      factorization of a shifted matrix A-lambda_k B (i.e. inverting it) is difficult;

c)      no a priori information is available on the location of the spectrum sought.


[lambda, x] = eigifp(A):           computes the (algebraically)  smallest eigenvalue/eigenvector of A;
[Lambda, X] = eigifp(A, k):     computes the k (algebraicaly)  smallest eigenvalue/eigenvector of A;

[lambda, x] = eigifp(A, B):       computes the (algebraically) smallest eigenvalue/eigenvector of (A, B);
[Lambda, X] = eigifp(A, B, k): computes the (algebraically)  smallest eigenvalue/eigenvector of (A, B);


To compute the largest eigenvalues, one simply computes the smallest eigenvalue of –A (or (-A, B)) and then negates the eigenvalue. Example: 

[Lambda, X] = eigifp(-A,B,k); Lambda=-Lambda;  =>  k largest eigenvalues/eigenvectors of (A,B);


To use any a priori information or to control computational cost and optimize performance,
eigifp(A, opt), eigifp(A, k, opt),  eigifp(A, B, opt) and  eigifp(A, B, k, opt) take optional inputs
defined by opt.  Use

help  eigifp

to find out the details.  The following is a documentation of the program. 




We are also working to extend program's capabilities such as dealing with severely clustered eigenvalues

or interior eigenvalues. So, check back for the future versions.  


To download version 2.1.1, please enter your e-mail address in the form below and then click Download.  (Please note that the e-mail will be added to a distribution list for related announcements.)  EIGIFP is develped by Qiang Ye.  This work is supported in part by NSF grants CCR - 0098133 and DMS-0411502.

Please note that this program is provided for research and educational use.  Neither redistribution nor commercial use is permitted without consent of the author.


Your suggestions, comments, bug reports, and reports of failure as well as success would all be very important to this project.  Please send them to: qye3 “at” uky . edu.


E-Mail Address :


BLEIGIFP: - is based on a block generalization of the inverse free preconditioned Krylov subspace method that can compute multiple or severely clustered eigenvalues. The present version implements either a preconditioned algorithm or non-preconditioned algorithm, but it has a scheme to choose block size adaptively. See the BLEIGIFP page for details and download information.



Other programs for preconditioned eigenvalue iterations can be found in Andrew Knyazev's eigensolvers page .



Return to Ye's Homepage.