Read("OrderTable"); # Gives buckets and ordered buckets
#############################################################################
#
#F Function makeTable( )
#
# <#GAPDoc Label="makeTableHeader">
#
#
#
#
#
# matrix of information on how the socle and radical series
# differ for each basic algebra.
#
# compute2 Should use orderedBuckets created
# from OrderTable. Reads in socle and radical file
# for each basic algebra and computes how they
# differ in terms of factors, modules in factors,
# and whether the same holds for all PIMs.
#
#
# <#/GAPDoc>
#
# METHOD: Run through list of records in orderedBuckets, read in
# socle and radica series info for basic algebra, then
# count number of PIMs with differeing socle and radical
# series, count the number of differing factors, and
# differeing modules in each factor. Record only the largest
# numbers by which they differ and record true or false if
# this applies to all PIMs or not.
#
#############################################################################
makeTable := function(buckets)
local mat, i,j,k,numfact, tnumfact, m, dpim, dfact, dsim, tfact, tsim, truth, rz, cz, s, f, x,y;
rz:=true; cz:=true; s:=0; f:=0; i:=0; j:=0; x:=0; y:=0;
dpim :=0; dfact:=0; dsim:=0; tfact:= true; tsim := true; truth := true;
numfact:=0; tnumfact:= true;
# Initialize a null matrix to be filled in
mat :=NullMat(11,Length(buckets));
# Column 1 of the matrix consists of row names
mat[1][1]:="Group";
mat[2][1]:="Prime";
mat[3][1]:="Multiplicity"; # of prime in group order
mat[4][1]:="\\#PIMs in Block"; # Number of PIMs on the block, in general the principle block
mat[5][1]:= "\\#PIMs diff. SR"; # Number of PIMs whose socle and radical series differ
mat[6][1]:="Max Factors of PIMs"; # The max number of factors in series between all PIMs
mat[7][1]:="All PIMs same length"; # True if all PIMs have the same Loewy length, else false
mat[8][1]:="Max \\#diff. factors"; # The max number of differing factors in series between all PIMs
mat[9][1]:="PIMs diff by same \\#factors"; # True if all PIMs differ by the same number of factors
mat[10][1]:="Max diff \\#modules in factors"; # The max number of differing modules in a factor between all PIMs
mat[11][1]:="All factors diff same \\#modules"; # True if all factors differ by the same number of modules
for i in [1..Length(buckets)] do
mat[1][i+1]:= buckets[i].group;
Read(buckets[i].name);
mat[2][i+1]:= list.prime;
mat[3][i+1]:= buckets[i].order;
mat[4][i+1]:= Length(list.PIMs);
# Initialize variables for computing rows 5-11 of matrix
numfact:=0;
tnumfact:= true;
dpim :=0;
dfact:=0;
dsim:=0;
tfact:= true;
tsim := true;
truth := true;
rz:=true;
cz:=true;
s:=0;
f:=0;
# Compute the values for rows 5-11 for each basic algebra
for j in [1..Length(list.PIMs)] do
m:=[]; f:=0;
m:=list.PIMs[j].socleSeries -list.PIMs[j].radicalSeries;
if numfact =0 then numfact := Length(m);
elif Length(m)>numfact then
numfact:=Length(m);
tnumfact:= false;
fi;
for x in [1..Length(m)] do
s:=0;
for y in [1..Length(TransposedMat(m))] do
if (m[x][y]= 0) = false then
rz:= false;
cz:= false;
s:=s+ m[x][y];
truth := false;
fi;
od;
if dsim = 0 then dsim := s; elif s> dsim then
dsim := s;
tsim := false;
fi;
if rz=false then
f:=f + 1;
rz:= true;
fi;
od;
if dfact = 0 then
dfact := f;
elif f>dfact then d
fact := f;
tfact:=false;
fi;
if truth = false then dpim := dpim + 1;fi;
f:=0;
od;
mat[5][i+1]:= dpim;
mat[6][i+1]:=numfact;
mat[7][i+1]:=tnumfact;
mat[8][i+1]:= dfact;
mat[9][i+1]:= tfact;
mat[10][i+1]:= dsim;
mat[11][i+1]:=tsim;
od;
return mat;
end;