added recursive version of lbfgs_solve and unittest