Hi,
In connection with a joint project with Bob Oliver and Joana Ventura I
have been carrying out a number of computations for the 2-groups of order
at most 2^8 in Magma. To check them and to learn GAP at the same time, I
have tried to port my programs to GAP.
Unfortunately GAP seems to be significantly slower (a factor of acround
2.7) than Magma. Before I go any further I wonder if there is a way to
speed up GAP. As a test I have been running the following GAP program:
iscritical := function(S,P)
return 1;
end;
criticalsubgroups := function(S)
local kappa,SmodZ,L;
if IsAbelian(S) then
return [];
else
# Only check subgroups containg Z(S)
kappa:=NaturalHomomorphismByNormalSubgroup(S,Center(S));
SmodZ:=FactorGroup(S,Center(S));
L:=SubgroupsSolvableGroup(SmodZ);
L:=List(L,x->PreImage(kappa,x));
return Filtered(L,P->(iscritical(S,P) <> -1));
fi;
end;
n:=2^7;
for i in [1..NumberSmallGroups(n)] do
S:=SmallGroup(n,i);
L:=criticalsubgroups(S);
Print(n," ",i,"\n");
od;
Some comments are in order: To simplify the timings I have left out the
code for the function iscritical, so the above program simply computes the
conjugacy classes of subgroups P containing Z(S) for all 2-groups S of
order 2^7. Moreover my original function does not return true/false but
rather -1 (=false), 0 (=undecided) and 1 (=true). For simplicity I have
left this in.
Unfortunaly even this simple program runs a factor of 2.7 slower than the
corresponding Magma program. Are there any ways to speed this up?
Another question: One of the conditions for criticality is that P is
centric in S, i.e. that C_S(P) is contained in P. Does anyone know any
better algorithm for computing all such subgroups than testing all
subgroups containing Z(S) one by one?
best wishes,
Kasper Andersen
_______________________________________________
Forum mailing list
[email protected]
http://mail.gap-system.org/mailman/listinfo/forum