#### D.15.3.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";
    ==> // ** redefining fullSpace (  LIB "gfan.lib";) gitfan.lib::mod_init:86
    ==> // ** redefining fullSpace (  LIB "gfan.lib";) gitfan.lib::mod_init:86
    ==> // ** redefining origin (  LIB "gfan.lib";) gitfan.lib::mod_init:86
    ==> // ** redefining origin (  LIB "gfan.lib";) gitfan.lib::mod_init:86
    ==> // ** redefining positiveOrthant (  LIB "gfan.lib";) gitfan.lib::mod_init\
       :86
    ==> // ** redefining positiveOrthant (  LIB "gfan.lib";) gitfan.lib::mod_init\
       :86
    ==> // ** redefining intmatToGfanVectorConfiguration (  LIB "gfan.lib";) gitf\
       an.lib::mod_init:86
    ==> // ** redefining secondaryFan (  LIB "gfan.lib";) gitfan.lib::mod_init:86
    ==> // ** redefining secondaryFan (  LIB "gfan.lib";) gitfan.lib::mod_init:86
    ==> // ** redefining ambientDimension (  LIB "gfan.lib";) gitfan.lib::mod_ini\
       t:86
    ==> // ** redefining ambientDimension (  LIB "gfan.lib";) gitfan.lib::mod_ini\
       t:86
    ==> // ** redefining canonicalizeCone (  LIB "gfan.lib";) gitfan.lib::mod_ini\
       t:86
    ==> // ** redefining canonicalizeCone (  LIB "gfan.lib";) gitfan.lib::mod_ini\
       t:86
    ==> // ** redefining codimension (  LIB "gfan.lib";) gitfan.lib::mod_init:86
    ==> // ** redefining codimension (  LIB "gfan.lib";) gitfan.lib::mod_init:86
    ==> // ** redefining coneViaPoints (  LIB "gfan.lib";) gitfan.lib::mod_init:8\
       6
    ==> // ** redefining coneViaPoints (  LIB "gfan.lib";) gitfan.lib::mod_init:8\
       6
    ==> // ** redefining coneViaInequalities (  LIB "gfan.lib";) gitfan.lib::mod_\
       init:86
    ==> // ** redefining coneViaInequalities (  LIB "gfan.lib";) gitfan.lib::mod_\
       init:86
    ==> // ** redefining coneLink (  LIB "gfan.lib";) gitfan.lib::mod_init:86
    ==> // ** redefining coneLink (  LIB "gfan.lib";) gitfan.lib::mod_init:86
    ==> // ** redefining containsAsFace (  LIB "gfan.lib";) gitfan.lib::mod_init:\
       86
    ==> // ** redefining containsAsFace (  LIB "gfan.lib";) gitfan.lib::mod_init:\
       86
    ==> // ** redefining containsRelatively (  LIB "gfan.lib";) gitfan.lib::mod_i\
       nit:86
    ==> // ** redefining containsRelatively (  LIB "gfan.lib";) gitfan.lib::mod_i\
       nit:86
    ==> // ** redefining containsInSupport (  LIB "gfan.lib";) gitfan.lib::mod_in\
       it:86
    ==> // ** redefining containsInSupport (  LIB "gfan.lib";) gitfan.lib::mod_in\
       it:86
    ==> // ** redefining containsPositiveVector (  LIB "gfan.lib";) gitfan.lib::m\
       od_init:86
    ==> // ** redefining containsPositiveVector (  LIB "gfan.lib";) gitfan.lib::m\
       od_init:86
    ==> // ** redefining convexHull (  LIB "gfan.lib";) gitfan.lib::mod_init:86
    ==> // ** redefining convexHull (  LIB "gfan.lib";) gitfan.lib::mod_init:86
    ==> // ** redefining convexIntersection (  LIB "gfan.lib";) gitfan.lib::mod_i\
       nit:86
    ==> // ** redefining convexIntersection (  LIB "gfan.lib";) gitfan.lib::mod_i\
       nit:86
    ==> // ** redefining dimension (  LIB "gfan.lib";) gitfan.lib::mod_init:86
    ==> // ** redefining dimension (  LIB "gfan.lib";) gitfan.lib::mod_init:86
    ==> // ** redefining dualCone (  LIB "gfan.lib";) gitfan.lib::mod_init:86
    ==> // ** redefining dualCone (  LIB "gfan.lib";) gitfan.lib::mod_init:86
    ==> // ** redefining equations (  LIB "gfan.lib";) gitfan.lib::mod_init:86
    ==> // ** redefining equations (  LIB "gfan.lib";) gitfan.lib::mod_init:86
    ==> // ** redefining faceContaining (  LIB "gfan.lib";) gitfan.lib::mod_init:\
       86
    ==> // ** redefining faceContaining (  LIB "gfan.lib";) gitfan.lib::mod_init:\
       86
    ==> // ** redefining facets (  LIB "gfan.lib";) gitfan.lib::mod_init:86
    ==> // ** redefining facets (  LIB "gfan.lib";) gitfan.lib::mod_init:86
    ==> // ** redefining generatorsOfLinealitySpace (  LIB "gfan.lib";) gitfan.li\
       b::mod_init:86
    ==> // ** redefining generatorsOfLinealitySpace (  LIB "gfan.lib";) gitfan.li\
       b::mod_init:86
    ==> // ** redefining generatorsOfSpan (  LIB "gfan.lib";) gitfan.lib::mod_ini\
       t:86
    ==> // ** redefining generatorsOfSpan (  LIB "gfan.lib";) gitfan.lib::mod_ini\
       t:86
    ==> // ** redefining getLinearForms (  LIB "gfan.lib";) gitfan.lib::mod_init:\
       86
    ==> // ** redefining getLinearForms (  LIB "gfan.lib";) gitfan.lib::mod_init:\
       86
    ==> // ** redefining getMultiplicity (  LIB "gfan.lib";) gitfan.lib::mod_init\
       :86
    ==> // ** redefining getMultiplicity (  LIB "gfan.lib";) gitfan.lib::mod_init\
       :86
    ==> // ** redefining inequalities (  LIB "gfan.lib";) gitfan.lib::mod_init:86
    ==> // ** redefining inequalities (  LIB "gfan.lib";) gitfan.lib::mod_init:86
    ==> // ** redefining isFullSpace (  LIB "gfan.lib";) gitfan.lib::mod_init:86
    ==> // ** redefining isFullSpace (  LIB "gfan.lib";) gitfan.lib::mod_init:86
    ==> // ** redefining isOrigin (  LIB "gfan.lib";) gitfan.lib::mod_init:86
    ==> // ** redefining isOrigin (  LIB "gfan.lib";) gitfan.lib::mod_init:86
    ==> // ** redefining isSimplicial (  LIB "gfan.lib";) gitfan.lib::mod_init:86
    ==> // ** redefining isSimplicial (  LIB "gfan.lib";) gitfan.lib::mod_init:86
    ==> // ** redefining linealityDimension (  LIB "gfan.lib";) gitfan.lib::mod_i\
       nit:86
    ==> // ** redefining linealityDimension (  LIB "gfan.lib";) gitfan.lib::mod_i\
       nit:86
    ==> // ** redefining linealitySpace (  LIB "gfan.lib";) gitfan.lib::mod_init:\
       86
    ==> // ** redefining linealitySpace (  LIB "gfan.lib";) gitfan.lib::mod_init:\
       86
    ==> // ** redefining negatedCone (  LIB "gfan.lib";) gitfan.lib::mod_init:86
    ==> // ** redefining negatedCone (  LIB "gfan.lib";) gitfan.lib::mod_init:86
    ==> // ** redefining quotientLatticeBasis (  LIB "gfan.lib";) gitfan.lib::mod\
       _init:86
    ==> // ** redefining quotientLatticeBasis (  LIB "gfan.lib";) gitfan.lib::mod\
       _init:86
    ==> // ** redefining randomPoint (  LIB "gfan.lib";) gitfan.lib::mod_init:86
    ==> // ** redefining randomPoint (  LIB "gfan.lib";) gitfan.lib::mod_init:86
    ==> // ** redefining rays (  LIB "gfan.lib";) gitfan.lib::mod_init:86
    ==> // ** redefining rays (  LIB "gfan.lib";) gitfan.lib::mod_init:86
    ==> // ** redefining relativeInteriorPoint (  LIB "gfan.lib";) gitfan.lib::mo\
       d_init:86
    ==> // ** redefining relativeInteriorPoint (  LIB "gfan.lib";) gitfan.lib::mo\
       d_init:86
    ==> // ** redefining semigroupGenerator (  LIB "gfan.lib";) gitfan.lib::mod_i\
       nit:86
    ==> // ** redefining semigroupGenerator (  LIB "gfan.lib";) gitfan.lib::mod_i\
       nit:86
    ==> // ** redefining setLinearForms (  LIB "gfan.lib";) gitfan.lib::mod_init:\
       86
    ==> // ** redefining setLinearForms (  LIB "gfan.lib";) gitfan.lib::mod_init:\
       86
    ==> // ** redefining setMultiplicity (  LIB "gfan.lib";) gitfan.lib::mod_init\
       :86
    ==> // ** redefining setMultiplicity (  LIB "gfan.lib";) gitfan.lib::mod_init\
       :86
    ==> // ** redefining span (  LIB "gfan.lib";) gitfan.lib::mod_init:86
    ==> // ** redefining span (  LIB "gfan.lib";) gitfan.lib::mod_init:86
    ==> // ** redefining uniquePoint (  LIB "gfan.lib";) gitfan.lib::mod_init:86
    ==> // ** redefining uniquePoint (  LIB "gfan.lib";) gitfan.lib::mod_init:86
    ==> // ** redefining containsInCollection (  LIB "gfan.lib";) gitfan.lib::mod\
       _init:86
    ==> // ** redefining containsInCollection (  LIB "gfan.lib";) gitfan.lib::mod\
       _init:86
    ==> // ** redefining emptyFan (  LIB "gfan.lib";) gitfan.lib::mod_init:86
    ==> // ** redefining emptyFan (  LIB "gfan.lib";) gitfan.lib::mod_init:86
    ==> // ** redefining fanViaCones (  LIB "gfan.lib";) gitfan.lib::mod_init:86
    ==> // ** redefining fanViaCones (  LIB "gfan.lib";) gitfan.lib::mod_init:86
    ==> // ** redefining fullFan (  LIB "gfan.lib";) gitfan.lib::mod_init:86
    ==> // ** redefining fullFan (  LIB "gfan.lib";) gitfan.lib::mod_init:86
    ==> // ** redefining fVector (  LIB "gfan.lib";) gitfan.lib::mod_init:86
    ==> // ** redefining fVector (  LIB "gfan.lib";) gitfan.lib::mod_init:86
    ==> // ** redefining getCone (  LIB "gfan.lib";) gitfan.lib::mod_init:86
    ==> // ** redefining getCone (  LIB "gfan.lib";) gitfan.lib::mod_init:86
    ==> // ** redefining insertCone (  LIB "gfan.lib";) gitfan.lib::mod_init:86
    ==> // ** redefining insertCone (  LIB "gfan.lib";) gitfan.lib::mod_init:86
    ==> // ** redefining isCompatible (  LIB "gfan.lib";) gitfan.lib::mod_init:86
    ==> // ** redefining isCompatible (  LIB "gfan.lib";) gitfan.lib::mod_init:86
    ==> // ** redefining isPure (  LIB "gfan.lib";) gitfan.lib::mod_init:86
    ==> // ** redefining isPure (  LIB "gfan.lib";) gitfan.lib::mod_init:86
    ==> // ** redefining nmaxcones (  LIB "gfan.lib";) gitfan.lib::mod_init:86
    ==> // ** redefining nmaxcones (  LIB "gfan.lib";) gitfan.lib::mod_init:86
    ==> // ** redefining ncones (  LIB "gfan.lib";) gitfan.lib::mod_init:86
    ==> // ** redefining ncones (  LIB "gfan.lib";) gitfan.lib::mod_init:86
    ==> // ** redefining numberOfConesOfDimension (  LIB "gfan.lib";) gitfan.lib:\
       :mod_init:86
    ==> // ** redefining numberOfConesOfDimension (  LIB "gfan.lib";) gitfan.lib:\
       :mod_init:86
    ==> // ** redefining removeCone (  LIB "gfan.lib";) gitfan.lib::mod_init:86
    ==> // ** redefining removeCone (  LIB "gfan.lib";) gitfan.lib::mod_init:86
    ==> // ** redefining dualPolytope (  LIB "gfan.lib";) gitfan.lib::mod_init:86
    ==> // ** redefining dualPolytope (  LIB "gfan.lib";) gitfan.lib::mod_init:86
    ==> // ** redefining newtonPolytope (  LIB "gfan.lib";) gitfan.lib::mod_init:\
       86
    ==> // ** redefining newtonPolytope (  LIB "gfan.lib";) gitfan.lib::mod_init:\
       86
    ==> // ** redefining polytopeViaPoints (  LIB "gfan.lib";) gitfan.lib::mod_in\
       it:86
    ==> // ** redefining polytopeViaPoints (  LIB "gfan.lib";) gitfan.lib::mod_in\
       it:86
    ==> // ** redefining polytopeViaInequalities (  LIB "gfan.lib";) gitfan.lib::\
       mod_init:86
    ==> // ** redefining polytopeViaInequalities (  LIB "gfan.lib";) gitfan.lib::\
       mod_init:86
    ==> // ** redefining vertices (  LIB "gfan.lib";) gitfan.lib::mod_init:86
    ==> // ** redefining vertices (  LIB "gfan.lib";) gitfan.lib::mod_init:86
    ==> // ** redefining onesVector (  LIB "gfan.lib";) gitfan.lib::mod_init:86
    ==> // ** redefining onesVector (  LIB "gfan.lib";) gitfan.lib::mod_init:86
    ==> // ** redefining mod_init (  LIB "gfan.lib";) gitfan.lib::mod_init:86
    // 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.4.1, 2025, generated by texi2html.