Recall that all indices in Macaulay 2 start at 0, so the upper left-most entry of a matrix
f is
f_(0,0).
This function is often used when you already know the source and target modules, including their gradings. If you wish Macaulay 2 to compute the column degrees for you (so the resulting matrix will be homogeneous if possible), use
map(Module,ZZ,Function).
i1 : R = ZZ[a..c];
|
i2 : f = map(R^3,R^{0,-1,-2,-3},(i,j) -> R_i^j)
o2 = | 1 a a2 a3 |
| 1 b b2 b3 |
| 1 c c2 c3 |
3 4
o2 : Matrix R <--- R
|
We specified the degrees of the source basis elements explicitly to ensure the matrix would be homogeneous.
i3 : isHomogeneous f
o3 = true
|
Alternate approaches
We could have let Macaulay2 take care of that for us, by replacing the source module by its desired rank.
i4 : g = map(R^3,4,(i,j) -> R_i^j)
o4 = | 1 a a2 a3 |
| 1 b b2 b3 |
| 1 c c2 c3 |
3 4
o4 : Matrix R <--- R
|
i5 : degrees g
o5 = {{{0}, {0}, {0}}, {{0}, {1}, {2}, {3}}}
o5 : List
|
i6 : isHomogeneous g
o6 = true
|
Another way would be to let
matrix take care of that for us.
i7 : h = matrix table(3,4,(i,j) -> R_i^j)
o7 = | 1 a a2 a3 |
| 1 b b2 b3 |
| 1 c c2 c3 |
3 4
o7 : Matrix R <--- R
|
i8 : degrees h
o8 = {{{0}, {0}, {0}}, {{0}, {1}, {2}, {3}}}
o8 : List
|
i9 : isHomogeneous h
o9 = true
|