+
    iY                        ^ RI HtHt ^ RIHtHt ^ RIHtHtH	t	 ^ RI
HtHt ^ RIHtHtHt ^ RIHtHtHtHtHtHtHtHtHt ^ RIHt ^ RIHt ^ R	IH t  R
 t!R t"R t#R t$R t%R t&R t'R t(R t)R t*R t+R t,R t-R t.R t/R t0R t1R t2R t3R t4R t5R t6R  t7R! t8R" t9R# t:R$ t;R% t<R& t=R' t>R( t?R) t@R* tAR+ tBR, tCR- tDR. tER/ tFR0 tGR1 tHR2 tIR3 tJR4 tKR5 tLR6 tMR7 tNR8 tOR9 tPR: tQR; tRR< tSR= tTR> tUR? tVR@# )A    )xzeta)Polycyclotomic_poly)FFQQZZ)DomainMatrixDM)ClosureFailureMissingUnityErrorStructureError)	ModuleModuleElementModuleEndomorphism
PowerBasisPowerBasisElementfind_min_polyis_sq_maxrank_HNFmake_mod_eltto_colis_int)UnificationFailed)raisesc                      . ROp \        V 4      pVP                  P                  '       g   Q hVP                  R8X  g   Q hVP	                  4       V 8X  g   Q hR# )   Nr            )r!   r   )r   domainis_ZZshapeflat)cms     i/var/www/html/photoedit/myenv/lib/python3.14/site-packages/sympy/polys/numberfields/tests/test_modules.pytest_to_colr)      sF    Aq	A88>>>>77f668q==    c                     a  \        4       o \        \        V 3R  l4       \        \        V 3R l4       \        \        V 3R l4       \        \        V 3R l4       \        \        V 3R l4       R# )c                     < S P                   # N)nMs   r(   <lambda>,test_Module_NotImplemented.<locals>.<lambda>   s	    r*   c                  $   < S P                  4       # r-   )mult_tabr/   s   r(   r1   r2      s    

r*   c                  &   < S P                  R 4      # r-   	representr/   s   r(   r1   r2          D(9r*   c                  $   < S P                  4       # r-   )starts_with_unityr/   s   r(   r1   r2      s    (;(;(=r*   c                  :   < S P                  \        ^^4      4      # r   )element_from_rationalr   r/   s   r(   r1   r2      s    (?(?1a(Ir*   N)r   r   NotImplementedErrorr/   s   @r(   test_Module_NotImplementedr?      sE    A
,
 45
 9:
 =>
 IJr*   c                  z   \        \        ^\        4      4      p \        V 4      pVP	                  ^\
        P                  ! ^\        4      ,          4      pVP	                  ^\
        P                  ! ^\        4      ,          4      pVP	                  ^\
        P                  ! ^\        4      ,          4      pVP                  RR7      WV.8X  g   Q hVP                  RR7      WV.8X  g   Q hVP                  4       V8X  g   Q hVP                  V4      V8X  g   Q h\        4       pVP                  4       e   Q hR# )   T)include_selfN)r   r   r   r   submodule_from_matrixr
   eyer	   	ancestorspower_basis_ancestornearest_common_ancestorr   )TABCDr0   s         r(   test_Module_ancestorsrM   "   s   _Q"#A1A	L$4$4Q$; ;<A	L$4$4Q$; ;<A	L$4$4Q$; ;<A;;D;)aAY666;;D;)aAY666!!#q((($$Q'1,,,A!!#+++r*   c                  \   \        \        ^\        4      4      p \        V 4      p\	        . RO4      pVP                  4       pVP                  V4      RJ g   Q hVP                  V4      RJ g   Q hVP                  ^4      RJ g   Q hVP                  \        P                  ! ^\        4      R,          4      RJ g   Q hVP                  \        P                  ! ^\        4      R,          4      RJ g   Q hVP                  \        P                  ! ^\        4      R,          4      RJ g   Q hR# )rA   TFNr   )NNNr   )r   r   r   r   r   	transposeis_compat_colr
   rD   r	   r   )rH   rI   colrows       r(   test_Module_compat_colrT   0   s    _Q"#A1A

C
--/C??34'''??35(((??1&&&??<++Ar2489UBBB??<++Ar2489UBBB??<++Ar2489TAAAr*   c                    a \        \        ^\        4      4      p \        V 4      oS! ^ 4      P                  P                  4       . RO8X  g   Q hS! ^4      P                  P                  4       . RO8X  g   Q h\        P                  ! ^\        4      R,          pS! V4      P                  V8X  g   Q h\        \        V3R l4       R# )rA   c                     < S ! R4      # )r    rJ   s   r(   r1   "test_Module_call.<locals>.<lambda>D   s	    qur*   Nr   r   r   r   r   r   r   r   )rO   r   )r   r   r   r   rR   r%   r
   rD   r	   r   
ValueError)rH   rR   rJ   s     @r(   test_Module_callr^   =   s    _Q"#A1AQ488==?l***Q488==?l***


1b
!$
'CS6::
:}%r*   c                     \        \        ^\        4      4      p \        V 4      pVP	                  ^\
        P                  ! ^\        4      ,          4      pVP                  4       RJ g   Q hVP                  4       RJ g   Q hR# rA   TFN)	r   r   r   r   rC   r
   rD   r	   r:   rH   rI   rJ   s      r(   test_Module_starts_with_unityrb   G   sl    _Q"#A1A	L$4$4Q$; ;<A D((( E)))r*   c                     \        \        ^\        4      4      p \        V 4      pVP	                  ^\
        P                  ! ^\        4      ,          4      pVP                  4       pVP                  4       p\        \        W44      4       Fn  w  pw  rg^ .^,          pVP                  V8X  g   Q hVP                  V8X  g   Q h^W&   Wb! \        V4      4      8X  g   Q h^W&   Wq! \        V4      4      8X  d   Kn  Q h	  R# rA   N)r   r   r   r   rC   r
   rD   r	   basis_elementsbasis_element_pullbacks	enumeratezipmoduler   )	rH   rI   rJ   basisbpiepr&   s	            r(   test_Module_basis_elementsro   O   s    _Q"#A1A	L$4$4Q$; ;<AE	
	"	"	$Bs5~.	6AC!Gxx1}}xx1}}AfQiL   AfQiL    /r*   c                     \        \        ^\        4      4      p \        V 4      pVP	                  ^\
        P                  ! ^\        4      ,          4      pVP                  4       P                  P                  4       . RO8X  g   Q hVP                  4       P                  V8X  g   Q hVP                  4       P                  P                  4       . RO8X  g   Q hVP                  4       P                  V8X  g   Q hR# )rA   Nr   r   r   r   )r   r   r   r   rC   r
   rD   r	   zerorR   r%   ri   ra   s      r(   test_Module_zerors   _   s    _Q"#A1A	L$4$4Q$; ;<A668<<,...668??a668<<,...668??ar*   c                     \        \        ^\        4      4      p \        V 4      pVP	                  ^\
        P                  ! ^\        4      ,          4      pVP                  4       P                  P                  4       . RO8X  g   Q hVP                  4       P                  V8X  g   Q hVP                  4       P                  P                  4       . RO8X  g   Q hVP                  4       P                  V8X  g   Q hR# )rA   Nr[   )r   r   r   r   rC   r
   rD   r	   onerR   r%   ri   ra   s      r(   test_Module_onerv   i   s    _Q"#A1A	L$4$4Q$; ;<A557;;---557>>Q557;;---557>>Qr*   c                     \        \        ^\        4      4      p \        V 4      pVP	                  ^\
        P                  ! ^\        4      ,          4      pVP                  \        ^^4      4      pVP                  \        ^^4      4      pVP                  . RO8X  g   Q hVP                  ^8X  g   Q hVP                  V8X  g   Q hVP                  . RO8X  g   Q hVP                  ^8X  g   Q hVP                  V8X  g   Q hR# )rA   N)   r   r   r   )r   r   r   r   rC   r
   rD   r	   r=   r   coeffsdenomri   )rH   rI   rJ   rArBs        r(   !test_Module_element_from_rationalr}   s   s    _Q"#A1A	L$4$4Q$; ;<A	
	 	 B	+B	
	 	 B	+B99%%%88q==99>>99%%%88q==99>>r*   c                    aa \        \        ^\        4      4      p \        V 4      o^S! ^ 4      ,          ^S! ^4      ,          ^S! ^ 4      ,          ^S! ^4      ,          .pSP	                  V4      oV^ ,          P                  4       P                  V^,          P                  4       4      pSP                  V8X  g   Q h\        \        V3R l4       \        \        VV3R l4       R# )rA   c                  &   < S P                  . 4      # r-   submodule_from_gensrI   s   r(   r1   1test_Module_submodule_from_gens.<locals>.<lambda>   s    q44R8r*   c                  P   < S P                  ^S ! ^ 4      ,          S! ^ 4      .4      # r    r   )rI   rJ   s   r(   r1   r      s     q44a!fad^Dr*   N)
r   r   r   r   r   columnhstackmatrixr   r]   )rH   gensr0   rI   rJ   s      @@r(   test_Module_submodule_from_gensr      s    _Q"#A1AadFAadFAadFAadF+D	d#A 	QQ 01A88q==
:89
:DEr*   c                    a \        \        ^\        4      4      p \        V 4      oSP	                  ^\
        P                  ! ^\        4      ,          4      pV! \        . RO4      4      pVP                  4       pVP                  P                  4       . RO8X  g   Q h\        \        V3R l4       \        \        V3R l4       R# )rA   c                  X   < S P                  \        P                  ! ^\        4      4      # )r!   )rC   r
   rD   r   r   s   r(   r1   3test_Module_submodule_from_matrix.<locals>.<lambda>   s    q66|7G7G27NOr*   c                  f   < S P                  ^\        P                  ! ^\        4      ,          4      # r<   )rC   r
   rD   r	   r   s   r(   r1   r      s"    q66q<;K;KAr;R7RSr*   Nr   r   r!         )r   r   r   r   rC   r
   rD   r	   r   	to_parentrR   r%   r   r]   )rH   rJ   rm   frI   s       @r(   !test_Module_submodule_from_matrixr      s    _Q"#A1A	L$4$4Q$; ;<A	&
A	A55::<<'''
:OP
:STr*   c                  z   \        \        ^\        4      4      p \        V 4      pVP	                  4       pV! \        . RO4      4      pVP                  4       pVP                  P                  4       . RO8X  g   Q hV! ^ 4      V! ^4      V! ^4      V! ^4      3w  rVrxWx,          V8X  g   Q hV^,          V8X  g   Q hR# rA   Nr   )	r   r   r   r   whole_submoduler   r   rR   r%   )	rH   rI   rJ   rm   r   e0e1e2e3s	            r(   test_Module_whole_submoduler      s    _Q"#A1A	A	&
A	A55::<<'''qT1Q41qt+NBB7b==7b==r*   c                  r    \        \        ^\        4      4      p \        V 4      p\	        V4      R8X  g   Q hR# )rA   z&PowerBasis(x**4 + x**3 + x**2 + x + 1)N)r   r   r   r   repr)rH   rI   s     r(   test_PowerBasis_reprr      s/    _Q"#A1A7>>>>r*   c                  t    \        \        ^\        4      4      p \        V 4      p\        V 4      pW8X  g   Q hR# rd   )r   r   r   r   ra   s      r(   test_PowerBasis_eqr      s.    _Q"#A1A1A6M6r*   c            
      j  a \        \        ^\        4      4      p \        V 4      pVP	                  4       o^ ^ . RO^. RO^. RO^. RO/^^. RO^. RO^. R	O/^^. R	O^. RO/^^. RO//pSV8X  g   Q h\
        ;QJ d    V3R lS 4       F  '       d   K   RM	  RM! V3R lS 4       4      '       g   Q hR# )
rA   c              3      <"   T F7  pSV,           F'  pSV,          V,           F  p\        V4      x  K  	  K)  	  K9  	  R # 5ir-   r   ).0uvr&   r0   s   &   r(   	<genexpr>+test_PowerBasis_mult_tab.<locals>.<genexpr>   s7     C!QQqTT1Q477avayy7yTy!s   ?AFTNr[   r\   r   r   r   r   r   r   r   r   rW   rW   rW   rW   )r   r   r   r   r4   all)rH   rI   expr0   s      @r(   test_PowerBasis_mult_tabr      s    _Q"#A1A	

Aq,<L!\Rq,<4DEq"A|4q,!C
 8O83C!C333C!CCCCCr*   c                     aa \        \        ^\        4      4      p \        V 4      o\	        . RO4      pS! V4      pSP                  V4      V8X  g   Q hS! V^R7      o\        \        VV3R l4       R# )rA   rz   c                  &   < S P                  S4      # r-   r6   )rI   bs   r(   r1   +test_PowerBasis_represent.<locals>.<lambda>   s    1;;q>r*   Nr   )r   r   r   r   r   r7   r   r   )rH   rR   arI   r   s      @@r(   test_PowerBasis_representr      s\    _Q"#A1A

C	#A;;q>S   	#QA
>12r*   c                     \        \        ^\        4      4      p \        V 4      p\        ^^\        ,          ,           4      p\        \        ^,          4      p\        ^ \        4      pVP	                  V4      P
                  . RO8X  g   Q hVP	                  V4      P
                  . RO8X  g   Q hVP	                  V4      P
                  . RO8X  g   Q hR# )rA   N)r   r   r   r   r   rq   )r   r   r   r   element_from_polyry   )rH   rI   r   ghs        r(   !test_PowerBasis_element_from_polyr      s    _Q"#A1AQ1WAQT
AQ
Aq!((L888q!((,<<<<q!((L888r*   c                    aaaa	 \         P                  ! ^4      p \         P                  ! ^4      p\        V 4      oV ! \        ^^4      \        ^^4      ^^.4      pSP                  V4      pVP                  . RO8X  g   Q hVP
                  ^8X  g   Q hVP                  4       V8X  g   Q hV! \        ^^4      \        ^^4      ^^.4      o\        \        VV3R l4       V P                  V4      pSP                  V4      o	S	P                  . RO8X  g   Q hS	P
                  ^8X  g   Q hS	P                  4       V8X  g   Q hVP                  S4      o\        \        VV3R l4       \        V P                  P                  4      pVP                  V4      o	S	P                  . RO8X  g   Q hS	P
                  ^8X  g   Q h\        \        V	3R l4       R# )rA   c                  &   < S P                  S4      # r-   )element_from_ANP)rJ   ds   r(   r1   6test_PowerBasis_element__conversions.<locals>.<lambda>   s    a&8&8&;r*   c                  &   < S P                  S4      # r-   )element_from_alg_num)rJ   deltas   r(   r1   r      s    a&<&<U&Cr*   c                  $   < S P                  4       # r-   )
to_alg_num)epss   r(   r1   r      s    3>>#3r*   N)*      r   r    )r   cyclotomic_fieldr   r   ry   rz   to_ANPr   r   r   r   extminpolyr   )
kLr   rm   alpharK   rJ   r   r   r   s
         @@@@r(   $test_PowerBasis_element__conversionsr      s   
AA
AA1A 	
2a8R1Xq!
$%A	1A88~%%%77a<< 88:?? 	
2a8R1Xq!
$%A
;< LLOE

 
 
'C::'''99>> >>u$$$ LLOE
CD 	155==!A

 
 
'C::'''99>>
>34r*   c                      \        \        ^\        4      4      p \        V 4      pVP	                  ^\
        P                  ! ^\        4      ,          ^R7      p\        V4      R8X  g   Q hR# )rA   r   zCSubmodule[[2, 0, 0, 0], [0, 2, 0, 0], [0, 0, 2, 0], [0, 0, 0, 2]]/3N)	r   r   r   r   rC   r
   rD   r	   r   ra   s      r(   test_Submodule_reprr     sV    _Q"#A1A	L$4$4Q$; ;1EA7[[[[r*   c                  ~   \        \        ^\        4      4      p \        V 4      pVP	                  ^\
        P                  ! ^\        4      ,          4      pVP	                  ^\
        P                  ! ^\        4      ,          ^R7      pVP                  4       pVP                  ^8X  d   YCu;8X  d	   V8X  g   Q h Q hR# rA   r   N)
r   r   r   r   rC   r
   rD   r	   reducedrz   rH   rI   rJ   rK   rL   s        r(   test_Submodule_reducedr   	  s    _Q"#A1A	L$4$4Q$; ;<A	L$4$4Q$; ;1EA			A77a<AKaK''K''Kr*   c                     \        \        ^\        4      4      p \        V 4      pVP	                  ^\
        P                  ! ^\        4      ,          4      pVP                  4        VP                  ^4      pVP                  VP                  8X  g   Q hVP                  4       '       d   VP                  4       '       d   Q hVP                  VP                  R,          8X  g   Q hVP                  4       ^ ^ RR.^^ ^ ./^^^ ^ .//8X  g   Q hR# )rA   N)rO   :r   NN)r   r   r   r   rC   r
   rD   r	   compute_mult_tabdiscard_beforeparentr   r   r4   rH   rI   rJ   rK   s       r(   test_Submodule_discard_beforer     s    _Q"#A1A	L$4$4Q$; ;<A	A88qxx  )<)<)>)>>>88qxx&&&::<AB8QA7QAKHHHHr*   c                  P   \        \        ^\        4      4      p \        V 4      pVP	                  ^\
        P                  ! ^\        4      ,          4      pVP	                  ^\
        P                  ! ^\        4      ,          ^R7      pVP                  VP                  8X  g   Q hR# r   )	r   r   r   r   rC   r
   rD   r	   	QQ_matrixr   s       r(   test_Submodule_QQ_matrixr     s{    _Q"#A1A	L$4$4Q$; ;<A	L$4$4Q$; ;1EA;;!++%%%r*   c                    aa	a
aa \        \        ^\        4      4      p \        V 4      oSP	                  ^\
        P                  ! ^\        4      ,          4      o	S	P	                  ^\
        P                  ! ^\        4      ,          4      pS! \        . RO4      4      pS! \        . RO4      4      pS! \        . RO4      4      oS	P                  V4      pVP                  4       . RO8X  g   Q hVP                  V4      pVP                  4       . RO8X  g   Q hSP	                  \        . R	O. R
O. RO.R\        4      P                  4       4      o
\        \        ^\        4      4      p\        V4      pV! \        . RO4      4      o\        \        VV
3R l4       \        \        V	V3R l4       \        \        V	V3R l4       R# )rA   c                  2   < SP                  S ! ^4      4      # r   r6   )rI   Ys   r(   r1   *test_Submodule_represent.<locals>.<lambda>?  s    1;;qt#4r*   c                  &   < S P                  S4      # r-   r6   )rJ   a2s   r(   r1   r   @      1;;r?r*   c                  &   < S P                  S4      # r-   r6   )rJ   z0s   r(   r1   r   A  r   r*   N)r            r   )r   r    rA      r   r[   r\   r   r    r!   )r   r   r    r!   rA   r   )r   r   r   r   rC   r
   rD   r	   r   r7   r%   rP   r   r   )rH   rK   a0a1b1c0UZrI   rJ   r   r   r   s           @@@@@r(   test_Submodule_representr   &  sR   _Q"#A1A	L$4$4Q$; ;<A	L$4$4Q$; ;<A	
6/"	#B	
6,	 B	
6,	 B	
RB779$$$	
RB779$$$	. r	! 9;		 A 	_Q"#A1A	
6$%	&B
>45
>23
>23r*   c                     \        \        ^\        4      4      p \        V 4      pVP	                  ^\
        P                  ! ^\        4      ,          4      pVP	                  ^\
        P                  ! ^\        4      ,          4      pVP	                  ^\
        P                  ! ^\        4      ,          4      pVP                  V4      RJ g   Q hVP                  V4      RJ g   Q hVP                  V4      RJ g   Q hR# r`   )	r   r   r   r   rC   r
   rD   r	   is_compat_submoduler   s        r(   "test_Submodule_is_compat_submoduler   D  s    _Q"#A1A	L$4$4Q$; ;<A	L$4$4Q$; ;<A	L$4$4Q$; ;<A  #t+++  #u,,,  #u,,,r*   c                  &   \        \        ^\        4      4      p \        V 4      pVP	                  ^\
        P                  ! ^\        4      ,          4      pVP	                  ^\
        P                  ! ^\        4      ,          ^R7      pW28X  g   Q hR# r   )r   r   r   r   rC   r
   rD   r	   r   s       r(   test_Submodule_eqr   O  sn    _Q"#A1A	L$4$4Q$; ;<A	L$4$4Q$; ;1EA6M6r*   c                  l  aa \        \        ^\        4      4      p \        V 4      pVP	                  \        . RO. RO.R\        4      P                  4       ^R7      oVP	                  \        . RO. RO.R\        4      P                  4       ^R7      pVP	                  \        . R	O. R
O. RO.R\        4      P                  4       ^R7      pSV,           V8X  g   Q h\        \        ^\        4      4      p\        V4      pVP                  V! ^ 4      V! ^4      .4      o\        \        VV3R l4       R# )rA   r   c                     < S S,           # r-   rX   )rJ   r   s   r(   r1   $test_Submodule_add.<locals>.<lambda>l  	    a!er*   N)r!   r   r   r   r   r!   r   r   r   r!   r   
   r   r   r   r   r   r   )   r   r   r   r   r  r   r   r   r      r   r   )r   r   r   r   rC   r
   r	   rP   r   r   	TypeError)rH   rI   rK   rL   r   r   rJ   r   s         @@r(   test_Submodule_addr	  W  s!   _Q"#A1A	. r! 9;a 	  	)A 	
. r! 9;b 	  	*A 	
. r	! 9;b	 	  	*A
 q5A::_Q"#A1A	qtQqTl+A
9m$r*   c            	      x   \        \        ^\        4      4      p \        V 4      pVP	                  \        . RO. RO.R\        4      P                  4       ^R7      pVP	                  \        . RO. R	O.R\        4      P                  4       ^R7      pVP	                  \        . R
O. RO.R\        4      P                  4       ^R7      pVP	                  \        . RO. RO. RO. RO.R\        4      P                  4       ^R7      pVP	                  \        . RO. RO. RO.R\        4      P                  4       ^R7      pV^,          V8X  g   Q hV^,          V8X  g   Q hV^
,          V8X  g   Q hW!! ^4      ,          V8X  g   Q hVP                  VRR7      V8X  g   Q hW",          V8X  g   Q hV^,          V8X  g   Q hR# )rA   r   F)hnfNr  r  r   r  r  )r   r   r  r   r   r   r   r   )r   r   d   r   )r   r   r   F   )r  r  r  r!   r!   )$  r  r   r   ):  r  r  r   );  r  r   r   r   )	r   r   r   r   rC   r
   r	   rP   mul)rH   rI   rK   C1C2C3_unredC3s          r(   test_Submodule_mulr  o  s   _Q"#A1A	. r! 9;b 	  	*A 
	 	 / r" 9;a 
! 
)B 
	 	 / r" 9;b 
! 
*B &&|	5
 r(
 9;c ' +H 
	 	 / r	" 9;c	 
! 
+B
 q5A::6Q;;r6R<<qt8r>>555(***5B;;6R<<r*   c            	        aaa \        \        ^\        4      4      p \        V 4      pVP	                  4       pV! \        . RO4      ^xR7      oVP                  \        P                  ! ^\        4      ^R7      oV! \        . RO4      ^xR7      pSP                  S4      pWC8X  g   Q hVP                  \        P                  ! ^\        4      ^R7      oV! \        . RO4      ^xR7      pSP                  S4      pWC8X  g   Q hVP                  \        P                  ! ^\        4      ^R7      oV! \        . RO4      ^xR7      pSP                  S4      pWC8X  g   Q hV! \        . R	O4      4      o\        \        VV3R l4       VP                  \        . R
O. RO. RO. RO.R\        4      P                  4       4      o\        \        VV3R l4       R# )rA   r   c                  &   < S P                  S4      # r-   reduce_element)rK   r   s   r(   r1   /test_Submodule_reduce_element.<locals>.<lambda>  s    (8(8(;r*   c                  &   < S P                  S4      # r-   r  )rK   r   s   r(   r1   r    s    1#3#3A#6r*   N)Z   T   P   K   )r   r   r     )r   r   r  r$  )r   	   rA   r   r   )rA   r!   r    r   )r   r   r   r   )r   r      r   r   r  )r   r   r   r   r   r   rC   r
   rD   r	   r  r   r>   rP   r   )rH   rI   rJ   b_bar_expectedb_barrK   r   r   s        @@@r(   test_Submodule_reduce_elementr)    s   _Q"#A1A	A	&!
"#.A	 0 0B 7qAAv./s;NQE"""	 0 0B 7qAAvo.c:NQE"""	 0 0B 7qAAvl+37NQE"""	&
A
 ;<		.
 r!
 9;	 A >67r*   c                     \        . RO. RO. RO.\        4      p \        . RO. RO. RO.\        4      p\        . RO. RO. RO.\        4      p\        V 4      RJ g   Q h\        V4      RJ g   Q h\        V4      RJ g   Q hR# )	r    TFN)r    r   r   )r   r   r   )r   r   r   )r   r   r   )r    r   r    )r   r	   r   )r0   M1M2s      r(   test_is_HNFr-    s    
 
		A
 
 
	
B
 
 
	
B
 Q4'''R E)))R E)))r*   c                  V   \        \        ^\        4      4      p \        V 4      pVP	                  ^\
        P                  ! ^\        4      ,          4      p\        . RO4      p\        W4      p\        W#4      p\        V\        4      '       g   Q h\        V\        4      '       d   Q hR# r   )r   r   r   r   rC   r
   rD   r	   r   r   
isinstancer   )rH   rI   rJ   rR   eAeBs         r(   test_make_mod_eltr2    s    _Q"#A1A	L$4$4Q$; ;<A

C	a	B	a	Bb+,,,,"/00000r*   c                      \        \        ^\        4      4      p \        V 4      pV! \	        . RO4      ^R7      p\        V4      R8X  g   Q hR# )rA   r   z[1, 2, 3, 4]/2Nr   )r   r   r   r   r   r   rH   rI   rm   s      r(   test_ModuleElement_reprr5    s@    _Q"#A1A	&
a(A7&&&&r*   c                      \        \        ^\        4      4      p \        V 4      pV! \	        . RO4      ^R7      pVP                  4       pVP                  ^8X  d   W28X  g   Q hR# )rA   r   Nr   )r   r   r   r   r   r   rz   rH   rI   rm   r   s       r(   test_ModuleElement_reducedr8    sO    _Q"#A1A	&
a(A			A77a<AF""Fr*   c                      \        \        ^\        4      4      p \        V 4      pV! \	        . RO4      4      pVP                  ^4      pVP                  . RO8X  g   Q hR# )rA   N)r  (   <   r"  )rW   r   r    )r   r   r   r   r   reduced_mod_pry   r7  s       r(    test_ModuleElement_reduced_mod_pr>    sL    _Q"#A1A	&!
"#A	A88&&&r*   c                      \        \        ^\        4      4      p \        V 4      p. ROp\        P
                  ! W4      P                  V8X  g   Q hR# r   )r   r   r   r   r   from_int_listry   )rH   rI   r&   s      r(    test_ModuleElement_from_int_listrA    s@    _Q"#A1AA&&q,33q888r*   c                      \        \        ^\        4      4      p \        V 4      pV! ^ 4      p\	        V4      ^8X  g   Q hR# rd   )r   r   r   r   lenr4  s      r(   test_ModuleElement_lenrD    s5    _Q"#A1A	!Aq6Q;;r*   c                  2   \        \        ^\        4      4      p \        V 4      pV! ^ 4      pVP	                  4       pW2P
                  8X  d   W2P
                  Jg   Q hVP	                  \        ^4      R7      pVP                  P                  '       g   Q hR# )rA   r"   N)	r   r   r   r   r   rR   r   r"   is_FF)rH   rI   rm   col1col2s        r(   test_ModuleElement_columnrJ    sr    _Q"#A1A	!A88:D55=T...882a58!D;;r*   c                      \        \        ^\        4      4      p \        V 4      pV! \	        . RO4      ^R7      pV! \	        . RO4      ^R7      pVP
                  VP
                  8X  g   Q hR# )rA   r   Nr   r    r   r%  r   )r   r   r   r   r   QQ_colr7  s       r(   test_ModuleElement_QQ_colrN    sT    _Q"#A1A	&
a(A	&
q)A88qxxr*   c                    a	 \        \        ^\        4      4      p \        V 4      pVP	                  ^\
        P                  ! ^\        4      ,          4      pVP	                  ^\
        P                  ! ^\        4      ,          4      pVP	                  ^\
        P                  ! ^\        4      ,          4      pV! ^ 4      pVP                  4       pVP                  V4      pVP                  4       pVP                  VJ d   VP                  . RO8X  g   Q hVP                  VJ d   VP                  . RO8X  g   Q hVP                  VJ d   VP                  . RO8X  g   Q hV! ^ 4      o	\        \        V	3R l4       R# )rA   c                  $   < S P                  4       # r-   )r   r   s   r(   r1   1test_ModuleElement_to_ancestors.<locals>.<lambda>  s    q{{}r*   NrA   r   r   r   )r$  r   r   r   )r   r   r   r   )r   r   r   r   rC   r
   rD   r	   r   to_ancestorover_power_basisri   ry   r   r]   )
rH   rI   rJ   rK   rL   eDeCr1  r0  r   s
            @r(   test_ModuleElement_to_ancestorsrX  
  s   _Q"#A1A	L$4$4Q$; ;<A	L$4$4Q$; ;<A	L$4$4Q$; ;<A	
1B	B		B				B99>bii<77799>bii=88899>bii=888	!A
:,-r*   c                    aa \        \        ^\        4      4      p \        V 4      pVP	                  ^\
        P                  ! ^\        4      ,          4      pVP	                  ^\
        P                  ! ^\        4      ,          4      oVP	                  ^\
        P                  ! ^\        4      ,          4      pS! ^ 4      P                  S! ^4      4      RJ g   Q hS! ^ 4      P                  V! ^ 4      4      RJ g   Q hS! ^ 4      P                  V! ^ 4      4      w  rEVP                  VJ d   VP                  VJ g   Q hS! SP                  V4      4      S! ^ 4      8X  d#   V! VP                  V4      4      V! ^ 4      8X  g   Q hS! ^ 4      P                  S! ^4      4      w  rEVS! ^ 4      8X  d   VS! ^4      8X  g   Q h\        \        ^\        4      4      p\        V4      o\        \        VV3R l4       R# )rA   TFc                  >   < S ! ^ 4      P                  S! ^4      4      # r   )unify)rK   r   s   r(   r1   2test_ModuleElement_compatibility.<locals>.<lambda>-  s    adjj1&6r*   N)r   r   r   r   rC   r
   rD   r	   	is_compatr\  ri   r7   r   r   )	rH   rI   rJ   rL   r   r   r   rK   r   s	          @@r(    test_ModuleElement_compatibilityr_    s   _Q"#A1A	L$4$4Q$; ;<A	L$4$4Q$; ;<A	L$4$4Q$; ;<AQ4>>!A$4'''Q4>>!A$5(((Q4::adDA88q=QXX]**Q[[^!$1;;q>):ad)BBBQ4::adDA!9ad""_Q"#A1A
67r*   c                  (   \        \        ^\        4      4      p \        V 4      pV! \	        . RO4      ^R7      pV! \	        . RO4      ^R7      pW#8X  g   Q h\        \        ^\        4      4      p\        V4      pW%! ^ 4      8w  g   Q hVR8w  g   Q hR# )rA   r   Q	@Nr   rL  r   r   r   r   r   )rH   rI   rm   r   r   r   s         r(   test_ModuleElement_eqrc  0  s}    _Q"#A1A	&
a(A	&
q)A6M6_Q"#A1A!9999r*   c                    aa \        \        ^\        4      4      p \        V 4      pV! \	        . RO4      ^R7      oV! \	        . RO4      ^R7      pSP                  V4      '       g   Q hVP                  ^\        P                  ! ^\        4      ,          4      pV! \	        . RO4      ^R7      pV! \	        . RO4      ^R7      pVP                  V4      '       g   Q hV! \	        . RO4      ^R7      P                  \        ^^4      4      '       g   Q h\        \        ^\        4      4      p\        V4      o\        \        VV3R l4       SP                  R4      RJ g   Q hR# )	rA   r   c                  2   < SP                  S ! ^ 4      4      # r[  )equivr   rm   s   r(   r1   *test_ModuleElement_equiv.<locals>.<lambda>L  s    aggadmr*   ra  FNr   rL  rS  )r   r   r   r   r   rf  rC   r
   rD   r	   r   r   r   )	rH   rI   r   rK   r   r   r   r   rm   s	          @@r(   test_ModuleElement_equivri  =  s   _Q"#A1A	&
a(A	&
q)A771:::	L$4$4Q$; ;<A	&
a(A	&
q)A771:::VL!+11"R)<<<<_Q"#A1A
34774=E!!!r*   c                  R  aa \        \        ^\        4      4      p \        V 4      pVP	                  ^\
        P                  ! ^\        4      ,          4      pV! \        . RO4      ^R7      oV! \        . RO4      ^
R7      pV! \        . RO4      ^R7      pSV,           V! \        . RO4      ^R7      8X  g   Q hSV,
          V! \        . R	O4      ^R7      8X  g   Q hSV,           V! \        . R
O4      ^R7      8X  g   Q hS\        ^^
4      ,           V! \        . RO4      ^R7      8X  g   Q hV\        ^^
4      ,           V! \        . RO4      ^
R7      8X  g   Q h\        \        ^\        4      4      p\        V4      o\        \        VV3R l4       \        \        V3R l4       R# )rA   r   c                  "   < SS ! ^ 4      ,           # r[  rX   rg  s   r(   r1   (test_ModuleElement_add.<locals>.<lambda>`      a!A$hr*   c                     < S R ,           # ra  rX   rm   s   r(   r1   rl  a  	    a$hr*   Nr   )rA   r   r   r   r   r   r   r   )r  r  r   rx   )r<  r   )r  r&  r      )   r  r$  r  )rx   r$  r$  r$  )r   r   r   r   rC   r
   rD   r	   r   r   r   r  )rH   rI   rK   r   r   r   r   rm   s         @@r(   test_ModuleElement_addrw  Q  sI   _Q"#A1A	L$4$4Q$; ;<A	&
a(A	&
b)A	&
a(Aq5Af-.b9999q5Af-.b9999q5Af-.a8888r!Ry=Af%56bAAAAr!Ry=Af%56bAAAA_Q"#A1A
9&'
9&'r*   c                  B  aa \        \        ^\        4      4      p \        V 4      pVP	                  ^\
        P                  ! ^\        4      ,          4      pV! \        . RO4      ^R7      oV! \        . RO4      ^R7      pV! \        . R	O4      ^R7      pV! \        . R
O4      ^R7      pSV,          V! \        . RO4      ^R7      8X  g   Q hSV,          V! \        . RO4      4      8X  g   Q hSV,          V! \        . RO4      ^R7      8X  g   Q hS\        ^^4      ,          V! \        . RO4      ^R7      8X  g   Q hV\        ^
^4      ,          P                  V! \        . RO4      ^R7      4      '       g   Q hS\        ^^4      ,          V! \        . RO4      ^	R7      8X  g   Q h\        \        ^\        4      4      p\        V4      o\        \        VV3R l4       \        \        V3R l4       \        \        V3R l4       \        \        V3R l4       R# )rA   r   c                  "   < SS ! ^ 4      ,          # r[  rX   rg  s   r(   r1   (test_ModuleElement_mul.<locals>.<lambda>u  rm  r*   c                     < S R ,          # ro  rX   rp  s   r(   r1   rz  v  rq  r*   c                     < S R ,          # ro  rX   rp  s   r(   r1   rz  w  s	    a4ir*   c                     < S ^ ,          # r[  rX   rp  s   r(   r1   rz  x  s	    a1fr*   Nr   r   r   r   r  r   )r   r   r    r   )r  r  r  r   )r   r   r   r!   r   )r   r   r   rA   )r   rA   r   r   )r   r   r   r   rC   r
   rD   r	   r   r   rf  r   r  ZeroDivisionError)	rH   rI   rK   r   r   r   r   r   rm   s	          @@r(   test_ModuleElement_mulr  d  s   _Q"#A1A	L$4$4Q$; ;<A	&
a(A	&
a(A	&
a(A	&
a(Aq5Af12"====q5Af-.////q5Af_-R8888r!Qx<1VL1;;;;2r
N!!!F<$8"BCCCC1a=Af\2!<<<<_Q"#A1A
9&'
9&'
9'(
n-r*   c                     \        \        ^\        4      4      p \        V 4      pVP	                  ^\
        P                  ! ^\        4      ,          4      pV! \        . RO4      ^R7      pV! \        . RO4      ^R7      pV! \        . RO4      4      pW4,          ^
V! ^4      ,          ^,          8X  g   Q hW5,          RV! ^4      ,          ^	,          8X  g   Q h^V,          V! ^4      ) 8X  g   Q hR# )rA   r   Nr~  r  rr  r   	r   r   r   r   rC   r
   rD   r	   r   )rH   rI   rK   rm   r   r   s         r(   test_ModuleElement_divr  {  s    _Q"#A1A	L$4$4Q$; ;<A	&
a(A	&
a(A	&
A6R!Wb[   6R!WaZ6adU??r*   c                  T   \        \        ^\        4      4      p \        V 4      pVP	                  ^\
        P                  ! ^\        4      ,          4      pV! \        . RO4      ^R7      pV! \        . RO4      ^R7      pV^,          V! \        . RO4      ^R7      8X  g   Q hV^,          V! \        . RO4      ^R7      8X  g   Q hV^ ,          V! \        . RO4      4      8X  g   Q hV^ ,          V! \        . RO4      4      8X  g   Q hV^,          V8X  g   Q hV^,          V8X  g   Q hR# )rA   r   Nr~  r   )r   r   r   r   )r   r    r   r   r[   r  )rH   rI   rK   rm   r   s        r(   test_ModuleElement_powr    s    _Q"#A1A	L$4$4Q$; ;<A	&
a(A	&
a(A6Qvl+266666Qvl+155556Qvl+,,,,6Qvl+,,,,6Q;;6Q;;r*   c                  r  aa \        \        ^\        4      4      p \        V 4      pV! \	        . RO4      ^R7      oS^,          V! \	        . RO4      ^R7      8X  g   Q hS\        ^^4      ,          VP                  4       8X  g   Q hS\        ^^4      ,          V! \	        . RO4      ^R7      8X  g   Q hVP                  V! ^ 4      ^V! ^4      ,          ^V! ^4      ,          V! ^4      .4      pSV,          V! \	        . RO4      ^R7      8X  g   Q hVP                  4       o\        \        VV3R l4       R# )rA   r   c                     < SS ,          # r-   rX   )rK   rm   s   r(   r1   (test_ModuleElement_mod.<locals>.<lambda>  r   r*   Nr   r$  r   r   )r   r   r   r   )r   r   r   r   )r   rA   r   r   )r   r   r   r   r   r   rr   r   r   r   r  )rH   rI   rJ   rK   rm   s      @@r(   test_ModuleElement_modr    s    _Q"#A1A	&
q)Aq5Af\*!4444r!Qx<1668###r!Qx<1VL1;;;;	qtQqtVQqtVQqT:;Aq5Af\*!4444	A
9m$r*   c                     \        \        ^\        4      4      p \        V 4      pV! \	        . RO4      ^R7      pVP                  \        R7      \        ^\        ^,          ,          ^\        ,          ,           ^,           \        R7      8X  g   Q hVP                  \        R7      \        ^\        ^,          ,          \        ^^4      \        ,          ,           \        ^^4      ,           \        R7      8X  g   Q hR# )rA   r   r   rF  Nr  )
r   r   r   r   r   	numeratorr   r	   polyr   r4  s      r(   test_PowerBasisElement_polysr    s    _Q"#A1A	&
q)A;;;$q419}rDy'@1'DR"PPPP66D6>T!dai-"R)d2B"BR1X"MVXYYYYr*   c                      \        \        ^\        4      4      p \        V 4      pV! \	        . RO4      4      pVP                  4       ^8X  g   Q hR# )rA   N)r   rW   r   r   )r   r   r   r   r   norm)rH   rI   lams      r(   test_PowerBasisElement_normr    s=    _Q"#A1A
F=!
"C88:??r*   c                      \        \        ^\        4      4      p \        V 4      pV! \	        . RO4      4      p^V,          RV! ^4      ,          8X  g   Q hVR,          V! ^4      ) 8X  g   Q hR# )rA   Nrr  r   r<  rb  r4  s      r(   test_PowerBasisElement_inverser    s]    _Q"#A1A	&
A6R!W7qter*   c                      \        \        ^\        4      4      p \        V 4      p\	        VR 4      pVP                  4       pV\        . RO. RO. RO. RO.R\        4      8X  g   Q hR# )rA   c                     V ^,          # r<   rX   rQ  s   &r(   r1   0test_ModuleHomomorphism_matrix.<locals>.<lambda>      !q&r*   N)r   r   rW   r   )r   r   rW   r   )r   r   rW   r   )r   r   rW   r   r  )r   r   r   r   r   r   r
   r	   )rH   rI   phir0   s       r(   test_ModuleHomomorphism_matrixr    se    _Q"#A1A
Q 0
1C

A	
 r   r*   c                      \        \        ^\        4      4      p \        V 4      p\	        VR 4      pVP                  4       pVP                  ^8X  g   Q hR# )rA   c                     V ^,          # )rA   rX   rQ  s   &r(   r1   0test_ModuleHomomorphism_kernel.<locals>.<lambda>  r  r*   N)r   r   r   r   r   kernelr.   )rH   rI   r  Ns       r(   test_ModuleHomomorphism_kernelr    sC    _Q"#A1A
Q 0
1C

A33!8O8r*   c                  .  a \        \        ^\        4      4      p \        V 4      pVP	                  4       oSP                  V! ^4      4      pSP                  V4      pVP                  4       \        . RO.R\        4      8X  g   Q hVP                  \        P                  ! R\        4      4      pVP	                  4       pVP                  V! ^4      4      pVP                  V4      pV\        . R\        4      8X  g   Q h\        \        V3R l4       R# )rA   c                  &   < S P                  R 4      # ro  r6   )Rs   r(   r1   1test_EndomorphismRing_represent.<locals>.<lambda>  r8   r*   N)r   r   r   r   r   r   r   r   r   r   r   r   rW   rW   rW   rW   )r      )r!   r   )r   r   )r   r   r   r   endomorphism_ringinner_endomorphismr7   rP   r
   r	   rC   zerosr   r>   )rH   rI   r  rR   rJ   Spsir  s          @r(   test_EndomorphismRing_representr    s    _Q"#A1A	A


qt
$C
++c
C==?l<,    	
 2 262 >?A	A


qt
$C
++c
C,r62....
 9:r*   c                    a \        \        ^\        4      4      p \        V 4      p. p\	        V! ^4      \
        \        VR7      pV\        V \
        R7      8X  g   Q h\        V4      ^8X  g   Q h\	        V! ^4      \
        \        R7      pV\        V \
        R7      8X  g   Q hVP                  ^\        P                  ! ^\        4      ,          4      o\        \        V3R l4       R# )rA   )r   powersrF  r  c                  0   < \        S ! ^4      \        4      # )r   )r   r   rY   s   r(   r1   $test_find_min_poly.<locals>.<lambda>  s    mAaD"&=r*   N)r   r   r   r   r   r   rC  rC   r
   rD   r	   r   r   )rH   rI   r  r'   rJ   s       @r(   test_find_min_polyr    s    _Q"#A1AFadB!F3AQr""""v;! 	adB!$AQr""""	L$4$4Q$; ;<A
=>r*   N)W	sympy.abcr   r   sympy.polysr   r   sympy.polys.domainsr   r   r	   sympy.polys.matricesr
   r   #sympy.polys.numberfields.exceptionsr   r   r    sympy.polys.numberfields.modulesr   r   r   r   r   r   r   r   r   "sympy.polys.numberfields.utilitiesr   sympy.polys.polyerrorsr   sympy.testing.pytestr   r)   r?   rM   rT   r^   rb   ro   rs   rv   r}   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r	  r  r)  r-  r2  r5  r8  r>  rA  rD  rJ  rN  rX  r_  rc  ri  rw  r  r  r  r  r  r  r  r  r  r  r  rX   r*   r(   <module>r     sQ    - * * 1    6 4 'K,
B&*!  F
U	?D39&5R\(	I&4<-%0 F8B**1'#'9 .$8(
"((&..	%Z
;&?r*   