code: def hermevander3d(x, y, z, deg):
      """Pseudo-Vandermonde matrix of given degrees.
  
      Returns the pseudo-Vandermonde matrix of degrees `deg` and sample
      points `(x, y, z)`. If `l, m, n` are the given degrees in `x, y, z`,
      then Hehe pseudo-Vandermonde matrix is defined by
  
      .. math:: V[..., (m+1)(n+1)i + (n+1)j + k] = He_i(x)*He_j(y)*He_k(z),
  
      where `0 <= i <= l`, `0 <= j <= m`, and `0 <= j <= n`.  The leading
      indices of `V` index the points `(x, y, z)` and the last index encodes
      the degrees of the HermiteE polynomials.
  
      If ``V = hermevander3d(x, y, z, [xdeg, ydeg, zdeg])``, then the columns
      of `V` correspond to the elements of a 3-D coefficient array `c` of
      shape (xdeg + 1, ydeg + 1, zdeg + 1) in the order
  
      .. math:: c_{000}, c_{001}, c_{002},... , c_{010}, c_{011}, c_{012},...
  
      and  ``np.dot(V, c.flat)`` and ``hermeval3d(x, y, z, c)`` will be the
      same up to roundoff. This equivalence is useful both for least squares
      fitting and for the evaluation of a large number of 3-D HermiteE
      series of the same degrees and sample points.
  
      Parameters
      ----------
      x, y, z : array_like
          Arrays of point coordinates, all of the same shape. The dtypes will
          be converted to either float64 or complex128 depending on whether
          any of the elements are complex. Scalars are converted to 1-D
          arrays.
      deg : list of ints
          List of maximum degrees of the form [x_deg, y_deg, z_deg].
  
      Returns
      -------
      vander3d : ndarray
          The shape of the returned matrix is ``x.shape + (order,)``, where
          :math:`order = (deg[0]+1)*(deg[1]+1)*(deg[2]+1)`.  The dtype will
          be the same as the converted `x`, `y`, and `z`.
  
      See Also
      --------
      hermevander, hermevander3d, hermeval2d, hermeval3d
  
      Notes
      -----
  
      .. versionadded:: 1.7.0
  
      """
      return pu._vander_nd_flat(
          (hermevander, hermevander, hermevander), (x, y, z), deg
      )
  
imports: import numpy
  import numpy.linalg
  from numpy.lib.array_utils import normalize_axis_index
  from .None import polyutils
  from ._polybase import ABCPolyBase
label_desc: Use image node_id 20 for calling a global function with example usage: hermevander3d(x, y, z, deg) and returns: pu