C++ implemention  of  l-bfgs