code: def rosen_der(x):
      """
      The derivative (i.e. gradient) of the Rosenbrock function.
  
      Parameters
      ----------
      x : array_like
          1-D array of points at which the derivative is to be computed.
  
      Returns
      -------
      rosen_der : (N,) ndarray
          The gradient of the Rosenbrock function at `x`.
  
      See Also
      --------
      rosen, rosen_hess, rosen_hess_prod
  
      """
      x = asarray(x)
      xm = x[1:-1]
      xm_m1 = x[:-2]
      xm_p1 = x[2:]
      der = numpy.zeros_like(x)
      der[1:-1] = (
          200 * (xm - xm_m1**2)
          - 400 * (xm_p1 - xm**2) * xm
          - 2 * (1 - xm)
      )
      der[0] = -400 * x[0] * (x[1] - x[0] ** 2) - 2 * (1 - x[0])
      der[-1] = 200 * (x[-1] - x[-2] ** 2)
      return der
  
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 5 for calling a global function with example usage: rosen_der(x) and returns: der