diff --git a/doc/ref/meataxe.xml b/doc/ref/meataxe.xml index 6d8eae834e..8ee1bd4464 100644 --- a/doc/ref/meataxe.xml +++ b/doc/ref/meataxe.xml @@ -393,6 +393,7 @@ and change is the base change from bas to sub creates a new module corresponding to the action of module on +the non-trivial submodule sub. In the NB version the basis sub must be normed. (That is it must be in echelon form with pivots normed to 1, @@ -405,7 +406,7 @@ see .) creates a new module corresponding to the action of module on the -factor of sub. If compl is given, it has to be a basis of a +factor of the proper submodule sub. If compl is given, it has to be a basis of a (vector space-)complement of sub. The action then will correspond to compl.

diff --git a/lib/combinat.gi b/lib/combinat.gi index be8b5bdeac..0475f63ef5 100644 --- a/lib/combinat.gi +++ b/lib/combinat.gi @@ -2466,6 +2466,7 @@ InstallGlobalFunction(AssociatedPartition,function(lambda) local res, k, j; res := []; k := Length(lambda); + if k=0 then return res;fi; # empty partition for j in [1..lambda[1]] do if j <= lambda[k] then res[j] := k; diff --git a/lib/meataxe.gi b/lib/meataxe.gi index 2267e545a3..59ce7e3ded 100644 --- a/lib/meataxe.gi +++ b/lib/meataxe.gi @@ -3128,17 +3128,6 @@ local a,u,i,nb; end; SMTX.BasesMinimalSupermodules:=SMTX_BasesMinimalSupermodules; -SMTX_BasisRadical:=function(module) -local m,i,r; - m:=SMTX.BasesMaximalSubmodules(module); - r:=m[1]; - for i in [2..Length(m)] do - r:=SumIntersectionMat(r,m[i])[2]; - od; - return r; -end; -SMTX.BasisRadical:=SMTX_BasisRadical; - ############################################################################# ## #F SMTX.SpanOfMinimalSubGModules(m1, m2) . . @@ -3182,7 +3171,7 @@ local cf, mat, i; cf:=SMTX.CollectedFactors(module); mat:=Concatenation(List(cf,i->SMTX_SpanOfMinimalSubGModules(i[1],module))); if Length(cf) = 1 then - return mat; + return ImmutableMatrix(module.field,mat); fi; TriangulizeMat(mat); mat:=ImmutableMatrix(module.field,mat); diff --git a/tst/testinstall/combinat.tst b/tst/testinstall/combinat.tst index b572bfbb86..14ddf3a362 100644 --- a/tst/testinstall/combinat.tst +++ b/tst/testinstall/combinat.tst @@ -498,5 +498,11 @@ gap> Print(List( [0..14], Bernoulli ),"\n"); gap> Bernoulli( 80 ); -4603784299479457646935574969019046849794257872751288919656867/230010 +# AssociatedPartition +gap> AssociatedPartition([]); +[ ] +gap> AssociatedPartition(Concatenation([7],ListWithIdenticalEntries(99,1))); +[ 100, 1, 1, 1, 1, 1, 1 ] + # thats it for the combinatorical package ################################## gap> STOP_TEST( "combinat.tst", 1);