code: def _linesearch_powell(func, p, xi, tol=1e-3):
      """Line-search algorithm using fminbound.
  
      Find the minimium of the function ``func(x0+ alpha*direc)``.
  
      """
  
      def myfunc(alpha):
          return func(p + alpha * xi)
  
      alpha_min, fret, iter, num = brent(myfunc, full_output=1, tol=tol)
      xi = alpha_min * xi
      return squeeze(fret), p + xi, xi
  
imports: from __future__ import division, print_function, absolute_import
  import warnings
  import sys
  import numpy
  from scipy._lib.six import callable, xrange
  from numpy import atleast_1d, eye, mgrid, argmin, zeros, shape, squeeze, vectorize, asarray, sqrt, Inf, asfarray, isinf
  import numpy
  from .linesearch import line_search_wolfe1, line_search_wolfe2, line_search_wolfe2, LineSearchWarning
  from scipy._lib._util import getargspec_no_self
label_desc: Use image node_id 29 for calling a global function with example usage: _linesearch_powell(func, p, xi, tol) and returns: squeeze,  unknown,  xi, func