next | previous | forward | backward | up | top | index | toc | Macaulay2 website
NCAlgebra :: assignDegrees

assignDegrees -- Weights entries of a matrix to make associated map of free modules graded



A matrix M with homogeneous entries in an NCRing can determine a homomorphism of graded free modules if the entries satisfy certain consistency conditions. Finding a set of degrees for source and target basis vectors such that M determines a graded module map is an integer programming problem. This method does not solve the problem in general.

With only one input, this method checks to see if the entries in each column all have the same homogeneous degree. If so, the method assigns source and target degrees in the natural way and the isHomogeneous flag is set for M. If not, all degrees are set to 0 and the flag is not set. This method is called any time a matrix is created.

With three inputs, the user may specify the desired degree shifts on inputs and outputs such that the associated module map is graded.

i1 : B = threeDimSklyanin(QQ,{1,1,-1},{x,y,z})
--Calling Bergman for NCGB calculation.

o1 = B

o1 : NCQuotientRing
i2 : M = ncMatrix {{x,y,z,0}, {-y*z-2*x^2,-y*x,z*x-x*z,x},{x*y-2*y*x,x*z,-x^2,y}, {-y^2-z*x,x^2,-x*y,z}}

o2 = | x          y    z         0 |
     | -y*z-2*x^2 -y*x y^2-2*x*z x |
     | -2*y*x+x*y x*z  -x^2      y |
     | -2*y^2+x*z x^2  -x*y      z |

o2 : NCMatrix
i3 : isHomogeneous M

o3 = false
i4 : assignDegrees(M,{1,0,0,0},{2,2,2,1})

o4 = | x          y    z         0 |
     | -y*z-2*x^2 -y*x y^2-2*x*z x |
     | -2*y*x+x*y x*z  -x^2      y |
     | -2*y^2+x*z x^2  -x*y      z |

o4 : NCMatrix
i5 : isHomogeneous M

o5 = true
i6 : N = ncMatrix {gens B}

o6 = | x y z |

o6 : NCMatrix
i7 : isHomogeneous N

o7 = true

See also

Ways to use assignDegrees :

For the programmer

The object assignDegrees is a method function.