/**
  * @param function
  * @param lineSearcher
  * @param guess
  * @param direction
  * @return
  */
 protected double[] doLineSearch(
     DifferentiableFunction function,
     BacktrackingLineSearcher lineSearcher,
     double[] guess,
     double[] direction) {
   return lineSearcher.minimize(function, guess, direction);
 }