[GAP Forum] conjugacy class arrangement
Alexander Hulpke
ahulpke at gmail.com
Mon Dec 29 20:38:03 GMT 2008
Dear Forum, Dear Lenny Chaskofsky,
> In computing conjugacy classes for a group, I believe that I got
> different arrangements
> of the classes for the same group, on the same computer, running the
> same version of gap at different times.
> I was using the default method for computing conjugacy classes.
> The manual says that the arrangement of classes depends on the
> method chosen.
> Is it possible that I could get different arrangements with the
> default method?
Some of the methods for computing conjugacy classes(implicitly) use
random numbers. Unless the sequence of commands used since the start
of GAP is exactly the same, this can cause classes to be obtained in a
different arrangement.
>
> What would be the best way to ensure a consistent arrangement?
When computing from scratch, I fear one cannot do anything. (One would
have to determine a ``canonical'' ordering of classes, but some
classes are extremely hard to distinguish. (E.g. once you start
looking at modular character tables).
If you need consistency amongst different calculations, your best bet
is probably to once compute the classes, and then use this arrangement
of classes. You can do this by defining the group, computing the
conjugacy classes and then either
- Save a workspace, and have all your other calculations start with
loading this workspace.
or (for example if you cannot load the workspace because you already
stared another calculation
- Save information about the classes in a file and then (instead of
computing the classes from scratch) create the classes from this
stored information. Typically, representative and centralizer
generators are sufficient information, to recreate classes very quickly.
The following commands do for example such a save/load sequence:
Saving classes of group G:
save:=List(ConjugacyClasses(G),i->[Representative(i),
GeneratorsOfGroup(StabilizerOfExternalSet(i))]);;
PrintTo("savefile","save:=",save,";\n");
Loading classes and storing them in G (assuming we did not yet compute
classes for G!):
Read("savefile");
cl:=[];
for i in save do
c:=ConjugacyClass(G,i[1]);
SetStabilizerOfExternalSet(c,SubgroupNC(G,i[2]));
Add(cl,c);
od;
SetConjugacyClasses(G,cl);
At this point (the new) G now has the same classes as before.
I hope this helps. Best wishes and a good 2009,
Alexander Hulpke
More information about the Forum
mailing list