"Algorithm 778: L-BFGS-B, FORTRAN routines for large scale bound constrained optimization"
R. Byrd, P. Lu, J. Nocedal, C. Zhu.
ACM Transactions on Mathematical Software, Vol 23, No. 4, pp. 550 - 560 (1997)
L-BFGS-B is a limited memory algorithm for solving large nonlinear optimization problems subject to simple bounds on the variables. It is intended for problems in which information on the Hessian matrix is difficult to obtain, or for large dense problems, L-BFGS-B can also be used for unconstrained problems, and in this case performs similarly to its predecessor, algorithm L-BFGS (Harwell routine VA15). The algorithm is implemented in Fortran 77.