
    g,%                         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&dS )    )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                  L    ddgddgg} t          |           ddgddggk    sJ d S )N            )r   as    a/var/www/html/ai-engine/env/lib/python3.11/site-packages/sympy/polys/matrices/tests/test_dense.pytest_ddm_transposer       s@    
Q!QAAA///////    c                  b    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 d S )Nr   r   r   r               
      )r   r   bs     r   test_ddm_iaddr+      sW    
Q!QA
Q!QAQNNN!Q"b"""""""r!   c                  b    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 d S )
Nr   r   r   r   r#   r$   r%   r&   )r	   r)   s     r   test_ddm_isubr.      sW    
Q!QA
Q!QAQNNN"bB8$$$$$$$r!   c                  P    ddgddgg} t          |            | ddgddggk    sJ d S )	Nr   r   r   r   r-   )r
   r   s    r   test_ddm_inegr3   &   sC    
Q!QAQKKK"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 d S )Nr   r   r   r   r$   r&   r   )r   r   s    r   test_ddm_matmulr5   ,   s    
Q!QAQNNN!Q!Q     
Q!QAQNNN!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 d S )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   	IIIA
Q!Q!Q Aa&1a&	BAq2r(RH%%%%%
))YYY				*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 d S )Nr   r   r   r   r   r0   )r   r   )AArpivotss      r   test_ddm_irrefrN   H   s   
A	BFQ<<6!!!!7777 Q%%A"Q%%A(Aa55"Q%%.2a55"Q%%.	)BVFQ<<6!!!!7777 Q%%A1	A1r!uu 56Aa55"Q%%B
 2a55"Q%%A"7	8BVFQ<<6!!!!7777 Q%%A1	A1r!uu 56Aa55"Q%%B
 2a55"Q%%A"7	8BVFQ<<6!!!!7777 Q%%A"Q%%A"Q%%A8Aa55"Q%%.2a55"Q%%.2a55"Q%%.	9BVFQ<<6!!!!7777 Q%%A1	A1r!uu 56Aa55"Q%%A
"Q%%A1!6	7BVFQ<<6!!!!7777 Q%%A"Q%%A"Q%%A8Aa55"Q%%.2a55"Q%%.2a55"Q%%.	9BVFQ<<6!!!!777777r!   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 d S )
Nr   r   r   r   r1   r#   r0   r      )r   r   r   rK   s    r   test_ddm_idetrR   {   s   
AAr??bee####
Q%%	AAr??bee####
Q%%A"Q%%A(AAr??bff$$$$
Q%%A1	A1r!uu 51r!uubee7LMAAr??bff$$$$
Q%%A1	A1r!uu 51r!uubee7LMAAr??bee####
Q((Bq!HH	1a"Q((34AAr??bRjj((((((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
           d S )Nc                  0    t           t                    S N)r   r   rK   Ainvs   r   <lambda>ztest_ddm_inv.<locals>.<lambda>   s    (4B"7"7 r!   r   r   r   c                  0    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                  0    t           t                    S rU   rZ   rV   s   r   rX   ztest_ddm_inv.<locals>.<lambda>   s    xa/D/D r!   )r   r   r   r   r   r   )Ainv_expectedrK   rW   s    @@r   test_ddm_invr]      s   
ADT1b19999
AD
=77777888
Q%%AAUUBqEEND
!#@#@#@#@#@AAA
Q((Bq!HH	1a"Q((34AUUBqEENRUUBqEEN+DQiiAq*R1XXr"ayy,ABMT1b=    
Q((Bq!HH	1a"Q((34AUUBqEENRUUBqEEN+D
%'D'D'D'D'DEEEE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 d S )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      sF   
A
CAJJE8888B;;;;	A$CAJJE8888B;;;;
Q%%A"Q%%A(AqEE2a55>BqEE2b66?
+CAJJE8888B;;;;
Q%%A"Q%%A(AqEE2a55>BqEE2a55>
*CAJJE8888VH
Q%%A1	A1r!uu 51r!uubee7LMAqEE2a55"Q%% 2a55"R&&"R&&"9BqEE2a55"Q%%;P
QCAJJE8888B;;;;
Q%%A1	A1r!uu 51r!uubee7LMAqEE2a55"Q%% 2a55"Q%%A"7"Q%%A29O
PCAJJE8888VH
Q%%A1	A1r!uu 56AqEE2a55"Q%% 2a55"R&&"R&&"9
:CAJJE8888B;;;;
Q%%A"Q%%A"Q%%A8AqEE2a55>BqEE2b66?RUUBqEEN
;CAJJE8888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 d S )Nr   r   r   r   r   r1   r#   r$   r2   r`   )r   r   )ULUexpLexprb   s        r   test_ddm_ilu_splitri      s   
A
ADD!Q##E99999999B;;;;	A
Q%%	A4DUUG9D!Q##E99999999B;;;;
Q%%A"Q%%A(A
Q%%A"Q%%A(AUUBqEENRUUBrFFO,DUUBqEENRUUBqEEN+D!Q##E99999999B;;;;
Q%%A1	A1r!uu 56A
Q%%A"Q%%A(AUUBqEE2a55!BqEE2b662b66#:;DUUBqEENRUUBqEEN+D!Q##E99999999B;;;;
Q%%A"Q%%A"Q%%A8A
Q%%A1	A1r!uu 51r!uubee7LMAUUBqEENRUUBrFFObeeRUU^<DUUBqEE2a55!BqEE2a55"Q%%#82a55"Q%%A:OPD!Q##E99999999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 d S )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/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(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!B r!   c                  *    t                     S rU   rl   rm   s   r   rX   z$test_ddm_ilu_solve.<locals>.<lambda>I  s    q!Qq!A!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eeWr!uug++AbeeWr!uug++AA"Q(($fb11D!Q5!$$$9999 Q%%A"Q%%A(A
Q%%A"Q%%A(AHEbeeWr!uug++AbeeWr!uug++AA"Q(($fb11D!Q5!$$$9999 Q%%A"Q%%B2a55"Q%%.9A
Q%%A1	A1r!uu 51r!uubee7LMAEbeeWr!uug1w'44AbeeWr!uug++AA"Q(($fb11D!Q5!$$$9999 	beeWr!uug1w'44A
%'O'O'O'O'O'O'O'OPPP Q%%A"Q%%A(A
Q%%A"Q%%A(AEbeeWr!uug++A
%'O'O'O'O'O'O'O'OPPP Q%%AA
Q%%	AEbeeWIvr""A
 H H H H H H H HIII 
r!uug1wA(&"	5	5B
<BBBBBBBBCCC Q%%	A
Q%%	AE
Q%%	A
A
<AAAAAAAABBB 	A
AE
A
A!Q5!$$$777777r!   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           d S )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!uu 51r!uubee7LMAUUGbggYC	BqEE73DAr??d""""beeRUU^fb))A
<00001111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      s   ' ' ' ' ' '         ( ( ( ( ( (M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M
           0 0 0
# # #% % %% % %! ! !  $0 0 0f) ) )(F F F2/ / /d, , ,^I I IX	2 	2 	2 	2 	2r!   