Skip to content

Commit

Permalink
Merge pull request #648 from hulpke/fixes
Browse files Browse the repository at this point in the history
More than 3 minor corrections that should make the 4.8.3 release
  • Loading branch information
markuspf committed Mar 4, 2016
2 parents 04a2dd6 + ea37894 commit 94f66d8
Show file tree
Hide file tree
Showing 10 changed files with 59 additions and 21 deletions.
4 changes: 2 additions & 2 deletions lib/clas.gi
Original file line number Diff line number Diff line change
Expand Up @@ -421,7 +421,7 @@ end);


InstallMethod( ConjugacyClasses, "for groups: try random search",
[ IsGroup ],
[ IsGroup and IsFinite ],
function(G)
local cl;
cl:=ConjugacyClassesForSmallGroup(G);
Expand All @@ -433,7 +433,7 @@ local cl;
end);

InstallMethod( ConjugacyClasses, "try solvable method",
[ IsGroup ],
[ IsGroup and IsFinite ],
function( G )
local cls, cl, c;

Expand Down
1 change: 1 addition & 0 deletions lib/ctbl.gi
Original file line number Diff line number Diff line change
Expand Up @@ -1071,6 +1071,7 @@ InstallMethod( OrdinaryCharacterTable,
# Store the attribute values of the interface.
SetUnderlyingGroup( tbl, G );
SetUnderlyingCharacteristic( tbl, 0 );
IsFinite(G);
ccl:= ConjugacyClasses( G );
idpos:= First( [ 1 .. Length( ccl ) ],
i -> Order( Representative( ccl[i] ) ) = 1 );
Expand Down
9 changes: 7 additions & 2 deletions lib/gpfpiso.gi
Original file line number Diff line number Diff line change
Expand Up @@ -561,10 +561,15 @@ local fpq, qgens, qreps, fpqg, rels, pcgs, p, f, qimg, idx, nimg, decomp,
Add(rels,MappedWord(i,fpqg,qimg)/decomp(MappedWord(i,fpqg,qreps)));
od;
fp:=f/rels;
if HasGeneratorsOfGroup(N) then
di:=GeneratorsOfGroup(N);
else
di:=[];
fi;
hom2:=GroupHomomorphismByImagesNC(G,fp,
Concatenation(Concatenation(qreps,pcgs),GeneratorsOfGroup(N)),
Concatenation(Concatenation(qreps,pcgs),di),
Concatenation(GeneratorsOfGroup(fp),
List(GeneratorsOfGroup(N),x->One(fp))):noassert);
List(di,x->One(fp))):noassert);

# build decompositioninfo
di:=rec(gens:=Concatenation(qreps,pcgs),fp:=fp,source:=G);
Expand Down
8 changes: 6 additions & 2 deletions lib/grpmat.gi
Original file line number Diff line number Diff line change
Expand Up @@ -447,8 +447,12 @@ local field, dict, acts, start, j, zerov, zero, dim, base, partbas, heads,
#
# SetFilterObj( hom, IsActionHomomorphismByBase );
# RUN_IN_GGMBI:=p;
base:=ImmutableMatrix(field,base);
SetLinearActionBasis(hom,base);
if act=OnRight or act=OnPoints then
# only store for action on right. projective action needs is own call to
# `LinearActionBase' as this will set other needed parameters.
base:=ImmutableMatrix(field,base);
SetLinearActionBasis(hom,base);
fi;

return hom;
end);
Expand Down
2 changes: 1 addition & 1 deletion lib/morpheus.gi
Original file line number Diff line number Diff line change
Expand Up @@ -1587,7 +1587,7 @@ local d,id,H,iso,aut,auts,i,all,hom,field,dim,P,diag,mats,gens,gal;
if Size(gal)>1 then
# Galois
auts:=Concatenation(auts,
List(SmallGeneratingSet(gal),
List(MinimalGeneratingSet(gal),
s->GroupGeneralMappingByImages(G,G,gens,List(gens,x->
Image(hom,
List(PreImagesRepresentative(hom,x),r->List(r,y->Image(s,y))))))));
Expand Down
2 changes: 1 addition & 1 deletion lib/oprt.gi
Original file line number Diff line number Diff line change
Expand Up @@ -3255,7 +3255,7 @@ local xset,dom,D,b,t,i,r,binv,pos,kero,dets,roots,dim,f;
if Length(roots)<=1 then
# 1 will always be root
kero:=[One(f)];
elif IsNaturalGL(Source(hom)) then
elif HasIsNaturalGL(Source(hom)) and IsNaturalGL(Source(hom)) then
# the full GL clearly will contain the kernel
kero:=roots; # to skip test
elif not IsSubset(D,roots) then
Expand Down
19 changes: 9 additions & 10 deletions lib/permdeco.gi
Original file line number Diff line number Diff line change
Expand Up @@ -282,16 +282,15 @@ local cs,i,k,u,o,norm,T,Thom,autos,ng,a,Qhom,Q,E,Ehom,genimages,
# the cs with N gives a cs for M/N.
# take the first subnormal subgroup that is not in N. This will be the
# subgroup
i:=Length(cs);
u:=fail;
if Size(N)=1 then
u:=cs[Length(cs)-1];
u:=cs[2];
else
while u=fail and i>0 do
if not IsSubset(N,cs[i]) then
u:=ClosureGroup(N,cs[i]);
fi;
i:=i-1;
i:=2;
u:=ClosureGroup(N,cs[i]);
while Size(u)=Size(M) do
i:=i+1;
u:=ClosureGroup(N,cs[i]);
od;
fi;

Expand All @@ -302,7 +301,7 @@ local cs,i,k,u,o,norm,T,Thom,autos,ng,a,Qhom,Q,E,Ehom,genimages,
Info(InfoHomClass,1,"Factor: ",Index(u,N),"^",n);
Qhom:=ActionHomomorphism(G,o,"surjective");
Q:=Image(Qhom,G);
Thom:=NaturalHomomorphismByNormalSubgroup(u,N);
Thom:=NaturalHomomorphismByNormalSubgroup(M,u);
T:=Image(Thom);
if IsSubset(M,norm) then
# nothing outer possible
Expand Down Expand Up @@ -350,14 +349,14 @@ local cs,i,k,u,o,norm,T,Thom,autos,ng,a,Qhom,Q,E,Ehom,genimages,
# allow also mapping of `a' by enlarging
gens:=GeneratorsOfGroup(G);

if AssertionLevel()>0 then
if AssertionLevel()>1 then
Ehom:=GroupHomomorphismByImages(G,w,gens,genimages);
Assert(1,fail<>Ehom);
else
Ehom:=GroupHomomorphismByImagesNC(G,w,gens,genimages);
fi;

return [w,Ehom,a,Image(Thom,u),n];
return [w,Ehom,a,Image(Thom,M),n];
end);

#############################################################################
Expand Down
9 changes: 7 additions & 2 deletions lib/ratfunul.gi
Original file line number Diff line number Diff line change
Expand Up @@ -1526,8 +1526,13 @@ local fam, tmp;

# construct the product and check the valuation in case zero divisors
tmp := CoefficientsOfUnivariateRationalFunction(univ);
return UnivariateRationalFunctionByExtRepNC(fam,coef*tmp[1], tmp[2],tmp[3],
IndeterminateNumberOfUnivariateRationalFunction(univ));
if Length(tmp[1])=0 then
return UnivariateRationalFunctionByExtRepNC(fam,[], tmp[2],tmp[3],
IndeterminateNumberOfUnivariateRationalFunction(univ));
else
return UnivariateRationalFunctionByExtRepNC(fam,coef*tmp[1], tmp[2],tmp[3],
IndeterminateNumberOfUnivariateRationalFunction(univ));
fi;
end );

InstallMethod( \*, "coeff * univariate", IsCoeffsElms,
Expand Down
2 changes: 1 addition & 1 deletion lib/teaching.g
Original file line number Diff line number Diff line change
Expand Up @@ -910,7 +910,7 @@ local cl,cnt,bg,bw,bo,bi,k,gens,go,imgs,params,emb,clg,sg,vsu,c,i;
if Size(H)=1 then
k:=One(H);
else
k:=SmallGeneratingSet(H)[1];
k:=MinimalGeneratingSet(H)[1];
fi;
c:=Order(k);
Assert(1,Order(k)=Order(H));
Expand Down
24 changes: 24 additions & 0 deletions tst/teststandard/bugfix.tst
Original file line number Diff line number Diff line change
Expand Up @@ -2988,6 +2988,30 @@ gap> G := SemidirectProduct(H, N);;
gap> Size(Image(Embedding(G, 1)))=Size(H);
true

#2016/3/1 (AH)
gap> g:=PSL(6,4);;
gap> Sum(ConjugacyClasses(g),Size)=Size(g);
true
gap> Size(AutomorphismGroup(TransitiveGroup(12,269)));
14400

#2016/3/3 (AH, reported by DFH)
gap> G:=Group([[[0,1,0,0,0,0,0,0,0],[1,0,0,0,0,0,0,0,0],[0,0,0,1,0,0,0,0,0],
> [0,0,1,0,0,0,0,0,0],[0,0,0,0,0,1,0,0,0],[0,0,0,0,1,0,0,0,0],
> [0,0,0,0,0,0,0,1,0],[0,0,0,0,0,0,1,0,0],
> [1,1,Z(4)^2,Z(4)^2,Z(4)^2,Z(4)^2,0,0,1]],
> [[0,0,1,0,0,0,0,0,0],[Z(4)^2,Z(4),Z(4),0,0,0,0,0,0],
> [Z(4),Z(4)^2,Z(4),0,0,0,0,0,0],[0,0,0,0,1,0,0,0,0],
> [Z(4),Z(4),Z(4),1,1,0,0,0,0],[0,0,0,0,0,0,1,0,0],[1,1,1,0,0,1,1,0,0],
> [0,0,0,0,0,0,0,0,1],[Z(4),Z(4),Z(4),0,0,0,0,1,1]]]*Z(4)^0);;
gap> pa:=ProjectiveActionHomomorphismMatrixGroup(G);;
gap> r:=PseudoRandom(G);;
gap> a:=PreImagesRepresentative(pa,ImagesRepresentative(pa,r));;
gap> Order(r/a) in [1,3];
true
gap> H:=Image(pa);;Size(H);
50232960

#############################################################################
gap> STOP_TEST( "bugfix.tst", 781280000);

Expand Down

0 comments on commit 94f66d8

Please sign in to comment.