
    sg                         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y)    )raises
PolyMatrix)Poly)S)Matrix)ZZ)QQxyc                  h   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 y )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                T/var/www/html/venv/lib/python3.12/site-packages/sympy/polys/tests/test_polymatrix.py_test_polymatrixr)      st   
tAqD!}dA2qk2T!Q$]DaQRO4TU
VC	aVb!W%G	4B	aVb!W%G	4BT!Q$(A&Q
3!Q$(Q,*DAJ79 	:AT!Q$]D!QK04Aq>41:2NOPA66RU??c"fj)))r6Q;;r6Q;;c6Q;;
tAqD!D141T3JDRSUVRVQVXYbfLgAq.Q$0GqRSteUV_cIdf g hC88r!u	&W	5B	&W	5BT!Q$$/012Ar6Q;;r6Q;;
tAqD!}aee,-G
<C	
Bd166!Q$;$?HIPWXXXXqvv:77be
tAqD!D14Aq3NOP
QC	QG'	*Br6Z$qAvq">!? @AAAAzr!u%&!+++lA&+z.!/LLLL    c            	      B   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J  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 y )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    jl r*   c                      t        d      S Nr   r   r2   r*   r(   r0   z-test_polymatrix_constructor.<locals>.<lambda>T   s
    jm r*   )r   r   r   r
   r   r   gensshaperowscolsr   listr   r	   
frac_fieldr   	TypeErrorM1M2s     r(   test_polymatrix_constructorr?   2   s0   	aVH2ac7	+B77b1g99??77q!f88v77a<<77a<<r7a<<8QAr2DQF24NOOOO	aVH2a58	,B77beAh99177qd??88v77a<<77a<<r7a<<8QRU3T!aT"Q%5PQQQQ1vh"j1a&a@PQR@S&TTTT1vhY/:1vhRPQRSPSW3UUUU1vhA':1vhR!W+MMMM1vh1%aVH2ac7)KKKKq!faS1#JR!W!EEEEaQF#zAq6(AaC'IIIIa01Z!QrRSTURUw5WWWWaB1%++v555aB1%++v555r2h1%++v5552ac7#z!QAaC'IiZXZacdefgdgahMiiiiii
9*+
9+,tAwQ()Z!qc
AaC-QQQQ tAqz1o&*qcA3Zbe*LLLLr*   c                  z   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      k7  du sJ t        t        g      t        t        g      k7  du sJ t        t        t        gg      t        t        t        g      cxk7  rt        t        gt        gg      k(  sJ  J t        t        gt        t                 t        t        gt        t                 k7  sJ t        t        g      t        t        g      k7  sJ t        t        g      j                         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              k7  sJ y )NTFr   r   )r   r   r   r
   r	   r   	to_Matrixr2   r*   r(   test_polymatrix_eqrB   \   s]   sOz1#.4777sOz1#.5888sOz1#.5888sOz1#.47771vh:q!f#5OaS1#J9OOOOOOqc1&*aSr!u*EEEEqc?faSk)))qc?$$&&!+555qc1QC!3333qc1QC!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
              }| |k7  sJ | j                  t
              |k(  sJ y Nr   r   r   )r   from_Matrixr   r   r
   r   set_gens)pmxpmys     r(   test_polymatrix_from_MatrixrI   m   s    !!&!Q.!4
Aq61SUVWSX8YYYY!!&!+BqE:j!a>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 y )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   sB    
QF8Q'(,NNNN
1aQ'(,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 y )Nr   r   r      r   )r   r   r   )r   r   r   r
   Ms    r(   test_polymatrix_getitemrQ   {   s    QFQF#Q'AQT7a<<QT7j1a&1----QT7j!Q++++T7d1a++++Q441R((((Ra5T!Qr*DAb,ABBBBr*   c                  b   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       y )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      sv   QFQF#Q'Aq5JAA/3333q5JAA/33332b"XBx0!4444
9m$
9m$
9m$
9m$q5JB"b2A6666q5JAA/3333q5JAA/3333Q4!8zAq6Aq6"2A6666qt8zAq6Aq6"2A6666
9n%
9n%	aVH2a5	)B66B;*qvvqk]A????;*qvvqk]A????q5J1aad1fa[91====tAqz>Z!A$q&!qtAvqk(BAFFFF
9n%r*   c                     t        ddgddggt              } | j                         t        ddgddggt              k(  sJ t        ddgddggt              }| j                  |      t        g d	g d
gt              k(  sJ | j	                  |      t        ddgddgddgddggt              k(  sJ | j                  d       t        ddgddggt              k(  sJ y )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;;r?j1a&1a&1a&1a&)I1MMMM<<&*q!fq!f5Eq*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 y )Nr   r   r   )r   zerosr   eyer2   r*   r(   test_polymatrix_ones_zerosrr      sY    Aq!$
QF8Q(????>>!Q:1v1v.>#BBBBr*   c                      t        ddgddggt              } | j                         t        j                  dt              dfk(  sJ t	        t
        d        t	        t
        d        y )Nr   r   r   rN   )r   r   c                  R    t        ddgt        t                 j                         S rD   )r   r	   r   rrefr2   r*   r(   r0   z&test_polymatrix_rref.<locals>.<lambda>   s    z1a&r!u=BBD r*   c                  Z    t        dt        gt        t                 j                         S Nr   r   )r   r   r
   ru   r2   r*   r(   r0   z&test_polymatrix_rref.<locals>.<lambda>   s    z1a&r!u=BBD r*   )r   r   ru   rq   r   
ValueErrorrO   s    r(   test_polymatrix_rrefry      sU    QFQF#Q'A668
q!,f5555
:DE
:DEr*   c                      t        ddgddggt              } | j                         t        ddgt              gk(  sJ t        t        d        t        t        d        | j                         dk(  sJ y )Nr   r   r   rS   rU   c                  R    t        ddgt        t                 j                         S rD   )r   r	   r   	nullspacer2   r*   r(   r0   z+test_polymatrix_nullspace.<locals>.<lambda>   s    z1a&r!u=GGI r*   c                  Z    t        dt        gt        t                 j                         S rw   )r   r   r
   r|   r2   r*   r(   r0   z+test_polymatrix_nullspace.<locals>.<lambda>   s    z1a&r!u=GGI r*   )r   r   r|   r   rx   rankrO   s    r(   test_polymatrix_nullspacer      se    QFQF#Q'A;;=ZQ34444
:IJ
:IJ668q==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      s]    ' -  " ' . 0 !MH'MT4""O
C&4JC
Fr*   