Ë
    7^(h%  ã                   ó&  — d 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  ed«      \  ZZ ed«      \  ZZeez  ez   Zeeez  z   Z e
eegeeg¬	«      Z eeegeeg¬	«      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„ Z!d„ Z"y)z*Tests for Dixon's and Macaulay's classes. é    )ÚMatrix)Úfactor)Úsymbols)ÚIndexedBase)ÚDixonResultantÚMacaulayResultantza, búx, y©ÚpolynomialsÚ	variablesc                  ó$  — t        d«      } t        j                  t        t        gk(  sJ ‚t        j
                  t        t        gk(  sJ ‚t        j                  dk(  sJ ‚t        j                  dk(  sJ ‚t        j                  | d   | d   gk(  sJ ‚y)z#Test init method of DixonResultant.Úalphaé   r   é   N)r   Údixonr   ÚpÚqr   ÚxÚyÚnÚmÚdummy_variables)Úas    úl/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/sympy/polys/tests/test_multivariate_resultants.pyÚtest_dixon_resultant_initr      sz   € ä�GÓ€Aä×Ñ¤¤A Ò&Ð&Ð&Ü�?‰?œq¤!˜fÒ$Ð$Ð$Ü�7‰7�aŠ<Ðˆ<Ü�7‰7�aŠ<Ðˆ<Ü× Ñ  Q q¡T¨1¨Q©4 LÒ0Ð0Ñ0ó    c                  óª  — t        d«      } t        t        z   }t        dz  t        dz  z   }t        dz  t        z   }t        |||gt        t        g«      }t         t        dz  z  | d   z  t        t        dz  z  | d   z  z
  t        t        z  | d   z  | d   z  z
  t        t        z  | d   dz  z  z
  t        | d   z  | d   dz  z  z
  t        | d   z  z   t        dz  | d   z  | d   z  z
  t        dz  | d   z  z   t        | d   z  | d   dz  z  z
  t        | d   dz  z  z   }|j	                  «       j                  «       j                  «       |k(  sJ ‚y)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$      sp  € ä�GÓ€Aä	ŒA‰€AÜ	ˆQ‰”�Q‘‰€AÜ	ˆQ‰”‰
€Aä˜A˜q !˜9¤q¬! fÓ-€EÜ�”a˜1‘f‘˜q ™tÑ#¤a¬!¨q©&¡j°1°Q±4Ñ&7Ñ7¼!¼a¹%À!ÀAÁ$¹,Øˆ�dñ;ñ Ü”‰U�Q�q‘T˜Q‘YÑñÜ!" Q q¡T¡¨A¨a©D°A©IÑ!5ñ6Ü89¸A¸a¹D¹ñAäˆ�FˆQˆq‰T�M�A�a‘DÑñä ™6 A a¡D™=ñ)ä+,¨q°©t©8°a¸±d¸a±iÑ+?ñ@äBCØ€a�DˆA�IñCñ€Jð
 ×%Ñ%Ó'×/Ñ/Ó1×8Ñ8Ó:¸jÒHÐHÑHr   c                  óè   — t         t        z   } t         dz  t        dz  z   }t         dz  t        z   }t        | ||gt         t        g¬«      }|j                  «       }|j	                  |«      ddgk(  sJ ‚y)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(   .   sn   € ô 	
ŒA‰€AÜ	ˆQ‰”�Q‘‰€AÜ	ˆQ‰”‰
€Aä¨¨1¨a y¼QÄ¸FÔC€EØ×1Ñ1Ó3Ðà× Ñ Ð!1Ó2°q¸!°fÒ<Ð<Ñ<r   c                  óÚ   — t        d«      \  } }| |z   }| dz  |dz  z   }| dz  |z   }t        |||g| |g«      }|j                  «       }|j                  |«      j	                  «       dk(  sJ ‚y)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,   :   s~   € ô �6‹?�D€A€qà	ˆA‰€AØ	ˆQ‰��a‘‰€AØ	ˆQ‰�‰
€Aä˜A˜q !˜9 q¨! fÓ-€EØ×+Ñ+Ó-€Jà×!Ñ! *Ó-×1Ñ1Ó3°qÒ8Ð8Ñ8r   c                  óŠ  — t        d«      \  } }}| dz  |dz  z   dz
  |dz  z   }| dz  |dz  z   dz
  |dz  z   }|dz  |dz  z   dz
  }t        |||g||g«      }|j                  «       }|j                  |«      }dd| dz  z  z
  d| dz  z  z   d| d	z  z  z
  d
| dz  z  z   }	|j	                  «       |	z
  j                  «       dk(  sJ ‚y)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Ó �G€A€qˆ!à	ˆQ‰��a‘‰˜!Ñ˜a !™eÑ#€AØ	ˆQ‰��a‘‰˜!Ñ˜a !™eÑ#€AØ	ˆQ‰��a‘‰˜!Ñ€Aä  ! Q¨ ¨Q°¨FÓ3€KØ×+Ñ+Ó-€DØ×)Ñ)¨$Ó/€Fàˆq�1˜‘6‰z‰>˜B  a¡™KÑ'¨"¨q°A©v©+Ñ5¸¸QÀ!¹V¹ÑC€DØ�J‰J‹L˜4Ñ×'Ñ'Ó)¨QÒ.Ð.Ñ.r   c                  ó  — t        d«      \  } }}t        g d¢g d¢g d¢g«      }t        d|dz  gd|z  |dz   gg«      }t        ddgddgg«      }t        | dz  ddg| dd| z  gg«      }t        d	dgd|gddgddgg«      }t        j                  |«      d
k(  sJ ‚t        j                  |«      dk(  sJ ‚t        j                  |«      dk(  sJ ‚t        j                  |«      d
k(  sJ ‚t        j                  |«      dk(  sJ ‚y)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   sI  € ä�iÓ �G€A€qˆ!ä	’ÚÚðó 
€Bô 
�!�Q˜‘T�Ø�q‘&˜1 ™6˜'Ð"ð$ó 
%€Bô 
�!�Q�Ø�Q�ðó 
€Bô 
�!�Q‘$˜˜1�Ø�Q˜˜A™�ð ó 
!€Bô 
�!�Q�Ø�Q�Ø�Q�Ø�Q�ðó 
€Bô
 ×!Ñ! "Ó%¨Ò.Ð.Ð.Ü×!Ñ! "Ó%¨Ò-Ð-Ð-Ü×!Ñ! "Ó%¨Ò-Ð-Ð-Ü×!Ñ! "Ó%¨Ò.Ð.Ð.Ü×!Ñ! "Ó%¨Ò-Ð-Ñ-r   c                  ó  — t        d«      \  } }}t        ddgddgddgg«      }t        g d¢g d¢g d¢g«      }t        g d¢g d	¢g d
¢g d¢g«      }t        g d¢g d¢g d¢g«      }t        g d¢g d¢g d¢g d¢g«      }t        dd| g|ddgdd|gg«      }t        j                  |«      t        ddgg«      k(  sJ ‚t        j                  |«      t        ddgddgddgg«      k(  sJ ‚t        j                  |«      t        ddgddgg«      k(  sJ ‚t        j                  |«      t        ddgddgg«      k(  sJ ‚t        j                  |«      t        dgdgdgdgg«      k(  sJ ‚t        j                  |«      t        d| g|dgd|gg«      k(  sJ ‚y)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   s3  € ä�iÓ �G€A€qˆ!ä	�!�Q�Ø�Q�Ø�Q�ðó 
€Bô 
’ÚÚðó 
€Bô 
’ÚÚÚðó 
 €Bô
 
’ÚÚðó 
€Bô 
’ÚÚÚðó 
 €Bô
 
�!�Q˜�Ø�Q˜�Ø�Q˜�ðó 
€Bô ×-Ñ-¨bÓ1´V¸aÀ¸V¸HÓ5EÒEÐEÐEä×-Ñ-¨bÓ1´V¸aÀ¸VØ>?À¸VØ>?À¸Vð=Eó 6Fò Fð Fð Fô ×-Ñ-¨bÓ1´V¸aÀ¸VØ>?À¸Vð=Eó 6Fò Fð Fð Fô ×-Ñ-¨bÓ1´V¸aÀ¸VØ>?À¸Vð=Eó 6Fò Fð Fð Fô ×-Ñ-¨bÓ1´V¸a¸SØ>?¸SØ>?¸SØ>?¸Sð=Bó 6Cò Cð Cð Cô
 ×-Ñ-¨bÓ1´V¸aÀ¸VØ>?À¸VØ>?À¸Vð=Eó 6Fò Fð Fñ Fr   c                  ó”  — t        d«      \  } }t        g d¢g d¢g d¢g«      }t        g d¢g d¢g«      }t        g d¢g d¢g d¢g«      }t        dd| gg d¢|ddgg«      }t        j                  |«      d	k(  sJ ‚t        j                  |«      d
k(  sJ ‚t        j                  |«      dk(  sJ ‚t        j                  |«      | |z  k(  sJ ‚y)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‹?�D€A€qä	’ÚÚðó 
€Bô 
’Úðó 
€Bô 
’ÚÚðó 
€Bô 
�!�Q˜�ÚØ�Q˜�ðó 
€Bô ×(Ñ(¨Ó,°Ò2Ð2Ð2Ü×(Ñ(¨Ó,°Ò1Ð1Ð1Ü×(Ñ(¨Ó,°Ò1Ð1Ð1Ü×(Ñ(¨Ó,°°A±Ò5Ð5Ñ5r   c                  óô   — t        d«      \  } }}| |z  |z  }| dz  |dz  z
  }| |z   |z   }t        |||g| |g«      }|j                  «       }|j                  |«      }|j	                  |«      }	|	|dz   k(  sJ ‚y)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Ó �G€A€qˆ!à	ˆA‰�‰	€AØ	ˆ1‰ˆq�!‰t‰€AØ	ˆA‰�‰	€AÜ˜A˜q !˜9 q¨! fÓ-€EØ×+Ñ+Ó-€JØ×)Ñ)¨*Ó5€LØ×%Ñ% lÓ3€Aà��A‘�Š:Ð‰:r   c                  ó¾  — t        d«      \  } }}| |z  | |z  z   | z   |dz  z
  |z
  |dz  z   |z   }| dz  | |z  z   | z
  | |z  z   ||z  z   |z
  }| dz  | |z  z   d| z  z   | |z  z
  ||z  z
  d|z  z
  }t        |||g| |g«      }|j                  «       }|j                  |«      }t	        |j                  |«      «      }	|	d|z  |dz
  z  |dz   z  d|z  dz
  dz  z  k(  sJ ‚y)z-Tests the KSY Dixon resultant for example twozx, y, Ar   iøÿÿÿr   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Ó �G€A€qˆ!à	ˆA‰��A‘‰˜Ñ˜A˜q™DÑ  1Ñ$ q¨!¡tÑ+¨aÑ/€AØ	ˆ1‰ˆq�1‰u‰�qÑ˜1˜q™5Ñ  1 q¡5Ñ(¨1Ñ,€AØ	ˆ1‰ˆq�1‰u‰�q˜1‘uÑ˜q 1™uÑ$ q¨1¡uÑ,¨q°1©uÑ4€Aä˜A˜q !˜9 q¨! fÓ-€EØ×+Ñ+Ó-€JØ×)Ñ)¨*Ó5€LÜˆu×,Ñ,¨\Ó:Ó;€Aà��1‘�a˜!‘e‘˜a !™eÑ$ a¨¡c¨A¡g°¡\Ñ1Ò1Ð1Ñ1r   c                  ó,  — t         j                  t        t        gk(  sJ ‚t         j                  t
        t        gk(  sJ ‚t         j                  dk(  sJ ‚t         j                  ddgk(  sJ ‚t         j                  dk(  sJ ‚t         j                  dk(  sJ ‚y)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„   € ô ×Ñ¤A¤q 6Ò)Ð)Ð)Ü×Ñ¤!¤Q Ò'Ð'Ð'Ü�:‰:˜Š?Ðˆ?Ü×Ñ  1˜vÒ%Ð%Ð%Ü×Ñ Ò!Ð!Ð!Ü×"Ñ" aÒ'Ð'Ñ'r   c                  ó6   — t         j                  «       dk(  sJ ‚y )Nr   )r`   Ú_get_degree_mrd   r   r   Útest_get_degree_mrh   å   s   € Ü×!Ñ!Ó# qÒ(Ð(Ñ(r   c                  ó6   — t         j                  «       dk(  sJ ‚y )Nr   )r`   Úget_sizerd   r   r   Útest_get_sizerk   è   s   € Ü×ÑÓ !Ò#Ð#Ñ#r   c                  óì  — t        d«      \  } }}t        d«      \  }}}t        d«      \  }}}t        d«      \  }	}
}t        d«      \  }}}t        d«      \  }}}|| dz  z  || z  |z  z   || z  |z  z   ||dz  z  z   ||z  |z  z   ||dz  z  z   }|	| dz  z  |
| z  |z  z   || z  |z  z   ||dz  z  z   ||z  |z  z   ||dz  z  z   }|| z  ||z  z   ||z  z   }t        |||g| ||g«      }|j                  g d¢k(  sJ ‚|j                  d	k(  sJ ‚|j                  | d	z  | dz  |z  | dz  |z  | |dz  z  | |z  |z  | |dz  z  |d	z  |dz  |z  ||dz  z  |d	z  g
k(  sJ ‚|j
                  d
k(  sJ ‚|j                  «       | ||g| ||g| |z  | |z  ||z  |dz  ggk(  sJ ‚|j                  «       }|j                  |j
                  |j
                  fk(  sJ ‚|j                  |«      t        ||g|	|gg«      k(  sJ ‚y)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Ó �G€A€qˆ!Ü!Ð"7Ó8Ñ€Eˆ5�%Ü!Ð"7Ó8Ñ€Eˆ5�%Ü!Ð"7Ó8Ñ€Eˆ5�%Ü!Ð"7Ó8Ñ€Eˆ5�%Ü˜OÓ,�M€Cˆˆcà
�!�q‘&‰.˜5 1™9 q™=Ñ
(¨5°1©9°q©=Ñ
8Ø
�!�q‘&‰.ñØ  1™9 q™=ñ)Ø+0°1¸±6©>ñ:€Cà
�!�q‘&‰.˜5 1™9 q™=Ñ
(¨5°1©9°q©=Ñ
8Ø
�!�q‘&‰.ñØ  1™9 q™=ñ)Ø+0°1¸±6©>ñ:€Cà
�‰'�C˜!‘GÑ
˜c A™gÑ
%€Cä
˜S # s˜O¨a°°A¨YÓ
7€Cà�;‰;š)Ò#Ð#Ð#Ø�<‰<˜1ÒÐÐà×Ñ  Q¡¨¨Q©°©
°A¸±F¸Q±JØ ! A¨¡F¡
Ø ! A¡¨¡	¨1¨q°A©v©:°q¸A±vØ ! Q¡¨¡	¨1¨q°A©v©:°q¸A±vð ?ò ?ð ?ð ?ð ×Ñ Ò#Ð#Ð#Ø×#Ñ#Ó%¨1¨a°¨)°a¸¸A°YØ+,¨q©5°!°a±%¸¸Q¹ÀÀQÁÐ*Gð*Iò Ið Ið Ið �^‰^Ó€FØ�<‰<˜C×.Ñ.°×0BÑ0BÐCÒCÐCÐCØ×Ñ˜VÓ$¬°¸°Ø16¸°ð0@ó )Aò Að Añ Ar   c            
      óî  — t        d«      \  } }}t        d«      \  }}}t        d«      \  }}}t        d«      \  }	}
}}}||z  || z  z
  ||z  z   }|| dz  z  ||dz  z  z   ||dz  z  z
  }|	|z  |
| dz  z  z
  || dz  z  |z  z   || z  |dz  z  z
  ||dz  z  z   }t        |||g| ||g«      }|j                  g d¢k(  sJ ‚|j                  dk(  sJ ‚|j                  d	k(  sJ ‚t        |j                  «       «      |j                  k(  sJ ‚|j                  «       }|j                  |j                  |j                  fk(  sJ ‚|j                  |«      t        | ||d
gd
| d
d
gd
d
| d
gd
d
d
| gg«      k(  sJ ‚y)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Ó �G€A€qˆ!Ü˜OÓ,�M€CˆˆcÜ˜OÓ,�M€CˆˆcÜ%Ð&?Ó@Ñ€Cˆˆc�3˜àˆa‰�3˜‘7Ñ˜S 1™WÑ$€AØˆa�1‰f‰�s˜Q !™V‘|Ñ# c¨A°©F¡lÑ2€AØˆa‰�#˜˜Q™‘,Ñ  q¨A¡v¡°Ñ!1Ñ1°C¸!±G¸aÀ1¹fÑ4DÑDØˆa�1‰f‰ñ	€Aô ˜Q  1˜I¨¨1¨a yÓ
1€Cà�;‰;š)Ò#Ð#Ð#Ø�<‰<˜1ÒÐÐØ×Ñ Ò#Ð#Ð#Üˆs×'Ñ'Ó)Ó*¨c¯e©eÒ3Ð3Ð3à�^‰^Ó€FØ�<‰<˜C×.Ñ.°×0BÑ0BÐCÒCÐCÐCØ×Ñ˜VÓ$¬°#°°s¸CÀÐ0CØ12°S°D¸!¸Q°Ø12°A¸°t¸Q°Ø12°A°q¸3¸$°ð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àˆ�UˆQ�Y€ØˆˆQ‰�Y€á A q 6°a¸°VÔ<€Ù¨!¨Q¨¸A¸q¸6ÔB€ò1òIò 
=ò9ò/ò.ò81Fòf6ò0ò2ò(ò)ò$ò AóDBr   