I'd like to solicit the forum's help in a group action problem that I'm
looking at : start with a permutation group G and let one of its subgroups
act by conjugation on one of its (G's) conjugacy classes. I'd like to get
representatives of the orbits of this action.
For the particluar case that I need now, G is the symmetric group of degree 2n,
the subgroup is the cyclic group of the same degree, and the conjugacy class
corresponds to the partition [2,2,...,2] of 2n. I wrote the function below to
do this but it doesn't seem to handle the n>5 cases very well, so it seems
that I need something more efficient -- I'd like to look at the 1<n<10 cases.
Is there a better way to do this?
GenerateOrbits := function(n) local
# permutation corresponding to partition [2,2,...,2] of 2n
permutation := PermList(List([1..2*n],x->x+Mod(x,2)-Mod(x+1,2)));
# conjugacy class of Sym(2n) corresponding to permutation
class := ConjugacyClass(SymmetricGroup(2*n),permutation);
Print("size of class : ",Size(class),"\n");
# cyclic permutation (1,2,3,...,2n)
generator := PermList(List([1..2*n],x->Mod(x,2*n)+1));
# cyclic group of order 2n
group := Group( generator );
# orbits of group on class
orbits := Orbits(group, Elements(class),function(d,g) return d^g; end);
Print("number of orbits : ",Size(orbits),"\n");
representatives := List(orbits,x->x);
Any suggestions are greatly appreciated.