code: def rosen_hess_prod(x, p):
      """
      Product of the Hessian matrix of the Rosenbrock function with a vector.
  
      Parameters
      ----------
      x : array_like
          1-D array of points at which the Hessian matrix is to be computed.
      p : array_like
          1-D array, the vector to be multiplied by the Hessian matrix.
  
      Returns
      -------
      rosen_hess_prod : ndarray
          The Hessian matrix of the Rosenbrock function at `x` multiplied
          by the vector `p`.
  
      See Also
      --------
      rosen, rosen_der, rosen_hess
  
      Examples
      --------
      >>> from scipy.optimize import rosen_hess_prod
      >>> X = 0.1 * np.arange(9)
      >>> p = 0.5 * np.arange(9)
      >>> rosen_hess_prod(X, p)
      array([  -0.,   27.,  -10.,  -95., -192., -265., -278., -195., -180.])
  
      """
      x = atleast_1d(x)
      Hp = np.zeros(len(x), dtype=x.dtype)
      Hp[0] = (1200 * x[0] ** 2 - 400 * x[1] + 2) * p[0] - 400 * x[
          0
      ] * p[1]
      Hp[1:-1] = (
          -400 * x[:-2] * p[:-2]
          + (202 + 1200 * x[1:-1] ** 2 - 400 * x[2:]) * p[1:-1]
          - 400 * x[1:-1] * p[2:]
      )
      Hp[-1] = -400 * x[-2] * p[-2] + 200 * p[-1]
      return Hp
  
imports: import warnings
  import sys
  from numpy import atleast_1d, eye, argmin, zeros, shape, squeeze, asarray, sqrt, Inf, asfarray, isinf
  import numpy
  from .linesearch import line_search_wolfe1, line_search_wolfe2, line_search_wolfe2, LineSearchWarning
  from ._numdiff import approx_derivative
  from scipy._lib._util import getfullargspec_no_self
  from scipy._lib._util import MapWrapper
  from scipy.optimize._differentiable_functions import ScalarFunction, FD_METHODS
label_desc: Use image node_id 10 for calling a global function with example usage: rosen_hess_prod(x, p) and returns: Hp