Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 22 additions & 6 deletions lib/ctblgrp.gi
Original file line number Diff line number Diff line change
Expand Up @@ -290,7 +290,7 @@ local b;
b:=List(b,i->i{d.invpermlist}); # permuted back
r.niceBasis:=Immutable(b);
fi;
Assert(1,Length(r.niceBasis)=Length(r.base));
Assert(1,Length(r.niceBasis)=Length(r.base), "in DxNiceBasis");
return r.niceBasis;
end );

Expand Down Expand Up @@ -657,7 +657,7 @@ BindGlobal( "DxEigenbase", function(M)

minpol:=MinimalPolynomial(BaseDomain(M),M);

Assert(2,IsDuplicateFree(RootsOfUPol(minpol)));
Assert(2,IsDuplicateFree(RootsOfUPol(minpol)), "in DxEigenbase, 1");
eigenvalues:=Set(RootsOfUPol(minpol));
dim:=0;
bases:=[];
Expand All @@ -674,7 +674,8 @@ BindGlobal( "DxEigenbase", function(M)
Error("Failed to calculate eigenspaces.");
fi;

Assert(3, ForAll([1..Length(bases)],j->bases[j]*M = bases[j]*eigenvalues[j]));
Assert(3, ForAll([1..Length(bases)],j->bases[j]*M = bases[j]*eigenvalues[j]),
"in DxEigenbase, 2");
return rec(base:=bases,
values:=eigenvalues);
end );
Expand Down Expand Up @@ -791,7 +792,7 @@ InstallGlobalFunction(SplitStep,function(D,bestMat)
base:=Matrix(BaseDomain(base[1]),base);
eigenbase:=List(eigen.base,i->List(i,j->j*base));

Assert(1,Length(eigenbase)>1);
Assert(1,Length(eigenbase)>1, "in SplitStep");

ra:=List(eigenbase,i->rec(base:=i,dim:=Length(i)));

Expand Down Expand Up @@ -2286,7 +2287,7 @@ local k,C,D,dsp;
od;

C:=DixontinI(D);
Assert(1,Length(C)=D.klanz);
Assert(1,Length(C)=D.klanz, "in IrrDixonSchneider");
# SetIrr(OrdinaryCharacterTable(G),C);
# (if `IrrDixonSchneider' is called explicitly,
# we want to ignore the attribute)
Expand Down Expand Up @@ -2326,6 +2327,19 @@ InstallMethod( Irr,
return irr;
end );

InstallMethod( Irr,
"for a group with known `IrrDixonSchneider'",
[ IsGroup and HasIrrDixonSchneider, IsZeroCyc ],
function( G, zero )
local irr, tbl;
irr:= IrrDixonSchneider( G );
tbl:= OrdinaryCharacterTable( G );
SetIrr( tbl, irr );
ComputeAllPowerMaps( tbl );
SetInfoText( tbl, "origin: Dixon's Algorithm" );
return irr;
end );


#############################################################################
##
Expand Down Expand Up @@ -2360,7 +2374,8 @@ InstallMethod( Irr,
fi;
od;
od;
Assert( 1, IsCollection( bijection ) and IsEmpty( cclnice ) );
Assert( 1, IsCollection( bijection ) and IsEmpty( cclnice ),
"in Irr via niceomorphism" );

# Compute the values of the irreducibles of the nice object.
irr:= List( Irr( nice ), ValuesOfClassFunction );
Expand All @@ -2374,6 +2389,7 @@ InstallMethod( Irr,
od;
irr:= List( irr, x -> Character( tbl, x ) );
SetIrr( tbl, irr );
SetInfoText( tbl, "origin: via the nice monomorphism of the group" );
return irr;
end );

Expand Down
17 changes: 12 additions & 5 deletions lib/ctblsolv.gi
Original file line number Diff line number Diff line change
Expand Up @@ -657,7 +657,8 @@ InstallGlobalFunction( CoveringTriplesCharacters, function( G, z )
CanonicalRepresentativeOfExternalSet( orb ) );
if not zn in k then
t:= StabilizerOfExternalSet( orb );
Assert( 1, IsIdenticalObj( Parent( t ), G ) );
Assert( 1, IsIdenticalObj( Parent( t ), G ),
"in CoveringTriplesCharacters" );
h:= NaturalHomomorphismByNormalSubgroupNC( t, k );
img:= ImagesSource( h );
Append( r,
Expand Down Expand Up @@ -823,19 +824,23 @@ InstallMethod( Irr,
"for a supersolvable group (Conlon's algorithm)",
[ IsGroup and IsSupersolvableGroup, IsZeroCyc ],
function( G, zero )
local irr;
local irr, tbl;
irr:= IrrConlon( G );
SetIrr( OrdinaryCharacterTable( G ), irr );
tbl:= OrdinaryCharacterTable( G );
SetIrr( tbl, irr );
SetInfoText( tbl, "origin: Conlon's Algorithm" );
return irr;
end );

InstallMethod( Irr,
"for a supersolvable group with known `IrrConlon'",
[ IsGroup and IsSupersolvableGroup and HasIrrConlon, IsZeroCyc ],
function( G, zero )
local irr;
local irr, tbl;
irr:= IrrConlon( G );
SetIrr( OrdinaryCharacterTable( G ), irr );
tbl:= OrdinaryCharacterTable( G );
SetIrr( tbl, irr );
SetInfoText( tbl, "origin: Conlon's Algorithm" );
return irr;
end );

Expand All @@ -853,6 +858,7 @@ InstallMethod( Irr,
tbl:= OrdinaryCharacterTable( G );
SetIrr( tbl, irr );
ComputeAllPowerMaps( tbl );
SetInfoText( tbl, "origin: Baum-Clausen Algorithm" );
return irr;
end );

Expand All @@ -865,6 +871,7 @@ InstallMethod( Irr,
tbl:= OrdinaryCharacterTable( G );
SetIrr( tbl, irr );
ComputeAllPowerMaps( tbl );
SetInfoText( tbl, "origin: Baum-Clausen Algorithm" );
return irr;
end );

Expand Down
5 changes: 4 additions & 1 deletion lib/oprtpcgs.gi
Original file line number Diff line number Diff line change
Expand Up @@ -174,7 +174,10 @@ end );

InstallMethod( OrbitStabilizerAlgorithm,"for pcgs",true,
[IsGroup,IsObject,IsObject,IsPcgs,
IsList,IsRecord],0,
IsList,IsRecord],
# rank above the method based on 'DoOrbitStabilizerAlgorithmStabsize'
{} -> RankFilter(IsGroup and IsFinite) - RankFilter(IsGroup),

function(G,D,blist,pcgs,acts,pntact)
local S,stab,i,pnt,act;
pnt:=pntact.pnt;
Expand Down
20 changes: 19 additions & 1 deletion tst/testinstall/ctbl.tst
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
#@local g,t,lin
#@local g,t,lin,G
gap> START_TEST("ctbl.tst");

# `ClassPositionsOf...' for the trivial group (which usually causes trouble)
Expand Down Expand Up @@ -433,5 +433,23 @@ true
gap> HasIsIrreducibleCharacter( TrivialCharacter( SymmetricGroup( 4 ) ) );
true

# concurring 'Irr' methods
gap> G:= SmallGroup( 24, 5 );;
gap> IsSupersolvable( G );
true
gap> Irr( G );;
gap> InfoText( OrdinaryCharacterTable( G ) );
"origin: Baum-Clausen Algorithm"
gap> G:= SmallGroup( 24, 5 );;
gap> IsSupersolvable( G );
true
gap> IrrConlon( G );; Irr( G );;
gap> InfoText( OrdinaryCharacterTable( G ) );
"origin: Conlon's Algorithm"
gap> G:= SmallGroup( 24, 5 );;
gap> IrrDixonSchneider( G );; Irr( G );;
gap> InfoText( OrdinaryCharacterTable( G ) );
"origin: Dixon's Algorithm"

##
gap> STOP_TEST( "ctbl.tst" );
Loading