|
D.15.18.23 GITfanSymmetric
Procedure from library gitfan.lib (see gitfan_lib).
- Usage:
- GITfanSymmetric(OC, Q, Qgamma, actiononorbitcones [, file1, file2]); OC:list, Q:bigintmat, Qgamma:cone, actiononorbitcones: list of intvec, file1:string, file2:string
- Purpose:
- Returns the common refinement of the cones given in
the list OC which is supposed to contain the orbit cones intersected with Qgamma. The list actiononorbitcones is supposed to contain the symmetry group acting as permutations of on the list of orbit cones in OC. The optional argument can be used to specify one or two strings with file names, where the first file will contain the hashes of the GIT-cones and the second argument the actual cones in their H-representation.
To obtain the whole GIT-fan Qgamma has to be take the cone generated by the columns of Q.
- Return:
- a list containing the bigint hashes of the GIT cones.
Example:
| LIB "gitfan.lib";
ring R = 0,T(1..10),wp(1,1,1,1,1,1,1,1,1,1);
ideal J =
T(5)*T(10)-T(6)*T(9)+T(7)*T(8),
T(1)*T(9)-T(2)*T(7)+T(4)*T(5),
T(1)*T(8)-T(2)*T(6)+T(3)*T(5),
T(1)*T(10)-T(3)*T(7)+T(4)*T(6),
T(2)*T(10)-T(3)*T(9)+T(4)*T(8);
intmat Q[5][10] =
1, 1, 1, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 1, 1, 0, 0, 0,
0, 1, 1, 0, 0, 0, -1, 1, 0, 0,
0, 1, 0, 1, 0, -1, 0, 0, 1, 0,
0, 0, 1, 1, -1, 0, 0, 0, 0, 1;
list simplexSymmetryGroup = G25Action();
list simplexOrbitRepresentatives = intvec( 1, 2, 3, 4, 5 ),
intvec( 1, 2, 3, 5, 6 ),
intvec( 1, 2, 3, 5, 7 ),
intvec( 1, 2, 3, 5, 10 ),
intvec( 1, 2, 3, 7, 9 ),
intvec( 1, 2, 6, 9, 10 ),
intvec( 1, 2, 3, 4, 5, 6 ),
intvec( 1, 2, 3, 4, 5, 10 ),
intvec( 1, 2, 3, 5, 6, 8 ),
intvec( 1, 2, 3, 5, 6, 9 ),
intvec( 1, 2, 3, 5, 7, 10 ),
intvec( 1, 2, 3, 7, 9, 10 ),
intvec( 1, 2, 3, 4, 5, 6, 7 ),
intvec( 1, 2, 3, 4, 5, 6, 8 ),
intvec( 1, 2, 3, 4, 5, 6, 9 ),
intvec( 1, 2, 3, 5, 6, 9, 10 ),
intvec( 1, 2, 3, 4, 5, 6, 7, 8 ),
intvec( 1, 2, 3, 4, 5, 6, 9, 10 ),
intvec( 1, 2, 3, 4, 5, 6, 7, 8, 9 ),
intvec( 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 );
list afaceOrbitRepresentatives=afaces(J,simplexOrbitRepresentatives);
list fulldimAfaceOrbitRepresentatives=fullDimImages(afaceOrbitRepresentatives,Q);
list afaceOrbits=computeAfaceOrbits(fulldimAfaceOrbitRepresentatives,simplexSymmetryGroup);
apply(afaceOrbits,size);
==> 10 15 10 1
list minAfaceOrbits = minimalAfaceOrbits(afaceOrbits);
apply(minAfaceOrbits,size);
==> 10 15
list listOfOrbitConeOrbits = orbitConeOrbits(minAfaceOrbits,Q);
apply(listOfOrbitConeOrbits,size);
==> 10 15
list listOfMinimalOrbitConeOrbits = minimalOrbitConeOrbits(listOfOrbitConeOrbits);
size(listOfMinimalOrbitConeOrbits);
==> 2
list Asigma = groupActionOnQImage(simplexSymmetryGroup,Q);
list actionOnOrbitconeIndices = groupActionOnHashes(Asigma,listOfOrbitConeOrbits);
list OClist = listOfOrbitConeOrbits[1];
for (int i =2;i<=size(listOfOrbitConeOrbits);i++){
OClist = OClist + listOfOrbitConeOrbits[i];
}
cone mov = coneViaPoints(transpose(Q));
mov = canonicalizeCone(mov);
printlevel = 3;
list Sigma = GITfanSymmetric(OClist, Q, mov, actionOnOrbitconeIndices);
==> testing [ [ 215, 230, 113, 58, 85 ] ]
==> computed cone of dimension 5
==> time for facets: 0
==> overall: 2 open: 1 time for loop: 0
==> time for facets: 0
==> overall: 3 open: 1 time for loop: 0
==> time for facets: 0
==> overall: 5 open: 2 time for loop: 0
==> time for facets: 0
==> overall: 6 open: 2 time for loop: 0
==> time for facets: 0
==> overall: 6 open: 1 time for loop: 0
==> time for facets: 0
==> overall: 6 open: 0 time for loop: 0
Sigma;
==> [1]:
==> 7183
==> [2]:
==> 224275
==> [3]:
==> 605191
==> [4]:
==> 4946947
==> [5]:
==> 14416897
==> [6]:
==> 33553408
|
|