code: def polysub(a1, a2):
      """
      Difference (subtraction) of two polynomials.
  
      Given two polynomials `a1` and `a2`, returns ``a1 - a2``.
      `a1` and `a2` can be either array_like sequences of the polynomials'
      coefficients (including coefficients equal to zero), or `poly1d` objects.
  
      Parameters
      ----------
      a1, a2 : array_like or poly1d
          Minuend and subtrahend polynomials, respectively.
  
      Returns
      -------
      out : ndarray or poly1d
          Array or `poly1d` object of the difference polynomial's coefficients.
  
      See Also
      --------
      polyval, polydiv, polymul, polyadd
  
      Examples
      --------
      .. math:: (2 x^2 + 10 x - 2) - (3 x^2 + 10 x -4) = (-x^2 + 2)
  
      >>> np.polysub([2, 10, -2], [3, 10, -4])
      array([-1,  0,  2])
  
      """
      truepoly = isinstance(a1, poly1d) or isinstance(a2, poly1d)
      a1 = atleast_1d(a1)
      a2 = atleast_1d(a2)
      diff = len(a2) - len(a1)
      if diff == 0:
          val = a1 - a2
      elif diff > 0:
          zr = NX.zeros(diff, a1.dtype)
          val = NX.concatenate((zr, a1)) - a2
      else:
          zr = NX.zeros(abs(diff), a2.dtype)
          val = a1 - NX.concatenate((zr, a2))
      if truepoly:
          val = poly1d(val)
      return val
  
imports: from __future__ import division, absolute_import, print_function
  import functools
  import re
  import warnings
  import numpy.core.numeric
  from numpy.core import isscalar, abs, finfo, atleast_1d, hstack, dot, array, ones
  from numpy.core import overrides
  from numpy.core.overrides import set_module
  from numpy.lib.twodim_base import diag, vander
  from numpy.lib.function_base import trim_zeros
  from numpy.lib.type_check import iscomplex, real, imag, mintypecode
  from numpy.linalg import eigvals, lstsq, inv
label_desc: Use image node_id 15 for calling a global function with example usage: polysub(a1, a2) and returns: val