|
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";
==> // ** 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;
|
|