Splits the Dim(anyA..., lastA) left-hand grid into Dim(anyA...) pieces of Dim(lastA) size. Splits the Dim(firstB, anyB...) right-hand grid into Dim(anyB...) pieces of Dim(firstB) size. creates a Dim(anyA..., anyB...) grid by assembling all the results together. the operation that combines the values from the two grids together. this defaults to "*" (as in the matrix product) the operation that combines the result of the "op" operations together. this defaults to "+" (as in the matrix product) think of this one as a special combination of [#outer], [#] and [#fold]. this is one of the most complex operations. It is very useful for performing linear transforms like rotations, scalings, shearings, and some kinds of color remappings. A linear transform is done by something called matrix multiplication, which happens to be [#inner]. [#inner] also does dot product and other funny operations. 11*11 + 4*6 + 9*10 = 121+24+90 = 235 1*8 + 5*3 + 0*10 = 8+15+0 = 23 On every piece pair, does [#] using the specified "op" operation, followed by a [#fold] using the specified "fold" operator and "seed" base value. (note: lastA must be equal to firstB, and this is enforced, unlike with the behaviour of the real [#] class) given the defaults, every number will be the result of a dot product (that's what a matrix product is) a grid of size (anyA..., anyB...). The two dimensions lastA and firstB have disappeared due to folding. the base value for the fold (default: none, which acts like 0 in the case where fold is +) grid with at least one dimension. (the first dimension will be special, and called firstB below).