Chris Wensley asked about an "IsDirectSummand" function, and Joachim
Neubueser called attention to the Complementclasses function as a way to
deal with the question.
If I understand correctly, Wensley would like to test whether a given
normal subgroup H is a direct factor of G, and if it is, to find at least
one direct complement. For small groups, checking the complements to H to
see to see if any (or several) are normal is perhaps feasible. For somewhat
larger groups, say of order prime^small, one may have a large number of
nonnormal complements to contend with. In such a case it may be consider-
ably faster to use Complementclasses ( Centralizer (G,H) , Centre (H) ),
which produces a list of all direct complements to H in G by looking in
the smaller group Centralizer (G,H). To get just one complement, replace
Complementclasses by Complement.
If only the existence of a direct complement is required, it seems that
one has to weigh the cost of computing the Centralizer and Center against
the likelihood of hitting a normal complement fairly quickly in a list of
all classes of complements to H.
Checking whether a given normal subgroup is a direct factor is straight-
forward. The question of determining whether G itself is a direct product
appears to be considerably more difficult.
_--_|\ C.R.B. Wright / \ Charles.Wright@maths.anu.edu.au \_.--._/ email@example.com v