| #### D.15.1.3 autGenWeights Procedure from library `autgradalg.lib` (see autgradalg_lib). Usage: autGenWeights(Q): Q is an intmat (columns must contain a lattice basis). Assume: the cone over Q must be pointed and the columns of Q contain a lattice basis; there must be no 0-columns in Q. We assume that, in the torsion case, the torsion rows of Q are reduced (for example, a row of Q standing for entries in ZZ/5ZZ must not contain elements > 5 or < 0). Purpose: computes generators for the subgroup aut(Omega_S) of GL(n, \ZZ) that consists of all invertible integer kxk matrices which fix the set Omega_S of degrees of the variables of the basering S. The set of columns of Q equals Omega_S. Reference: Remark 3.1. Return: a list of integral matrices A with |det A| = 1 such that A*{columns of Q} = {columns of Q}. Example:
    LIB "autgradalg.lib";
    // torsion example
    // ZZ + ZZ/5ZZ:
    intmat Q[2][5] =
    1,1,1,1,1,
    2,3,1,4,0;
    list TOR = 5;
    autGenWeights(Q, TOR);
    ==> [1]:
    ==>    1,0,
    ==>    0,1
    ==> [2]:
    ==>    1,0,
    ==>    0,2
    ==> [3]:
    ==>    1,0,
    ==>    0,3
    ==> [4]:
    ==>    1,0,
    ==>    0,4
    ==> [5]:
    ==>    1,0,
    ==>    1,1
    ==> [6]:
    ==>    1,0,
    ==>    1,2
    ==> [7]:
    ==>    1,0,
    ==>    1,3
    ==> [8]:
    ==>    1,0,
    ==>    1,4
    ==> [9]:
    ==>    1,0,
    ==>    2,1
    ==> [10]:
    ==>    1,0,
    ==>    2,2
    ==> [11]:
    ==>    1,0,
    ==>    2,3
    ==> [12]:
    ==>    1,0,
    ==>    2,4
    ==> [13]:
    ==>    1,0,
    ==>    3,1
    ==> [14]:
    ==>    1,0,
    ==>    3,2
    ==> [15]:
    ==>    1,0,
    ==>    3,3
    ==> [16]:
    ==>    1,0,
    ==>    3,4
    ==> [17]:
    ==>    1,0,
    ==>    4,1
    ==> [18]:
    ==>    1,0,
    ==>    4,2
    ==> [19]:
    ==>    1,0,
    ==>    4,3
    ==> [20]:
    ==>    1,0,
    ==>    4,4
    kill Q, TOR;
    // another free example
    intmat Q[2][6] =
    -2,2,-1,1,-1,1,
    1,1,1,1,1,1;
    autGenWeights(Q);
    ==> [1]:
    ==>    1,0,
    ==>    0,1
    ==> [2]:
    ==>    -1,0,
    ==>    0,1
    kill Q;
    //----------------
    // 2nd free example
    intmat Q[2][4] =
    1,0,1,1,
    0,1,1,1;
    autGenWeights(Q);
    ==> [1]:
    ==>    1,0,
    ==>    0,1
    ==> [2]:
    ==>    0,1,
    ==>    1,0
    kill Q;

User manual for Singular version 4.3.2, 2023, generated by texi2html.