where the updated inverse Hessian is used to form the Newton step, △x = H -1 △g. The L-BFGS method avoids the complete Hessian or its inverse from being stored because doing so would need O(n 2 ) memory for n variables. Since L-BFGS starts with a diagonal inverse Hessian and only stores the x and g vectors from a few prior iterations, the storage requirement is only O(n). The inverse Hessian is expressed as a diagonal Hessian plus the updates using the saved vectors. The new coordinates, x new = x old -H -1 g old , may be expressed in terms of dot products between vectors, therefore the product of the updated inverse Hessian and the gradient only requires O(n) work.