Home Online Manual
Top
Back: autGradAlg
Forward: stabilizer
FastBack:
FastForward:
Up: autgradalg_lib
Top: Singular Manual
Contents: Table of Contents
Index: Index
About: About this document

D.15.2.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;