ó
    Š*£h–g  ã                  ó  • S r SSKJr  SSKJr  SSKJrJr  SSKJ	r	  SSK
Jr  SSKJrJr  SSKJr  \(       a  SS	KJrJr  SS
KJr  SSKJr  SSKJrJr        SS jr " S S5      rSS jrSS jrSS jr " S S5      rg)zð
Puiseux rings. These are used by the ring_series module to represented
truncated Puiseux series. Elements of a Puiseux ring are like polynomials
except that the exponents can be negative or rational rather than just
non-negative integers.
é    )Úannotations©ÚQQ)ÚPolyRingÚPolyElement)ÚAdd)ÚMul)ÚgcdÚlcm)ÚTYPE_CHECKING)ÚAnyÚUnpack)ÚExpr)ÚDomain)ÚIterableÚIteratorc                ó8   • [        X5      nU4UR                  -   $ )a;  Construct a Puiseux ring.

This function constructs a Puiseux ring with the given symbols and domain.

>>> from sympy.polys.domains import QQ
>>> from sympy.polys.puiseux import puiseux_ring
>>> R, x, y = puiseux_ring('x y', QQ)
>>> R
PuiseuxRing((x, y), QQ)
>>> p = 5*x**QQ(1,2) + 7/y
>>> p
7*y**(-1) + 5*x**(1/2)
)ÚPuiseuxRingÚgens)ÚsymbolsÚdomainÚrings      ÚP/home/mande/repo/quber/.venv/lib/python3.13/site-packages/sympy/polys/puiseux.pyÚpuiseux_ringr   '   s   € ô  �wÓ'€DØˆ7�T—Y‘YÑÐó    c                  ó|   • \ rS rSrSrSS jrSS jrSS jrSS jrSS jr	SS jr
SS	 jrSS
 jrSS jrSS jrSrg)r   é;   aT  Ring of Puiseux polynomials.

A Puiseux polynomial is a truncated Puiseux series. The exponents of the
monomials can be negative or rational numbers. This ring is used by the
ring_series module:

>>> from sympy.polys.domains import QQ
>>> from sympy.polys.puiseux import puiseux_ring
>>> from sympy.polys.ring_series import rs_exp, rs_nth_root
>>> ring, x, y = puiseux_ring('x y', QQ)
>>> f = x**2 + y**3
>>> f
y**3 + x**2
>>> f.diff(x)
2*x
>>> rs_exp(x, x, 5)
1 + x + 1/2*x**2 + 1/6*x**3 + 1/24*x**4

Importantly the Puiseux ring can represent truncated series with negative
and fractional exponents:

>>> f = 1/x + 1/y**2
>>> f
x**(-1) + y**(-2)
>>> f.diff(x)
-1*x**(-2)

>>> rs_nth_root(8*x + x**2 + x**3, 3, x, 5)
2*x**(1/3) + 1/12*x**(4/3) + 23/288*x**(7/3) + -139/20736*x**(10/3)

See Also
========

sympy.polys.ring_series.rs_series
PuiseuxPoly
c                óÐ  • [        X5      nUR                  nUR                  nX0l        X l        UR                  U l        [        UR                   Vs/ s H  oPR                  U5      PM     sn5      U l        X@l        U R                  UR                  5      U l        U R                  UR                  5      U l	        UR                  U l
        UR                  U l        g s  snf ©N)r   r   ÚngensÚ	poly_ringr   Útupler   Ú	from_polyÚzeroÚoneÚ
zero_monomÚmonomial_mul)Úselfr   r   r!   r    Úgs         r   Ú__init__ÚPuiseuxRing.__init__`   s«   € ä˜WÓ-ˆ	à×!Ñ!ˆØ—‘ˆà"ŒØŒà ×(Ñ(ˆŒÜ°i·n²nÓE²n°Ÿ>™>¨!Ö,±nÑEÓFˆŒ	ØŒ
à—N‘N 9§>¡>Ó2ˆŒ	Ø—>‘> )§-¡-Ó0ˆŒà#×.Ñ.ˆŒØ%×2Ñ2ˆÕùò Fs   ÁC#c                ó<   • SU R                    SU R                   S3$ )NzPuiseuxRing(z, Ú))r   r   ©r(   s    r   Ú__repr__ÚPuiseuxRing.__repr__t   s   € Ø˜dŸl™l˜^¨2¨d¯k©k¨]¸!Ð<Ð<r   c                óª   • [        U[        5      (       d  [        $ U R                  UR                  :H  =(       a    U R                  UR                  :H  $ r   )Ú
isinstancer   ÚNotImplementedr   r   ©r(   Úothers     r   Ú__eq__ÚPuiseuxRing.__eq__w   s:   € Ü˜%¤×-Ñ-Ü!Ð!Ø�|‰|˜uŸ}™}Ñ,×L°·±ÀÇÁÑ1LÐLr   c                ó   • [        X5      $ )a
  Create a Puiseux polynomial from a polynomial.

>>> from sympy.polys.domains import QQ
>>> from sympy.polys.rings import ring
>>> from sympy.polys.puiseux import puiseux_ring
>>> R1, x1 = ring('x', QQ)
>>> R2, x2 = puiseux_ring('x', QQ)
>>> R2.from_poly(x1**2)
x**2
)ÚPuiseuxPoly)r(   Úpolys     r   r#   ÚPuiseuxRing.from_poly|   s   € ô ˜4Ó&Ð&r   c                ó,   • [         R                  X5      $ )zâCreate a Puiseux polynomial from a dictionary of terms.

>>> from sympy.polys.domains import QQ
>>> from sympy.polys.puiseux import puiseux_ring
>>> R, x = puiseux_ring('x', QQ)
>>> R.from_dict({(QQ(1,2),): QQ(3)})
3*x**(1/2)
)r9   Ú	from_dict)r(   Útermss     r   r=   ÚPuiseuxRing.from_dict‰   s   € ô ×$Ñ$ UÓ1Ð1r   c                óB   • U R                  U R                  U5      5      $ )z»Create a Puiseux polynomial from an integer.

>>> from sympy.polys.domains import QQ
>>> from sympy.polys.puiseux import puiseux_ring
>>> R, x = puiseux_ring('x', QQ)
>>> R.from_int(3)
3
)r#   r!   ©r(   Úns     r   Úfrom_intÚPuiseuxRing.from_int”   s   € ð �~‰~˜dŸn™n¨QÓ/Ó0Ð0r   c                ó8   • U R                   R                  U5      $ )zËCreate a new element of the domain.

>>> from sympy.polys.domains import QQ
>>> from sympy.polys.puiseux import puiseux_ring
>>> R, x = puiseux_ring('x', QQ)
>>> R.domain_new(3)
3
>>> QQ.of_type(_)
True
)r!   Ú
domain_new©r(   Úargs     r   rF   ÚPuiseuxRing.domain_newŸ   s   € ð �~‰~×(Ñ(¨Ó-Ð-r   c                óV   • U R                  U R                  R                  U5      5      $ )zíCreate a new element from a ground element.

>>> from sympy.polys.domains import QQ
>>> from sympy.polys.puiseux import puiseux_ring, PuiseuxPoly
>>> R, x = puiseux_ring('x', QQ)
>>> R.ground_new(3)
3
>>> isinstance(_, PuiseuxPoly)
True
)r#   r!   Ú
ground_newrG   s     r   rK   ÚPuiseuxRing.ground_new¬   s"   € ð �~‰~˜dŸn™n×7Ñ7¸Ó<Ó=Ð=r   c                óŽ   • [        U[        5      (       a  U R                  U5      $ U R                  U R	                  U5      5      $ )zÌCoerce an element into the ring.

>>> from sympy.polys.domains import QQ
>>> from sympy.polys.puiseux import puiseux_ring
>>> R, x = puiseux_ring('x', QQ)
>>> R(3)
3
>>> R({(QQ(1,2),): QQ(3)})
3*x**(1/2)
)r2   Údictr=   r#   r!   rG   s     r   Ú__call__ÚPuiseuxRing.__call__¹   s8   € ô �cœ4× Ñ Ø—>‘> #Ó&Ð&à—>‘> $§.¡.°Ó"5Ó6Ð6r   c                ó8   • U R                   R                  U5      $ )zÂReturn the index of a generator.

>>> from sympy.polys.domains import QQ
>>> from sympy.polys.puiseux import puiseux_ring
>>> R, x, y = puiseux_ring('x y', QQ)
>>> R.index(x)
0
>>> R.index(y)
1
)r   Úindex)r(   Úxs     r   rR   ÚPuiseuxRing.indexÉ   s   € ð �y‰y�‰˜qÓ!Ð!r   )	r   r   r'   r    r%   r!   r   r$   r&   N)r   ústr | list[Expr]r   r   ©ÚreturnÚstr©r5   r   rW   Úbool)r:   r   rW   r9   )r>   údict[tuple[int, ...], Any]rW   r9   ©rB   ÚintrW   r9   )rH   r   rW   r   )rH   r   rW   r9   )rS   r9   rW   r]   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r*   r/   r6   r#   r=   rC   rF   rK   rO   rR   Ú__static_attributes__© r   r   r   r   ;   s;   † ñ#ôH3ô(=ôMô
'ô	2ô	1ô.ô>ô7÷ "r   r   c           
     ó´   • U R                   nUR                  nUR                  U R                  5        VVs0 s H  u  pEU" XA5      U_M     snn5      $ s  snnf r   )r   Úmonomial_divr=   r>   )r:   Úmonomr   ÚdivÚmÚcs         r   Ú_div_poly_monomrk   ×   óH   € Ø�9‰9€DØ
×
Ñ
€CØ�>‰>¸¿
¹
¼ÔEº±°™3˜q›=¨!Ò+¹ÒEÓFÐFùÓEó   ·A
c           
     ó´   • U R                   nUR                  nUR                  U R                  5        VVs0 s H  u  pEU" XA5      U_M     snn5      $ s  snnf r   )r   r'   r=   r>   )r:   rg   r   Úmulri   rj   s         r   Ú_mul_poly_monomrp   Ý   rl   rm   c                ó8   • [        S [        X5       5       5      $ )Nc              3  ó.   #   • U  H  u  pX-
  v •  M     g 7fr   rd   ©Ú.0ÚmiÚdis      r   Ú	<genexpr>Ú_div_monom.<locals>.<genexpr>ä   s   é € Ð7¢™V˜R�–¢ùó   ‚©r"   Úzip)rg   rh   s     r   Ú
_div_monomr|   ã   s   € ÜÑ7¤s¨5¤Ó7Ó7Ð7r   c                  ó¬  • \ rS rSr% SrS\S'   S\S'   S\S'   S\S	'   S8S
 jr\          S9S j5       r\          S9S j5       r	S:S jr
\        S;S j5       r\        S<S j5       r\        S=S j5       rS>S jrS?S jrS@S jrSAS jrSBS jrS@S jrSCS jr\SDS j5       rSES jr\      SFS j5       rSGS jrSHS jr    SIS jrSJS jrSJS jrSKS  jrSKS! jrSKS" jr SKS# jr!SKS$ jr"SKS% jr#SKS& jr$SKS' jr%SKS( jr&SLS) jr'SMS* jr(SLS+ jr)SMS, jr*SMS- jr+SLS. jr,SMS/ jr-SMS0 jr.SNS1 jr/SNS2 jr0SOS3 jr1SJS4 jr2SPS5 jr3S6r4g7)Qr9   éç   aÖ  Puiseux polynomial. Represents a truncated Puiseux series.

See the :class:`PuiseuxRing` class for more information.

>>> from sympy import QQ
>>> from sympy.polys.puiseux import puiseux_ring
>>> R, x, y = puiseux_ring('x, y', QQ)
>>> p = 5*x**2 + 7*y**3
>>> p
7*y**3 + 5*x**2

The internal representation of a Puiseux polynomial wraps a normal
polynomial. To support negative powers the polynomial is considered to be
divided by a monomial.

>>> p2 = 1/x + 1/y**2
>>> p2.monom # x*y**2
(1, 2)
>>> p2.poly
x + y**2
>>> (y**2 + x) / (x*y**2) == p2
True

To support fractional powers the polynomial is considered to be a function
of ``x**(1/nx), y**(1/ny), ...``. The representation keeps track of a
monomial and a list of exponent denominators so that the polynomial can be
used to represent both negative and fractional powers.

>>> p3 = x**QQ(1,2) + y**QQ(2,3)
>>> p3.ns
(2, 3)
>>> p3.poly
x + y**2

See Also
========

sympy.polys.puiseux.PuiseuxRing
sympy.polys.rings.PolyElement
r   r   r   r:   útuple[int, ...] | Nonerg   Únsc                ó(   • U R                  X!S S 5      $ r   )Ú_new)Úclsr:   r   s      r   Ú__new__ÚPuiseuxPoly.__new__  s   € Ø�x‰x˜ D¨$Ó/Ð/r   c                óP   • U R                  X#U5      u  p#nU R                  XX45      $ r   )Ú
_normalizeÚ_new_raw)rƒ   r   r:   rg   r€   s        r   r‚   ÚPuiseuxPoly._new  s)   € ð Ÿ.™.¨°bÓ9‰ˆ�RØ�|‰|˜D¨Ó2Ð2r   c                ó`   • [         R                  U 5      nXl        X%l        X5l        XEl        U$ r   )Úobjectr„   r   r:   rg   r€   )rƒ   r   r:   rg   r€   Úobjs         r   rˆ   ÚPuiseuxPoly._new_raw$  s+   € ô �n‰n˜SÓ!ˆØŒØŒØŒ	ØŒØˆ
r   c                óT  • [        U[        5      (       aY  U R                  UR                  :H  =(       a9    U R                  UR                  :H  =(       a    U R                  UR                  :H  $ U R                  c(  U R                  c  U R                  R                  U5      $ [        $ r   )r2   r9   r:   rg   r€   r6   r3   r4   s     r   r6   ÚPuiseuxPoly.__eq__3  s}   € Ü�eœ[×)Ñ)à—	‘	˜UŸZ™ZÑ'÷ (Ø—J‘J %§+¡+Ñ-÷(à—G‘G˜uŸx™xÑ'ðð
 �Z‰ZÑ D§G¡G¡OØ—9‘9×#Ñ# EÓ*Ð*ä!Ð!r   c                óP  • Uc  Uc  US S 4$ Ub~  UR                  5        Vs/ s H  n[        US5      PM     nn[        S [        XR5       5       5      (       a  [	        X5      nS nO&[        U5      (       a  [	        X5      n[        X%5      nUGb  UR                  5       u  nu  nUR                  5       nUb  UOS/[        U5      -  n	/ n
/ n/ n[        XcX‰5       Hb  u  pÞnnUS:X  a  [        UU5      nO[        XÞU5      nU
R                  UU-  5        UR                  UU-  5        UR                  UU-  5        Md     [        S U 5       5      (       a  UR                  U5      nUnUb  [        U5      n[        S U
 5       5      (       a  S nO[        U
5      nXU4$ s  snf )Nr   c              3  ó.   #   • U  H  u  pX:¬  v •  M     g 7fr   rd   )rt   rv   ru   s      r   rw   Ú)PuiseuxPoly._normalize.<locals>.<genexpr>K  s   é € Ð;Ò*:¡ �2–8Ò*:ùry   c              3  ó*   #   • U  H	  oS :„  v •  M     g7f©é   Nrd   )rt   Úinfls     r   rw   r’   b  s   é € Ð3ª
 ˜!–8ª
ùó   ‚c              3  ó*   #   • U  H	  oS :H  v •  M     g7fr”   rd   ©rt   rB   s     r   rw   r’   j  s   é € Ð*¢6˜a˜–6¢6ùr—   )Útail_degreesÚmaxÚallr{   rk   Úanyr|   ÚdeflateÚdegreesÚlenr
   ÚappendÚinflater"   )rƒ   r:   rg   r€   ÚdÚdegsÚ	factors_dÚpoly_drŸ   Úmonom_dÚns_newÚ	monom_newÚ
inflationsÚfiÚnirv   ru   r)   s                     r   r‡   ÚPuiseuxPoly._normalize?  s�  € ð ‰=˜R™ZØ˜˜tÐ#Ð#àÑØ'+×'8Ñ'8Ô':Ó;Ò': !”C˜˜1–IÑ':ˆDÐ;ÜÑ;¬#¨dÔ*:Ó;×;Ñ;Ü& tÓ3�Ø‘Ü�T—‘Ü& tÓ2�Ü" 5Ó/�àŠ>Ø"&§,¡,£.ÑˆI‘x˜Ø—l‘l“nˆGØ$Ñ0‘e°q°c¼CÀ»LÑ6HˆGØˆFØˆIØˆJÜ"% i°WÖ"F‘�˜˜BØ˜“7Ü˜B ›‘Aä˜B B›�AØ—‘˜b A™gÔ&Ø× Ñ   q¡Ô)Ø×!Ñ! "¨¡'Ö*ñ #Gô Ñ3©
Ó3×3Ñ3ØŸ™¨
Ó3�àˆDàÑ Ü˜iÓ(�äÑ*¡6Ó*×*Ñ*Ø‘ä˜6“]�à˜BˆÐùòK <s   ¡F#c                óâ   • Ub  Ub  [        S [        XU5       5       5      $ Ub  [        S [        X5       5       5      $ Ub  [        S [        X5       5       5      $ [        S U 5       5      $ )Nc              3  óD   #   • U  H  u  pn[        X-
  U5      v •  M     g 7fr   r   ©rt   ru   rv   r¬   s       r   rw   Ú-PuiseuxPoly._monom_fromint.<locals>.<genexpr>y  s    é € ÐRÒ;Q©Z¨R°Rœ˜B™G RŸ˜Ò;Qùs   ‚ c              3  ó@   #   • U  H  u  p[        X-
  5      v •  M     g 7fr   r   rs   s      r   rw   r±   {  s   é € ÐFÒ3E©¨œ˜B™GŸ˜Ò3Eùs   ‚c              3  ó<   #   • U  H  u  p[        X5      v •  M     g 7fr   r   ©rt   ru   r¬   s      r   rw   r±   }  s   é € ÐA².©¨œ˜BŸ˜².ùó   ‚c              3  ó8   #   • U  H  n[        U5      v •  M     g 7fr   r   ©rt   ru   s     r   rw   r±     s   é € Ð0ª% Bœ˜BŸ˜ª%ùs   ‚rz   ©rƒ   rg   Údmonomr€   s       r   Ú_monom_fromintÚPuiseuxPoly._monom_fromintq  sm   € ð Ñ "¡.ÜÑR¼3¸uÈbÔ;QÓRÓRÐRØÑÜÑF´3°uÔ3EÓFÓFÐFØ‰^ÜÑA´#°e´.ÓAÓAÐAäÑ0©%Ó0Ó0Ð0r   c                óâ   • Ub  Ub  [        S [        XU5       5       5      $ Ub  [        S [        X5       5       5      $ Ub  [        S [        X5       5       5      $ [        S U 5       5      $ )Nc              3  ó\   #   • U  H"  u  pn[        X-  R                  U-   5      v •  M$     g 7fr   ©r]   Ú	numeratorr°   s       r   rw   Ú+PuiseuxPoly._monom_toint.<locals>.<genexpr>‰  s-   é € ð Ú@V±*°"¸"”�R‘W×'Ñ'¨"Ñ,×-Ð-Ò@Vùs   ‚*,c              3  óV   #   • U  H  u  p[        UR                  U-   5      v •  M!     g 7fr   r¾   rs   s      r   rw   rÀ   �  s%   é € ÐQÒ>P±F°Bœ˜RŸ\™\¨BÑ.×/Ð/Ò>Pùó   ‚')c              3  óT   #   • U  H  u  p[        X-  R                  5      v •  M      g 7fr   r¾   r´   s      r   rw   rÀ   �  s"   é € ÐOÂ±f°bœ˜b™g×0Ñ0×1Ð1Âùs   ‚&(c              3  óL   #   • U  H  n[        UR                  5      v •  M     g 7fr   r¾   r·   s     r   rw   rÀ   ‘  s   é € Ð;²U¨rœ˜RŸ\™\×*Ð*²Uùs   ‚"$rz   r¸   s       r   Ú_monom_tointÚPuiseuxPoly._monom_toint�  sy   € ð Ñ "¡.Üñ Ü@CÀEÐSUÔ@Vóó ð ð ÑÜÑQ¼cÀ%Ô>PÓQÓQÐQØ‰^ÜÑOÄÀEÄÓOÓOÐOäÑ;±UÓ;Ó;Ð;r   c              #  ó¤   #   • U R                   U R                  p!U R                  R                  5        H  nU R	                  X1U5      v •  M     g7f)zøIterate over the monomials of a Puiseux polynomial.

>>> from sympy import QQ
>>> from sympy.polys.puiseux import puiseux_ring
>>> R, x, y = puiseux_ring('x, y', QQ)
>>> p = 5*x**2 + 7*y**3
>>> list(p.itermonoms())
[(2, 0), (0, 3)]
>>> p[(2, 0)]
5
N)rg   r€   r:   Ú
itermonomsrº   )r(   rg   r€   ri   s       r   rÈ   ÚPuiseuxPoly.itermonoms“  s@   é € ð —J‘J §¡ˆrØ—‘×%Ñ%Ö'ˆAØ×%Ñ% a°Ó3Ô3ò (ùs   ‚AAc                ó4   • [        U R                  5       5      $ )z7Return a list of the monomials of a Puiseux polynomial.)ÚlistrÈ   r.   s    r   ÚmonomsÚPuiseuxPoly.monoms£  s   € ä�D—O‘OÓ%Ó&Ð&r   c                ó"   • U R                  5       $ r   )rÈ   r.   s    r   Ú__iter__ÚPuiseuxPoly.__iter__§  s   € Ø�‰Ó Ð r   c                ól   • U R                  XR                  U R                  5      nU R                  U   $ r   )rÅ   rg   r€   r:   )r(   rg   s     r   Ú__getitem__ÚPuiseuxPoly.__getitem__ª  s+   € Ø×!Ñ! %¯©°T·W±WÓ=ˆØ�y‰y˜ÑÐr   c                ó,   • [        U R                  5      $ r   )r    r:   r.   s    r   Ú__len__ÚPuiseuxPoly.__len__®  s   € Ü�4—9‘9‹~Ðr   c              #  ó®   #   • U R                   U R                  p!U R                  R                  5        H  u  p4U R	                  X1U5      nXT4v •  M     g7f)zíIterate over the terms of a Puiseux polynomial.

>>> from sympy import QQ
>>> from sympy.polys.puiseux import puiseux_ring
>>> R, x, y = puiseux_ring('x, y', QQ)
>>> p = 5*x**2 + 7*y**3
>>> list(p.iterterms())
[((2, 0), 5), ((0, 3), 7)]
N)rg   r€   r:   Ú	itertermsrº   )r(   rg   r€   ri   ÚcoeffÚmqs         r   rØ   ÚPuiseuxPoly.iterterms±  sH   é € ð —J‘J §¡ˆrØŸ	™	×+Ñ+Ö-‰HˆAØ×$Ñ$ Q¨rÓ2ˆBØ�)ŒOò .ùs   ‚AAc                ó4   • [        U R                  5       5      $ )z3Return a list of the terms of a Puiseux polynomial.)rË   rØ   r.   s    r   r>   ÚPuiseuxPoly.termsÀ  ó   € ä�D—N‘NÓ$Ó%Ð%r   c                ó.   • U R                   R                  $ )z7Return True if the Puiseux polynomial is a single term.)r:   Úis_termr.   s    r   rà   ÚPuiseuxPoly.is_termÄ  s   € ð �y‰y× Ñ Ð r   c                ó4   • [        U R                  5       5      $ )z;Return a dictionary representation of a Puiseux polynomial.)rN   rØ   r.   s    r   Úto_dictÚPuiseuxPoly.to_dictÉ  rÞ   r   c           	     ó–  • S/UR                   -  nS/UR                   -  nU H]  n[        X55       VVs/ s H  u  pg[        XgR                  5      PM     nnn[        XT5       VVs/ s H  u  pv[	        Xv5      PM     nnnM_     [        U5      (       d  SnO[        S [        XC5       5       5      n[        S U 5       5      (       a  Sn	O[        U5      n	UR                  5        VV
s0 s H  u  pzU R                  XxU	5      U
_M     nnn
UR                  R                  U5      nU R                  X,X‰5      $ s  snnf s  snnf s  sn
nf )a  Create a Puiseux polynomial from a dictionary of terms.

>>> from sympy import QQ
>>> from sympy.polys.puiseux import puiseux_ring, PuiseuxPoly
>>> R, x = puiseux_ring('x', QQ)
>>> PuiseuxPoly.from_dict({(QQ(1,2),): QQ(3)}, R)
3*x**(1/2)
>>> R.from_dict({(QQ(1,2),): QQ(3)})
3*x**(1/2)
r•   r   Nc              3  óV   #   • U  H  u  p[        X-  R                  5      * v •  M!     g 7fr   r¾   ©rt   ri   rB   s      r   rw   Ú(PuiseuxPoly.from_dict.<locals>.<genexpr>ä  s"   é € ÐKºl±d°aœ3 ¡×0Ñ0Ó1Õ1ºlùrÂ   c              3  ó*   #   • U  H	  oS :H  v •  M     g7fr”   rd   r™   s     r   rw   rè   æ  s   é € Ð"šr˜!�AŽvšrùr—   )r    r{   r   ÚdenominatorÚminr�   r"   rœ   ÚitemsrÅ   r!   r=   r‚   )rƒ   r>   r   r€   ÚmonÚmorB   ri   rg   Úns_finalrÙ   Úterms_pr:   s                r   r=   ÚPuiseuxPoly.from_dictÍ  s  € ð ˆS�4—:‘:ÑˆØˆc�D—J‘JÑˆÛˆBÜ47¸´KÔ@²K©D¨A”#�aŸ™Ö'±KˆBÑ@Ü),¨R¬Ô6ª¡ ”3�q–9©ˆCÑ6‰Cñ ô �3�x‰xØ‰EäÑK¼cÀ#¼lÓKÓKˆEäÑ"™rÓ"×"Ñ"Ø‰Hä˜R“yˆHàOTÏ{É{Ì}Ô]Ê}Á8À1�3×#Ñ# A¨hÓ7¸Ò>É}ˆÑ]à�~‰~×'Ñ'¨Ó0ˆà�x‰x˜ EÓ4Ð4ùó# AùÛ6ùó ^s   ´!D9Á&D?Ã*Ec                ó@  • U R                   nUR                  nUR                  n/ nU R                  5        H]  u  pVUR	                  U5      n/ n[        U5       H  u  pšUR                  X9   U
-  5        M     UR                  [        U/UQ76 5        M_     [        U6 $ )a  Convert a Puiseux polynomial to :class:`~sympy.core.expr.Expr`.

>>> from sympy import QQ, Expr
>>> from sympy.polys.puiseux import puiseux_ring
>>> R, x = puiseux_ring('x', QQ)
>>> p = 5*x**2 + 7*x**3
>>> p.as_expr()
7*x**3 + 5*x**2
>>> isinstance(_, Expr)
True
)	r   r   r   rØ   Úto_sympyÚ	enumerater¡   r	   r   )r(   r   Údomr   r>   rg   rÙ   Ú
coeff_exprÚmonoms_exprÚiri   s              r   Úas_exprÚPuiseuxPoly.as_exprñ  s‘   € ð �y‰yˆØ�k‰kˆØ—,‘,ˆØˆØ ŸN™NÖ,‰LˆEØŸ™ eÓ,ˆJØˆKÜ! %Ö(‘�Ø×"Ñ" 7¡:°¡?Ö3ñ )à�L‰Lœ˜ZÐ6¨+Ò6Ö7ñ -ô �Eˆ{Ðr   c                ó.  ^	• SS jm	U R                   nUR                  nUR                   Vs/ s H  n[        U5      PM     nn/ n[	        U R                  5       5       Hž  u  pgSR                  U	4S j[        XF5       5       5      nXrR                  :X  a-  U(       a  UR                  U5        MR  UR                  S5        Me  U(       d  UR                  [        U5      5        Mˆ  UR                  U SU 35        M      SR                  U5      $ s  snf )Nc                óZ   • US:X  a  U $ US:¼  a  [        U5      U:X  a  U  SU 3$ U  SU S3$ )Nr•   r   z**z**(r-   )r]   )ÚbaseÚexps     r   Úformat_powerÚ*PuiseuxPoly.__repr__.<locals>.format_power  sC   € Ø�a‹xØ�Ø˜“œc #›h¨#›oØ˜˜r # Ð'Ð'à˜˜s 3 % qÐ)Ð)r   Ú*c              3  óJ   >#   • U  H  u  pU(       d  M  T" X5      v •  M     g 7fr   rd   )rt   ÚsÚerÿ   s      €r   rw   Ú'PuiseuxPoly.__repr__.<locals>.<genexpr>  s#   øé € Ð VÒ@P¹¸ÔTUÓ!3¡¨a×!3Ð!3Ò@Pùs   ƒ#”#Ú1z + )rý   rX   rþ   r]   rW   rX   )
r   r   r   rX   Úsortedr>   Újoinr{   r%   r¡   )
r(   r   rõ   r  ÚsymsÚ	terms_strrg   rÙ   Ú	monom_strrÿ   s
            @r   r/   ÚPuiseuxPoly.__repr__	  sÚ   ø€ ô	*ð �y‰yˆØ�k‰kˆà $§¢Ó-¢˜1”�A–¡ˆÐ-Øˆ	Ü" 4§:¡:£<Ö0‰LˆEØŸ™Ô VÄÀDÔ@PÓ VÓVˆIØŸ™ÓÞØ×$Ñ$ YÖ/à×$Ñ$ SÖ)ÞØ× Ñ ¤ U£Ö,à× Ñ  E 7¨!¨I¨;Ð!7Ö8ñ 1ð �z‰z˜)Ó$Ð$ùò .s   ­Dc                ó(  • U R                   U R                  U R                  pCnUR                   UR                  UR                  pvnX6:X  a	  XG:X  a  X%X44$ XG:X  a  UnGO.Ub¿  Ub¼  [        S [	        XG5       5       5      n[	        X„5       V	V
s/ s H	  u  pšXš-  PM     nn	n
[	        X‡5       V	Vs/ s H	  u  pœXœ-  PM     nn	nUR                  U5      nUR                  U5      nUb  [        S [	        X;5       5       5      nUb  [        S [	        Xm5       5       5      nOlUb2  UnUR                  U5      nUb  [        S [	        X85       5       5      nO7Ub2  UnUR                  U5      nUb  [        S [	        Xh5       5       5      nO eX6:X  a  UnOpUbI  UbF  [        S [	        X65       5       5      n[        U[        Xã5      5      n[        U[        Xæ5      5      nO$Ub  Un[        X&5      nOUb  Un[        XS5      nO eX%Xè4$ s  sn
n	f s  snn	f )z7Bring two Puiseux polynomials to a common monom and ns.c              3  ó<   #   • U  H  u  p[        X5      v •  M     g 7fr   )r   )rt   Ún1Ún2s      r   rw   Ú%PuiseuxPoly._unify.<locals>.<genexpr>5  s   é € Ð?²¡v r”s˜2—{�{²ùrµ   c              3  ó.   #   • U  H  u  pX-  v •  M     g 7fr   rd   ©rt   ri   Úfs      r   rw   r  ;  ó   é € ÐA²©¨˜qžu²ùry   c              3  ó.   #   • U  H  u  pX-  v •  M     g 7fr   rd   r  s      r   rw   r  =  r  ry   c              3  ó.   #   • U  H  u  pX-  v •  M     g 7fr   rd   rç   s      r   rw   r  B  r  ry   c              3  ó.   #   • U  H  u  pX-  v •  M     g 7fr   rd   rç   s      r   rw   r  G  r  ry   c              3  ó<   #   • U  H  u  p[        X5      v •  M     g 7fr   )r›   )rt   Úm1Úm2s      r   rw   r  N  s   é € ÐHÒ4G©&¨"œ#˜bŸ+˜+Ò4Gùrµ   )r:   rg   r€   r"   r{   r¢   rp   r|   )r(   r5   Úpoly1Úmonom1Úns1Úpoly2Úmonom2Úns2r€   rB   r  Úf1r  Úf2rg   s                  r   Ú_unifyÚPuiseuxPoly._unify&  sò  € ð "ŸY™Y¨¯
©
°D·G±G�sˆØ"ŸZ™Z¨¯©°e·h±h�sˆàÓ £
Ø Ð,Ð,à‹:ØŠBØ‰_ ¡ÜÑ?´°S´Ó?Ó?ˆBÜ'*¨2¤|Ô4¢|™e˜a�!”'¡|ˆBÑ4Ü'*¨2¤|Ô4¢|™e˜a�!”'¡|ˆBÑ4Ø—M‘M "Ó%ˆEØ—M‘M "Ó%ˆEØÑ!ÜÑA´°V´ÓAÓA�ØÑ!ÜÑA´°V´ÓAÓA�øØ‰_ØˆBØ—M‘M "Ó%ˆEØÑ!ÜÑA´°V´ÓAÓA�øØ‰_ØˆBØ—M‘M "Ó%ˆEØÑ!ÜÑA´°V´ÓAÓA�øà�5àÓØ‰EØÑ FÑ$6ÜÑH´C¸Ô4GÓHÓHˆEÜ# E¬:°eÓ+DÓEˆEÜ# E¬:°eÓ+DÓE‰EØÑØˆEÜ# EÓ2‰EØÑØˆEÜ# EÓ2‰Eà�5à˜UÐ&Ð&ùóI 5ùÛ4s   ÂHÂ.Hc                ó   • U $ r   rd   r.   s    r   Ú__pos__ÚPuiseuxPoly.__pos__\  s   € Øˆr   c                ó|   • U R                  U R                  U R                  * U R                  U R                  5      $ r   ©rˆ   r   r:   rg   r€   r.   s    r   Ú__neg__ÚPuiseuxPoly.__neg___  s)   € Ø�}‰}˜TŸY™Y¨¯©¨
°D·J±JÀÇÁÓHÐHr   c                ó¤  • [        U[        5      (       a6  U R                  UR                  :w  a  [        S5      eU R	                  U5      $ U R                  R
                  n[        U[        5      (       a.  U R                  UR                  [        U5      [        5      5      $ UR                  U5      (       a  U R                  U5      $ [        $ )Nz3Cannot add Puiseux polynomials from different rings)r2   r9   r   Ú
ValueErrorÚ_addr   r]   Ú_add_groundÚconvert_fromr   Úof_typer3   ©r(   r5   r   s      r   Ú__add__ÚPuiseuxPoly.__add__b  sž   € Ü�eœ[×)Ñ)Ø�y‰y˜EŸJ™JÓ&Ü Ð!VÓWÐWØ—9‘9˜UÓ#Ð#Ø—‘×!Ñ!ˆÜ�eœS×!Ñ!Ø×#Ñ# F×$7Ñ$7¼¸5»	Ä2Ó$FÓGÐGØ�^‰^˜E×"Ñ"Ø×#Ñ# EÓ*Ð*ä!Ð!r   c                ó  • U R                   R                  n[        U[        5      (       a.  U R	                  UR                  [        U5      [        5      5      $ UR                  U5      (       a  U R	                  U5      $ [        $ r   )	r   r   r2   r]   r0  r1  r   r2  r3   r3  s      r   Ú__radd__ÚPuiseuxPoly.__radd__o  óf   € Ø—‘×!Ñ!ˆÜ�eœS×!Ñ!Ø×#Ñ# F×$7Ñ$7¼¸5»	Ä2Ó$FÓGÐGØ�^‰^˜E×"Ñ"Ø×#Ñ# EÓ*Ð*ä!Ð!r   c                ó¤  • [        U[        5      (       a6  U R                  UR                  :w  a  [        S5      eU R	                  U5      $ U R                  R
                  n[        U[        5      (       a.  U R                  UR                  [        U5      [        5      5      $ UR                  U5      (       a  U R                  U5      $ [        $ )Nz8Cannot subtract Puiseux polynomials from different rings)r2   r9   r   r.  Ú_subr   r]   Ú_sub_groundr1  r   r2  r3   r3  s      r   Ú__sub__ÚPuiseuxPoly.__sub__x  ó¤   € Ü�eœ[×)Ñ)Ø�y‰y˜EŸJ™JÓ&Ü ØNóð ð —9‘9˜UÓ#Ð#Ø—‘×!Ñ!ˆÜ�eœS×!Ñ!Ø×#Ñ# F×$7Ñ$7¼¸5»	Ä2Ó$FÓGÐGØ�^‰^˜E×"Ñ"Ø×#Ñ# EÓ*Ð*ä!Ð!r   c                ó  • U R                   R                  n[        U[        5      (       a.  U R	                  UR                  [        U5      [        5      5      $ UR                  U5      (       a  U R	                  U5      $ [        $ r   )	r   r   r2   r]   Ú_rsub_groundr1  r   r2  r3   r3  s      r   Ú__rsub__ÚPuiseuxPoly.__rsub__‡  sf   € Ø—‘×!Ñ!ˆÜ�eœS×!Ñ!Ø×$Ñ$ V×%8Ñ%8¼¸E»ÄBÓ%GÓHÐHØ�^‰^˜E×"Ñ"Ø×$Ñ$ UÓ+Ð+ä!Ð!r   c                ó¤  • [        U[        5      (       a6  U R                  UR                  :w  a  [        S5      eU R	                  U5      $ U R                  R
                  n[        U[        5      (       a.  U R                  UR                  [        U5      [        5      5      $ UR                  U5      (       a  U R                  U5      $ [        $ )Nz8Cannot multiply Puiseux polynomials from different rings)r2   r9   r   r.  Ú_mulr   r]   Ú_mul_groundr1  r   r2  r3   r3  s      r   Ú__mul__ÚPuiseuxPoly.__mul__�  r?  r   c                ó  • U R                   R                  n[        U[        5      (       a.  U R	                  UR                  [        U5      [        5      5      $ UR                  U5      (       a  U R	                  U5      $ [        $ r   )	r   r   r2   r]   rF  r1  r   r2  r3   r3  s      r   Ú__rmul__ÚPuiseuxPoly.__rmul__Ÿ  r9  r   c                óâ   • [        U[        5      (       a)  US:¼  a  U R                  U5      $ U R                  U* 5      $ [        R
                  " U5      (       a  U R                  U5      $ [        $ )Nr   )r2   r]   Ú	_pow_pintÚ	_pow_nintr   r2  Ú_pow_rationalr3   r4   s     r   Ú__pow__ÚPuiseuxPoly.__pow__¨  s\   € Ü�eœS×!Ñ!Ø˜‹zØ—~‘~ eÓ,Ð,à—~‘~ u fÓ-Ð-Ü�ZŠZ˜×ÑØ×%Ñ% eÓ,Ð,ä!Ð!r   c                óÂ  • [        U[        5      (       aD  U R                  UR                  :w  a  [        S5      eU R	                  UR                  5       5      $ U R                  R                  n[        U[        5      (       a/  U R                  UR                  [        SU5      [        5      5      $ UR                  U5      (       a  U R                  U5      $ [        $ )Nz6Cannot divide Puiseux polynomials from different ringsr•   )r2   r9   r   r.  rE  Ú_invr   r]   rF  r1  r   r2  Ú_div_groundr3   r3  s      r   Ú__truediv__ÚPuiseuxPoly.__truediv__³  s¬   € Ü�eœ[×)Ñ)Ø�y‰y˜EŸJ™JÓ&Ü ØLóð ð —9‘9˜UŸZ™Z›\Ó*Ð*Ø—‘×!Ñ!ˆÜ�eœS×!Ñ!Ø×#Ñ# F×$7Ñ$7¼¸1¸e»ÄbÓ$IÓJÐJØ�^‰^˜E×"Ñ"Ø×#Ñ# EÓ*Ð*ä!Ð!r   c                ój  • [        U[        5      (       aP  U R                  5       R                  U R                  R
                  R                  [        U5      [        5      5      $ U R                  R
                  R                  U5      (       a  U R                  5       R                  U5      $ [        $ r   )
r2   r]   rS  rF  r   r   r1  r   r2  r3   r4   s     r   Ú__rtruediv__ÚPuiseuxPoly.__rtruediv__Â  sz   € Ü�eœS×!Ñ!Ø—9‘9“;×*Ñ*¨4¯9©9×+;Ñ+;×+HÑ+HÌÈEËÔTVÓ+WÓXÐXØ�Y‰Y×Ñ×%Ñ% e×,Ñ,Ø—9‘9“;×*Ñ*¨5Ó1Ð1ä!Ð!r   c                óh   • U R                  U5      u  p#pEU R                  U R                  X#-   XE5      $ r   ©r$  r‚   r   ©r(   r5   r  r  rg   r€   s         r   r/  ÚPuiseuxPoly._addÊ  ó.   € Ø"&§+¡+¨eÓ"4Ñˆ�eØ�y‰y˜Ÿ™ E¡M°5Ó=Ð=r   c                óV   • U R                  U R                  R                  U5      5      $ r   )r/  r   rK   ©r(   Úgrounds     r   r0  ÚPuiseuxPoly._add_groundÎ  ó    € Ø�y‰y˜Ÿ™×-Ñ-¨fÓ5Ó6Ð6r   c                óh   • U R                  U5      u  p#pEU R                  U R                  X#-
  XE5      $ r   r[  r\  s         r   r;  ÚPuiseuxPoly._subÑ  r^  r   c                óV   • U R                  U R                  R                  U5      5      $ r   )r;  r   rK   r`  s     r   r<  ÚPuiseuxPoly._sub_groundÕ  rc  r   c                óV   • U R                   R                  U5      R                  U 5      $ r   )r   rK   r;  r`  s     r   rA  ÚPuiseuxPoly._rsub_groundØ  s"   € Ø�y‰y×#Ñ# FÓ+×0Ñ0°Ó6Ð6r   c                ó’   • U R                  U5      u  p#pEUb  [        S U 5       5      nU R                  U R                  X#-  XE5      $ )Nc              3  ó,   #   • U  H
  nS U-  v •  M     g7f)é   Nrd   )rt   r  s     r   rw   Ú#PuiseuxPoly._mul.<locals>.<genexpr>Þ  s   é € Ð/ª A˜!˜až%ªùs   ‚)r$  r"   r‚   r   r\  s         r   rE  ÚPuiseuxPoly._mulÛ  sD   € Ø"&§+¡+¨eÓ"4Ñˆ�eØÑÜÑ/©Ó/Ó/ˆEØ�y‰y˜Ÿ™ E¡M°5Ó=Ð=r   c                ó€   • U R                  U R                  U R                  U-  U R                  U R                  5      $ r   r*  r`  s     r   rF  ÚPuiseuxPoly._mul_groundá  ó,   € Ø�}‰}˜TŸY™Y¨¯	©	°FÑ(:¸D¿J¹JÈÏÉÓPÐPr   c                ó€   • U R                  U R                  U R                  U-  U R                  U R                  5      $ r   r*  r`  s     r   rT  ÚPuiseuxPoly._div_groundä  rq  r   c                óÄ   ^• TS:¼  d   eU R                   nUb  [        U4S jU 5       5      nU R                  U R                  U R                  T-  X R
                  5      $ )Nr   c              3  ó,   >#   • U  H	  oT-  v •  M     g 7fr   rd   rç   s     €r   rw   Ú(PuiseuxPoly._pow_pint.<locals>.<genexpr>ë  s   øé € Ð/ª A˜až%ªùó   ƒ)rg   r"   r‚   r   r:   r€   )r(   rB   rg   s    ` r   rM  ÚPuiseuxPoly._pow_pintç  sP   ø€ Ø�A‹vˆˆvØ—
‘
ˆØÑÜÔ/©Ó/Ó/ˆEØ�y‰y˜Ÿ™ D§I¡I¨q¡L°%¿¹ÓAÐAr   c                ó@   • U R                  5       R                  U5      $ r   )rS  rM  rA   s     r   rN  ÚPuiseuxPoly._pow_nintî  s   € Ø�y‰y‹{×$Ñ$ QÓ'Ð'r   c                óH  ^• U R                   (       d  [        S5      eU R                  5       u  u  p#U R                  R                  nUR                  U5      (       d  [        S5      e[        U4S jU 5       5      nU R                  R                  X$R                  05      $ )Nz0Only monomials can be raised to a rational powerc              3  ó,   >#   • U  H	  oT-  v •  M     g 7fr   rd   rç   s     €r   rw   Ú,PuiseuxPoly._pow_rational.<locals>.<genexpr>ø  s   øé € Ð+¢U ˜!–e¢Uùrw  )	rà   r.  r>   r   r   Úis_oner"   r=   r%   )r(   rB   rg   rÙ   r   s    `   r   rO  ÚPuiseuxPoly._pow_rationalñ  s|   ø€ Ø�|�|ÜÐOÓPÐPØŸ:™:›<Ñ‰ˆ%Ø—‘×!Ñ!ˆØ�}‰}˜U×#Ñ#ÜÐOÓPÐPÜÔ+¡UÓ+Ó+ˆØ�y‰y×"Ñ" E¯:©:Ð#6Ó7Ð7r   c                óX  • U R                   (       d  [        S5      eU R                  5       u  u  pU R                  R                  nUR
                  (       d!  UR                  U5      (       d  [        S5      e[        S U 5       5      nSU-  nU R                  R                  X05      $ )NzOnly terms can be invertedz"Cannot invert non-unit coefficientc              3  ó&   #   • U  H  o* v •  M	     g 7fr   rd   )rt   ri   s     r   rw   Ú#PuiseuxPoly._inv.<locals>.<genexpr>  s   é € Ð(¢%˜Q•b¢%ùs   ‚r•   )	rà   r.  r>   r   r   Úis_Fieldr~  r"   r=   )r(   rg   rÙ   r   s       r   rS  ÚPuiseuxPoly._invû  s…   € Ø�|�|ÜÐ9Ó:Ð:ØŸ:™:›<Ñ‰ˆ%Ø—‘×!Ñ!ˆØ�� v§}¡}°U×';Ñ';ÜÐAÓBÐBÜÑ(¡%Ó(Ó(ˆØ�E‘	ˆØ�y‰y×"Ñ" E >Ó2Ð2r   c                óê   • U R                   nUR                  U5      n0 nU R                  5        H9  u  pVXS   nU(       d  M  [        U5      nXƒ==   S-  ss'   Xg-  U[	        U5      '   M;     U" U5      $ )zòDifferentiate a Puiseux polynomial with respect to a variable.

>>> from sympy import QQ
>>> from sympy.polys.puiseux import puiseux_ring
>>> R, x, y = puiseux_ring('x, y', QQ)
>>> p = 5*x**2 + 7*y**3
>>> p.diff(x)
10*x
>>> p.diff(y)
21*y**2
r•   )r   rR   rØ   rË   r"   )	r(   rS   r   rø   r)   ÚexpvrÙ   rB   r  s	            r   ÚdiffÚPuiseuxPoly.diff  sl   € ð �y‰yˆØ�J‰J�q‹MˆØˆØŸ>™>Ö+‰KˆDØ‘ˆAßˆqÜ˜“J�Ø“˜‘	“Ø#™i�”%˜“(“ñ ,ñ �A‹wˆr   rd   N)r:   r   r   r   rW   r9   )
r   r   r:   r   rg   r   r€   r   rW   r9   rY   )r:   r   rg   r   r€   r   rW   zBtuple[PolyElement, tuple[int, ...] | None, tuple[int, ...] | None])rg   útuple[int, ...]r¹   r   r€   r   rW   útuple[Any, ...])rg   rŠ  r¹   r   r€   r   rW   r‰  )rW   zIterator[tuple[Any, ...]])rW   zlist[tuple[Any, ...]])rW   z%Iterator[tuple[tuple[Any, ...], Any]])rg   r‰  rW   r   )rW   r]   )rW   z!list[tuple[tuple[Any, ...], Any]])rW   rZ   )rW   r[   )r>   zdict[tuple[Any, ...], Any]r   r   rW   r9   )rW   r   rV   )r5   r9   rW   zOtuple[PolyElement, PolyElement, tuple[int, ...] | None, tuple[int, ...] | None])rW   r9   )r5   r   rW   r9   )r5   r9   rW   r9   )ra  r   rW   r9   r\   )rB   r   rW   r9   )rS   r9   rW   r9   )5r^   r_   r`   ra   rb   Ú__annotations__r„   Úclassmethodr‚   rˆ   r6   r‡   rº   rÅ   rÈ   rÌ   rÏ   rÒ   rÕ   rØ   r>   Úpropertyrà   rã   r=   rù   r/   r$  r'  r+  r4  r7  r=  rB  rG  rJ  rP  rU  rX  r/  r0  r;  r<  rA  rE  rF  rT  rM  rN  rO  rS  r‡  rc   rd   r   r   r9   r9   ç   sk  ‡ ñ'ðR ÓØ
ÓØ!Ó!ØÓô0ð ð3àð3ð ð3ð &ð	3ð
 #ð3ð 
ó3ó ð3ð ðàðð ðð &ð	ð
 #ðð 
óó ðô
"ð ð/àð/ð &ð/ð #ð	/ð
 
Ló/ó ð/ðb ð1àð1ð 'ð1ð #ð	1ð
 
ó1ó ð1ð ð<àð<ð 'ð<ð #ð	<ð
 
ó<ó ð<ô"4ô 'ô!ô ôôô&ð ó!ó ð!ô&ð ð!5Ø.ð!5Ø6Að!5à	ó!5ó ð!5ôFô0%ð:4'Ø ð4'ð
ô4'ôlôIô"ô"ô"ô"ô"ô"ô	"ô"ô"ô>ô7ô>ô7ô7ô>ôQôQôBô(ô8ô	3÷r   r9   N)r   rU   r   r   rW   z3tuple[PuiseuxRing, Unpack[tuple[PuiseuxPoly, ...]]])r:   r   rg   úIterable[int]rW   r   )rg   rŽ  rh   rŽ  rW   r‰  )rb   Ú
__future__r   Úsympy.polys.domainsr   Úsympy.polys.ringsr   r   Úsympy.core.addr   Úsympy.core.mulr	   Úsympy.external.gmpyr
   r   Útypingr   r   r   Úsympy.core.exprr   r   Úcollections.abcr   r   r   r   rk   rp   r|   r9   rd   r   r   Ú<module>r˜     s{   ðñõ& #å "ß 3Ý Ý ß (õ !ö ß"Ý$Ý*ß2ðØðØ'-ðà8ô÷(Y"ñ Y"ôxGôGô8÷tò tr   