| 
  | backtrack(func,
        args,
        x,
        f,
        g,
        p,
        a_init=1.0,
        rho=0.5,
        c=0.0001,
        max_iter=500)
   | source code |  Backtracking line search. Procedure 3.1, page 41, from 'Numerical Optimization' by Jorge Nocedal
  and Stephen J. Wright, 1999, 2nd ed. Requires the gradient vector at point xk. Internal variablesai  - The step length at line search iteration i. xai - The 
    parameter vector at step length ai. fai - The function value at step 
    length ai. 
    Parameters:
        func(func) - The function to minimise.args(tuple) - The tuple of arguments to supply to the functions func.x(numpy rank-1 array) - The parameter vector.f(float) - The function value at the point x.g(numpy rank-1 array) - The gradient vector at the point x.p(numpy rank-1 array) - The descent direction.a_init(float) - Initial step length.rho(float) - The step length scaling factor (should be between 0 and 1).c(float) - Constant between 0 and 1 determining the slope for the sufficient
          decrease condition.maxiter(int) - The maximum number of iterations.Returns: numpy rank-1 arrayThe parameter vector, minimised along the direction xk + ak.pk, 
          to be used at k+1. |