+
    ‹°³j�;  ã                   óÖ   € R t ^ RIHt ^ RIHt ^ RIHtHt ^ RIH	t	H
t
Ht ^ RIHt ^ RIHt ^ RIHtHt ^ RIHt ^ R	IHtHt ^ R
IHt ^ RIHt ^ RIHt  ! R R4      t ! R R4      tR# )a  
This module contains functions for two multivariate resultants. These
are:

- Dixon's resultant.
- Macaulay's resultant.

Multivariate resultants are used to identify whether a multivariate
system has common roots. That is when the resultant is equal to zero.
)Úprod)ÚMul)ÚMatrixÚdiag)ÚPolyÚdegree_listÚrem)Úsimplify)ÚIndexedBase)ÚitermonomialsÚmonomial_deg)Úmonomial_key)Úpoly_from_exprÚtotal_degree)Úbinomial)Úcombinations_with_replacement)Úsympy_deprecation_warningc                   ój   a € ] tR t^t o RtR t]R 4       tR tR t	R t
R tR tR	 tR
 tR tRtV tR# )ÚDixonResultantaÏ  
A class for retrieving the Dixon's resultant of a multivariate
system.

Examples
========

>>> from sympy import symbols

>>> from sympy.polys.multivariate_resultants import DixonResultant
>>> x, y = symbols('x, y')

>>> p = x + y
>>> q = x ** 2 + y ** 3
>>> h = x ** 2 + y

>>> dixon = DixonResultant(variables=[x, y], polynomials=[p, q, h])
>>> poly = dixon.get_dixon_polynomial()
>>> matrix = dixon.get_dixon_matrix(polynomial=poly)
>>> matrix
Matrix([
[ 0,  0, -1,  0, -1],
[ 0, -1,  0, -1,  0],
[-1,  0,  1,  0,  0],
[ 0, -1,  0,  0,  1],
[-1,  0,  0,  1,  0]])
>>> matrix.det()
0

See Also
========

Notebook in examples: sympy/example/notebooks.

References
==========

.. [1] [Kapur1994]_
.. [2] [Palancz08]_

c                ó¢  a€ Wn         W n        \        V P                  4      V n        \        V P                   4      V n        \        R4      p\        V P                  4       Uu. uF  qCV,          NK  	  upV n        \        V P                  4       Uau. uF"  o\        V3R lV P                    4       4      NK$  	  upV n	        R# u upi u upi )a  
A class that takes two lists, a list of polynomials and list of
variables. Returns the Dixon matrix of the multivariate system.

Parameters
----------
polynomials : list of polynomials
    A  list of m n-degree polynomials
variables: list
    A list of all n variables
Úalphac              3   óH   <"  € T F  p\        V4      S,          x € K  	  R # 5i)N)r   )Ú.0ÚpolyÚis   & €Úd/home/luca/screen-checking/.venv/lib/python3.14/site-packages/sympy/polys/multivariate_resultants.pyÚ	<genexpr>Ú*DixonResultant.__init__.<locals>.<genexpr>[   s    øé € Ð SÑBR¸$¤¨TÓ!2°1×!5Ò!5ÓBRùs   ƒ"N)
ÚpolynomialsÚ	variablesÚlenÚnÚmr
   ÚrangeÚdummy_variablesÚmaxÚ_max_degrees)Úselfr   r   Úar   s   &&& `r   Ú__init__ÚDixonResultant.__init__D   s¤   ø€ ð 'ÔØ"Œä�T—^‘^Ó$ˆŒÜ�T×%Ñ%Ó&ˆŒä˜Ó ˆä.3°D·F±F¬mÓ<©m¨ !§ ©mÑ<ˆÔô ˜4Ÿ6™6”]ô$Ù"�ô !Ô SÀ$×BRÒBRÓ SÖSÙ"ñ$ˆÖùò  =ùò$s   Á$CÂ(Cc                ó6   € \        R RRR7       V P                  # )zS
            The max_degrees property of DixonResultant is deprecated.
            ú1.5ú$deprecated-dixonresultant-properties©Údeprecated_since_versionÚactive_deprecations_target)r   r&   ©r'   s   &r   Úmax_degreesÚDixonResultant.max_degrees^   s%   € ä!ðð &+Ø'Mõ	
ð × Ñ Ð ó    c           	     óæ  € V P                   V P                  ^,           8w  d   \        R4      hV P                  .p\	        V P
                  4      p\        V P                  4       Fp  pV P                  V,          W#&   \        \        V P
                  V4      4      pTP                  V P                   Uu. uF  qUP                  V4      NK  	  up4       Kr  	  \        V4      p\        V P
                  V P                  4      p\        V UU	u. uF  w  r‰W‰,
          NK  	  up	p!  p
VP                  4       V
,          P                  4       p\!        W°P                  4      ^ ,          # u upi u up	pi )ab  
Returns
=======

dixon_polynomial: polynomial
    Dixon's polynomial is calculated as:

    delta = Delta(A) / ((x_1 - a_1) ... (x_n - a_n)) where,

    A =  |p_1(x_1,... x_n), ..., p_n(x_1,... x_n)|
         |p_1(a_1,... x_n), ..., p_n(a_1,... x_n)|
         |...             , ...,              ...|
         |p_1(a_1,... a_n), ..., p_n(a_1,... a_n)|
z%Method invalid for given combination.)r"   r!   Ú
ValueErrorr   Úlistr   r#   r$   ÚdictÚzipÚappendÚsubsr   r   ÚdetÚfactorr   )r'   ÚrowsÚtempÚidxÚsubstitutionÚfÚAÚtermsr(   ÚbÚproduct_of_differencesÚdixon_polynomials   &           r   Úget_dixon_polynomialÚ#DixonResultant.get_dixon_polynomiali   s$  € ð �6‰6�d—f‘f˜q•jÔ!ÜÐDÓEÐEð × Ñ Ð!ˆä�D—N‘NÓ#ˆä˜Ÿ™–=ˆCØ×,Ñ,¨SÕ1ˆD‰IÜ¤ D§N¡N°DÓ 9Ó:ˆLØ�K‰K°t×7GÒ7GÓHÑ7G°!Ÿ™ Ö-Ñ7GÑHÖIñ !ô
 �4‹Lˆä�D—N‘N D×$8Ñ$8Ó9ˆÜ!$¹Ô&?¹±° q§u u¹Ò&?Ñ!@ÐØŸE™E›GÐ&<Õ<×DÑDÓFÐäÐ.×0DÑ0DÓEÀaÕHÐHùò Iùó
 '@s   Â5E(
ÄE-
c                ó  € \        R RRR7       \        V P                  4       Uu. uF.  pV P                  V,          V P                  V,          ,          NK0  	  pp\        V4      p\        V4      P                  4       p\        V!  # u upi )zƒ
            The get_upper_degree() method of DixonResultant is deprecated. Use
            get_max_degrees() instead.
            r,   r-   r.   )	r   r#   r!   r   r&   r   r   Úmonomsr   )r'   r   Úlist_of_productsÚproducts   &   r   Úget_upper_degreeÚDixonResultant.get_upper_degree�   sŠ   € Ü!ðð &+Ø'Mõ	
ô &+¨4¯6©6¤]ó4Ù%2 ð !ŸN™N¨1Õ-°×1BÑ1BÀ1Õ1E×EÐEÙ%2ð 	ð 4äÐ'Ó(ˆÜ�w“-×&Ñ&Ó(ˆä˜WÑ%Ð%ùò4s   ¦4B	c           	     óÒ   € VP                  4        Uu. uF!  p\        \        W P                  4      4      NK#  	  pp\	        V!   Uu. uF  p\        V4      NK  	  ppV# u upi u upi )z®
Returns a list of the maximum degree of each variable appearing
in the coefficients of the Dixon polynomial. The coefficients are
viewed as polys in $x_1, x_2, \dots, x_n$.
)Úcoeffsr   r   r   r9   r%   )r'   Ú
polynomialr   Ú	deg_listsÚdegsr2   s   &&    r   Úget_max_degreesÚDixonResultant.get_max_degrees�   si   € ð ",×!2Ñ!2Ô!4ó6Ù!4˜ô !¤ d¯N©NÓ!;Ö<Ù!4ð 	ð 6ô .1°)ª_Ó=©_ T”s˜4–y©_ˆÐ=àÐùò6ùò >s   “'AÁA$c                óÐ  € V P                  V4      p\        V P                  V4      p\        VR\	        RV P                  4      R7      p\        VP                  4        UUu. uF9  pV Uu. uF)  p\        V.V P                  O5!  P                  V4      NK+  	  upNK;  	  upp4      pVP                  ^ ,          VP                  ^,          8w  d…   \        VP                  R,          4       Uu. uFS  p\        ;QJ d%    R VRV3,           4       F  '       g   K   RM	  RM! R VRV3,           4       4      '       g   KQ  VNKU  	  ppVRV3,          pV# u upi u uppi u upi )z…
Construct the Dixon matrix from the coefficients of polynomial
\alpha. Each coefficient is viewed as a polynomial of x_1, ...,
x_n.
TÚlex©ÚreverseÚkeyc              3   ó*   "  € T F	  q^ 8g  x € K  	  R# 5i©é    N© )r   Úelements   & r   r   Ú2DixonResultant.get_dixon_matrix.<locals>.<genexpr>¿   s   é € ð 4Ù2ð -4 až<Û2ùs   ‚ºNNNFéÿÿÿÿ)rU   r   r   Úsortedr   r   rQ   r   Úcoeff_monomialÚshaper#   Úany)	r'   rR   r2   Ú	monomialsÚcr"   Údixon_matrixÚcolumnÚkeeps	   &&       r   Úget_dixon_matrixÚDixonResultant.get_dixon_matrixª   sT  € ð ×*Ñ*¨:Ó6ˆô " $§.¡.°+Ó>ˆ	Ü˜9¨dÜ+¨E°4·>±>ÓBôDˆ	ô à)3×):Ñ):Ô)<ô>á)< Añ *3ó 4Ù)2 Aô !% QÐ 8¨¯©Ó 8× GÑ GÈÖ JÙ)2ô 4á)<ò>ó ?ˆð
 ×Ñ˜aÕ  L×$6Ñ$6°qÕ$9Ô9Ü).¨|×/AÑ/AÀ"Õ/EÔ)Fó 5Ñ)F˜vß“sñ 4Ø'¨¨6¨	Ö2ó4—s—s’sñ 4Ø'¨¨6¨	Ö2ó4÷ 4÷ �FÑ)FˆDð 5ð (¨¨4¨Õ0ˆLàÐùò 4ùó >ùò5s0   Á"	E
Á+/EÂE
Ã0E#Ä E#Ä!E#ÅE#ÅE
c           	     óö  aa€ SP                   '       d   R# SP                  w  r#\        SP                  4       ^ ,          4      o\	        V4       Uau. uF[  o\
        ;QJ d)    VV3R l\	        V4       4       F  '       g   K   RM	  RM! VV3R l\	        V4       4       4      '       g   KY  SNK]  	  ppSVR3,          o\        ^ .V^,
          ,          ^.,           .4      pSR,          V8X  d   R# R# u upi )aw  
Test for the validity of the Kapur-Saxena-Yang precondition.

The precondition requires that the column corresponding to the
monomial 1 = x_1 ^ 0 * x_2 ^ 0 * ... * x_n ^ 0 is not a linear
combination of the remaining ones. In SymPy notation this is
the last column. For the precondition to hold the last non-zero
row of the rref matrix should be of the form [0, 0, ..., 1].
Fc              3   ó@   <"  € T F  pSSV3,          ^ 8g  x € K  	  R# 5ir]   r_   )r   Újr   Úmatrixs   & €€r   r   Ú2DixonResultant.KSY_precondition.<locals>.<genexpr>×   s   øé € Ð*OÁhÀ¨6°!°Q°$­<¸1Ö+<Ãhùs   ƒTrb   )rc   rb   )Úis_zero_matrixrf   r	   Úrrefr#   rg   r   )r'   rr   r"   r!   r   r>   Ú	conditions   &f  `  r   ÚKSY_preconditionÚDixonResultant.KSY_preconditionÆ   s·   ù€ ð × × Ð Ùà�|‰|‰ˆô ˜&Ÿ+™+›-¨Õ*Ó+ˆÜ  œ8ÔP™8�a§s£sÕ*OÄeÈAÄhÓ*O§s§s¢sÕ*OÄeÈAÄhÓ*O×'O—�™8ˆÐPØ˜˜Q˜•ˆä˜Q˜C  1¥�I¨¨�OÐ,Ó-ˆ	à�$�<˜9Ô$Ùáùò Qs   ÁC6Á#C6Â%C6Â.C6c                óB  € \        VP                  4       Uu. uF'  q!P                  V4      P                  '       d   K%  VNK)  	  pp\        VP                  4       Uu. uF'  qAP                  V4      P                  '       d   K%  VNK)  	  ppWV3,          # u upi u upi )z/Remove the zero rows and columns of the matrix.)r#   r>   Úrowrt   ÚcolsÚcol)r'   rr   r   r>   rq   r{   s   &&    r   Údelete_zero_rows_and_columnsÚ+DixonResultant.delete_zero_rows_and_columnsá   s‘   € ô ˜VŸ[™[Ô)óOÙ)�!·±¸A³×1MÕ1M�AˆAÑ)ð 	ð Oô ˜VŸ[™[Ô)óOÙ)�!·±¸A³×1MÕ1M�AˆAÑ)ð 	ð Oð ˜D�jÕ!Ð!ùòOùòOs   ˜"B¿BÁ"BÂBc                ó–   € ^p\        VP                  4       F-  pVP                  V4       F  pV^ 8w  g   K  W$,          p K+  	  K/  	  V# )z;Calculate the product of the leading entries of the matrix.)r#   r>   rz   )r'   rr   Úresrz   Úels   &&   r   Úproduct_leading_entriesÚ&DixonResultant.product_leading_entriesê   sD   € àˆÜ˜Ÿ™Ö%ˆCØ—j‘j –o�Ø˜–7Ø�(�CÚó &ñ &ð
 ˆ
r4   c                ó    € V P                  V4      pVP                  4       w  r#pV P                  \        V4      4      pV P                  V4      # )z@Calculate the Kapur-Saxena-Yang approach to the Dixon Resultant.)r}   ÚLUdecompositionr	   r‚   )r'   rr   Ú_ÚUs   &&  r   Úget_KSY_Dixon_resultantÚ&DixonResultant.get_KSY_Dixon_resultantô   sI   € à×2Ñ2°6Ó:ˆØ×(Ñ(Ó*‰ˆˆaØ×2Ñ2´8¸A³;Ó?ˆà×+Ñ+¨FÓ3Ð3r4   )r&   r$   r"   r!   r   r   N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r)   Úpropertyr2   rH   rN   rU   rm   rw   r}   r‚   rˆ   Ú__static_attributes__Ú__classdictcell__©Ú__classdict__s   @r   r   r      sS   ø‡ € ñ(òT$ð4 ñ!ó ð!ò"IòH&ò òò8ò6"ò÷4ð 4r4   r   c                   óT   a € ] tR t^üt o RtR tR tR tR tR t	R t
R tR	 tR
tV tR# )ÚMacaulayResultanta¥  
A class for calculating the Macaulay resultant. Note that the
polynomials must be homogenized and their coefficients must be
given as symbols.

Examples
========

>>> from sympy import symbols

>>> from sympy.polys.multivariate_resultants import MacaulayResultant
>>> x, y, z = symbols('x, y, z')

>>> a_0, a_1, a_2 = symbols('a_0, a_1, a_2')
>>> b_0, b_1, b_2 = symbols('b_0, b_1, b_2')
>>> c_0, c_1, c_2,c_3, c_4 = symbols('c_0, c_1, c_2, c_3, c_4')

>>> f = a_0 * y -  a_1 * x + a_2 * z
>>> g = b_1 * x ** 2 + b_0 * y ** 2 - b_2 * z ** 2
>>> h = c_0 * y * z ** 2 - c_1 * x ** 3 + c_2 * x ** 2 * z - c_3 * x * z ** 2 + c_4 * z ** 3

>>> mac = MacaulayResultant(polynomials=[f, g, h], variables=[x, y, z])
>>> mac.monomial_set
[x**4, x**3*y, x**3*z, x**2*y**2, x**2*y*z, x**2*z**2, x*y**3,
x*y**2*z, x*y*z**2, x*z**3, y**4, y**3*z, y**2*z**2, y*z**3, z**4]
>>> matrix = mac.get_matrix()
>>> submatrix = mac.get_submatrix(matrix)
>>> submatrix
Matrix([
[-a_1,  a_0,  a_2,    0],
[   0, -a_1,    0,    0],
[   0,    0, -a_1,    0],
[   0,    0,    0, -a_1]])

See Also
========

Notebook in examples: sympy/example/notebooks.

References
==========

.. [1] [Bruce97]_
.. [2] [Stiller96]_

c                óH  € Wn         W n        \        V4      V n        V P                    Uu. uF  p\	        V.V P                  O5!  NK  	  upV n        V P                  4       V n        V P                  4       V n	        V P                  V P                  4      V n        R# u upi )z”
Parameters
==========

variables: list
    A list of all n variables
polynomials : list of SymPy polynomials
    A  list of m n-degree polynomials
N)r   r   r    r!   r   ÚdegreesÚ_get_degree_mÚdegree_mÚget_sizeÚmonomials_sizeÚget_monomials_of_certain_degreeÚmonomial_set)r'   r   r   r   s   &&& r   r)   ÚMacaulayResultant.__init__+  s�   € ð 'ÔØ"ŒÜ�Y“ˆŒð  ×+Ò+ó-Ù+ð AEœ TÐ;¨D¯N©NÖ;Ù+ñ-ˆŒð ×*Ñ*Ó,ˆŒØ"Ÿm™m›oˆÔð !×@Ñ@ÀÇÁÓOˆÖùò-s   « Bc                óH   € ^\        R V P                   4       4      ,           # )z�
Returns
=======

degree_m: int
    The degree_m is calculated as  1 + \sum_1 ^ n (d_i - 1),
    where d_i is the degree of the i polynomial
c              3   ó2   "  € T F  q^,
          x € K  	  R# 5i)é   Nr_   )r   Úds   & r   r   Ú2MacaulayResultant._get_degree_m.<locals>.<genexpr>L  s   é € Ð3¡l ˜1—u’u£lùs   ‚)Úsumr—   r1   s   &r   r˜   ÚMacaulayResultant._get_degree_mC  s   € ð ”3Ñ3 d§l¢lÓ3Ó3Õ3Ð3r4   c                ó€   € \        V P                  V P                  ,           ^,
          V P                  ^,
          4      # )zš
Returns
=======

size: int
    The size of set T. Set T is the set of all possible
    monomials of the n variables for degree equal to the
    degree_m
)r   r™   r!   r1   s   &r   rš   ÚMacaulayResultant.get_sizeN  s+   € ô ˜Ÿ™¨¯©Õ.°Õ2°D·F±F¸QµJÓ?Ð?r4   c                ó¨   € \        V P                  V4       Uu. uF  p\        V!  NK  	  pp\        VR\	        RV P                  4      R7      # u upi )zO
Returns
=======

monomials: list
    A list of monomials of a certain degree.
TrX   rY   )r   r   r   rd   r   )r'   ÚdegreeÚmonomialrh   s   &&  r   rœ   Ú1MacaulayResultant.get_monomials_of_certain_degreeZ  s`   € ô 6°d·n±nØ6<ô>ó?ñ>ð )1”S˜(”^ñ>ð 	ð ?ô �i¨Ü& u¨d¯n©nÓ=ô?ð 	?ùò	?s   ™Ac                óˆ  € . p. p\        V P                  4       EF  pV^ 8X  dI   V P                  V P                  V,          ,
          pV P	                  V4      pVP                  V4       KS  VP                  V P                  V^,
          ,          V P                  V^,
          ,          ,          4       V P                  V P                  V,          ,
          pV P	                  V4      pV F7  pV F.  p\        W‡4      ^ 8X  g   K  V U	u. uF  p	W˜8w  g   K  V	NK  	  pp	K0  	  K9  	  VP                  V4       EK!  	  V# u up	i )zW
Returns
=======

row_coefficients: list
    The row coefficients of Macaulay's matrix
)r#   r!   r™   r—   rœ   r:   r   r   )
r'   Úrow_coefficientsÚ	divisibler   r©   rª   Ú	poss_rowsÚdivÚpÚitems
   &         r   Úget_row_coefficientsÚ&MacaulayResultant.get_row_coefficientsi  s  € ð ÐØˆ	Ü�t—v‘v—ˆAØ�AŒvØŸ™¨¯©°a­Õ8�Ø×?Ñ?ÀÓG�Ø ×'Ñ'¨Ö1à× Ñ  §¡°°AµÕ!6Ø!%§¡¨a°!­eÕ!4õ"5ô 6àŸ™¨¯©°a­Õ8�Ø ×@Ñ@ÀÓH�	Û$�CÛ&˜Ü˜q›;¨!Ö+Ù:Có )7¹)°$Ø,0©I÷ *.¨¹)˜Ið )7™Ió 'ñ %ð
 !×'Ñ'¨	×2ñ ð   Ðùò)7s   Ä
D?
ÄD?
c                ó€  € . pV P                  4       p\        V P                  4       F‡  pW#,           Fx  p. p\        V P                  V,          V,          .V P
                  O5!  pV P                   F#  pVP                  VP                  V4      4       K%  	  VP                  V4       Kz  	  K‰  	  \        V4      pV# )zL
Returns
=======

macaulay_matrix: Matrix
    The Macaulay numerator matrix
)
r³   r#   r!   r   r   r   r�   r:   re   r   )	r'   r>   r­   r   Ú
multiplierÚcoefficientsr   ÚmonoÚmacaulay_matrixs	   &        r   Ú
get_matrixÚMacaulayResultant.get_matrix…  s¯   € ð ˆØ×4Ñ4Ó6ÐÜ�t—v‘v–ˆAØ.×1Ð1�
Ø!�Ü˜D×,Ñ,¨QÕ/°*Õ<ð -Ø!Ÿ^™^ó-�ð !×-Ô-�DØ ×'Ñ'¨×(;Ñ(;¸DÓ(AÖBñ .à—‘˜LÖ)ó 2ñ ô ! ›,ˆØÐr4   c           
     ó  € . pV P                    Fk  p. p\        V P                  4       F<  w  rEVP                  \	        \        W%4      V P                  V,          8¬  4      4       K>  	  VP                  V4       Km  	  \        V4       UUu. uF*  w  rF\        V4      V P                  ^,
          8  g   K(  VNK,  	  ppp\        V4       UUu. uF*  w  rF\        V4      V P                  ^,
          8¼  g   K(  VNK,  	  pppWx3# u uppi u uppi )ak  
Returns
=======

reduced: list
    A list of the reduced monomials
non_reduced: list
    A list of the monomials that are not reduced

Definition
==========

A polynomial is said to be reduced in x_i, if its degree (the
maximum degree of its monomials) in x_i is less than d_i. A
polynomial that is reduced in all variables but one is said
simply to be reduced.
)	r�   Ú	enumerater   r:   Úboolr   r—   r¤   r!   )	r'   r®   r"   r?   r   ÚvÚrÚreducedÚnon_reduceds	   &        r   Úget_reduced_nonreducedÚ(MacaulayResultant.get_reduced_nonreducedœ  sï   € ð$ ˆ	Ø×"Ô"ˆAØˆDÜ! $§.¡.Ö1‘�Ø—‘œD¤¨aÓ!3°t·|±|ÀAµÑ!FÓGÖHñ 2à×Ñ˜TÖ"ñ	 #ô
 "+¨9Ô!5ô +Ñ!5™˜Ü˜!“f˜tŸv™v¨�zÑ)÷ �1Ñ!5ˆñ +ä%.¨yÔ%9ô /Ñ%9™T˜QÜ˜a›& D§F¡F¨A¥IÑ-÷ �qÑ%9ˆñ /ð Ð#Ð#ùó+ùó/s   Â%DÂ6DÃ%D	Ã7D	c                óN  € V P                  4       w  r#V. 8X  d   \        ^.4      # \        V P                  4       UUu. uF  w  rEWPP                  V,          ,          NK   	  ppp\        V P                  4       Uu. uF+  pV P                  V,          P                  Wd,          4      NK-  	  ppVRV3,          p. p	\        VP                  4       F8  p
V Uu. uF  q»WŠR3,          9   NK  	  ppRV9  g   K'  V	P                  V
4       K:  	  WV3,          # u uppi u upi u upi )zâ
Returns
=======

macaulay_submatrix: Matrix
    The Macaulay denominator matrix. Columns that are non reduced are kept.
    The row which contains one of the a_{i}s is dropped. a_{i}s
    are the coefficients of x_i ^ {d_i}.
rb   T)rÃ   r   r½   r   r—   r#   r!   r   Úcoeffr>   r:   )r'   rr   rÁ   rÂ   r   r¿   Úreduction_setÚaisÚreduced_matrixrl   rz   ÚaiÚchecks   &&           r   Úget_submatrixÚMacaulayResultant.get_submatrix»  s$  € ð  $×:Ñ:Ó<Ñˆð �bŒ=Ü˜˜“9Ðô & d§n¡nÔ5ô7Ù5ñ 37°!˜Ÿl™l¨1�o×-Ð-Ù5ð 	ñ 7ô ˜dŸf™fœó'Ù%�1ð ×Ñ Õ"×(Ñ(¨Õ)9Ö:Ù%ð 	ð 'ð    7 
Õ+ˆØˆÜ˜×,Ñ,Ö-ˆCÙ<?Ó@¹C°b˜>¨q¨&Õ1Ô1¹CˆEÐ@Ø˜5Ö Ø—‘˜CÖ ñ .ð
 ˜KÐ'Õ(Ð(ùó7ùò'ùò As   ¾$DÁ<1DÃD")r™   r—   r�   r›   r!   r   r   N)rŠ   r‹   rŒ   r�   rŽ   r)   r˜   rš   rœ   r³   rº   rÃ   rÌ   r�   r‘   r’   s   @r   r•   r•   ü   s:   ø‡ € ñ-ò\Pò0	4ò
@ò?ò ò8ò.$÷>)ð )r4   r•   N)rŽ   Úmathr   Úsympy.core.mulr   Úsympy.matrices.denser   r   Úsympy.polys.polytoolsr   r   r   Úsympy.simplify.simplifyr	   Úsympy.tensor.indexedr
   Úsympy.polys.monomialsr   r   Úsympy.polys.orderingsr   r   r   Ú(sympy.functions.combinatorial.factorialsr   Ú	itertoolsr   Úsympy.utilities.exceptionsr   r   r•   r_   r4   r   Ú<module>rÙ      sL   ðñ	õ å ß /ß :Ñ :Ý ,Ý ,ß =Ý .ß >Ý =Ý 3Ý @÷a4ñ a4÷F])ó ])r4   