c++ version of lbfgs