Skip to content

Commit

Permalink
ENHANCE: Use anupq for p-group isom.
Browse files Browse the repository at this point in the history
If the package is available
  • Loading branch information
hulpke committed Dec 4, 2023
1 parent 9a21937 commit f0ca897
Showing 1 changed file with 42 additions and 0 deletions.
42 changes: 42 additions & 0 deletions lib/morpheus.gi
Original file line number Diff line number Diff line change
Expand Up @@ -2818,6 +2818,44 @@ local d,iso,a,b,c,o,s,two,rt,r,z,e,y,re,m,gens,cnt,lim,p,
end);


BindGlobal("IsomorphismPGroups",function(G,H)
local s,p,eG,eH,fG,fH,pc,imgs;
s:=Size(G);
if Size(H)<>s then return fail;fi;
p:=Collected(Factors(s));
if Length(p)>1 then TryNextMethod();fi;
p:=p[1][1];
eG:=CallFuncList(ValueGlobal("EpimorphismPqStandardPresentation"),[G]:
Prime:=p);
eH:=CallFuncList(ValueGlobal("EpimorphismPqStandardPresentation"),[H]:
Prime:=p);

Check warning on line 2831 in lib/morpheus.gi

View check run for this annotation

Codecov / codecov/patch

lib/morpheus.gi#L2823-L2831

Added lines #L2823 - L2831 were not covered by tests

# check presentations
fG:=Range(eG);
fH:=Range(eH);
if List(RelatorsOfFpGroup(fG),
x->MappedWord(x,FreeGeneratorsOfFpGroup(fG),FreeGeneratorsOfFpGroup(fH)))
<>RelatorsOfFpGroup(fH) then
return fail;
fi;

Check warning on line 2840 in lib/morpheus.gi

View check run for this annotation

Codecov / codecov/patch

lib/morpheus.gi#L2834-L2840

Added lines #L2834 - L2840 were not covered by tests

# move to pc pres
pc:=PcGroupFpGroup(fG);

Check warning on line 2843 in lib/morpheus.gi

View check run for this annotation

Codecov / codecov/patch

lib/morpheus.gi#L2843

Added line #L2843 was not covered by tests

# new maps to pc
imgs:=List(MappingGeneratorsImages(eG)[2],
x->MappedWord(UnderlyingElement(x),
FreeGeneratorsOfFpGroup(fG),GeneratorsOfGroup(pc)));
eG:=GroupHomomorphismByImages(G,pc,MappingGeneratorsImages(eG)[1],imgs);

Check warning on line 2849 in lib/morpheus.gi

View check run for this annotation

Codecov / codecov/patch

lib/morpheus.gi#L2846-L2849

Added lines #L2846 - L2849 were not covered by tests

imgs:=List(MappingGeneratorsImages(eH)[2],
x->MappedWord(UnderlyingElement(x),
FreeGeneratorsOfFpGroup(fH),GeneratorsOfGroup(pc)));
eH:=GroupHomomorphismByImages(H,pc,MappingGeneratorsImages(eH)[1],imgs);

Check warning on line 2854 in lib/morpheus.gi

View check run for this annotation

Codecov / codecov/patch

lib/morpheus.gi#L2851-L2854

Added lines #L2851 - L2854 were not covered by tests

return AsGroupGeneralMappingByImages(eG*InverseGeneralMapping(eH));
end);

Check warning on line 2857 in lib/morpheus.gi

View check run for this annotation

Codecov / codecov/patch

lib/morpheus.gi#L2856-L2857

Added lines #L2856 - L2857 were not covered by tests

#############################################################################
##
#F IsomorphismGroups(<G>,<H>) . . . . . . . . . . isomorphism from G onto H
Expand Down Expand Up @@ -2859,6 +2897,10 @@ local m;
if m<>fail then return m;fi;
fi;

if Size(G)>50 and IsPGroup(G) and LoadPackage("anupq")=true then
return IsomorphismPGroups(G,H);

Check warning on line 2901 in lib/morpheus.gi

View check run for this annotation

Codecov / codecov/patch

lib/morpheus.gi#L2901

Added line #L2901 was not covered by tests
fi;

if Size(SolvableRadical(G))>1 and CanComputeFittingFree(G)
and not (IsSolvableGroup(G) and Size(G)<=2000
and ID_AVAILABLE(Size(G))<>fail)
Expand Down

0 comments on commit f0ca897

Please sign in to comment.