# map(Module,Nothing,List) -- create a matrix by giving a doubly nested list of ring elements

## Synopsis

• Function: map
• Usage:
map(M,v)
• Inputs:
• Optional inputs:
• Degree => ..., default value null, specify the degree of a map
• DegreeLift => ..., default value null, make a ring map
• DegreeMap => ..., default value null, make a ring map
• Outputs:
• , A matrix M <-- R^n whose entries are obtained from v, where R is the ring of M, and the source of the result is a graded free module chosen in an attempt to make the result homogeneous of degree zero

## Description

The list v must be a doubly nested list of ring elements, which are used to fill the matrix, row by row.

The ring elements appearing in v should be be in R, or in a base ring of R.

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] o1 = R o1 : PolynomialRing i2 : p = map(R^2,,{{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
Another way is to use the matrix(List) routine:
 i4 : p = matrix {{x^2,0,3},{0,y^2,5}} o4 = | x2 0 3 | | 0 y2 5 | 2 3 o4 : Matrix R <--- R

The absence of the second argument indicates that the source of the map is to be a free module constructed with an attempt made to assign degrees to its basis elements so as to make the map homogeneous of degree zero.

 i5 : R = ZZ/101[x,y] o5 = R o5 : PolynomialRing i6 : f = map(R^2,,{{x^2,y^2},{x*y,0}}) o6 = | x2 y2 | | xy 0 | 2 2 o6 : Matrix R <--- R i7 : degrees source f o7 = {{2}, {2}} o7 : List i8 : isHomogeneous f o8 = true