Skip to content

Commit

Permalink
ENHANCE: In PcSeries do not induce if the pcgs is being built
Browse files Browse the repository at this point in the history
There are two different situations in which PcSeries is called. The first is
a good pcgs and we happen to want the series -- this is the existing code.

The second case is that the series is needed to do anything with the pcgs.
In this case inducing caused bad recursions. Avoid this.
  • Loading branch information
hulpke committed Oct 26, 2016
1 parent 3b1a8a6 commit fc44a2c
Showing 1 changed file with 9 additions and 1 deletion.
10 changes: 9 additions & 1 deletion lib/pcgscomp.gi
Original file line number Diff line number Diff line change
Expand Up @@ -192,20 +192,28 @@ end );
##
InstallMethod( PcSeries,"construct subgroups", true, [ IsPcgs ], 0,
function( pcgs )
local grp, series, i;
local grp, series, i,hasro;

# construct the group generated by <pcgs>
#T 1996/10/01 fceller something seems to break for Difference or Set
#T grp := GroupByGenerators( pcgs, One(pcgs) );
#T seems to work now, 1998/12/09 sam

grp := GroupOfPcgs(pcgs);
hasro:=HasRelativeOrders(pcgs);

# construct the series
series := [ grp ];
for i in [ 2 .. Length(pcgs)+1 ] do
if hasro then
# pcgs is all in place -- use induced pcgs for generators to build
# series after pcgs is at work
Add( series, SubgroupByPcgs( grp,
InducedPcgsByPcSequenceNC(pcgs,pcgs{[ i .. Length(pcgs) ]} ) ));
else
# pcgs is being built. Don't induce, but just use subgroup.
Add( series, SubgroupNC( grp, pcgs{[ i .. Length(pcgs) ]} ) );
fi;
od;

return series;
Expand Down

0 comments on commit fc44a2c

Please sign in to comment.