p0 = p1d2 + p2d1 print('(p2-p1) + (p1-p2): ', end='') dbgPoly(p0) print('equals 0:', p0 == 0) p1m2 = p1 * p2 print('p1*p2: ', end='') dbgPoly(p1m2) print('(p1*p2).subs({x:2}):', p1m2.subs({'x': 2}), ', (p1*p2).subs({y:3}):', p1m2.subs({'y': 3}), ', (p1*p2).subs({x:2,y:3}):', p1m2.subs({ 'x': 2, 'y': 3 })) print('\np1 and p2 must have remained unchanged:') print('p1:', p1, ', p2:', p2) print() z = symbol('z') ps = x + y + z dbgPoly(ps) ps2 = ps**2 dbgPoly(ps2) print(ps2(3)) print(ps2(3)(2)) print(ps2(3)(2)(1)) pxyz = Poly.fromString('-x*y*z') dbgPoly(pxyz)