code: def hermgrid2d(x, y, c):
      """
      Evaluate a 2-D Hermite series on the Cartesian product of x and y.
  
      This function returns the values:
  
      .. math:: p(a,b) = \\sum_{i,j} c_{i,j} * H_i(a) * H_j(b)
  
      where the points `(a, b)` consist of all pairs formed by taking
      `a` from `x` and `b` from `y`. The resulting points form a grid with
      `x` in the first dimension and `y` in the second.
  
      The parameters `x` and `y` are converted to arrays only if they are
      tuples or a lists, otherwise they are treated as a scalars. In either
      case, either `x` and `y` or their elements must support multiplication
      and addition both with themselves and with the elements of `c`.
  
      If `c` has fewer than two dimensions, ones are implicitly appended to
      its shape to make it 2-D. The shape of the result will be c.shape[2:] +
      x.shape.
  
      Parameters
      ----------
      x, y : array_like, compatible objects
          The two dimensional series is evaluated at the points in the
          Cartesian product of `x` and `y`.  If `x` or `y` is a list or
          tuple, it is first converted to an ndarray, otherwise it is left
          unchanged and, if it isn't an ndarray, it is treated as a scalar.
      c : array_like
          Array of coefficients ordered so that the coefficients for terms of
          degree i,j are contained in ``c[i,j]``. If `c` has dimension
          greater than two the remaining indices enumerate multiple sets of
          coefficients.
  
      Returns
      -------
      values : ndarray, compatible object
          The values of the two dimensional polynomial at points in the Cartesian
          product of `x` and `y`.
  
      See Also
      --------
      hermval, hermval2d, hermval3d, hermgrid3d
  
      Notes
      -----
  
      .. versionadded:: 1.7.0
  
      """
      return pu._gridnd(hermval, c, x, y)
  
imports: import numpy
  import numpy.linalg
  from numpy.core.multiarray import normalize_axis_index
  from .None import polyutils
  from ._polybase import ABCPolyBase
label_desc: Use image node_id 15 for calling a global function with example usage: hermgrid2d(x, y, c) and returns: pu