The second use, less common but sometimes useful, is to compute the difference polynomial of a Hilbert polynomial.
The arguments can also be ring elements or vectors.
i1 : R = ZZ[x,y,z] o1 = R o1 : PolynomialRing |
i2 : f = vars R ** vars R o2 = | x2 xy xz xy y2 yz xz yz z2 | 1 9 o2 : Matrix R <--- R |
i3 : diff(transpose vars R, f) o3 = {1} | 2x y z y 0 0 z 0 0 | {1} | 0 x 0 x 2y z 0 z 0 | {1} | 0 0 x 0 0 y x y 2z | 3 9 o3 : Matrix R <--- R |
i4 : diff(x, f) o4 = | 2x y z y 0 0 z 0 0 | 1 9 o4 : Matrix R <--- R |
i5 : diff(y, f) o5 = | 0 x 0 x 2y z 0 z 0 | 1 9 o5 : Matrix R <--- R |
i6 : diff(z, f) o6 = | 0 0 x 0 0 y x y 2z | 1 9 o6 : Matrix R <--- R |
The object diff is a method function.