code: def _div(mul_f, c1, c2):
      """
      Helper function used to implement the ``<type>div`` functions.
  
      Implementation uses repeated subtraction of c2 multiplied by the nth basis.
      For some polynomial types, a more efficient approach may be possible.
  
      Parameters
      ----------
      mul_f : function(array_like, array_like) -> array_like
          The ``<type>mul`` function, such as ``polymul``
      c1, c2
          See the ``<type>div`` functions for more detail
      """
      # c1, c2 are trimmed copies
      [c1, c2] = as_series([c1, c2])
      if c2[-1] == 0:
          raise ZeroDivisionError()
  
      lc1 = len(c1)
      lc2 = len(c2)
      if lc1 < lc2:
          return c1[:1] * 0, c1
      elif lc2 == 1:
          return c1 / c2[-1], c1[:1] * 0
      else:
          quo = np.empty(lc1 - lc2 + 1, dtype=c1.dtype)
          rem = c1
          for i in range(lc1 - lc2, -1, -1):
              p = mul_f([0] * i + [1], c2)
              q = rem[-1] / p[-1]
              rem = rem[:-1] - q * p[:-1]
              quo[i] = q
          return quo, trimseq(rem)
  
imports: import operator
  import functools
  import warnings
  import numpy
  from numpy.core.multiarray import dragon4_positional, dragon4_scientific
  from numpy.core.umath import absolute
label_desc: Use image node_id 13 for calling a global function with example usage: _div(mul_f, c1, c2) and returns: unknown,  c1, unknown,  unknown, quo,  trimseq