The arguments `m` and `n` may also be vectors or ring elements.

i1 : R = QQ[a,b,c][x,y,z] o1 = R o1 : PolynomialRing |

i2 : m = transpose vars R o2 = {-1, 0} | x | {-1, 0} | y | {-1, 0} | z | 3 1 o2 : Matrix R <--- R |

i3 : n = matrix{{x^2-a*y^3, x^3-z^2*y, x*y-b, x*z-c}} o3 = | -ay3+x2 x3-yz2 xy-b xz-c | 1 4 o3 : Matrix R <--- R |

i4 : diff(m,n) o4 = {1, 0} | 2x 3x2 y z | {1, 0} | -3ay2 -z2 x 0 | {1, 0} | 0 -2yz 0 x | 3 4 o4 : Matrix R <--- R |

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