Algorithm 809: PREQN: Fortran 77 subroutines for preconditioning the conjugate gradient method

José Luis Morales*, Jorge Nocedal

*Corresponding author for this work

Research output: Contribution to journalArticlepeer-review

12 Scopus citations


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 Aix = bi, i = 1, . . . , t, where the coefficient matrices Ai are symmetric and positive definite and vary slowly. Problems of this type arise, for example, in nonlinear 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 of the form Aiv 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.

Original languageEnglish (US)
Pages (from-to)83-91
Number of pages9
JournalACM Transactions on Mathematical Software
Issue number1
StatePublished - Mar 2001


  • G.1.3 [Numerical Analysis]: Numerical linear algebra - Linear systems (direct and iterative methods)
  • G.1.6 [Numerical Analysis]: Optimization - Gradient methods
  • Unconstrained optimization

ASJC Scopus subject areas

  • Software
  • Applied Mathematics


Dive into the research topics of 'Algorithm 809: PREQN: Fortran 77 subroutines for preconditioning the conjugate gradient method'. Together they form a unique fingerprint.

Cite this