
    \h                     F    S SK Jr  S SKJr  S SKJr  \R                  rS rg)    )PermutationGroup)Permutation)uniqc                     / n/ nSnSnU  HN  nUR                   n[        UR                  5      nUR                  U5        X6-  nUR                  U5        XG-  nMP     / n[	        U5       H&  n	UR                  [        [	        U5      5      5        M(     Sn
Sn[	        [        U5      5       Hc  n	[	        XX)   -   5       H>  nX	   R                  X-
     R                  nU Vs/ s H  oU-   PM	     snX   XfX   -   & M@     XU	   -  n
XaU	   -  nMe     [        [        U Vs/ s H  n[        [        U5      5      PM     sn5      5      n[        USS9$ s  snf s  snf )a  
Returns the direct product of several groups as a permutation group.

Explanation
===========

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
========

>>> from sympy.combinatorics.group_constructs import DirectProduct
>>> from sympy.combinatorics.named_groups import CyclicGroup
>>> C = CyclicGroup(4)
>>> G = DirectProduct(C, C, C)
>>> G.order()
64

See Also
========

sympy.combinatorics.perm_groups.PermutationGroup.__mul__

r   F)dups)
degreelen
generatorsappendrangelist
array_formr   _af_newr   )groupsdegrees
gens_counttotal_degree
total_gensgroupcurrent_degcurrent_num_gens
array_gensicurrent_genjgenxa	perm_genss                   \/var/www/auris/envauris/lib/python3.13/site-packages/sympy/combinatorics/group_constructs.pyDirectProductr!      se   : GJLJllu//0{##*+&
  J:$u\234 KK3z?#{*-$?@AI((!/:FFC*-.#Q[#. M+GJ&>? A 	!}$qz! $ TZ@Z747+Z@ABIIE22	 / As   #E!EN)sympy.combinatorics.perm_groupsr    sympy.combinatorics.permutationsr   sympy.utilities.iterablesr   r   r!        r    <module>r'      s    < 8 *


53r&   