Skip to content

Commit

Permalink
Another place of matrix objects in Dixon-Schneider
Browse files Browse the repository at this point in the history
Also don't hope for universal splitting matric if there are many (>20)
spaces, the test ends up far too expensive.
  • Loading branch information
hulpke committed Mar 22, 2022
1 parent b6851df commit c841d52
Showing 1 changed file with 7 additions and 3 deletions.
10 changes: 7 additions & 3 deletions lib/ctblgrp.gi
Original file line number Diff line number Diff line change
Expand Up @@ -692,7 +692,7 @@ InstallGlobalFunction(SplitStep,function(D,bestMat)
D.ClassMatrixColumn(D,M,bestMat,col);
od;

M:=M*o;
M:=Matrix(D.field,Unpack(M)*o);

# note,that we will have calculated yet one!
D.maycent:=true;
Expand Down Expand Up @@ -1314,7 +1314,7 @@ end;
##
InstallGlobalFunction( BestSplittingMatrix, function(D)
local n,i,val,b,requiredCols,splitBases,wert,nu,r,rs,rc,bn,bw,split,
orb,os,lim,ksl,dmats;
orb,os,lim,ksl,dmats,imp;

nu:=Zero(D.field);
requiredCols:=List([1..D.klanz],x->[]);
Expand Down Expand Up @@ -1342,6 +1342,7 @@ local n,i,val,b,requiredCols,splitBases,wert,nu,r,rs,rc,bn,bw,split,
requiredCols[n]:=[];
splitBases[n]:=[];
wert[n]:=0;
imp:=false;

# only take classes small enough
if D.classiz[n]<=lim and
Expand All @@ -1364,6 +1365,7 @@ local n,i,val,b,requiredCols,splitBases,wert,nu,r,rs,rc,bn,bw,split,
else
b:=DxNiceBasis(D,r);
split:=ForAny(b{[2..r.dim]},i->i[n]<>nu);
imp:=imp or split;
if split then
if r.dim<4 then
# very small spaces will split nearly perfect
Expand Down Expand Up @@ -1414,7 +1416,9 @@ local n,i,val,b,requiredCols,splitBases,wert,nu,r,rs,rc,bn,bw,split,
fi;
# is there one that does all already? If so don't bother testing the
# rest, as we go by cost
if ForAll(D.raeume,x->IsBound(x.splits)) then
if imp and Length(D.raeume)<=20
and ForAll(D.raeume,x->IsBound(x.splits)) then

rc:=Intersection(List(D.raeume,x->Filtered([1..Length(x.splits)],
y->IsBound(x.splits[y]) and x.splits[y].split=true)));
if Length(rc)>0 then
Expand Down

0 comments on commit c841d52

Please sign in to comment.