Singular

D.15.16.24 GITfanParallelSymmetric

Procedure from library `gitfan.lib` (see gitfan_lib).

Usage:
GITfanParallelSymmetric(OC, Q, Qgamma, actiononorbitcones [, file1]); OC:list, Q:bigintmat, Qgamma:cone, actiononorbitcones: list of intvec, file1: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 a name for a file which will contain the hashes of the GIT-cones. 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.

Note:
The proceduce uses parallel computation for the construction 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); list Sigma = GITfanParallelSymmetric(OClist, Q, mov, actionOnOrbitconeIndices); Sigma; ==> [1]: ==> 7183 ==> [2]: ==> 224275 ==> [3]: ==> 605191 ==> [4]: ==> 4946947 ==> [5]: ==> 14416897 ==> [6]: ==> 33553408 ```