Group constructors

diofant.combinatorics.group_constructs.DirectProduct(*groups)[source]

Returns the direct product of several groups as a permutation group.

This is implemented much like the __mul__() procedure for taking the direct product of two permutation groups, but the idea of shifting the generators is realized in the case of an arbitrary number of groups. A call to DirectProduct(G1, G2, …, Gn) is generally expected to be faster than a call to G1*G2*…*Gn (and thus the need for this algorithm).

Examples

>>> C = CyclicGroup(4)
>>> G = DirectProduct(C, C, C)
>>> G.order()
64