
    \h,%                         S SK Jr  S SKJrJr  S SKJr  S SKJrJ	r	J
r
JrJrJrJrJrJrJrJrJrJr  S SKJrJrJrJr  S rS rS rS	 rS
 rS rS r S r!S r"S r#S r$S r%S r&g)    )raises)ZZQQ)DDM)ddm_transposeddm_iaddddm_isubddm_inegddm_imatmulddm_imul	ddm_irrefddm_idetddm_iinvddm_iluddm_ilu_splitddm_ilu_solveddm_berk)DMDomainErrorDMNonInvertibleMatrixErrorDMNonSquareMatrixErrorDMShapeErrorc                  B    SS/SS//n [        U 5      SS/SS//:X  d   eg )N            )r   as    ]/var/www/auris/envauris/lib/python3.13/site-packages/sympy/polys/matrices/tests/test_dense.pytest_ddm_transposer       s4    
Q!QAAA////    c                  V    SS/SS//n SS/SS//n[        X5        U SS/S	S
//:X  d   eg )Nr   r   r   r               
      )r   r   bs     r   test_ddm_iaddr+      sH    
Q!QA
Q!QAQN!Q"b""""r!   c                  V    SS/SS//n SS/SS//n[        X5        U S	S	/S	S	//:X  d   eg )
Nr   r   r   r   r#   r$   r%   r&   )r	   r)   s     r   test_ddm_isubr.      sH    
Q!QA
Q!QAQN"bB8$$$$r!   c                  F    SS/SS//n [        U 5        U SS/SS//:X  d   eg )	Nr   r   r   r   r-   )r
   r   s    r   test_ddm_inegr3   &   s6    
Q!QAQK"bB8$$$$r!   c                      SS/SS//n [        U S5        U SS/SS//:X  d   eSS/SS//n [        U S5        U SS/SS//:X  d   eg )Nr   r   r   r   r$   r&   r   )r   r   s    r   test_ddm_matmulr5   ,   sn    
Q!QAQN!Q!Q    
Q!QAQN!Q!Q    r!   c                  
   / SQ/ SQ/n SS/SS/SS//nS	S	/S	S	//n[        X U5        US
S/SS//:X  d   e/ SQ/ SQ/ SQ/n[        X1U 5        U/ SQ/ SQ/ SQ/:X  d   eS/S/S//nS	/S	//n[        XPU5        US/S//:X  d   eg )N)r   r   r   )r   r#   r$   r   r   r   r   r#   r$   r         1   @   )r   r   r   )	   r(      )      !   )   (   3          )r   )r   r*   c1c2b3c3s         r   test_ddm_imatmulrI   6   s    	IA
Q!Q!Q Aa&1a&	Bq2r(RH%%%%
Y		*Bq+|\::::#sQCB#sBr2$r!   c                  H   / n / n/ n[        U 5      U:X  d   eX:X  d   e[        S5      [        S5      /[        S5      [        S5      //n [        S5      [        S5      /[        S5      [        S5      //nSS/n[        U 5      U:X  d   eX:X  d   e[        S5      [        S5      [        S5      /[        S5      [        S5      [        S5      //n [        S5      [        S5      [        S5      /[        S5      [        S5      [        S5      //nSS/n[        U 5      U:X  d   eX:X  d   e[        S5      [        S5      [        S5      /[        S5      [        S5      [        S5      //n [        S5      [        S5      [        S5      /[        S5      [        S5      [        S5      //nSS/n[        U 5      U:X  d   eX:X  d   e[        S5      [        S5      /[        S5      [        S5      /[        S5      [        S5      //n [        S5      [        S5      /[        S5      [        S5      /[        S5      [        S5      //nSS/n[        U 5      U:X  d   eX:X  d   e[        S5      [        S5      [        S5      /[        S5      [        S5      [        S5      //n [        S5      [        S5      [        S5      /[        S5      [        S5      [        S5      //nSS/n[        U 5      U:X  d   eX:X  d   e[        S5      [        S5      /[        S5      [        S5      /[        S5      [        S5      //n [        S5      [        S5      /[        S5      [        S5      /[        S5      [        S5      //nSS/n[        U 5      U:X  d   eX:X  d   eg )Nr   r   r   r   r   r0   )r   r   )AArpivotss      r   test_ddm_irrefrN   H   s4   
A	BFQ<6!!!7N7 Q%A"Q%A(Aa5"Q%.2a5"Q%.	)BVFQ<6!!!7N7 Q%A1	A1r!u 56Aa5"Q%B
 2a5"Q%A"7	8BVFQ<6!!!7N7 Q%A1	A1r!u 56Aa5"Q%B
 2a5"Q%A"7	8BVFQ<6!!!7N7 Q%A"Q%A"Q%A8Aa5"Q%.2a5"Q%.2a5"Q%.	9BVFQ<6!!!7N7 Q%A1	A1r!u 56Aa5"Q%A
"Q%A1!6	7BVFQ<6!!!7N7 Q%A"Q%A"Q%A8Aa5"Q%.2a5"Q%.2a5"Q%.	9BVFQ<6!!!7N7r!   c                     / n [        U [        5      [        S5      :X  d   e[        S5      //n [        U [        5      [        S5      :X  d   e[        S5      [        S5      /[        S5      [        S5      //n [        U [        5      [        S5      :X  d   e[        S5      [        S5      [        S5      /[        S5      [        S5      [        S5      /[        S5      [        S5      [        S5      //n [        U [        5      [        S5      :X  d   e[        S5      [        S5      [        S5      /[        S5      [        S5      [        S5      /[        S5      [        S5      [        S5      //n [        U [        5      [        S5      :X  d   e[        SS5      [        SS5      /[        SS5      [        SS5      //n [        U [        5      [        SS	5      :X  d   eg )
Nr   r   r   r   r1   r#   r0   r      )r   r   r   rK   s    r   test_ddm_idetrR   {   s~   
AAr?be###
Q%	AAr?be###
Q%A"Q%A(AAr?bf$$$
Q%A1	A1r!u 51r!ube7LMAAr?bf$$$
Q%A1	A1r!u 51r!ube7LMAAr?be###
Q(Bq!H	1a"Q(34AAr?bRj(((r!   c                  &  ^^ / m/ m[        TT[        5        TT:X  d   e/ m/ m[        [        UU4S j5        [        S5      [        S5      //m[        S5      [        S5      //m[        [        UU4S j5        [        SS5      [        SS5      /[        SS5      [        SS5      //m[        S5      [        S5      /[        S5      [        S5      //m[        SS5      [        SS5      /[        SS5      [        S	S5      //n [        TT[        5        TU :X  d   e[        SS5      [        SS5      /[        SS5      [        SS5      //m[        S5      [        S5      /[        S5      [        S5      //m[        [
        UU4S
 j5        g )Nc                  &   > [        TT [        5      $ N)r   r   rK   Ainvs   r   <lambda>test_ddm_inv.<locals>.<lambda>   s    (4B"7r!   r   r   r   c                  &   > [        TT [        5      $ rU   r   r   rV   s   r   rX   rY      s    8D!R+@r!   r   r   r1   r0   c                  &   > [        TT [        5      $ rU   r[   rV   s   r   rX   rY      s    xa/Dr!   )r   r   r   r   r   r   )Ainv_expectedrK   rW   s    @@r   test_ddm_invr^      s\   
ADT1b199
AD
=78
Q%AAUBqEND
!#@A
Q(Bq!H	1a"Q(34AUBqENRUBqEN+DQiAq*R1Xr"ay,ABMT1b=   
Q(Bq!H	1a"Q(34AUBqENRUBqEN+D
%'DEr!   c                     / n / n[        U 5      nX:X  d   eU/ :X  d   e/ /n / /n[        U 5      nX:X  d   eU/ :X  d   e[        S5      [        S5      /[        S5      [        S5      //n [        S5      [        S5      /[        S5      [        S5      //n[        U 5      nX:X  d   eU/ :X  d   e[        S5      [        S5      /[        S5      [        S5      //n [        S5      [        S5      /[        S5      [        S5      //n[        U 5      nX:X  d   eUS/:X  d   e[        S5      [        S5      [        S5      /[        S5      [        S5      [        S	5      /[        S
5      [        S5      [        S5      //n [        S5      [        S5      [        S5      /[        S5      [        S5      [        S5      /[        S
5      [        S5      [        S5      //n[        U 5      nX:X  d   eU/ :X  d   e[        S5      [        S5      [        S5      /[        S5      [        S5      [        S5      /[        S5      [        S5      [        S5      //n [        S5      [        S5      [        S5      /[        S5      [        S5      [        S5      /[        S5      [        S5      [        S5      //n[        U 5      nX:X  d   eUS/:X  d   e[        S5      [        S5      [        S5      /[        S5      [        S5      [        S	5      //n [        S5      [        S5      [        S5      /[        S5      [        S5      [        S5      //n[        U 5      nX:X  d   eU/ :X  d   e[        S5      [        S5      /[        S5      [        S5      /[        S5      [        S	5      //n [        S5      [        S5      /[        S5      [        S5      /[        S5      [        S5      //n[        U 5      nX:X  d   eU/ :X  d   eg )Nr   r   r   r   r1   r   r   r   r#   r$   r%   r&   r;   r2   r0   )r   r   )r   r   )rK   Aluswapss      r   test_ddm_ilurd      sn   
A
CAJE8O8B;;	A$CAJE8O8B;;
Q%A"Q%A(AqE2a5>BqE2b6?
+CAJE8O8B;;
Q%A"Q%A(AqE2a5>BqE2a5>
*CAJE8O8VH
Q%A1	A1r!u 51r!ube7LMAqE2a5"Q% 2a5"R&"R&"9BqE2a5"Q%;P
QCAJE8O8B;;
Q%A1	A1r!u 51r!ube7LMAqE2a5"Q% 2a5"Q%A"7"Q%A29O
PCAJE8O8VH
Q%A1	A1r!u 56AqE2a5"Q% 2a5"R&"R&"9
:CAJE8O8B;;
Q%A"Q%A"Q%A8AqE2a5>BqE2b6?RUBqEN
;CAJE8O8B;;r!   c                  `   / n / n/ n/ n[        X[        5      nX:X  d   eX:X  d   eU/ :X  d   e/ /n [        S5      //n/ /n[        S5      //n[        X[        5      nX:X  d   eX:X  d   eU/ :X  d   e[        S5      [        S5      /[        S5      [        S5      //n [        S5      [        S5      /[        S5      [        S5      //n[        S5      [        S5      /[        S5      [        S5      //n[        S5      [        S5      /[        S5      [        S5      //n[        X[        5      nX:X  d   eX:X  d   eU/ :X  d   e[        S5      [        S5      [        S5      /[        S5      [        S5      [        S5      //n [        S5      [        S5      /[        S5      [        S5      //n[        S5      [        S5      [        S5      /[        S5      [        S	5      [        S
5      //n[        S5      [        S5      /[        S5      [        S5      //n[        X[        5      nX:X  d   eX:X  d   eU/ :X  d   e[        S5      [        S5      /[        S5      [        S5      /[        S5      [        S5      //n [        S5      [        S5      [        S5      /[        S5      [        S5      [        S5      /[        S5      [        S5      [        S5      //n[        S5      [        S5      /[        S5      [        S5      /[        S5      [        S5      //n[        S5      [        S5      [        S5      /[        S5      [        S5      [        S5      /[        S5      [        S5      [        S5      //n[        X[        5      nX:X  d   eX:X  d   eU/ :X  d   eg )Nr   r   r   r   r   r1   r#   r$   r2   ra   )r   r   )ULUexpLexprc   s        r   test_ddm_ilu_splitrj      s0   
A
ADD!#E9999B;;	A
Q%	A4DUG9D!#E9999B;;
Q%A"Q%A(A
Q%A"Q%A(AUBqENRUBrFO,DUBqENRUBqEN+D!#E9999B;;
Q%A1	A1r!u 56A
Q%A"Q%A(AUBqE2a5!BqE2b62b6#:;DUBqENRUBqEN+D!#E9999B;;
Q%A"Q%A"Q%A8A
Q%A1	A1r!u 51r!ube7LMAUBqENRUBrFObeRU^<DUBqE2a5!BqE2a5"Q%#82a5"Q%A:OPD!#E9999B;;r!   c                  	  ^^^^^^ [        S5      [        S5      /[        S5      [        S5      //m[        S5      [        S5      /[        S5      [        S5      //m/ m[        [        S5      /[        S5      //S[         5      m[        [        S5      /[        S5      //S[         5      m[        [        S5      /[        SS5      //S[         5      n [        TTTTT5        TU :X  d   e[        S5      [        S5      /[        S5      [        S5      //m[        S5      [        S5      /[        S5      [        S5      //mS/m[        [        S5      /[        S5      //S[         5      m[        [        S5      /[        S5      //S[         5      m[        [        S5      /[        SS5      //S[         5      n [        TTTTT5        TU :X  d   e[        S5      [        S5      /[        S5      [        S5      /[        S5      [        S5      //m[        S5      [        S5      [        S5      /[        S5      [        S5      [        S5      /[        S	5      [        S5      [        S5      //m/ m[        [        S5      /[        S5      /[        S5      //S
[         5      m[        [        S5      /[        S5      //S[         5      m[        [        S5      /[        SS5      //S[         5      n [        TTTTT5        TU :X  d   e[        [        S5      /[        S5      /[        S5      //S
[         5      m[        [        UUUUU4S j5        [        S5      [        S5      /[        S5      [        S5      //m[        S5      [        S5      /[        S5      [        S5      //m/ m[        [        S5      /[        S5      //S[         5      m[        [        UUUUU4S j5        [        S5      [        S5      //m[        S5      //m/ m[        [        S5      //S[         5      m[        [
        UUUUU4S j5        [        [        S5      /[        S5      /[        S5      //S
[         5      m[        [        UUUUU4S j5        [        S5      //m[        S5      //m/ m[        S5      //m/ m[        [        UUUUU4S j5        / m/ m/ m/ m/ m[        TTTTT5        T/ :X  d   eg )Nr   r   r   r1   r   )r   r   r   r`   r#   )r   r   c                  "   > [        TT TTT5      $ rU   r   rg   rf   r*   rc   xs   r   rX   $test_ddm_ilu_solve.<locals>.<lambda>-      }Q1eQ/Or!   c                  "   > [        TT TTT5      $ rU   rm   rn   s   r   rX   rp   5  rq   r!   )r   r   c                  "   > [        TT TTT5      $ rU   rm   rn   s   r   rX   rp   =  s    aAua(Hr!   c                  "   > [        TT TTT5      $ rU   rm   )rg   rf   rG   rc   ro   s   r   rX   rp   A  s    q!Qr!Br!   c                  "   > [        TT TTT5      $ rU   rm   rn   s   r   rX   rp   I  s    q!Qq!Ar!   )r   r   r   r   r   NotImplementedErrorr   )xexprg   rf   r*   rG   rc   ro   s    @@@@@@r   test_ddm_ilu_solverx   	  s<    Q%A"Q%B)A
Q%A"Q%A(AEbeWr!ug+AbeWr!ug+AA"Q($fb1D!Q5!$99 Q%A"Q%A(A
Q%A"Q%A(AHEbeWr!ug+AbeWr!ug+AA"Q($fb1D!Q5!$99 Q%A"Q%B2a5"Q%.9A
Q%A1	A1r!u 51r!ube7LMAEbeWr!ug1w'4AbeWr!ug+AA"Q($fb1D!Q5!$99 	beWr!ug1w'4A
%'O'OP Q%A"Q%A(A
Q%A"Q%A(AEbeWr!ug+A
%'O'OP Q%AA
Q%	AEbeWIvr"A
 H HI 
r!ug1wA(&"	5B
<BBC Q%	A
Q%	AE
Q%	A
A
<AAB 	A
AE
A
A!Q5!$7N7r!   c                    ^ / m[        T[        5      [        S5      //:X  d   e[        S5      [        S5      [        S5      /[        S5      [        S5      [        S5      /[        S5      [        S5      [        S	5      //m[        S5      /[        S
5      /[        S5      /[        S5      //n [        T[        5      U :X  d   e[        [        S5      [        S5      //S[        5      m[        [        U4S j5        g )Nr   r   r   r   r#   r$   r%   r&   r;   iir   )r   r   c                  $   > [        T [        5      $ rU   )r   r   rQ   s   r   rX   #test_ddm_charpoly.<locals>.<lambda>^  s    !Rr!   )r   r   r   r   r   )AvecrK   s    @r   test_ddm_charpolyr}   U  s    
AAr?1wi'''
Q%A1	A1r!u 51r!ube7LMAUGbgYC	BqE73DAr?d"""beRU^fb)A
<01r!   N)'sympy.testing.pytestr   sympy.polysr   r   sympy.polys.matrices.ddmr   sympy.polys.matrices.denser   r   r	   r
   r   r   r   r   r   r   r   r   r   sympy.polys.matrices.exceptionsr   r   r   r   r    r+   r.   r3   r5   rI   rN   rR   r^   rd   rj   rx   r}    r!   r   <module>r      sw    '  (M M M M
 0
#%%!$0f)(F2/d,^IX	2r!   