The method implemented in LBFGS is the limited-memory BFGS algorithm, as described Liu and Nocedal [1989]. It is intended for problems with many variables. In this method quasi-Newton corrections are stored in vector form; when the available storage is used up, the oldest correction is deleted to make space for a new one. The user specifies the number m of BFGS corrections that should be stored. LBFGS requires 2m(n+1)+4n storage locations.

The steplength is determined at each iteration by a line-search routine (supplied by J. Moré and D. Thuente) that enforces a sufficient decrease condition and a curvature condition.

LBFGS is written in Fortran 77. Single- and double-precision versions of the software are available. Machine dependencies are restricted to BLOCK DATA LB2.

LBFGS is also available in the Harwell Library under the name VA15.