Skip to content

Commit

Permalink
ENHANCE: Aif for intransitive centralizer in NormalSubgroups
Browse files Browse the repository at this point in the history
as this makes a Core computation quicker. This avoids slowdowns in
particular cases such as gap-system#2683
  • Loading branch information
hulpke committed Aug 7, 2018
1 parent cf0f757 commit c99e2d2
Showing 1 changed file with 18 additions and 7 deletions.
25 changes: 18 additions & 7 deletions lib/grplatt.gi
Original file line number Diff line number Diff line change
Expand Up @@ -2122,14 +2122,25 @@ local G, # group
Info(InfoLattice,2,"Search involution");

# find involution in M/T
cnt:=0;
repeat
repeat
inv:=Random(M);
until (Order(inv) mod 2 =0) and not inv in T;
o:=First([2..Order(inv)],i->inv^i in T);
until (o mod 2 =0);
Info(InfoLattice,2,"Element of order ",o);
inv:=inv^(o/2); # this is an involution in the factor
repeat
repeat
inv:=Random(M);
until (Order(inv) mod 2 =0) and not inv in T;
o:=First([2..Order(inv)],i->inv^i in T);
until (o mod 2 =0);
Info(InfoLattice,2,"Element of order ",o);
inv:=inv^(o/2); # this is an involution in the factor

cnt:=cnt+1;
# in permgroups try to pick an involution that does not move all
# points. This can make the core of C to be computed quicker.
until not (IsPermGroup(M) and cnt<10
and Length(MovedPoints(inv))=Length(MovedPoints(M)));



Assert(1,inv^2 in T and not inv in T);

S:=Normalizer(G,T); # stabilize first component
Expand Down

0 comments on commit c99e2d2

Please sign in to comment.