# Factor

### Description

• Factor factors a symbolic polynomial over the integers.
• Factor applies only to scalar parts of expressions.
• Factor applies only to the top algebraic level in an expression.
• Factor tries to factor all scalar combinations of tensors (like k_a*k^a), which it treats as independent variables. Factor[[FactorScalars: false]] will apply only to symbolic expressions, which contain no any indexed variables.

### Examples

Factor a multivariate polynomial:

def t = '2*x**3*y - 2*a**2*x*y - 3*a**2*x**2 + 3*a**4'.t
println Factor >> t

   > (x+a)*(x-a)*(-3*a**2+2*y*x)


Factor scalar parts in tensorial expression:

def t = '(a+b)**4*F_mn + (x**6-y**6)*R_mn'.t
println Factor >> t

   > (a+b)**4*F_mn+(x+y)*(x-y)*(x*y+x**2+y**2)*(-x*y+x**2+y**2)*R_mn


Factor expression that contains scalar combinations:

def t = '(a+b)**2*f_m*f^m + (a**2 - b**2)*f_a*f^a*f_b*f^b'.t
println Factor >> t

   > (a+b+(a-b)*f_{m}*f^{m})*(a+b)*f_{a}*f^{a}

Do not factor “tensorial” scalars:
println Factor[[FactorScalras:false]] >> t

   > (a+b)**2*f_{m}*f^{m}-(b+a)*(b-a)*f_{a}*f^{a}*f_{b}*f^{b}