
    sh                         S SK Jr  S SKJr  S SKJr  S SKJrJr  S SK	J
r
JrJrJrJr  S SKJrJr  S SKJr  S SKrS	 rS
 rS rS rg)    )warns_deprecated_sympy)Symbol)Poly)Matrix
randMatrix)invariant_factorssmith_normal_formsmith_normal_decomphermite_normal_formis_smith_normal_form)ZZQQ)IntegerNc                     [        / SQ/ SQ/ SQ/ SQ/5      n [        / SQ/ SQ/ SQ/ SQ/5      n[        U 5      U:X  d   e[        U 5      u  p#nX#U -  U-  :X  d   e[        S	5      n[	        5          [        [        US
-
  5      [        S
U5      [        SU5      /S[        U5      [        SU5      /[        SU5      [        SU5      [        U5      //5      n S S S 5        S
US
-
  US-  S
-
  4n[        U [        U   S9U:X  d   e[        SS//5      n [        SS//5      n[        U 5      U:X  d   e[        R                  " S5      n[        S5       GH  n[        S5       H  n	[        X-  (       a  SOS
5       H  n
[        XSSUS9n [        U 5      u  p#nX#U -  U-  :X  d   e[        U5      (       d   eUR                  5       R                  [        5        UR                  5       R                  [        5        [        U [        5      u  p#nX#U -  U-  :X  d   e[        U5      (       d   eUR                  5         UR                  5         M     M     GM     g ! , (       d  f       GN= f)N               	   r   r                  
   r    r      r   r   r   r   r    r   r   r   r      r   r   r   r   r   xr"   r   r   domainr   r   r       2   )maxpercentprng)r   r	   r
   r   r   r   r   r   randomRandomranger   r   invto_DMr   )msmfastr'   invsr/   ij_s              y/Users/tiagomarins/Projetos/claudeai/copy_bank/venv/lib/python3.13/site-packages/sympy/matrices/tests/test_normalforms.pytest_smith_normalr?      s!   
:l=ABA
,}lK
LCQ3&&&!!$GA!A	>>sA		!T!A#YQ
41:6Qb,!AYtBqz$q'24 5 
" a!eQTAXDQr!u-555AxA
1a&
CQ3&&&==D1XqA2!,qBTB-a0aEAI~%~+A....b!b!-a4aEAI~%~+A.... -   
"	!s   0A(I
I,c            
         SSK Jn   [        5          U " / SQ/ SQ/ SQ/ SQ/5      nS S S 5        [        WS[        5        [        5          U " / SQ/ S	Q/ S
Q/ SQ/5      nS S S 5        [        U5      W:X  d   e[        S5      n[        5          U " [        US-
  5      [        SU5      [        SU5      /S[        U5      [        SU5      /[        SU5      [        SU5      [        U5      //5      nS S S 5        [        US[        U   5        [        SUSS9[        US-
  SS9[        US-  S-
  SS94n[        U5      U:X  d   e[        5          U " SS//5      nS S S 5        [        US[        5        [        5          U " SS//5      nS S S 5        [        U5      U:X  d   eg ! , (       d  f       GN= f! , (       d  f       GN_= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       Nf= f)Nr   )	RawMatrixr   r   r   r   ringr!   r#   r$   r&   r'   r"   r(   r   r)   r   r   )
sympy.polys.solversrA   r   setattrr   r	   r   r   r   r   )r   r5   r6   r'   r:   s        r>   test_smith_normal_deprecatedrE   9   s   7		!LLGH 
"Avr		!lM=,OP 
"Q3&&&sA		!T!A#YQ
41:6Qb,!AYtBqz$q'24 5 
" Avr!uAd#T!a%%=tAqD1HUY?Z[DQ4'''		!QF8 
"Avr		!q!fX 
"Q3&&&+ 
"	! 
"	!
 
"	! 
"	! 
"	!s<   F$	F6A%GG>G*$
F36
G
G
G'*
G8c                     [        / SQ/ SQ/ SQ/5      n [        / SQ/ SQ/ SQ/5      n[        U 5      U:X  d   e[        / SQ/ SQ/ S	Q/ SQ/ SQ/5      n[        U R                  5       5      U:X  d   e[        / S
Q/ SQ/ SQ/5      n [        / SQ/ SQ/ SQ/5      n[        U 5      U:X  d   e[        U SS9U:X  d   e[        U [        S5      S9U:X  d   e[        U [	        S5      S9U:X  d   e[        / SQ/ SQ/ SQ/5      n [        SS/SS/SS//5      n[        U 5      U:X  d   e[        SS/SS/SS//5      n [        S/S/S//5      n[        U 5      U:X  d   eg )N)r            )   )r            +   )r+         %   /   )r"   r   r   )r   r   r"   )r   r   r"   )rQ   r   rL   )   iq   )0   r      )r   r   D   t      )r   r   r   r   )D)r    r   r   r%   r   )-   $         r   )r+   r   r   r   r"      r   r   r   r"   rG   )r   r   	transposer   r   )r5   hnftr_hnfs      r>   test_hermite_normalrc   T   sp   "$79LMNA
)Y	2
3Cq!S((([.+y)TUFq{{}-777%':<OPQA
)Y	2
3Cq!S(((qA&#---qBqE*c111qGAJ/3666!#6HIA
2q'Aq6Aq6*
+Cq!S(((AAA'(A
1#sQC
!Cq!S(((    c                  v    [        SS/SS/SS//5      n [        SS/SS/SS//5      n[        U 5      U:X  d   eg )Nr"   r   r   r   r+   )r   r   )AHs     r>   test_issue_23410rh   l   sO    B!Q!Q()AAAA'(Aq!Q&&&rd   )sympy.testing.pytestr   sympy.core.symbolr   sympy.polys.polytoolsr   sympy.matricesr   r   sympy.matrices.normalformsr   r	   r
   r   r   sympy.polys.domainsr   r   sympy.core.numbersr   r0   r?   rE   rc   rh    rd   r>   <module>rq      s;    7 $ & -  ' & #L'6)0'rd   