next | previous | forward | backward | up | top | index | toc | Macaulay2 website
map > map(Module,Module,List)

map(Module,Module,List) -- create a matrix by giving a sparse or dense list of entries



The list v is either a doubly nested list of ring elements, or a list of elements (i,j) => f. The first version provides all of the elements of the output matrix, row by row. The second form provides only the non-zero elements of the output matrix h: h_(i,j) = f, for every (i,j) => f in the list v.

In each case, the modules M and N should have the same base ring R, and the ring elements appearing in v should be over R, or over a base ring of R.

In the first form, each list in v gives a row of the matrix. The length of the list v should be the number of generators of M, and the length of each element of v (which is itself a list of ring elements) should be the number of generators of the source module N.

i1 : R = ZZ/101[x,y,z];
i2 : p = map(R^2,R^{-2,-2,0},{{x^2,0,3},{0,y^2,5}})

o2 = | x2 0  3 |
     | 0  y2 5 |

             2       3
o2 : Matrix R  <--- R
i3 : isHomogeneous p

o3 = true
In the second form, if an index (i,j) occurs more than once, only the last is taken.
i4 : p = map(R^2,R^3,{(0,0) => x+y, (1,1) => x^2, (0,2) => x-1, (0,0) => x-y})

o4 = | x-y 0  x-1 |
     | 0   x2 0   |

             2       3
o4 : Matrix R  <--- R

See also

Ways to use this method: