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

Reply via email to