
    \h                         S SK Jr  S SKJr  S SKJr  S SKJr  S SKJ	r	  S SK
Jr  S SKJr  S SK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g)    )raises
PolyMatrix)Poly)S)Matrix)ZZ)QQxyc                     [        [        [        S-  [        5      [        [        * [        5      /[        [        S-  [        5      [        S[        -   [        5      //5      n [        SS/SS//SS9n[        SS/SS//SS9n[        [        [        S-  [        -   [        5      [        S[        5      /[        [        S-  [        -
  S-   [        5      [        S[        5      //5      n[        [        [        S-  [        5      [        [        * [        5      /[        [        S-  * [        5      [        [        [        5      //5      nUR                  [        [           :X  d   e[        X-  [         5      (       d   eX-  U:X  d   eX-  U:X  d   eX-  U:X  d   e[        [        [        S-  [        SS	9[        S[        SS	9[        [        S-  * [        SS	9[        [        S-  [        SS	9[        S[        SS	9[        [        S-  * [        SS	9//5      nUR                  [        [           :X  d   e[        / S
QSS9n[        / S
QSS9n[        [        [        S-  [        SS	9//5      nXV-  U:X  d   eXW-  U:X  d   e[        [        [        S-  [        5      [        R                  //SS9n	[        R                  U	-  n
U
[        [        [        R                  [        S-  -  [        SS	9[        R                  //SS9:X  d   eU	[        R                  -  U
:X  d   eU
R                  [        [           :X  d   e[        [        [        S-  [        SS	9[        [        S-  * [        SS	9//5      n[        SS/SS9nX-  [        [        S[        S-  -  [        SS	9//5      :X  d   e[        [        [        [           S95      S:X  d   e[        / SQ[        5      S-  [        / SQ[        5      :X  d   eg )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                Y/var/www/auris/envauris/lib/python3.13/site-packages/sympy/polys/tests/test_polymatrix.py_test_polymatrixr)      si   
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??cfj))))6Q;;6Q;;6Q;;
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6Q;;6Q;;
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6Z$qAvq">!? @AAAAzr!u%&!+++lA&+z.!/LLLL    c            	         [        [        [        //[        [        [        4   S9n U R                  [        [        [        4   :X  d   eU R
                  [        :X  d   eU R                  [        [        4:X  d   eU R                  S:X  d   eU R                  S:X  d   eU R                  S:X  d   e[        U 5      S:X  d   e[        U 5      [        [        [        [        4[        S9[        [        [        [        4[        S9/:X  d   e[        [        [        //[        [           [           S9nUR                  [        [           [           :X  d   eUR
                  [        [           :X  d   eUR                  [        4:X  d   eUR                  S:X  d   eUR                  S:X  d   eUR                  S:X  d   e[        U5      S:X  d   e[        U5      [        [        [        4[        [           S9[        [        [        4[        [           S9/:X  d   e[        [        [        //[        5      [        [        [        //[        R                  " [        5      [           S9:X  d   e[        [        [        //SS9[        [        [        //[        [        [        4   S9:X  d   e[        [        [        //[        [        45      [        [        [        //[        [        [        4   S9:X  d   e[        [        [        //[        [        5      [        [        [        //[        [        [        4   S9:X  d   e[        [        [        /5      [        [        /[        //[        [        [        4   S9:X  d   e[        SS[        [        /5      [        [        [        //[        [        [        4   S9:X  d   e[        SSS 5      [        [        [        //[        [        [        4   S9:X  d   e[        SS/ [        [        5      R                  S	:X  d   e[        SS/ [        [        5      R                  S
:X  d   e[        / / /[        [        5      R                  S
:X  d   e[        [        [        [        4   S9[        SS/ [        [        [        4   S9s=:X  a   [        / [        [        [        4   S9:X  d   e   e[        [         S 5        [        [         S 5        [        [        [        5      [        [        5      /5      [        [        /[        //[        [        [        4   S9:X  d   e[        [        [        [        5      S/5      [        [        /S//[        [           S9:X  d   eg )Nr   )r   r   r   r   r   zZZ[x,y]c                      [         [        /U   $ Nr   )ijs     r(   <lambda>-test_polymatrix_constructor.<locals>.<lambda>N   s    1ar*   r   )r   r   )r   r   c                      [        5       $ r-   r    r*   r(   r0   r1   S   s    jlr*   c                      [        S5      $ Nr   r   r3   r*   r(   r0   r1   T   s    jmr*   )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                     [        [        /5      [        [        /5      :H  SL d   e[        [        /5      [        [        /5      :H  SL d   e[        [        /5      [        [        /5      :g  SL d   e[        [        /5      [        [        /5      :g  SL d   e[        [        [        //5      [        [        [        /5      s=:w  a  [        [        /[        //5      :X  d   e   e[        [        /[        [           S9[        [        /[        [           S9:w  d   e[        [        /5      [        [        /5      :w  d   e[        [        /5      R                  5       [        [        /5      :X  d   e[        S/[        5      [        S/[        5      :X  d   e[        S/[        5      [        S/[        5      :w  d   eg )NTFr   r   )r   r   r   r
   r	   r   	to_Matrixr3   r*   r(   test_polymatrix_eqrC   \   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                     [         R                  " [        SS/5      [        5      [        SS/[        [        [           S9:X  d   e[         R                  " [        S/5      [        [           S9[        S/[        5      :X  d   e[        SS/[        5      n [        SS/[
        5      nX:w  d   eU R                  [
        5      U:X  d   eg Nr   r   r   )r   from_Matrixr   r   r
   r   set_gens)pmxpmys     r(   test_polymatrix_from_MatrixrJ   m   s    !!&!Q.!4
Aq61SUVWSX8YYYY!!&!+BqE:j!a>PPPP
aVQ
C
aVQ
C::<<?c!!!r*   c                      [        [        SS//[        5      5      S:X  d   e[        [        SS/ [        5      5      S:X  d   eg )Nr   r   z PolyMatrix([[1, 2]], ring=QQ[x])r   z PolyMatrix(0, 2, [], ring=QQ[x]))reprr   r   r3   r*   r(   test_polymatrix_reprrM   v   sB    
QF8Q'(,NNNN
1aQ'(,NNNNr*   c                     [        SS/SS//[        5      n U S S 2S S 24   U :X  d   eU SS S 24   [        SS//[        5      :X  d   eU S S 2S4   [        SS/[        5      :X  d   eU S   [        S[        [        S9:X  d   eU S   [        S[        [        S9:X  d   eU S S [        S[        [        S9[        S[        [        S9/:X  d   eg )Nr   r   r      r   )r   r   r   )r   r   r   r
   Ms    r(   test_polymatrix_getitemrR   {   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                  v  ^ [        SS/SS//[        5      mTT-   [        SS/SS//[        5      :X  d   eTT-
  [        SS/SS//[        5      :X  d   eT* [        SS	/S
S//[        5      :X  d   e[        [        U4S j5        [        [        U4S j5        [        [        U4S j5        [        [        U4S j5        TT-  [        SS/SS//[        5      :X  d   eST-  [        SS/SS//[        5      :X  d   eTS-  [        SS/SS//[        5      :X  d   e[	        S5      T-  [        SS/SS//[        5      :X  d   eT[	        S5      -  [        SS/SS//[        5      :X  d   e[        [        U4S j5        [        [        U4S j5        [        SS//[
        [           S9n [        R                  U -  [        [        R                  S//[        [           S9:X  d   eU [        R                  -  [        [        R                  S//[        [           S9:X  d   eTS-  [        [	        S5      S-  S/[	        S5      S-  S//[        5      :X  d   eT[        S[        5      -  [        [	        S5      S-  S/[	        S5      S-  S//[        5      :X  d   e[        [        U4S j5        g )Nr   r   r   rO         r   r   c                     > T S-   $ r5   r3   rP   s   r(   r0   ,test_polymatrix_arithmetic.<locals>.<lambda>   	    a!er*   c                     > T S-
  $ r5   r3   rP   s   r(   r0   rZ      r[   r*   c                     > ST -   $ r5   r3   rP   s   r(   r0   rZ      r[   r*   c                     > ST -
  $ r5   r3   rP   s   r(   r0   rZ      r[   r*      
         c                     > / T -  $ r-   r3   rP   s   r(   r0   rZ      s	    b1fr*   c                     > T / -  $ r-   r3   rP   s   r(   r0   rZ      	    a"fr*   r   c                     > T / -  $ r-   r3   rP   s   r(   r0   rZ      re   r*   )	r   r   r   r<   r   r	   r   r
   r   )r?   rQ   s    @r(   test_polymatrix_arithmeticrg      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                     [        SS/SS//[        5      n U R                  5       [        SS/SS//[        5      :X  d   e[        SS/SS//[        5      nU R                  U5      [        / S	Q/ S
Q/[        5      :X  d   eU R	                  U5      [        SS/SS/SS/SS//[        5      :X  d   eU R                  S 5      [        SS/SS//[        5      :X  d   eg )Nr   r   r   rO      rT   r_   rU   )r   r   ri   rT   )r   rO   r_   rU   c                     SU -  $ )Nr   r3   )es    r(   r0   /test_polymatrix_manipulations.<locals>.<lambda>   s    !A#r*   )r   r   	transposerow_joincol_join	applyfuncr=   s     r(   test_polymatrix_manipulationsrq      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                      [         R                  " SS[        5      [        SS//[        5      :X  d   e[         R                  " S[        5      [        SS/SS//[        5      :X  d   eg )Nr   r   r   )r   zerosr   eyer3   r*   r(   test_polymatrix_ones_zerosru      sY    Aq!$
QF8Q(????>>!Q:1v1v.>#BBBBr*   c                      [        SS/SS//[        5      n U R                  5       [         R                  " S[        5      S4:X  d   e[	        [
        S 5        [	        [
        S 5        g )Nr   r   r   rO   )r   r   c                  L    [        SS/[        [           S9R                  5       $ rE   )r   r	   r   rrefr3   r*   r(   r0   &test_polymatrix_rref.<locals>.<lambda>   s    z1a&r!u=BBDr*   c                  T    [        S[        /[        [           S9R                  5       $ Nr   r   )r   r   r
   rx   r3   r*   r(   r0   ry      s    z1a&r!u=BBDr*   )r   r   rx   rt   r   
ValueErrorrP   s    r(   test_polymatrix_rrefr}      sU    QFQF#Q'A668
q!,f5555
:DE
:DEr*   c                      [        SS/SS//[        5      n U R                  5       [        SS/[        5      /:X  d   e[        [        S 5        [        [        S 5        U R                  5       S:X  d   eg )Nr   r   r   rT   rV   c                  L    [        SS/[        [           S9R                  5       $ rE   )r   r	   r   	nullspacer3   r*   r(   r0   +test_polymatrix_nullspace.<locals>.<lambda>   s    z1a&r!u=GGIr*   c                  T    [        S[        /[        [           S9R                  5       $ r{   )r   r   r
   r   r3   r*   r(   r0   r      s    z1a&r!u=GGIr*   )r   r   r   r   r|   rankrP   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@   rC   rJ   rM   rR   rg   rq   ru   r}   r   r3   r*   r(   <module>r      s]    ' -  " ' . 0 !MH'MT4""O
C&4JC
Fr*   