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 : contract(transpose vars R, f) o3 = {1} | x y z y 0 0 z 0 0 | {1} | 0 x 0 x y z 0 z 0 | {1} | 0 0 x 0 0 y x y z | 3 9 o3 : Matrix R <--- R |

i4 : contract(x, f) o4 = | x y z y 0 0 z 0 0 | 1 9 o4 : Matrix R <--- R |

i5 : contract(y, f) o5 = | 0 x 0 x y z 0 z 0 | 1 9 o5 : Matrix R <--- R |

i6 : contract(z, f) o6 = | 0 0 x 0 0 y x y z | 1 9 o6 : Matrix R <--- R |

This function is identical to diff(Matrix,Matrix), except that the multiplication by integers that occurs during differentiation is omitted.

- contract' -- contract a matrix by a matrix, the dual notion
- diff and contract