code: def legmul(c1, c2):
      """
      Multiply one Legendre series by another.
  
      Returns the product of two Legendre series `c1` * `c2`.  The arguments
      are sequences of coefficients, from lowest order "term" to highest,
      e.g., [1,2,3] represents the series ``P_0 + 2*P_1 + 3*P_2``.
  
      Parameters
      ----------
      c1, c2 : array_like
          1-D arrays of Legendre series coefficients ordered from low to
          high.
  
      Returns
      -------
      out : ndarray
          Of Legendre series coefficients representing their product.
  
      See Also
      --------
      legadd, legsub, legmulx, legdiv, legpow
  
      Notes
      -----
      In general, the (polynomial) product of two C-series results in terms
      that are not in the Legendre polynomial basis set.  Thus, to express
      the product as a Legendre series, it is necessary to "reproject" the
      product onto said basis set, which may produce "unintuitive" (but
      correct) results; see Examples section below.
  
      Examples
      --------
      >>> from numpy.polynomial import legendre as L
      >>> c1 = (1,2,3)
      >>> c2 = (3,2)
      >>> L.legmul(c1,c2) # multiplication requires "reprojection"
      array([  4.33333333,  10.4       ,  11.66666667,   3.6       ]) # may vary
  
      """
      # s1, s2 are trimmed copies
      [c1, c2] = pu.as_series([c1, c2])
  
      if len(c1) > len(c2):
          c = c2
          xs = c1
      else:
          c = c1
          xs = c2
  
      if len(c) == 1:
          c0 = c[0] * xs
          c1 = 0
      elif len(c) == 2:
          c0 = c[0] * xs
          c1 = c[1] * xs
      else:
          nd = len(c)
          c0 = c[-2] * xs
          c1 = c[-1] * xs
          for i in range(3, len(c) + 1):
              tmp = c0
              nd = nd - 1
              c0 = legsub(c[-i] * xs, (c1 * (nd - 1)) / nd)
              c1 = legadd(tmp, (legmulx(c1) * (2 * nd - 1)) / nd)
      return legadd(c0, legmulx(c1))
  
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 8 for calling a global function with example usage: legmul(c1, c2) and returns: legadd