code: def _compute_factors(roots, multiplicity, include_powers=False):
      """Compute the total polynomial divided by factors for each root."""
      current = np.array([1])
      suffixes = [current]
      for pole, mult in zip(roots[-1:0:-1], multiplicity[-1:0:-1]):
          monomial = np.array([1, -pole])
          for _ in range(mult):
              current = np.polymul(current, monomial)
          suffixes.append(current)
      suffixes = suffixes[::-1]
  
      factors = []
      current = np.array([1])
      for pole, mult, suffix in zip(roots, multiplicity, suffixes):
          monomial = np.array([1, -pole])
          block = []
          for i in range(mult):
              if i == 0 or include_powers:
                  block.append(np.polymul(current, suffix))
              current = np.polymul(current, monomial)
          factors.extend(reversed(block))
  
      return factors, current
  
imports: import operator
  import math
  import timeit
  from scipy.spatial import cKDTree
  from .None import sigtools, dlti
  from ._upfirdn import upfirdn, _output_len, _upfirdn_modes
  from scipy import linalg, fft
  from scipy.fft._helper import _init_nd_shape_and_axes
  from scipy._lib._util import prod
  import numpy
  from scipy.special import lambertw
  from .windows import get_window
  from ._arraytools import axis_slice, axis_reverse, odd_ext, even_ext, const_ext
  from .filter_design import cheby1, _validate_sos
  from .fir_filter_design import firwin
  from ._sosfilt import _sosfilt
  import warnings
label_desc: Use image node_id 35 for calling a global function with example usage: _compute_factors(roots, multiplicity, include_powers) and returns: factors,  current