@@ -23,12 +23,11 @@ function(G, n)
23
23
return OrbitalGraphs(G, [ 1 .. n] );
24
24
end );
25
25
26
- # The code below is essentially stolen from ferret;
27
- # Do we want to give a naive version that
28
- # just computes all orbital graphs, one that only
29
- # gives a representative in the isomorphism class,
30
- # and a version that gives the ones actually used in
31
- # backtrack?
26
+ # The code below was originally essentially stolen from ferret.
27
+ # Do we want to give different versions of this:
28
+ # a naive version that just computes all orbital graphs,
29
+ # a version that only gives a representative in the isomorphism class, and
30
+ # a version that gives the ones actually used in backtrack?
32
31
#
33
32
InstallMethod(OrbitalGraphs, " for a permutation group and a homogeneous list" ,
34
33
[ IsPermGroup, IsHomogeneousList] ,
@@ -71,7 +70,9 @@ function(G, points)
71
70
moved := Intersection(points, MovedPoints(G));
72
71
orbitsG := Orbits(G, moved);
73
72
73
+ # FIXME: Currently unused
74
74
orbsizes := [] ;
75
+ # FIXME: Currently unused
75
76
orbpos := [] ;
76
77
77
78
# Efficently store size of orbits of values
@@ -83,15 +84,16 @@ function(G, points)
83
84
od ;
84
85
85
86
innerorblist := List(orbitsG, o -> Orbits(Stabilizer(G, o[ 1 ] ), moved));
87
+ # FIXME: Currently unused
86
88
orbitsizes := List([ 1 .. Length(orbitsG)] ,
87
89
x -> List(innerorblist[ x] , y -> Size(orbitsG[ x] )* Size(y)));
88
90
89
- for i in [ 1 .. Size (orbitsG)] do
91
+ for i in [ 1 .. Length (orbitsG)] do
90
92
orb := orbitsG[ i] ;
91
93
orbreps := [] ;
92
94
93
95
for iorb in innerorblist[ i] do
94
- if not ( orb[ 1 ] = iorb[ 1 ] and Size(iorb) = 1 )
96
+ if not (Size(iorb) = 1 and orb[ 1 ] = iorb[ 1 ] ) # No loopy orbitals
95
97
then
96
98
graph := List([ 1 .. maxval] , x -> [] );
97
99
if IsEmpty(orbreps) then
@@ -103,11 +105,10 @@ function(G, points)
103
105
od ;
104
106
D := Digraph(graph);
105
107
SetUnderlyingGroup(D, G);
106
- Add (graphlist, D);
108
+ AddSet (graphlist, D);
107
109
fi ;
108
110
od ;
109
111
od ;
110
- Sort(graphlist);
111
112
Perform(graphlist, function (x ) SetFilterObj(x, IsOrbitalGraphOfGroup); end );
112
113
return graphlist;
113
114
end );
@@ -162,9 +163,7 @@ end);
162
163
163
164
164
165
InstallMethod(OrbitalIndex, " for a permutation group" , [ IsPermGroup] ,
165
- function (G )
166
- return Index(OrbitalClosure(G), G);
167
- end );
166
+ { G} -> Index(OrbitalClosure(G), G));
168
167
169
168
170
169
# # Recognising a group from its orbital graphs
0 commit comments