BacktrackingLineSearch
class BacktrackingLineSearch(initfval: Double, maxIterations: Int, shrinkStep: Double, growStep: Double, cArmijo: Double, cWolfe: Double, minAlpha: Double, maxAlpha: Double, enforceWolfeConditions: Boolean, enforceStrongWolfeConditions: Boolean) extends ApproximateLineSearch
Implements the Backtracking Linesearch like that in LBFGS-C (which is (c) 2007-2010 Naoaki Okazaki under BSD)
Basic idea is that we need to find an alpha that is sufficiently smaller than f(0), and also possibly requiring that the slope of f decrease by the right amount (wolfe conditions)