Description
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 nonzero 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) => x1, (0,0) => xy})
o4 =  xy 0 x1 
 0 x2 0 
2 3
o4 : Matrix R < R
