Skip to content

Commit

Permalink
ENHANCE: Use autactbase to create better permrep of factor automorphi…
Browse files Browse the repository at this point in the history
…sms.
  • Loading branch information
hulpke committed Dec 2, 2016
1 parent f91033b commit 9b153f0
Showing 1 changed file with 19 additions and 5 deletions.
24 changes: 19 additions & 5 deletions lib/grppcaut.gi
Original file line number Diff line number Diff line change
Expand Up @@ -1262,7 +1262,7 @@ InstallGlobalFunction(AutomorphismGroupSolvableGroup,function( G )
local spec, weights, first, m, pcgsU, F, pcgsF, A, i, s, n, p, H,
pcgsH, pcgsN, N, epi, mats, M, autos, ocr, elms, e, list, imgs,
auto, tmp, hom, gens, P, C, B, D, pcsA, rels, iso, xset,
gensA, new,as,somechar,scharorb,asAutom,autactbase,
gensA, new,as,somechar,scharorb,asAutom,actbase,
quotimg,eN,field,act,spaces,sporb,npcgs,nM;

asAutom:=function(sub,hom) return Image(hom,sub);end;
Expand All @@ -1273,8 +1273,8 @@ InstallGlobalFunction(AutomorphismGroupSolvableGroup,function( G )
x->PcElementByExponents(pcgs,ExponentsOfPcElement(spec,x){[1..Length(pcgs)]})));
end;

autactbase:=ValueOption("autactbase");
PushOptions(rec(autactbase:=fail)); # remove this option from concern
actbase:=ValueOption("autactbase");
PushOptions(rec(actbase:=fail)); # remove this option from concern
somechar:=ValueOption("someCharacteristics");
if somechar<>fail then
scharorb:=somechar.orbits;
Expand Down Expand Up @@ -1390,9 +1390,23 @@ InstallGlobalFunction(AutomorphismGroupSolvableGroup,function( G )
A := AutomorphismGroupElAbGroup( F, B );
SetIsGroupOfAutomorphismsFiniteGroup(A,true);

# for first step
H:=F;
pcgsH:=Pcgs(H);

# run down series
for i in [2..Length(first)-1] do

if Length(GeneratorsOfGroup(A))>0 and not HasNiceMonomorphism(A) then
if Source(A.1)<>H then
Error("shit");
fi;
if actbase<>fail then
e:=List(actbase,x->quotimg(H,pcgsH,x));
NiceMonomorphism(A:autactbase:=e);
fi;

fi;
# get factor
s := first[i];
n := first[i+1];
Expand Down Expand Up @@ -1650,8 +1664,8 @@ InstallGlobalFunction(AutomorphismGroupSolvableGroup,function( G )
SortBy(B,Size);
SetIsGroupOfAutomorphismsFiniteGroup(A,true);
tmp:=Size(A);
if autactbase<>fail then
e:=List(autactbase,x->quotimg(H,pcgsH,x));
if actbase<>fail then
e:=List(actbase,x->quotimg(H,pcgsH,x));
NiceMonomorphism(A:autactbase:=e);
fi;
for e in B do
Expand Down

0 comments on commit 9b153f0

Please sign in to comment.