more compact version of l-BFGS