class_docstr: Efficient representation of ``f_1*f_2*...*f_n``.
class_docstr_tok: ["Efficient","representation","of","``","f_1","*","f_2","*","...","*","f_n","``","."]
docstr: Return Factors of ``self * other``.
  
  Examples
  ========
  
  >>> from sympy.core.exprtools import Factors
  >>> from sympy.abc import x, y, z
  >>> a = Factors((x*y**2).as_powers_dict())
  >>> b = Factors((x*y/z).as_powers_dict())
  >>> a.mul(b)
  Factors({x: 2, y: 3, z: -1})
  >>> a*b
  Factors({x: 2, y: 3, z: -1})
docstr_tok: ["Return","Factors","of","``","self","*","other","``",".","Examples","========",">",">",">","from","sympy.core.exprtools","import","Factors",">",">",">","from","sympy.abc","import","x",",","y",",","z",">",">",">","a","=","Factors","(","(","x","*","y","*","*","2",")",".as_powers_dict","(",")",")",">",">",">","b","=","Factors","(","(","x","*","y\/z",")",".as_powers_dict","(",")",")",">",">",">","a.mul","(","b",")","Factors","(","{","x",":","2",",","y",":","3",",","z",":","-1","}",")",">",">",">","a","*","b","Factors","(","{","x",":","2",",","y",":","3",",","z",":","-1","}",")"]
code: def mul(self, other):  # Factors
      """Return Factors of ``self * other``.
  
      Examples
      ========
  
      >>> from sympy.core.exprtools import Factors
      >>> from sympy.abc import x, y, z
      >>> a = Factors((x*y**2).as_powers_dict())
      >>> b = Factors((x*y/z).as_powers_dict())
      >>> a.mul(b)
      Factors({x: 2, y: 3, z: -1})
      >>> a*b
      Factors({x: 2, y: 3, z: -1})
      """
      if not isinstance(other, Factors):
          other = Factors(other)
      if any(f.is_zero for f in (self, other)):
          return Factors(S.Zero)
      factors = dict(self.factors)
  
      for factor, exp in other.factors.items():
          if factor in factors:
              exp = factors[factor] + exp
  
              if not exp:
                  del factors[factor]
                  continue
  
          factors[factor] = exp
  
      return Factors(factors)
  
imports: from .add import Add
  from .mul import Mul, _keep_coeff
  from .power import Pow
  from .basic import Basic
  from .expr import Expr
  from .function import expand_power_exp
  from .sympify import sympify
  from .numbers import Rational, Integer, Number, I, equal_valued
  from .singleton import S
  from .sorting import default_sort_key, ordered
  from .symbol import Dummy
  from .traversal import preorder_traversal
  from .coreerrors import NonCommutativeExpression
  from .containers import Tuple, Dict
  from sympy.external.gmpy import SYMPY_INTS
  from sympy.utilities.iterables import common_prefix, common_suffix, variations, iterable, is_sequence
  from collections import defaultdict
  from typing import Tuple
label_desc: Use image node_id 7 for calling the Factors obj's underlying member method code with example usage: obj.mul(other) and returns: Factors, Factors