Singular Manual: setModuleGrading

| #### D.15.13.13 setModuleGrading Procedure from library `multigrading.lib` (see multigrading_lib). Usage: setModuleGrading(m, G), m module/vector, G intmat Purpose: attaches the multiweights of free module generators to 'm' Warning: The method does not verify whether the multigrading makes the module/vector homogeneous. One can do that using isHomogeneous(m). Example:
    LIB "multigrading.lib";
    ring R = 0, (x,y), dp;
    intmat M[2][2]=
    1, 1,
    0, 2;
    intmat T[2][5]=
    1,  2,  3,  4, 0,
    0, 10, 20, 30, 1;
    setBaseMultigrading(M, T);
    ideal I = x, y, xy^5;
    intmat V = multiDeg(I);
    // V == M; modulo T
    print(V);
    ==>      1     1    10
    ==>      0     2    10
    module S = syz(I);
    S = setModuleGrading(S, V);
    getModuleGrading(S) == V;
    ==> 1
    print(S);
    ==> -y,x4y5,
    ==> x, 0,
    ==> 0, -1
    vector v = getGradedGenerator(S, 1);
    getModuleGrading(v) == V;
    ==> 1
    print( multiDeg(v) );
    ==> 2,
    ==> 2
    isHomogeneous(S);
    ==> 1
    print( multiDeg(S) );
    ==>      2    10
    ==>      2    10

User manual for Singular version 4.4.1, 2025, generated by texi2html.