"Algorithm PREQN: FORTRAN subroutines for preconditioning the conjugate gradient method "
J.L. Morales, J. Nocedal
ACM Transactions on Mathematical Software. Vol. 27, No. 1, pp.83-91 (2001)

PREQN is a package of Fortran 77 subroutines for automatically generating preconditioners for the conjugate gradient method. It is designed for solving a sequence of linear systems where the coefficient matrices are symmetric and positive definite and vary slowly. Problems of this type arise, for example, in non-linear optimization. The preconditioners are based on limited memory quasi-Newton updating and are recommended for problems in which: i) the coefficient matrices are not explicitly known and only matrix-vector products can be computed; or ii) the coefficient matrices are not sparse. PREQN is written so that a single call from a conjugate gradient routine performs the preconditioning operation and stores information needed for the generation of a new preconditioner.
Download (pdf)