code: def polypow(c, pow, maxpower=None):
      """Raise a polynomial to a power.
  
      Returns the polynomial `c` raised to the power `pow`. The argument
      `c` is a sequence of coefficients ordered from low to high. i.e.,
      [1,2,3] is the series  ``1 + 2*x + 3*x**2.``
  
      Parameters
      ----------
      c : array_like
          1-D array of array of series coefficients ordered from low to
          high degree.
      pow : integer
          Power to which the series will be raised
      maxpower : integer, optional
          Maximum power allowed. This is mainly to limit growth of the series
          to unmanageable size. Default is 16
  
      Returns
      -------
      coef : ndarray
          Power series of power.
  
      See Also
      --------
      polyadd, polysub, polymulx, polymul, polydiv
  
      Examples
      --------
      >>> from numpy.polynomial import polynomial as P
      >>> P.polypow([1,2,3], 2)
      array([ 1., 4., 10., 12., 9.])
  
      """
      # c is a trimmed copy
      [c] = pu.as_series([c])
      power = int(pow)
      if power != pow or power < 0:
          raise ValueError("Power must be a non-negative integer.")
      elif maxpower is not None and power > maxpower:
          raise ValueError("Power is too large")
      elif power == 0:
          return np.array([1], dtype=c.dtype)
      elif power == 1:
          return c
      else:
          # This can be made more efficient by using powers of two
          # in the usual way.
          prd = c
          for i in range(2, power + 1):
              prd = np.convolve(prd, c)
          return prd
  
imports: from __future__ import division, absolute_import, print_function
  import warnings
  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 8 for calling a global function with example usage: polypow(c, pow, maxpower) and returns: np, c, prd