prototype of LBFGS