(* FACTORING *) (a x + b x^2 + c // factorOut[x]) === x(a + b x + c/x) (a x + b x^2 + c // factorOut[b c x]) === b c x (a/(b c) + x/c + 1/(b x)) (x // factorOut[-1]) === x (x-y // factorOut[-1]) === -HoldForm[-x+y] (a (x-y) // factorOut[-1]) === -a(y-x) (a x^2 y + b x^3 y^2 // factor) === x^2 y (a + b x y) (x // factor) === x s = x + a x (b x y + 2 c x y); (s // factor) === x (1 + a (b x y + 2 c x y)) (s // workOutwards[Plus][factor]) === x (1 + a (b + 2 c) x y) (* ========================================================== *) (* *)