
    g                         d dl mZ d dlmZ d dlmZ d dlmZ d dlm	Z	 d dl
mZ d dlmZ d dl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S )    )raises
PolyMatrix)Poly)S)Matrix)ZZ)QQxyc                   
   t          t          t          dz  t                    t          t           t                    gt          t          dz  t                    t          dt          z   t                    gg          } t          ddgddggd          }t          ddgddggd          }t          t          t          dz  t          z   t                    t          dt                    gt          t          dz  t          z
  dz   t                    t          dt                    gg          }t          t          t          dz  t                    t          t           t                    gt          t          dz   t                    t          t          t                    gg          }|j        t          t                   k    sJ t          | |z  t                     sJ | |z  |k    sJ | |z  |k    sJ || z  |k    sJ t          t          t          dz  t          d	          t          dt          d	          t          t          dz   t          d	          t          t          dz  t          d	          t          dt          d	          t          t          dz   t          d	          gg          }|j        t          t                   k    sJ t          g d
d          }t          g d
d          }t          t          t          dz  t          d	          gg          }||z  |k    sJ ||z  |k    sJ t          t          t          dz  t                    t          j        ggd          }	t          j	        |	z  }
|
t          t          t          j	        t          dz  z  t          d	          t          j	        ggd          k    sJ |	t          j	        z  |
k    sJ |
j        t          t                   k    sJ t          t          t          dz  t          d	          t          t          dz   t          d	          gg          }t          ddgd          }||z  t          t          dt          dz  z  t          d	          gg          k    sJ t          t          t          t                                       dk    sJ t          g dt                    dz  t          g dt                    k    sJ d S )N         r   zZZ[x]ringr
   domain)r   r   r   r   r   r   zQQ[x]r	   )r   r   r   r   )r   r   r   r   )r   r   r   r   r	   
isinstancer
   r   OneHalflen)pm1v1m1ABpm2v2m2Cpm3v3pm4v4s                ]/var/www/html/ai-engine/env/lib/python3.11/site-packages/sympy/polys/tests/test_polymatrix.py_test_polymatrixr)      sP   
tAqD!}}dA2qkk2T!Q$]]DaQROO4TU
V
VC	aVb!W%G	4	4	4B	aVb!W%G	4	4	4BT!Q$(A&&Q

3!Q$(Q,**DAJJ79 	: 	:AT!Q$]]D!QKK04Aq>>41::2NOPPA6RU????c"fj)))))r6Q;;;;r6Q;;;;c6Q;;;;
tAqD!D11141T3J3J3JDRSUVRVQVXYbfLgLgLgAq...Q$0G0G0GqRSteUV_cIdIdIdf g h hC8r!u	&&&W	5	5	5B	&&&W	5	5	5BT!Q$$///0122Ar6Q;;;;r6Q;;;;
tAqD!}}ae,-G
<
<
<C	
Bd16!Q$;$???HIPWXXXXXXXqv:7be
tAqD!D1114Aq3N3N3NOP
Q
QC	QG'	*	*	*Br6Z$qAvq">">">!? @AAAAAAzr!u%%%&&!++++lllA&&+z...!/L/LLLLLLL    c            	         t          t          t          ggt          t          t          f                   } | j        t          t          t          f         k    sJ | j        t          k    sJ | j        t          t          fk    sJ | j        dk    sJ | j        dk    sJ | j	        dk    sJ t          |           dk    sJ t          |           t          t          t          t          ft                    t          t          t          t          ft                    gk    sJ t          t          t          ggt          t                   t                             }|j        t          t                   t                   k    sJ |j        t          t                   k    sJ |j        t          fk    sJ |j        dk    sJ |j        dk    sJ |j	        dk    sJ t          |          dk    sJ t          |          t          t          t          ft          t                             t          t          t          ft          t                             gk    sJ t          t          t          ggt                    t          t          t          ggt          j        t                    t                             k    sJ t          t          t          ggd          t          t          t          ggt          t          t          f                   k    sJ t          t          t          ggt          t          f          t          t          t          ggt          t          t          f                   k    sJ t          t          t          ggt          t                    t          t          t          ggt          t          t          f                   k    sJ t          t          t          g          t          t          gt          ggt          t          t          f                   k    sJ t          ddt          t          g          t          t          t          ggt          t          t          f                   k    sJ t          ddd           t          t          t          ggt          t          t          f                   k    sJ t          ddg t          t                    j        d	k    sJ t          ddg t          t                    j        d
k    sJ t          g g gt          t                    j        d
k    sJ t          t          t          t          f                   t          ddg t          t          t          f                   cxk    r,t          g t          t          t          f                   k    sn J t          t           d            t          t           d            t          t          t                    t          t                    g          t          t          gt          ggt          t          t          f                   k    sJ t          t          t          t                    dg          t          t          gdggt          t                             k    sJ d S )Nr   )r   r   r   r   r   zZZ[x,y]c                 *    t           t          g|         S Nr   )ijs     r(   <lambda>z-test_polymatrix_constructor.<locals>.<lambda>N   s    1a r*   r   )r   r   )r   r   c                      t                      S r-   r    r*   r(   r0   z-test_polymatrix_constructor.<locals>.<lambda>S   s
    jll r*   c                       t          d          S Nr   r   r2   r*   r(   r0   z-test_polymatrix_constructor.<locals>.<lambda>T   s    jmm r*   )r   r   r   r
   r   r   gensshaperowscolsr   listr   r	   
frac_fieldr   	TypeErrorM1M2s     r(   test_polymatrix_constructorr?   2   s   	aVH2ac7	+	+	+B7b1g9????7q!f8v7a<<<<7a<<<<r77a<<<<88QAr222DQF24N4N4NOOOOO	aVH2a58	,	,	,B7beAh917qd????8v7a<<<<7a<<<<r77a<<<<88QRU333T!aT"Q%5P5P5PQQQQQ1vh""j1a&a@P@PQR@S&T&T&TTTTT1vhY///:1vhRPQRSPSW3U3U3UUUUU1vhA'':1vhR!W+M+M+MMMMM1vh1%%aVH2ac7)K)K)KKKKKq!faS1#JR!W!E!E!EEEEEaQF##zAq6(AaC'I'I'IIIIIa0011Z!QrRSTURUw5W5W5WWWWWaB1%%+v5555aB1%%+v5555r2h1%%+v55552ac7###z!QAaC'I'I'IiiiiZXZacdefgdgahMiMiMiiiiiii
9**+++
9++,,,tAwwQ())Z!qc
AaC-Q-Q-QQQQQ tAqzz1o&&*qcA3Zbe*L*L*LLLLLLLr*   c                     t          t          g          t          t          g          k    du sJ t          t          g          t          t          g          k    du sJ t          t          g          t          t          g          k    du sJ t          t          g          t          t          g          k    du sJ t          t          t          gg          t          t          t          g          cxk    r!t          t          gt          gg          k    sn J t          t          gt          t                             t          t          gt          t                             k    sJ t          t          g          t          t          g          k    sJ t          t          g                                          t          t          g          k    sJ t          dgt                    t          dgt                    k    sJ t          dgt                    t          dgt                    k    sJ d S )NTFr   r   )r   r   r   r
   r	   r   	to_Matrixr2   r*   r(   test_polymatrix_eqrB   \   s   sOOz1#.47777sOOz1#.58888sOOz1#.58888sOOz1#.477771vh:q!f#5#5OOOOaS1#J9O9OOOOOOOqc1&&&*aSr!u*E*E*EEEEEqc??faSkk))))qc??$$&&&!++5555qc1QC!3!33333qc1QC!3!3333333r*   c                     t          j        t          ddg          t                    t          ddgt          t          t                             k    sJ t          j        t          dg          t          t                             t          dgt                    k    sJ t          ddgt                    } t          ddgt
                    }| |k    sJ |                     t
                    |k    sJ d S Nr   r   r   )r   from_Matrixr   r   r
   r   set_gens)pmxpmys     r(   test_polymatrix_from_MatrixrI   m   s    !&!Q..!44
Aq61SUVWSX8Y8Y8YYYYY!&!++BqE:::j!a>P>PPPPP
aVQ

C
aVQ

C#::::<<??c!!!!!!r*   c                      t          t          ddggt                              dk    sJ t          t          ddg t                              dk    sJ d S )Nr   r   z PolyMatrix([[1, 2]], ring=QQ[x])r   z PolyMatrix(0, 2, [], ring=QQ[x]))reprr   r   r2   r*   r(   test_polymatrix_reprrL   v   sZ    
QF8Q''((,NNNNN
1aQ''((,NNNNNNNr*   c                  .   t          ddgddggt                    } | d d d d f         | k    sJ | dd d f         t          ddggt                    k    sJ | d d df         t          ddgt                    k    sJ | d         t          dt          t                    k    sJ | d         t          dt          t                    k    sJ | d d         t          dt          t                    t          dt          t                    gk    sJ d S )Nr   r   r      r   )r   r   r   )r   r   r   r
   Ms    r(   test_polymatrix_getitemrQ   {   s   QFQF#Q''AQQQT7a<<<<QT7j1a&1------QQQT7j!Q++++++T7d1a+++++++Q441R(((((((RaR5T!Qr***DAb,A,A,ABBBBBBBr*   c                     t          ddgddggt                    z   t          ddgddggt                    k    sJ z
  t          ddgddggt                    k    sJ  t          dd	gd
dggt                    k    sJ t          t          fd           t          t          fd           t          t          fd           t          t          fd           z  t          ddgddggt                    k    sJ dz  t          ddgddggt                    k    sJ dz  t          ddgddggt                    k    sJ t	          d          z  t          ddgddggt                    k    sJ t	          d          z  t          ddgddggt                    k    sJ t          t          fd           t          t          fd           t          ddggt
          t                             } t          j        | z  t          t          j        dggt          t                             k    sJ | t          j        z  t          t          j        dggt          t                             k    sJ dz  t          t	          d          dz  dgt	          d          dz  dggt                    k    sJ t          dt                    z  t          t	          d          dz  dgt	          d          dz  dggt                    k    sJ t          t          fd           d S )Nr   r   r   rN         r   r   c                       dz   S r4   r2   rO   s   r(   r0   z,test_polymatrix_arithmetic.<locals>.<lambda>       a!e r*   c                       dz
  S r4   r2   rO   s   r(   r0   z,test_polymatrix_arithmetic.<locals>.<lambda>   rY   r*   c                      d z   S r4   r2   rO   s   r(   r0   z,test_polymatrix_arithmetic.<locals>.<lambda>   rY   r*   c                      d z
  S r4   r2   rO   s   r(   r0   z,test_polymatrix_arithmetic.<locals>.<lambda>   rY   r*      
         c                      g  z  S r-   r2   rO   s   r(   r0   z,test_polymatrix_arithmetic.<locals>.<lambda>   s    b1f r*   c                       g z  S r-   r2   rO   s   r(   r0   z,test_polymatrix_arithmetic.<locals>.<lambda>       a"f r*   r   c                       g z  S r-   r2   rO   s   r(   r0   z,test_polymatrix_arithmetic.<locals>.<lambda>   rc   r*   )	r   r   r   r;   r   r	   r   r
   r   )r>   rP   s    @r(   test_polymatrix_arithmeticre      s-   QFQF#Q''Aq5JAA/333333q5JAA/3333332b"XBx0!444444
9mmmm$$$
9mmmm$$$
9mmmm$$$
9mmmm$$$q5JB"b2A666666q5JAA/333333q5JAA/333333Q44!8zAq6Aq6"2A666666qtt8zAq6Aq6"2A666666
9nnnn%%%
9nnnn%%%	aVH2a5	)	)	)B6B;*qvqk]A???????;*qvqk]A???????q5J1aadd1fa[91======tAqzz>Z!A$$q&!qttAvqk(BAFFFFFF
9nnnn%%%%%r*   c                     t          ddgddggt                    } |                                 t          ddgddggt                    k    sJ t          ddgddggt                    }|                     |          t          g d	g d
gt                    k    sJ |                     |          t          ddgddgddgddggt                    k    sJ |                     d           t          ddgddggt                    k    sJ d S )Nr   r   r   rN      rS   r]   rT   )r   r   rg   rS   )r   rN   r]   rT   c                     d| z  S )Nr   r2   )es    r(   r0   z/test_polymatrix_manipulations.<locals>.<lambda>   s
    !A# r*   )r   r   	transposerow_joincol_join	applyfuncr<   s     r(   test_polymatrix_manipulationsrn      s   	aVaV$a	(	(B<<>>Z!Q!Q(8!<<<<<<	aVaV$a	(	(B;;r??j,,,)EqIIIIII;;r??j1a&1a&1a&1a&)I1MMMMMM<<&&*q!fq!f5Eq*I*IIIIIIIr*   c                      t          j        ddt                    t          ddggt                    k    sJ t          j        dt                    t          ddgddggt                    k    sJ d S )Nr   r   r   )r   zerosr   eyer2   r*   r(   test_polymatrix_ones_zerosrr      sl    Aq!$$
QF8Q(?(?????>!Q:1v1v.>#B#BBBBBBBr*   c                      t          ddgddggt                    } |                                 t          j        dt                    dfk    sJ t	          t
          d            t	          t
          d            d S )Nr   r   r   rN   )r   r   c                  l    t          ddgt          t                                                             S rD   )r   r	   r   rrefr2   r*   r(   r0   z&test_polymatrix_rref.<locals>.<lambda>   s'    z1a&r!u===BBDD r*   c                  v    t          dt          gt          t                                                             S Nr   r   )r   r   r
   ru   r2   r*   r(   r0   z&test_polymatrix_rref.<locals>.<lambda>   s'    z1a&r!u===BBDD r*   )r   r   ru   rq   r   
ValueErrorrO   s    r(   test_polymatrix_rrefry      sv    QFQF#Q''A6688
q!,,f55555
:DDEEE
:DDEEEEEr*   c                  (   t          ddgddggt                    } |                                 t          ddgt                    gk    sJ t          t          d            t          t          d            |                                 dk    sJ d S )Nr   r   r   rS   rU   c                  l    t          ddgt          t                                                             S rD   )r   r	   r   	nullspacer2   r*   r(   r0   z+test_polymatrix_nullspace.<locals>.<lambda>   s'    z1a&r!u===GGII r*   c                  v    t          dt          gt          t                                                             S rw   )r   r   r
   r|   r2   r*   r(   r0   z+test_polymatrix_nullspace.<locals>.<lambda>   s'    z1a&r!u===GGII r*   )r   r   r|   r   rx   rankrO   s    r(   test_polymatrix_nullspacer      s    QFQF#Q''A;;==ZQ3344444
:IIJJJ
:IIJJJ6688q======r*   N)sympy.testing.pytestr   sympy.polys.polymatrixr   sympy.polysr   sympy.core.singletonr   sympy.matrices.denser   sympy.polys.domains.integerringr	   !sympy.polys.domains.rationalfieldr
   	sympy.abcr   r   r)   r?   rB   rI   rL   rQ   re   rn   rr   ry   r   r2   r*   r(   <module>r      sa   ' ' ' ' ' ' - - - - - -       " " " " " " ' ' ' ' ' ' . . . . . . 0 0 0 0 0 0        !M !M !MH'M 'M 'MT4 4 4"" " "O O O
C C C& & &4J J JC C C
F F F    r*   