
    g!&h,%                         d dl mZ d dlmZmZ d dlmZ d dlmZm	Z	m
Z
mZmZmZmZmZmZmZmZmZmZ d dlmZmZmZmZ d Zd Zd Zd	 Zd
 Zd Zd Z d Z!d Z"d Z#d Z$d Z%d Z&y)    )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                  @    ddgddgg} t        |       ddgddggk(  sJ y )N            )r   as    {/var/www/pru.catia.catastroantioquia-mas.com/valormas/lib/python3.12/site-packages/sympy/polys/matrices/tests/test_dense.pytest_ddm_transposer       s4    
Q!QAAA////    c                  V    ddgddgg} ddgddgg}t        | |       | ddgd	d
ggk(  sJ y )Nr   r   r   r               
      )r   r   bs     r   test_ddm_iaddr+      sJ    
Q!QA
Q!QAQN!Q"b""""r!   c                  V    ddgddgg} ddgddgg}t        | |       | d	d	gd	d	ggk(  sJ y )
Nr   r   r   r   r#   r$   r%   r&   )r	   r)   s     r   test_ddm_isubr.      sJ    
Q!QA
Q!QAQN"bB8$$$$r!   c                  D    ddgddgg} t        |        | ddgddggk(  sJ y )	Nr   r   r   r   r-   )r
   r   s    r   test_ddm_inegr3   &   s6    
Q!QAQK"bB8$$$$r!   c                      ddgddgg} t        | d       | ddgddggk(  sJ ddgddgg} t        | d       | ddgddggk(  sJ y )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                  
   g dg dg} ddgddgddgg}d	d	gd	d	gg}t        || |       |d
dgddggk(  sJ g dg dg dg}t        |||        |g dg dg dgk(  sJ dgdgdgg}d	gd	gg}t        || |       |dgdggk(  sJ y )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Aq2r(RH%%%%
Y		*BAq+|\::::#sQCB#sBAr2$r!   c                  :   g } g }g }t        |       |k(  sJ | |k(  sJ t        d      t        d      gt        d      t        d      gg} t        d      t        d      gt        d      t        d      gg}ddg}t        |       |k(  sJ | |k(  sJ t        d      t        d      t        d      gt        d      t        d      t        d      gg} t        d      t        d      t        d      gt        d      t        d      t        d      gg}ddg}t        |       |k(  sJ | |k(  sJ t        d      t        d      t        d      gt        d      t        d      t        d      gg} t        d      t        d      t        d      gt        d      t        d      t        d      gg}ddg}t        |       |k(  sJ | |k(  sJ t        d      t        d      gt        d      t        d      gt        d      t        d      gg} t        d      t        d      gt        d      t        d      gt        d      t        d      gg}ddg}t        |       |k(  sJ | |k(  sJ t        d      t        d      t        d      gt        d      t        d      t        d      gg} t        d      t        d      t        d      gt        d      t        d      t        d      gg}ddg}t        |       |k(  sJ | |k(  sJ t        d      t        d      gt        d      t        d      gt        d      t        d      gg} t        d      t        d      gt        d      t        d      gt        d      t        d      gg}ddg}t        |       |k(  sJ | |k(  sJ y )Nr   r   r   r   r   r0   )r   r   )AArpivotss      r   test_ddm_irrefrN   H   sB   
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                     g } t        | t              t        d      k(  sJ t        d      gg} t        | t              t        d      k(  sJ t        d      t        d      gt        d      t        d      gg} t        | t              t        d      k(  sJ t        d      t        d      t        d      gt        d      t        d      t        d      gt        d      t        d      t        d      gg} t        | t              t        d      k(  sJ t        d      t        d      t        d      gt        d      t        d      t        d      gt        d      t        d      t        d      gg} t        | t              t        d      k(  sJ t        dd      t        dd      gt        dd      t        dd      gg} t        | t              t        dd	      k(  sJ y )
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                     g g t        t               k(  sJ g g t        t        fd       t        d      t        d      ggt        d      t        d      ggt        t        fd       t        dd      t        dd      gt        dd      t        dd      ggt        d      t        d      gt        d      t        d      ggt        dd      t        dd      gt        dd      t        d	d      gg} t        t               | k(  sJ t        dd      t        dd      gt        dd      t        dd      ggt        d      t        d      gt        d      t        d      ggt        t
        fd
       y )Nc                  &    t         t              S N)r   r   rK   Ainvs   r   <lambda>ztest_ddm_inv.<locals>.<lambda>   s    (4B"7 r!   r   r   r   c                  &    t         t              S rU   r   r   rV   s   r   rX   ztest_ddm_inv.<locals>.<lambda>   s    8D!R+@ r!   r   r   r1   r0   c                  &    t         t              S rU   rZ   rV   s   r   rX   ztest_ddm_inv.<locals>.<lambda>   s    xa/D r!   )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                     g } g }t        |       }| |k(  sJ |g k(  sJ g g} g g}t        |       }| |k(  sJ |g k(  sJ t        d      t        d      gt        d      t        d      gg} t        d      t        d      gt        d      t        d      gg}t        |       }| |k(  sJ |g k(  sJ t        d      t        d      gt        d      t        d      gg} t        d      t        d      gt        d      t        d      gg}t        |       }| |k(  sJ |dgk(  sJ t        d      t        d      t        d      gt        d      t        d      t        d	      gt        d
      t        d      t        d      gg} t        d      t        d      t        d      gt        d      t        d      t        d      gt        d
      t        d      t        d      gg}t        |       }| |k(  sJ |g k(  sJ t        d      t        d      t        d      gt        d      t        d      t        d      gt        d      t        d      t        d      gg} t        d      t        d      t        d      gt        d      t        d      t        d      gt        d      t        d      t        d      gg}t        |       }| |k(  sJ |dgk(  sJ t        d      t        d      t        d      gt        d      t        d      t        d	      gg} t        d      t        d      t        d      gt        d      t        d      t        d      gg}t        |       }| |k(  sJ |g k(  sJ t        d      t        d      gt        d      t        d      gt        d      t        d	      gg} t        d      t        d      gt        d      t        d      gt        d      t        d      gg}t        |       }| |k(  sJ |g k(  sJ y )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_ilurc      s~   
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                  `   g } g }g }g }t        || t              }| |k(  sJ ||k(  sJ |g k(  sJ g g} t        d      gg}g g}t        d      gg}t        || t              }| |k(  sJ ||k(  sJ |g k(  sJ t        d      t        d      gt        d      t        d      gg} t        d      t        d      gt        d      t        d      gg}t        d      t        d      gt        d      t        d      gg}t        d      t        d      gt        d      t        d      gg}t        || t              }| |k(  sJ ||k(  sJ |g k(  sJ t        d      t        d      t        d      gt        d      t        d      t        d      gg} t        d      t        d      gt        d      t        d      gg}t        d      t        d      t        d      gt        d      t        d	      t        d
      gg}t        d      t        d      gt        d      t        d      gg}t        || t              }| |k(  sJ ||k(  sJ |g k(  sJ t        d      t        d      gt        d      t        d      gt        d      t        d      gg} t        d      t        d      t        d      gt        d      t        d      t        d      gt        d      t        d      t        d      gg}t        d      t        d      gt        d      t        d      gt        d      t        d      gg}t        d      t        d      t        d      gt        d      t        d      t        d      gt        d      t        d      t        d      gg}t        || t              }| |k(  sJ ||k(  sJ |g k(  sJ y )Nr   r   r   r   r   r1   r#   r$   r2   r`   )r   r   )ULUexpLexprb   s        r   test_ddm_ilu_splitri      sN   
A
ADD!Q#E9999B;;	A
Q%	A4DUG9D!Q#E9999B;;
Q%A"Q%A(A
Q%A"Q%A(AUBqENRUBrFO,DUBqENRUBqEN+D!Q#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!Q#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!Q#E9999B;;r!   c                  	   t        d      t        d      gt        d      t        d      ggt        d      t        d      gt        d      t        d      ggg t        t        d      gt        d      ggdt               t        t        d      gt        d      ggdt               t        t        d      gt        dd      ggdt               } t               | k(  sJ t        d      t        d      gt        d      t        d      ggt        d      t        d      gt        d      t        d      ggdgt        t        d      gt        d      ggdt               t        t        d      gt        d      ggdt               t        t        d      gt        dd      ggdt               } t               | k(  sJ t        d      t        d      gt        d      t        d      gt        d      t        d      ggt        d      t        d      t        d      gt        d      t        d      t        d      gt        d	      t        d      t        d      ggg t        t        d      gt        d      gt        d      ggd
t               t        t        d      gt        d      ggdt               t        t        d      gt        dd      ggdt               } t               | k(  sJ t        t        d      gt        d      gt        d      ggd
t               t        t        fd       t        d      t        d      gt        d      t        d      ggt        d      t        d      gt        d      t        d      ggg t        t        d      gt        d      ggdt               t        t        fd       t        d      t        d      ggt        d      ggg t        t        d      ggdt               t        t
        fd       t        t        d      gt        d      gt        d      ggd
t               t        t        fd       t        d      ggt        d      ggg t        d      ggg t        t        fd       g g g g g t               g k(  sJ y )Nr   r   r   r1   r   )r   r   r   r_   r#   )r   r   c                  "    t               S rU   r   rf   re   r*   rb   xs   r   rX   z$test_ddm_ilu_solve.<locals>.<lambda>-      }Q1eQ/O r!   c                  "    t               S rU   rl   rm   s   r   rX   z$test_ddm_ilu_solve.<locals>.<lambda>5  ro   r!   )r   r   c                  "    t               S rU   rl   rm   s   r   rX   z$test_ddm_ilu_solve.<locals>.<lambda>=  s    aAua(H r!   c                  "    t               S rU   rl   )rf   re   rG   rb   rn   s   r   rX   z$test_ddm_ilu_solve.<locals>.<lambda>A  s    q!Qr!B r!   c                  "    t               S rU   rl   rm   s   r   rX   z$test_ddm_ilu_solve.<locals>.<lambda>I  s    q!Qq!A r!   )r   r   r   r   r   NotImplementedErrorr   )xexprf   re   r*   rG   rb   rn   s    @@@@@@r   test_ddm_ilu_solverv   	  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P Q%A"Q%A(A
Q%A"Q%A(AEbeWr!ug+A
%'OP Q%AA
Q%	AEbeWIvr"A
 HI 
r!ug1wA(&"	5B
<BC Q%	A
Q%	AE
Q%	A
A
<AB 	A
AE
A
A!Q5!$7N7r!   c                      g t        t              t        d      ggk(  sJ t        d      t        d      t        d      gt        d      t        d      t        d      gt        d      t        d      t        d	      ggt        d      gt        d
      gt        d      gt        d      gg} t        t              | k(  sJ t        t        d      t        d      ggdt              t        t        fd       y )Nr   r   r   r   r#   r$   r%   r&   r;   iir   )r   r   c                  $    t         t              S rU   )r   r   rQ   s   r   rX   z#test_ddm_charpoly.<locals>.<lambda>^  s    !R r!   )r   r   r   r   r   )AvecrK   s    @r   test_ddm_charpolyrz   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]   rc   ri   rv   rz    r!   r   <module>r      sw    '  (M M M M
 0
#%%!$0f)(F2/d,^IX	2r!   