
    \h%                        S 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5      u  rr\" S5      u  rr\\-  \-   r\\\-  -   r\
" \\/\\/S	9r\" \\/\\/S	9rS
 rS rS rS rS rS rS rS rS rS rS rS rS r S r!S r"g)z*Tests for Dixon's and Macaulay's classes.     )Matrix)factor)symbols)IndexedBase)DixonResultantMacaulayResultantza, bx, ypolynomials	variablesc                  .   [        S5      n [        R                  [        [        /:X  d   e[        R
                  [        [        /:X  d   e[        R                  S:X  d   e[        R                  S:X  d   e[        R                  U S   U S   /:X  d   eg)z#Test init method of DixonResultant.alpha   r      N)r   dixonr   pqr   xynmdummy_variables)as    f/var/www/auris/envauris/lib/python3.13/site-packages/sympy/polys/tests/test_multivariate_resultants.pytest_dixon_resultant_initr      sz    GAA&&&??q!f$$$77a<<77a<<  QqT1Q4L000    c                     [        S5      n [        [        -   n[        S-  [        S-  -   n[        S-  [        -   n[        XU/[        [        /5      n[        * [        S-  -  U S   -  [        [        S-  -  U S   -  -
  [        [        -  U S   -  U S   -  -
  [        [        -  U S   S-  -  -
  [        U S   -  U S   S-  -  -
  [        U S   -  -   [        S-  U S   -  U S   -  -
  [        S-  U S   -  -   [        U S   -  U S   S-  -  -
  [        U S   S-  -  -   nUR	                  5       R                  5       R                  5       U:X  d   eg)z0Test Dixon's polynomial for a numerical example.r   r      r   r   N)r   r   r   r   get_dixon_polynomialas_exprexpand)r   r   r   hr   
polynomials         r   #test_get_dixon_polynomial_numericalr$      sn   GA	AA	QQA	Q
AA!9q!f-Ea1fqt#a!q&j1Q4&77!a%!A$,d; UQqTQY!"QqTAaDAI!5689AaDAFQqTMAaD6AaD=)+,qt8adai+?@BCaDAICJ
 %%'//188:jHHHr   c                      [         [        -   n [         S-  [        S-  -   n[         S-  [        -   n[        XU/[         [        /S9nUR                  5       nUR	                  U5      SS/:X  d   eg)zTests max degrees function.r   r   r
   r   N)r   r   r   r   get_max_degrees)r   r   r"   r   dixon_polynomials        r   test_get_max_degreesr(   .   sl     	
AA	QQA	Q
AayQFCE113  !12q!f<<<r   c                      [        S5      u  pX-   nU S-  US-  -   nU S-  U-   n[        X#U/X/5      nUR                  5       nUR                  U5      R	                  5       S:X  d   eg)z/Test Dixon's resultant for a numerical example.r	   r   r   r   N)r   r   r   get_dixon_matrixdet)r   r   r   r   r"   r   r#   s          r   test_get_dixon_matrixr,   :   sv     6?DA	A	QaA	Q
AA!9qf-E++-J!!*-113q888r   c                     [        S5      u  pnU S-  US-  -   S-
  US-  -   nU S-  US-  -   S-
  US-  -   nUS-  US-  -   S-
  n[        X4U/X/5      nUR                  5       nUR                  U5      nSSU S-  -  -
  SU S-  -  -   SU S	-  -  -
  S
U S-  -  -   n	UR	                  5       U	-
  R                  5       S:X  d   eg)z2Test Dixon's matrix for example from [Palancz08]_.x, y, zr   r   r                      N)r   r   r   r*   r+   r!   )
r   r   zfgr"   example_twopolymatrixexprs
             r   !test_get_dixon_matrix_example_twor<   H   s    i GA!	Qa!a!e#A	Qa!a!e#A	Qa!A !QF3K++-D))$/Fq16z>BaK'"qAv+5Q!VCDJJL4'')Q...r   c                     [        S5      u  pn[        / SQ/ SQ/ SQ/5      n[        SUS-  /SU-  US-  * //5      n[        SS/SS//5      n[        U S-  SS/U SSU -  //5      n[        S	S/SU/SS/SS//5      n[        R                  U5      S
:X  d   e[        R                  U5      S:X  d   e[        R                  U5      S:X  d   e[        R                  U5      S
:X  d   e[        R                  U5      S:X  d   eg)z%Tests precondition for KSY Resultant.A, B, Cr   r   r   )r1         )r3         r   r   r   r@   FTN)r   r   r   KSY_precondition)ABCm1m2m3m4m5s           r   test_KSY_preconditionrN   W   sG   i GA!	 
B 
!QTq&16'"$ 
%B 
!QQ 
B 
!Q$1QA  
!B 
!QQQQ 
B
 !!"%...!!"%---!!"%---!!"%...!!"%---r   c                  $   [        S5      u  pn[        SS/SS/SS//5      n[        / SQ/ SQ/ SQ/5      n[        / SQ/ S	Q/ S
Q/ SQ/5      n[        / SQ/ SQ/ SQ/5      n[        / SQ/ SQ/ SQ/ SQ/5      n[        SSU /USS/SSU//5      n[        R                  U5      [        SS//5      :X  d   e[        R                  U5      [        SS/SS/SS//5      :X  d   e[        R                  U5      [        SS/SS//5      :X  d   e[        R                  U5      [        SS/SS//5      :X  d   e[        R                  U5      [        S/S/S/S//5      :X  d   e[        R                  U5      [        SU /US/SU//5      :X  d   eg)zATests method for deleting rows and columns containing only zeros.r>   r   r   r   )r   r   r   )r   r   r1   )r   r@   r3   )r   r   r   r   )r   r   r   r   )r   r   r1   r   )r   r   r   r   r   r   )r   r   r1   )r   r   r   r   )r   r   r   r   )r   r   r   r   )r   r   r   r1   r   r1   r@   r3   N)r   r   r   delete_zero_rows_and_columns)	rF   rG   rH   rI   rJ   rK   rL   rM   m6s	            r   !test_delete_zero_rows_and_columnsrS   s   s1   i GA!	!QQQ 
B 
 
B 
 
 B
 
 
B 
 
 B
 
!QQQ 
B --b1VaVH5EEEE--b1VaV>?V>?V=E 6F F F F --b1VaV>?V=E 6F F F F --b1VaV>?V=E 6F F F F --b1VaS>?S>?S>?S=B 6C C C C
 --b1VaV>?V>?V=E 6F F F Fr   c                     [        S5      u  p[        / SQ/ SQ/ SQ/5      n[        / SQ/ SQ/5      n[        / SQ/ SQ/ SQ/5      n[        SSU // SQUSS//5      n[        R                  U5      S	:X  d   e[        R                  U5      S
:X  d   e[        R                  U5      S:X  d   e[        R                  U5      X-  :X  d   eg)z(Tests product of leading entries method.zA, Br?   )r   r1   r@   )r   r   r3   )r   r   r   )r   r   r   rP   r   r0   r   r   N)r   r   r   product_leading_entries)rF   rG   rI   rJ   rK   rL   s         r   test_product_leading_entriesrV      s    6?DA	 
B 
 
B 
 
B 
!QQ 
B ((,222((,111((,111((,555r   c                      [        S5      u  pnX-  U-  nU S-  US-  -
  nX-   U-   n[        X4U/X/5      nUR                  5       nUR                  U5      nUR	                  U5      n	XS-  * :X  d   eg)z-Tests the KSY Dixon resultant for example oner.   r   r   N)r   r   r   r*   get_KSY_Dixon_resultant)
r   r   r5   r   r   r"   r   
dixon_polydixon_matrixDs
             r   (test_get_KSY_Dixon_resultant_example_oner\      s    i GA!		A	1q!tA		AA!9qf-E++-J))*5L%%l3AA::r   c                     [        S5      u  pnX-  X-  -   U -   US-  -
  U-
  US-  -   U-   nU S-  X-  -   U -
  X-  -   X-  -   U-
  nU S-  X-  -   SU -  -   X-  -
  X-  -
  SU-  -
  n[        X4U/X/5      nUR                  5       nUR                  U5      n[	        UR                  U5      5      n	U	SU-  US-
  -  US-   -  SU-  S-
  S-  -  :X  d   eg)z-Tests the KSY Dixon resultant for example twozx, y, Ar   ir   N)r   r   r   r*   r   rX   )
r   r   rF   r   r   r"   r   rY   rZ   r[   s
             r   (test_get_KSY_Dixon_resultant_example_twor^      s   i GA!	AqD 1$q!t+a/A	1quq15 15(1,A	1quq1uqu$qu,q1u4AA!9qf-E++-J))*5Lu,,\:;A1a!ea!e$acAg\1111r   c                  8   [         R                  [        [        /:X  d   e[         R                  [
        [        /:X  d   e[         R                  S:X  d   e[         R                  SS/:X  d   e[         R                  S:X  d   e[         R                  S:X  d   eg)z&Test init method of MacaulayResultant.r   r   N)macaulayr   r   r   r   r   r   r   degreesdegree_mmonomials_size r   r   test_macaulay_resultant_initre      s     Aq6)))!Q'''::??1v%%%!!!""a'''r   c                  8    [         R                  5       S:X  d   eg )Nr   )r`   _get_degree_mrd   r   r   test_get_degree_mrh      s    !!#q(((r   c                  8    [         R                  5       S:X  d   eg )Nr   )r`   get_sizerd   r   r   test_get_sizerk      s    !###r   c                     [        S5      u  pn[        S5      u  p4n[        S5      u  pgn[        S5      u  pn[        S5      u  pn[        S5      u  nnnX0S-  -  X@-  U-  -   XP-  U-  -   XaS-  -  -   Xq-  U-  -   XS-  -  -   nXS-  -  X-  U-  -   X-  U-  -   XS-  -  -   X-  U-  -   XS-  -  -   nX-  UU-  -   UU-  -   n[        UUU/XU/5      nUR                  / SQ:X  d   eUR                  S	:X  d   eUR                  U S	-  U S-  U-  U S-  U-  XS-  -  X-  U-  XS-  -  US	-  US-  U-  XS-  -  US	-  /
:X  d   eUR
                  S
:X  d   eUR                  5       XU/XU/X-  X-  X-  US-  //:X  d   eUR                  5       nUR                  UR
                  UR
                  4:X  d   eUR                  U5      [        X6/X//5      :X  d   eg)z.Tests the Macaulay for example from [Bruce97]_r.   za_1_1, a_1_2, a_1_3za_2_2, a_2_3, a_3_3zb_1_1, b_1_2, b_1_3zb_2_2, b_2_3, b_3_3zc_1, c_2, c_3r   )r   r   r   r   
   N)r   r   ra   rb   monomial_setrc   get_row_coefficients
get_matrixshapeget_submatrixr   )r   r   r5   a_1_1a_1_2a_1_3a_2_2a_2_3a_3_3b_1_1b_1_2b_1_3b_2_2b_2_3b_3_3c_1c_2c_3f_1f_2f_3macr:   s                          r   test_macaulay_example_oner      s    i GA!!"78E%!"78E%!"78E%!"78E%O,MCc
q&.59q=
(59q=
8
q&. 9q=)+06>:C
q&.59q=
(59q=
8
q&. 9q=)+06>:C
'C!G
cAg
%C
S#sOaAY
7C;;)###<<1QQ
AFQJ !F
 !	1Av:qAv !Q	1Av:qAv ? ? ? ? #####%1)aAY+,5!%Q*G*I I I I ^^F<<C..0B0BCCCCV$160@ )A A A Ar   c            
         [        S5      u  pn[        S5      u  p4n[        S5      u  pgn[        S5      u  ppnX1-  X@-  -
  XR-  -   nXpS-  -  XaS-  -  -   XS-  -  -
  nX-  XS-  -  -
  XS-  -  U-  -   X-  US-  -  -
  XS-  -  -   n[        XU/XU/5      nUR                  / SQ:X  d   eUR                  S:X  d   eUR                  S	:X  d   e[        UR                  5       5      UR                  :X  d   eUR                  5       nUR                  UR                  UR                  4:X  d   eUR                  U5      [        U* X5S
/S
U* S
S
/S
S
U* S
/S
S
S
U* //5      :X  d   eg)z=Tests the Macaulay formulation for example from [Stiller96]_.r.   za_0, a_1, a_2zb_0, b_1, b_2zc_0, c_1, c_2, c_3, c_4r   r   r?   r1      r   N)r   r   ra   rb   rc   lenro   r   rp   rq   rr   r   )r   r   r5   a_0a_1a_2b_0b_1b_2c_0r   r   r   c_4r6   r7   r"   r   r:   s                      r   test_macaulay_example_twor     s    i GA!O,MCcO,MCc%&?@Cc37SW$A1fs!V|#cFl2A#Q,Av!11CGa1f4DD1f	A Q1Iay
1C;;)###<<1###s'')*cee333^^F<<C..0B0BCCCCV$#s0C12SD!Q12AtQ12Aq3$0A )B B B Br   N)#__doc__sympy.matrices.denser   sympy.polys.polytoolsr   
sympy.corer   sympy.tensor.indexedr   #sympy.polys.multivariate_resultantsr   r   cdr   r   r   r   r   r`   r   r$   r(   r,   r<   rN   rS   rV   r\   r^   re   rh   rk   r   r   rd   r   r   <module>r      s    0 ' (  ,D v1v1UQYQYAq6aV<!QAq6B1I 
=9/.81Ff602()$ ADBr   