+
    ‹°³j–g  ã                  ó  € R t ^ RIHt ^ RIHt ^ RIHtHt ^ RIH	t	 ^ RI
Ht ^ RIHtHt ^ RIHt ]'       d   ^ RIHtHt ^ R	IHt ^ R
IHt ^ RIHtHt R R lt ! R R4      tR R ltR R ltR R lt ! R R4      tR# )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               ó$   € V ^8„  d   QhRRRRRR/# )é   Úsymbolsústr | list[Expr]Údomainr   Úreturnz3tuple[PuiseuxRing, Unpack[tuple[PuiseuxPoly, ...]]]© )Úformats   "ÚT/home/luca/screen-checking/.venv/lib/python3.14/site-packages/sympy/polys/puiseux.pyÚ__annotate__r   '   s$   € ÷ ñ ØðØ'-ðà8ñó    c                ó@   € \        W4      pV3VP                  ,           # )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)r   r   Úrings   && r   Úpuiseux_ringr!   '   s   € ô  �wÓ'€DØˆ7�T—Y‘YÕÐr   c                  ó’   € ] tR t^;tRtR R ltR R ltR R ltR R	 ltR
 R lt	R R lt
R R ltR R ltR R ltR R ltRtR# )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               ó    € V ^8„  d   QhRRRR/# )r   r   r   r   r   r   )r   s   "r   r   ÚPuiseuxRing.__annotate__`   s   € ÷ 3ñ 3Ð 0ð 3¸&ñ 3r   c                	óÐ  € \        W4      pVP                  pVP                  pW0n        W n        VP                  V n        \        VP                   Uu. uF  qPP                  V4      NK  	  up4      V n        W@n        V P                  VP                  4      V n        V P                  VP                  4      V n	        VP                  V n
        VP                  V n        R # u upi ©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               ó   € V ^8„  d   QhRR/# ©r   r   Ústrr   )r   s   "r   r   r$   t   s   € ÷ =ñ =˜#ñ =r   c                	ó<   € R V P                    RV P                   R2# )zPuiseuxRing(z, Ú))r   r   ©r/   s   &r   Ú__repr__ÚPuiseuxRing.__repr__t   s   € Ø˜dŸl™l˜^¨2¨d¯k©k¨]¸!Ð<Ð<r   c               ó    € V ^8„  d   QhRRRR/# ©r   Úotherr   r   Úboolr   )r   s   "r   r   r$   w   s   € ÷ Mñ M˜Cð M Dñ Mr   c                	ó®   € \        V\        4      '       g   \        # V P                  VP                  8H  ;'       d    V P                  VP                  8H  # r&   )Ú
isinstancer   ÚNotImplementedr   r   ©r/   r=   s   &&r   Ú__eq__ÚPuiseuxRing.__eq__w   s=   € Ü˜%¤×-Ò-Ü!Ð!Ø�|‰|˜uŸ}™}Ñ,×LÐL°·±ÀÇÁÑ1LÐLr   c               ó    € V ^8„  d   QhRRRR/# )r   Úpolyr   r   ÚPuiseuxPolyr   )r   s   "r   r   r$   |   s   € ÷ 'ñ '˜kð '¨kñ 'r   c                ó   € \        W4      # )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
)rG   )r/   rF   s   &&r   r*   ÚPuiseuxRing.from_poly|   s   € ô ˜4Ó&Ð&r   c               ó    € V ^8„  d   QhRRRR/# )r   Útermsúdict[tuple[int, ...], Any]r   rG   r   )r   s   "r   r   r$   ‰   s   € ÷ 	2ñ 	2Ð9ð 	2¸kñ 	2r   c                ó,   € \         P                  W4      # )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)
)rG   Ú	from_dict)r/   rK   s   &&r   rN   ÚPuiseuxRing.from_dict‰   s   € ô ×$Ñ$ UÓ1Ð1r   c               ó    € V ^8„  d   QhRRRR/# ©r   ÚnÚintr   rG   r   )r   s   "r   r   r$   ”   s   € ÷ 	1ñ 	1˜#ð 	1 +ñ 	1r   c                óB   € V P                  V P                  V4      4      # )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/   rR   s   &&r   Úfrom_intÚPuiseuxRing.from_int”   s   € ð �~‰~˜dŸn™n¨QÓ/Ó0Ð0r   c               ó    € V ^8„  d   QhRRRR/# )r   Úargr   r   r   )r   s   "r   r   r$   Ÿ   s   € ÷ .ñ .˜cð . cñ .r   c                ó8   € V P                   P                  V4      # )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/   rY   s   &&r   r[   ÚPuiseuxRing.domain_newŸ   s   € ð �~‰~×(Ñ(¨Ó-Ð-r   c               ó    € V ^8„  d   QhRRRR/# ©r   rY   r   r   rG   r   )r   s   "r   r   r$   ¬   s   € ÷ >ñ >˜cð > kñ >r   c                óV   € V P                  V P                  P                  V4      4      # )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_newr\   s   &&r   ra   ÚPuiseuxRing.ground_new¬   s"   € ð �~‰~˜dŸn™n×7Ñ7¸Ó<Ó=Ð=r   c               ó    € V ^8„  d   QhRRRR/# r_   r   )r   s   "r   r   r$   ¹   s   € ÷ 7ñ 7˜Cð 7 Kñ 7r   c                ó�   € \        V\        4      '       d   V P                  V4      # V P                  V P	                  V4      4      # )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)
)r@   ÚdictrN   r*   r(   r\   s   &&r   Ú__call__ÚPuiseuxRing.__call__¹   s8   € ô �cœ4× Ò Ø—>‘> #Ó&Ð&à—>‘> $§.¡.°Ó"5Ó6Ð6r   c               ó    € V ^8„  d   QhRRRR/# )r   ÚxrG   r   rS   r   )r   s   "r   r   r$   É   s   € ÷ "ñ "�{ð " sñ "r   c                ó8   € V P                   P                  V4      # )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/   ri   s   &&r   rk   ÚPuiseuxRing.indexÉ   s   € ð �y‰y�‰˜qÓ!Ð!r   )	r   r   r.   r'   r,   r(   r   r+   r-   N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r1   r9   rC   r*   rN   rV   r[   ra   rf   rk   Ú__static_attributes__r   r   r   r   r   ;   s@   † ñ#õH3õ(=õMõ
'õ	2õ	1õ.õ>õ7÷ "ñ "r   r   c               ó$   € V ^8„  d   QhRRRRRR/# ©r   rF   r   ÚmonomúIterable[int]r   r   )r   s   "r   r   r   ×   ó&   € ÷ Gñ G˜+ð G¨mð GÀñ Gr   c           
     ó²   € V P                   pVP                  pTP                  V P                  4        UUu/ uF  w  rEV! WA4      VbK  	  upp4      # u uppi r&   )r    Úmonomial_divrN   rK   )rF   ru   r    ÚdivÚmÚcs   &&    r   Ú_div_poly_monomr}   ×   óH   € Ø�9‰9€DØ
×
Ñ
€CØ�>‰>¸¿
¹
¼ÔE¹±°™3˜q›=¨!Ò+¹ÒEÓFÐFùÓEó   ·A
c               ó$   € V ^8„  d   QhRRRRRR/# rt   r   )r   s   "r   r   r   Ý   rw   r   c           
     ó²   € V P                   pVP                  pTP                  V P                  4        UUu/ uF  w  rEV! WA4      VbK  	  upp4      # u uppi r&   )r    r.   rN   rK   )rF   ru   r    Úmulr{   r|   s   &&    r   Ú_mul_poly_monomrƒ   Ý   r~   r   c               ó$   € V ^8„  d   QhRRRRRR/# )r   ru   rv   rz   r   útuple[int, ...]r   )r   s   "r   r   r   ã   s!   € ÷ 8ñ 8�mð 8¨-ð 8¸Oñ 8r   c                ó~   € \         ;QJ d    . R  \        W4       4       F  NK  	  5# ! R  \        W4       4       4      # )c              3  ó6   "  € T F  w  rW,
          x € K  	  R # 5ir&   r   ©Ú.0ÚmiÚdis   &  r   Ú	<genexpr>Ú_div_monom.<locals>.<genexpr>ä   s   é € Ð7¡™V˜R�—’£ùó   ‚©r)   Úzip)ru   rz   s   &&r   Ú
_div_monomr‘   ã   s,   € ßŒ5Ñ7¤s¨5¤Ó7�5Ð7ˆ5Ñ7¤s¨5¤Ó7Ó7Ð7r   c                  óš  € ] tR t^çt$ RtR]R&   R]R&   R]R&   R]R&   R	 R
 lt]R R l4       t]R R l4       t	R R lt
]R R l4       t]R R l4       t]R R l4       tR R ltR R ltR R ltR R ltR R  ltR! R" ltR# R$ lt]R% R& l4       tR' R( lt]R) R* l4       tR+ R, ltR- R. ltR/ R0 ltR1 R2 ltR3 R4 ltR5 R6 ltR7 R8 ltR9 R: lt R; R< lt!R= R> lt"R? R@ lt#RA RB lt$RC RD lt%RE RF lt&RG RH lt'RI RJ lt(RK RL lt)RM RN lt*RO RP lt+RQ RR lt,RS RT lt-RU RV lt.RW RX lt/RY RZ lt0R[ R\ lt1R] R^ lt2R_ R` lt3Rat4Rb# )crG   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   rF   útuple[int, ...] | Noneru   Únsc               ó$   € V ^8„  d   QhRRRRRR/# )r   rF   r   r    r   r   rG   r   )r   s   "r   r   ÚPuiseuxPoly.__annotate__  s!   € ÷ 0ñ 0˜;ð 0¨kð 0¸kñ 0r   c                	ó(   € V P                  W!R R 4      # r&   )Ú_new)ÚclsrF   r    s   &&&r   Ú__new__ÚPuiseuxPoly.__new__  s   € Ø�x‰x˜ D¨$Ó/Ð/r   c          
     ó,   € V ^8„  d   QhRRRRRRRRRR	/# ©
r   r    r   rF   r   ru   r“   r”   r   rG   r   )r   s   "r   r   r–     s<   € ÷ 3ñ 3àð3ð ð3ð &ð	3ð
 #ð3ð 
ñ3r   c                	óP   € V P                  W#V4      w  r#pV P                  WW44      # r&   )Ú
_normalizeÚ_new_raw)r™   r    rF   ru   r”   s   &&&&&r   r˜   ÚPuiseuxPoly._new  s)   € ð Ÿ.™.¨°bÓ9‰ˆ�RØ�|‰|˜D¨Ó2Ð2r   c          
     ó,   € V ^8„  d   QhRRRRRRRRRR	/# r�   r   )r   s   "r   r   r–   %  s<   € ÷ ñ àðð ðð &ð	ð
 #ðð 
ñr   c                	ó`   € \         P                  V 4      pWn        W%n        W5n        WEn        V# r&   )Úobjectrš   r    rF   ru   r”   )r™   r    rF   ru   r”   Úobjs   &&&&& r   r    ÚPuiseuxPoly._new_raw$  s+   € ô �n‰n˜SÓ!ˆØŒØŒØŒ	ØŒØˆ
r   c               ó    € V ^8„  d   QhRRRR/# r<   r   )r   s   "r   r   r–   3  s   € ÷ 
"ñ 
"˜Cð 
" Dñ 
"r   c                	ó^  € \        V\        4      '       d\   V P                  VP                  8H  ;'       d;    V P                  VP                  8H  ;'       d    V P                  VP                  8H  # V P                  f*   V P                  f   V P                  P                  V4      # \        # r&   )r@   rG   rF   ru   r”   rC   rA   rB   s   &&r   rC   Ú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               ó(   € V ^8„  d   QhRRRRRRRR/# )r   rF   r   ru   r“   r”   r   zBtuple[PolyElement, tuple[int, ...] | None, tuple[int, ...] | None]r   )r   s   "r   r   r–   @  s3   € ÷ /ñ /àð/ð &ð/ð #ð	/ð
 
Lñ/r   c                	ób  € Vf
   Vf   VR R 3# Ve«   VP                  4        Uu. uF  p\        V^ 4      NK  	  pp\        ;QJ d%    R \        WR4       4       F  '       d   K   RM	  RM! R \        WR4       4       4      '       d   \	        W4      pR pM'\        V4      '       d   \	        W4      p\        W%4      pVEeh   VP                  4       w  pw  pVP                  4       pVe   TM^ .\        V4      ,          p	. p
. p. p\        WcW‰4       Fo  w  rÞppV^ 8X  d   \        VV4      pM\        WÞV4      pV
P                  VV,          4       VP                  VV,          4       VP                  VV,          4       Kq  	  \
        ;QJ d    R V 4       F  '       g   K   RM	  RM! R V 4       4      '       d   VP                  V4      pTpVe   \        V4      p\        ;QJ d    R V
 4       F  '       d   K   RM	  RM! R V
 4       4      '       d   R pM\        V
4      pWV3# u upi )Nc              3  ó.   "  € T F  w  rW8¬  x € K  	  R # 5ir&   r   )r‰   r‹   rŠ   s   &  r   rŒ   Ú)PuiseuxPoly._normalize.<locals>.<genexpr>K  s   é € Ð;Ñ*:¡ �2–8Ó*:ùs   ‚FTc              3  ó*   "  € T F	  q^8„  x € K  	  R# 5i©é   Nr   )r‰   Úinfls   & r   rŒ   r­   b  s   é € Ð3©
 ˜!–8«
ùó   ‚c              3  ó*   "  € T F	  q^8H  x € K  	  R# 5ir¯   r   ©r‰   rR   s   & r   rŒ   r­   j  s   é € Ð*¡6˜a˜–6£6ùr²   )Útail_degreesÚmaxÚallr�   r}   Úanyr‘   ÚdeflateÚdegreesÚlenr	   ÚappendÚinflater)   )r™   rF   ru   r”   ÚdÚdegsÚ	factors_dÚpoly_drº   Úmonom_dÚns_newÚ	monom_newÚ
inflationsÚfiÚnir‹   rŠ   r0   s   &&&&              r   rŸ   ÚPuiseuxPoly._normalize?  sÒ  € ð Š=˜RšZØ˜˜tÐ#Ð#àÒØ'+×'8Ñ'8Ô':Ó;Ñ': !”C˜˜1–IÑ':ˆDÐ;ß‹sÑ;¬#¨dÔ*:Ó;�s�sŠsÑ;¬#¨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÷ ‹sÑ3©
Ó3�s�sŠsÑ3©
Ó3×3Ò3ØŸ™¨
Ó3�àˆDàÒ Ü˜iÓ(�ç‹sÑ*¡6Ó*�s�sŠsÑ*¡6Ó*×*Ò*Ø‘ä˜6“]�à˜BˆÐùòK <s   ¤H,c               ó(   € V ^8„  d   QhRRRRRRRR/# )r   ru   r…   Údmonomr“   r”   r   útuple[Any, ...]r   )r   s   "r   r   r–   r  s2   € ÷ 1ñ 1àð1ð 'ð1ð #ð	1ð
 
ñ1r   c                	óò  € VeE   VeA   \         ;QJ d    . R \        WV4       4       F  NK  	  5# ! R \        WV4       4       4      # Ve?   \         ;QJ d    . R \        W4       4       F  NK  	  5# ! R \        W4       4       4      # Ve?   \         ;QJ d    . R \        W4       4       F  NK  	  5# ! R \        W4       4       4      # \         ;QJ d    . R V 4       F  NK  	  5# ! R V 4       4      # )Nc              3  óL   "  € T F  w  rp\        W,
          V4      x € K  	  R # 5ir&   r   ©r‰   rŠ   r‹   rÇ   s   &   r   rŒ   Ú-PuiseuxPoly._monom_fromint.<locals>.<genexpr>y  s    é € ÐRÑ;Q©Z¨R°Rœ˜B�G RŸ˜Ó;Qùó   ‚"$c              3  óH   "  € T F  w  r\        W,
          4      x € K  	  R # 5ir&   r   rˆ   s   &  r   rŒ   rÏ   {  s   é € ÐFÑ3E©¨œ˜B�GŸ˜Ó3Eùs   ‚ "c              3  ó<   "  € T F  w  r\        W4      x € K  	  R # 5ir&   r   ©r‰   rŠ   rÇ   s   &  r   rŒ   rÏ   }  s   é € ÐA±.©¨œ˜BŸ˜³.ùó   ‚c              3  ó8   "  € T F  p\        V4      x € K  	  R # 5ir&   r   ©r‰   rŠ   s   & r   rŒ   rÏ     s   é € Ð0©% Bœ˜BŸ˜«%ùs   ‚r�   ©r™   ru   rÊ   r”   s   &&&&r   Ú_monom_fromintÚPuiseuxPoly._monom_fromintq  sÁ   € ð Ò "¢.ß”5ÑR¼3¸uÈbÔ;QÓR—5ÐR�5ÑR¼3¸uÈbÔ;QÓRÓRÐRØÒß”5ÑF´3°uÔ3EÓF—5ÐF�5ÑF´3°uÔ3EÓFÓFÐFØŠ^ß”5ÑA´#°e´.ÓA—5ÐA�5ÑA´#°e´.ÓAÓAÐAç”5Ñ0©%Ó0—5Ð0�5Ñ0©%Ó0Ó0Ð0r   c               ó(   € V ^8„  d   QhRRRRRRRR/# )r   ru   rË   rÊ   r“   r”   r   r…   r   )r   s   "r   r   r–   ‚  s2   € ÷ <ñ <àð<ð 'ð<ð #ð	<ð
 
ñ<r   c                	óò  € VeE   VeA   \         ;QJ d    . R \        WV4       4       F  NK  	  5# ! R \        WV4       4       4      # Ve?   \         ;QJ d    . R \        W4       4       F  NK  	  5# ! R \        W4       4       4      # Ve?   \         ;QJ d    . R \        W4       4       F  NK  	  5# ! R \        W4       4       4      # \         ;QJ d    . R V 4       F  NK  	  5# ! R V 4       4      # )Nc              3  ól   "  € T F*  w  rp\        W,          P                  V,           4      x € K,  	  R # 5ir&   ©rS   Ú	numeratorrÎ   s   &   r   rŒ   Ú+PuiseuxPoly._monom_toint.<locals>.<genexpr>‰  s-   é € ð Ù@V±*°"¸"”�R•W×'Ñ'¨"Õ,×-Ð-Ó@Vùs   ‚24c              3  ó^   "  € T F#  w  r\        VP                  V,           4      x € K%  	  R # 5ir&   rÝ   rˆ   s   &  r   rŒ   rß   �  s%   é € ÐQÑ>P±F°Bœ˜RŸ\™\¨BÕ.×/Ð/Ó>Pùó   ‚+-c              3  ó\   "  € T F"  w  r\        W,          P                  4      x € K$  	  R # 5ir&   rÝ   rÓ   s   &  r   rŒ   rß   �  s"   é € ÐOÁ±f°bœ˜b�g×0Ñ0×1Ð1Ãùs   ‚*,c              3  óL   "  € T F  p\        VP                  4      x € K  	  R # 5ir&   rÝ   rÖ   s   & r   rŒ   rß   ‘  s   é € Ð;±U¨rœ˜RŸ\™\×*Ð*³UùrÐ   r�   r×   s   &&&&r   Ú_monom_tointÚPuiseuxPoly._monom_toint�  sÕ   € ð Ò "¢.ß”5ñ Ü@CÀEÐSUÔ@Vó—5ð �5ñ Ü@CÀEÐSUÔ@Vóó ð ð Òß”5ÑQ¼cÀ%Ô>PÓQ—5ÐQ�5ÑQ¼cÀ%Ô>PÓQÓQÐQØŠ^ß”5ÑOÄÀEÄÓO—5ÐO�5ÑOÄÀEÄÓOÓOÐOç”5Ñ;±UÓ;—5Ð;�5Ñ;±UÓ;Ó;Ð;r   c               ó   € V ^8„  d   QhRR/# )r   r   zIterator[tuple[Any, ...]]r   )r   s   "r   r   r–   “  s   € ÷ 4ñ 4Ð5ñ 4r   c              #  ó¦   "  € V P                   V P                  r!V P                  P                  4        F  pV P	                  W1V4      x € K  	  R# 5i)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)ru   r”   rF   Ú
itermonomsrØ   )r/   ru   r”   r{   s   &   r   rè   ÚPuiseuxPoly.itermonoms“  s@   é € ð —J‘J §¡ˆrØ—‘×%Ñ%Ö'ˆAØ×%Ñ% a°Ó3Ô3ó (ùs   ‚AAc               ó   € V ^8„  d   QhRR/# )r   r   zlist[tuple[Any, ...]]r   )r   s   "r   r   r–   £  s   € ÷ 'ñ 'Ð-ñ 'r   c                ó4   € \        V P                  4       4      # )z7Return a list of the monomials of a Puiseux polynomial.)Úlistrè   r8   s   &r   ÚmonomsÚPuiseuxPoly.monoms£  s   € ä�D—O‘OÓ%Ó&Ð&r   c               ó   € V ^8„  d   QhRR/# ©r   r   z%Iterator[tuple[tuple[Any, ...], Any]]r   )r   s   "r   r   r–   §  s   € ÷ !ñ !Ð?ñ !r   c                	ó"   € V P                  4       # r&   )rè   r8   s   &r   Ú__iter__ÚPuiseuxPoly.__iter__§  s   € Ø�‰Ó Ð r   c               ó    € V ^8„  d   QhRRRR/# )r   ru   r…   r   r   r   )r   s   "r   r   r–   ª  s   € ÷  ñ   ð  °Sñ  r   c                	ót   € V P                  WP                  V P                  4      pV P                  V,          # r&   )rä   ru   r”   rF   )r/   ru   s   &&r   Ú__getitem__ÚPuiseuxPoly.__getitem__ª  s+   € Ø×!Ñ! %¯©°T·W±WÓ=ˆØ�y‰y˜ÕÐr   c               ó   € V ^8„  d   QhRR/# )r   r   rS   r   )r   s   "r   r   r–   ®  s   € ÷ ñ ˜ñ r   c                	ó,   € \        V P                  4      # r&   )r»   rF   r8   s   &r   Ú__len__ÚPuiseuxPoly.__len__®  s   € Ü�4—9‘9‹~Ðr   c               ó   € V ^8„  d   QhRR/# rð   r   )r   s   "r   r   r–   ±  s   € ÷ ñ Ð@ñ r   c              #  ó°   "  € V P                   V P                  r!V P                  P                  4        F  w  r4V P	                  W1V4      pWT3x € K  	  R# 5i)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)ru   r”   rF   Ú	itertermsrØ   )r/   ru   r”   r{   ÚcoeffÚmqs   &     r   rþ   ÚPuiseuxPoly.iterterms±  sH   é € ð —J‘J §¡ˆrØŸ	™	×+Ñ+Ö-‰HˆAØ×$Ñ$ Q¨rÓ2ˆBØ�)ŒOó .ùs   ‚AAc               ó   € V ^8„  d   QhRR/# )r   r   z!list[tuple[tuple[Any, ...], Any]]r   )r   s   "r   r   r–   À  s   € ÷ &ñ &Ð8ñ &r   c                ó4   € \        V P                  4       4      # )z3Return a list of the terms of a Puiseux polynomial.)rì   rþ   r8   s   &r   rK   ÚPuiseuxPoly.termsÀ  ó   € ä�D—N‘NÓ$Ó%Ð%r   c               ó   € V ^8„  d   QhRR/# )r   r   r>   r   )r   s   "r   r   r–   Å  s   € ÷ !ñ !˜ñ !r   c                ó.   € V P                   P                  # )z7Return True if the Puiseux polynomial is a single term.)rF   Úis_termr8   s   &r   r  ÚPuiseuxPoly.is_termÄ  s   € ð �y‰y× Ñ Ð r   c               ó   € V ^8„  d   QhRR/# )r   r   rL   r   )r   s   "r   r   r–   É  s   € ÷ &ñ &Ð3ñ &r   c                ó4   € \        V P                  4       4      # )z;Return a dictionary representation of a Puiseux polynomial.)re   rþ   r8   s   &r   Úto_dictÚPuiseuxPoly.to_dictÉ  r  r   c               ó$   € V ^8„  d   QhRRRRRR/# )r   rK   zdict[tuple[Any, ...], Any]r    r   r   rG   r   )r   s   "r   r   r–   Î  s$   € ÷ !5ñ !5Ø.ð!5Ø6Að!5à	ñ!5r   c           	     ó.  € ^.VP                   ,          p^ .VP                   ,          pV F[  p\        W54       UUu. uF  w  rg\        WgP                  4      NK  	  ppp\        WT4       UUu. uF  w  rv\	        Wv4      NK  	  pppK]  	  \        V4      '       g   RpM>\        ;QJ d    . R \        WC4       4       F  NK  	  5M! R \        WC4       4       4      p\        ;QJ d    R V 4       F  '       d   K   RM	  RM! R V 4       4      '       d   Rp	M\        V4      p	VP                  4        UU
u/ uF  w  rzV P                  WxV	4      V
bK  	  ppp
VP                  P                  V4      pV P                  W,W‰4      # u uppi u uppi u up
pi )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)
Nc              3  ó^   "  € T F#  w  r\        W,          P                  4      ) x € K%  	  R # 5ir&   rÝ   ©r‰   r{   rR   s   &  r   rŒ   Ú(PuiseuxPoly.from_dict.<locals>.<genexpr>ä  s"   é € ÐK¹l±d°aœ3 ¥×0Ñ0Ó1Õ1»lùrá   c              3  ó*   "  € T F	  q^8H  x € K  	  R# 5ir¯   r   r´   s   & r   rŒ   r  æ  s   é € Ð"™r˜!�AŽv›rùr²   FT)r'   r�   r
   ÚdenominatorÚminr¸   r)   r·   Úitemsrä   r(   rN   r˜   )r™   rK   r    r”   ÚmonÚmorR   r{   ru   Úns_finalrÿ   Úterms_prF   s   &&&          r   rN   ÚPuiseuxPoly.from_dictÍ  s8  € ð ˆ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ç”EÑK¼cÀ#¼lÓK—E‘EÑK¼cÀ#¼lÓKÓKˆEç‹3Ñ"™rÓ"�3�3Š3Ñ"™rÓ"×"Ò"Ø‰Hä˜R“yˆHàOTÏ{É{Ì}Ô]É}Á8À1�3×#Ñ# A¨hÓ7¸Ò>É}ˆÑ]à�~‰~×'Ñ'¨Ó0ˆà�x‰x˜ EÓ4Ð4ùó# AùÛ6ùó ^s   ¼ FÁ-FÄ7Fc               ó   € V ^8„  d   QhRR/# )r   r   r   r   )r   s   "r   r   r–   ñ  s   € ÷ ñ ˜ñ r   c                óT  € V P                   pVP                  pVP                  p. pV P                  4        Ff  w  rVVP	                  V4      p. p\        V4       F#  w  ršVP                  W9,          V
,          4       K%  	  VP                  \        V.VO5!  4       Kh  	  \        V!  # )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   rK   ru   rÿ   Ú
coeff_exprÚmonoms_exprÚir{   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               ó   € V ^8„  d   QhRR/# r4   r   )r   s   "r   r   r–   	  s   € ÷ %ñ %˜#ñ %r   c                	ó4  a	€ R  R lo	V P                   pVP                  pVP                   Uu. uF  p\        V4      NK  	  pp. p\	        V P                  4       4       F¡  w  rgRP                  V	3R l\        WF4       4       4      pWrP                  8X  d/   V'       d   VP                  V4       KT  VP                  R4       Kg  V'       g   VP                  \        V4      4       K‹  VP                  V RV 24       K£  	  RP                  V4      # u upi )c               ó$   € V ^8„  d   QhRRRRRR/# )r   Úbaser5   ÚexprS   r   r   )r   s   "r   r   Ú*PuiseuxPoly.__repr__.<locals>.__annotate__  s!   € ÷ 	*ñ 	*˜sð 	*¨ð 	*°ñ 	*r   c                ó`   € V^8X  d   V # V^ 8¼  d   \        V4      V8X  d   V  RV 2# V  RV R2# )r°   z**z**(r7   )rS   )r)  r*  s   &&r   Úformat_powerÚ*PuiseuxPoly.__repr__.<locals>.format_power  sC   € Ø�aŒxØ�Ø˜”œc #›h¨#œoØ˜˜r # Ð'Ð'à˜˜s 3 % qÐ)Ð)r   Ú*c              3  óL   <"  € T F  w  rV'       g   K  S! W4      x € K  	  R # 5ir&   r   )r‰   ÚsÚer-  s   &  €r   rŒ   Ú'PuiseuxPoly.__repr__.<locals>.<genexpr>  s#   øé € Ð VÑ@P¹¸ÔTUÔ!3¡¨a×!3Ð!3Ó@Pùs   ƒ$”$Ú1z + )
r    r   r   r5   ÚsortedrK   Újoinr�   r,   r¼   )
r/   r    r   r1  ÚsymsÚ	terms_strru   rÿ   Ú	monom_strr-  s
   &        @r   r9   Ú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               ó    € V ^8„  d   QhRRRR/# )r   r=   rG   r   zOtuple[PolyElement, PolyElement, tuple[int, ...] | None, tuple[int, ...] | None]r   )r   s   "r   r   r–   &  s   € ÷ 4'ñ 4'Ø ð4'ð
ñ4'r   c                óü  € V P                   V P                  V P                  rCpVP                   VP                  VP                  rvpW68X  d   WG8X  d   W%W43# WG8X  d   TpEMíVEe3   VEe.   \        ;QJ d    . R \	        WG4       4       F  NK  	  5M! R \	        WG4       4       4      p\	        W„4       U	U
u. uF  w  ršWš,          NK  	  pp	p
\	        W‡4       U	Uu. uF  w  rœWœ,          NK  	  pp	pVP                  V4      pVP                  V4      pVe?   \        ;QJ d    . R \	        W;4       4       F  NK  	  5M! R \	        W;4       4       4      pVe?   \        ;QJ d    . R \	        Wm4       4       F  NK  	  5M! R \	        Wm4       4       4      pM¶VeW   TpVP                  V4      pVe?   \        ;QJ d    . R \	        W84       4       F  NK  	  5M! R \	        W84       4       4      pM\VeW   TpVP                  V4      pVe?   \        ;QJ d    . R \	        Wh4       4       F  NK  	  5M! R \	        Wh4       4       4      pMQ hW68X  d   TpM—Ven   Vej   \        ;QJ d    . R \	        W64       4       F  NK  	  5M! R \	        W64       4       4      p\        V\        Wã4      4      p\        V\        Wæ4      4      pM&Ve   Tp\        W&4      pMVe   Tp\        WS4      pMQ hW%Wè3# u up
p	i u upp	i )z7Bring two Puiseux polynomials to a common monom and ns.c              3  ó<   "  € T F  w  r\        W4      x € K  	  R # 5ir&   )r
   )r‰   Ún1Ún2s   &  r   rŒ   Ú%PuiseuxPoly._unify.<locals>.<genexpr>5  s   é € Ð?±¡v r”s˜2—{�{³ùrÔ   c              3  ó6   "  € T F  w  rW,          x € K  	  R # 5ir&   r   ©r‰   r{   Úfs   &  r   rŒ   r@  ;  ó   é € ÐA±©¨˜qŸušu³ùrŽ   c              3  ó6   "  € T F  w  rW,          x € K  	  R # 5ir&   r   rB  s   &  r   rŒ   r@  =  rD  rŽ   c              3  ó6   "  € T F  w  rW,          x € K  	  R # 5ir&   r   r  s   &  r   rŒ   r@  B  rD  rŽ   c              3  ó6   "  € T F  w  rW,          x € K  	  R # 5ir&   r   r  s   &  r   rŒ   r@  G  rD  rŽ   c              3  ó<   "  € T F  w  r\        W4      x € K  	  R # 5ir&   )r¶   )r‰   Úm1Úm2s   &  r   rŒ   r@  N  s   é € ÐHÑ4G©&¨"œ#˜bŸ+˜+Ó4GùrÔ   )rF   ru   r”   r)   r�   r½   rƒ   r‘   )r/   r=   Úpoly1Úmonom1Úns1Úpoly2Úmonom2Úns2r”   rR   r>  Úf1r?  Úf2ru   s   &&             r   Ú_unifyÚPuiseuxPoly._unify&  sc  € ð "ŸY™Y¨¯
©
°D·G±G�sˆØ"ŸZ™Z¨¯©°e·h±h�sˆàÔ ¤
Ø Ð,Ð,àŒ:ØŠBØ‹_ £ß”Ñ?´°S´Ó?—‘Ñ?´°S´Ó?Ó?ˆBÜ'*¨2¤|Ô4¡|™e˜a�!—'�'¡|ˆBÑ4Ü'*¨2¤|Ô4¡|™e˜a�!—'�'¡|ˆBÑ4Ø—M‘M "Ó%ˆEØ—M‘M "Ó%ˆEØÒ!ßœÑA´°V´ÓAŸ™ÑA´°V´ÓAÓA�ØÒ!ßœÑA´°V´ÓAŸ™ÑA´°V´ÓAÓA�øØŠ_ØˆBØ—M‘M "Ó%ˆEØÒ!ßœÑA´°V´ÓAŸ™ÑA´°V´ÓAÓA�øØŠ_ØˆBØ—M‘M "Ó%ˆEØÒ!ßœÑA´°V´ÓAŸ™ÑA´°V´ÓAÓA�øà�5àÔØ‰EØÒ FÒ$6ß”EÑH´C¸Ô4GÓH—E‘EÑ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   Â7K2ÃK8c               ó   € V ^8„  d   QhRR/# ©r   r   rG   r   )r   s   "r   r   r–   \  s   € ÷ ñ ˜ñ r   c                	ó   € V # r&   r   r8   s   &r   Ú__pos__ÚPuiseuxPoly.__pos__\  s   € Øˆr   c               ó   € V ^8„  d   QhRR/# rV  r   )r   s   "r   r   r–   _  s   € ÷ Iñ I˜ñ Ir   c                	ó|   € V P                  V P                  V P                  ) V P                  V P                  4      # r&   ©r    r    rF   ru   r”   r8   s   &r   Ú__neg__ÚPuiseuxPoly.__neg___  s)   € Ø�}‰}˜TŸY™Y¨¯©¨
°D·J±JÀÇÁÓHÐHr   c               ó    € V ^8„  d   QhRRRR/# ©r   r=   r   r   rG   r   )r   s   "r   r   r–   b  s   € ÷ "ñ "˜Sð " [ñ "r   c                	ó¬  € \        V\        4      '       d8   V P                  VP                  8w  d   \        R 4      hV P	                  V4      # V P                  P
                  p\        V\        4      '       d/   V P                  VP                  \        V4      \        4      4      # VP                  V4      '       d   V P                  V4      # \        # )z3Cannot add Puiseux polynomials from different rings)r@   rG   r    Ú
ValueErrorÚ_addr   rS   Ú_add_groundÚconvert_fromr   Úof_typerA   ©r/   r=   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               ó    € V ^8„  d   QhRRRR/# r`  r   )r   s   "r   r   r–   o  ó   € ÷ "ñ "˜cð " kñ "r   c                	ó  € V P                   P                  p\        V\        4      '       d/   V P	                  VP                  \        V4      \        4      4      # VP                  V4      '       d   V P	                  V4      # \        # r&   )	r    r   r@   rS   rd  re  r   rf  rA   rg  s   && r   Ú__radd__ÚPuiseuxPoly.__radd__o  óf   € Ø—‘×!Ñ!ˆÜ�eœS×!Ò!Ø×#Ñ# F×$7Ñ$7¼¸5»	Ä2Ó$FÓGÐGØ�^‰^˜E×"Ò"Ø×#Ñ# EÓ*Ð*ä!Ð!r   c               ó    € V ^8„  d   QhRRRR/# r`  r   )r   s   "r   r   r–   x  ó   € ÷ "ñ "˜Sð " [ñ "r   c                	ó¬  € \        V\        4      '       d8   V P                  VP                  8w  d   \        R 4      hV P	                  V4      # V P                  P
                  p\        V\        4      '       d/   V P                  VP                  \        V4      \        4      4      # VP                  V4      '       d   V P                  V4      # \        # )z8Cannot subtract Puiseux polynomials from different rings)r@   rG   r    rb  Ú_subr   rS   Ú_sub_groundre  r   rf  rA   rg  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               ó    € V ^8„  d   QhRRRR/# r`  r   )r   s   "r   r   r–   ‡  rk  r   c                	ó  € V P                   P                  p\        V\        4      '       d/   V P	                  VP                  \        V4      \        4      4      # VP                  V4      '       d   V P	                  V4      # \        # r&   )	r    r   r@   rS   Ú_rsub_groundre  r   rf  rA   rg  s   && r   Ú__rsub__ÚPuiseuxPoly.__rsub__‡  sf   € Ø—‘×!Ñ!ˆÜ�eœS×!Ò!Ø×$Ñ$ V×%8Ñ%8¼¸E»ÄBÓ%GÓHÐHØ�^‰^˜E×"Ò"Ø×$Ñ$ UÓ+Ð+ä!Ð!r   c               ó    € V ^8„  d   QhRRRR/# r`  r   )r   s   "r   r   r–   �  rq  r   c                	ó¬  € \        V\        4      '       d8   V P                  VP                  8w  d   \        R 4      hV P	                  V4      # V P                  P
                  p\        V\        4      '       d/   V P                  VP                  \        V4      \        4      4      # VP                  V4      '       d   V P                  V4      # \        # )z8Cannot multiply Puiseux polynomials from different rings)r@   rG   r    rb  Ú_mulr   rS   Ú_mul_groundre  r   rf  rA   rg  s   && r   Ú__mul__ÚPuiseuxPoly.__mul__�  rw  r   c               ó    € V ^8„  d   QhRRRR/# r`  r   )r   s   "r   r   r–   Ÿ  rk  r   c                	ó  € V P                   P                  p\        V\        4      '       d/   V P	                  VP                  \        V4      \        4      4      # VP                  V4      '       d   V P	                  V4      # \        # r&   )	r    r   r@   rS   r€  re  r   rf  rA   rg  s   && r   Ú__rmul__ÚPuiseuxPoly.__rmul__Ÿ  ro  r   c               ó    € V ^8„  d   QhRRRR/# r`  r   )r   s   "r   r   r–   ¨  s   € ÷ 	"ñ 	"˜Sð 	" [ñ 	"r   c                	óè   € \        V\        4      '       d+   V^ 8¼  d   V P                  V4      # V P                  V) 4      # \        P
                  ! V4      '       d   V P                  V4      # \        # )é    )r@   rS   Ú	_pow_pintÚ	_pow_nintr   rf  Ú_pow_rationalrA   rB   s   &&r   Ú__pow__ÚPuiseuxPoly.__pow__¨  s\   € Ü�eœS×!Ò!Ø˜ŒzØ—~‘~ eÓ,Ð,à—~‘~ u fÓ-Ð-Ü�ZŠZ˜×ÒØ×%Ñ% eÓ,Ð,ä!Ð!r   c               ó    € V ^8„  d   QhRRRR/# r`  r   )r   s   "r   r   r–   ³  s   € ÷ "ñ " ð "¨ñ "r   c                	óÊ  € \        V\        4      '       dF   V P                  VP                  8w  d   \        R 4      hV P	                  VP                  4       4      # V P                  P                  p\        V\        4      '       d0   V P                  VP                  \        ^V4      \        4      4      # VP                  V4      '       d   V P                  V4      # \        # )z6Cannot divide Puiseux polynomials from different rings)r@   rG   r    rb  r  Ú_invr   rS   r€  re  r   rf  Ú_div_groundrA   rg  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               ó    € V ^8„  d   QhRRRR/# r`  r   )r   s   "r   r   r–   Â  s   € ÷ "ñ " #ð "¨+ñ "r   c                	ón  € \        V\        4      '       dQ   V P                  4       P                  V P                  P
                  P                  \        V4      \        4      4      # V P                  P
                  P                  V4      '       d    V P                  4       P                  V4      # \        # r&   )
r@   rS   r‘  r€  r    r   re  r   rf  rA   rB   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               ó    € V ^8„  d   QhRRRR/# ©r   r=   rG   r   r   )r   s   "r   r   r–   Ê  ó   € ÷ >ñ >˜+ð >¨+ñ >r   c                	óp   € V P                  V4      w  r#rEV P                  V P                  W#,           WE4      # r&   ©rS  r˜   r    ©r/   r=   rK  rN  ru   r”   s   &&    r   rc  ÚPuiseuxPoly._addÊ  ó.   € Ø"&§+¡+¨eÓ"4Ñˆ�eØ�y‰y˜Ÿ™ E¥M°5Ó=Ð=r   c               ó    € V ^8„  d   QhRRRR/# ©r   Úgroundr   r   rG   r   )r   s   "r   r   r–   Î  ó   € ÷ 7ñ 7 #ð 7¨+ñ 7r   c                	óV   € V P                  V P                  P                  V4      4      # r&   )rc  r    ra   ©r/   r£  s   &&r   rd  ÚPuiseuxPoly._add_groundÎ  ó    € Ø�y‰y˜Ÿ™×-Ñ-¨fÓ5Ó6Ð6r   c               ó    € V ^8„  d   QhRRRR/# rš  r   )r   s   "r   r   r–   Ñ  r›  r   c                	óp   € V P                  V4      w  r#rEV P                  V P                  W#,
          WE4      # r&   r�  rž  s   &&    r   rs  ÚPuiseuxPoly._subÑ  r   r   c               ó    € V ^8„  d   QhRRRR/# r¢  r   )r   s   "r   r   r–   Õ  r¤  r   c                	óV   € V P                  V P                  P                  V4      4      # r&   )rs  r    ra   r¦  s   &&r   rt  ÚPuiseuxPoly._sub_groundÕ  r¨  r   c               ó    € V ^8„  d   QhRRRR/# r¢  r   )r   s   "r   r   r–   Ø  s   € ÷ 7ñ 7 3ð 7¨;ñ 7r   c                	óV   € V P                   P                  V4      P                  V 4      # r&   )r    ra   rs  r¦  s   &&r   rz  ÚPuiseuxPoly._rsub_groundØ  s"   € Ø�y‰y×#Ñ# FÓ+×0Ñ0°Ó6Ð6r   c               ó    € V ^8„  d   QhRRRR/# rš  r   )r   s   "r   r   r–   Û  s   € ÷ >ñ >˜+ð >¨+ñ >r   c                	óÐ   € V P                  V4      w  r#rEVe-   \        ;QJ d    . R V 4       F  NK  	  5M! R V 4       4      pV P                  V P                  W#,          WE4      # )Nc              3  ó4   "  € T F  p^V,          x € K  	  R# 5i)r   Nr   )r‰   r2  s   & r   rŒ   Ú#PuiseuxPoly._mul.<locals>.<genexpr>Þ  s   é € Ð/© A˜!˜aŸ%š%«ùs   ‚)rS  r)   r˜   r    rž  s   &&    r   r  ÚPuiseuxPoly._mulÛ  sR   € Ø"&§+¡+¨eÓ"4Ñˆ�eØÒß”EÑ/©Ó/—E‘EÑ/©Ó/Ó/ˆEØ�y‰y˜Ÿ™ E¥M°5Ó=Ð=r   c               ó    € V ^8„  d   QhRRRR/# r¢  r   )r   s   "r   r   r–   á  ó   € ÷ Qñ Q #ð Q¨+ñ Qr   c                	óˆ   € V P                  V P                  V P                  V,          V P                  V P                  4      # r&   r\  r¦  s   &&r   r€  ÚPuiseuxPoly._mul_groundá  ó,   € Ø�}‰}˜TŸY™Y¨¯	©	°FÕ(:¸D¿J¹JÈÏÉÓPÐPr   c               ó    € V ^8„  d   QhRRRR/# r¢  r   )r   s   "r   r   r–   ä  r¸  r   c                	óˆ   € V P                  V P                  V P                  V,          V P                  V P                  4      # r&   r\  r¦  s   &&r   r’  ÚPuiseuxPoly._div_groundä  r»  r   c               ó    € V ^8„  d   QhRRRR/# rQ   r   )r   s   "r   r   r–   ç  s   € ÷ Bñ B˜3ð B ;ñ Br   c                	ó
  a€ S^ 8¼  g   Q hV P                   pVe3   \        ;QJ d    . V3R lV 4       F  NK  	  5M! V3R lV 4       4      pV P                  V P                  V P                  S,          W P
                  4      # )r‰  c              3  ó4   <"  € T F  qS,          x € K  	  R # 5ir&   r   r  s   & €r   rŒ   Ú(PuiseuxPoly._pow_pint.<locals>.<genexpr>ë  s   øé € Ð/© A˜aŸ%š%«ùó   ƒ)ru   r)   r˜   r    rF   r”   )r/   rR   ru   s   &f r   rŠ  ÚPuiseuxPoly._pow_pintç  s^   ø€ Ø�AŒvˆˆvØ—
‘
ˆØÒß”EÔ/©Ó/—E‘EÔ/©Ó/Ó/ˆEØ�y‰y˜Ÿ™ D§I¡I¨q¥L°%¿¹ÓAÐAr   c               ó    € V ^8„  d   QhRRRR/# rQ   r   )r   s   "r   r   r–   î  s   € ÷ (ñ (˜3ð ( ;ñ (r   c                	ó@   € V P                  4       P                  V4      # r&   )r‘  rŠ  rU   s   &&r   r‹  ÚPuiseuxPoly._pow_nintî  s   € Ø�y‰y‹{×$Ñ$ QÓ'Ð'r   c               ó    € V ^8„  d   QhRRRR/# )r   rR   r   r   rG   r   )r   s   "r   r   r–   ñ  s   € ÷ 8ñ 8˜sð 8 {ñ 8r   c                	ó†  a€ V P                   '       g   \        R 4      hV P                  4       w  w  r#V P                  P                  pVP                  V4      '       g   \        R 4      h\        ;QJ d    . V3R lV 4       F  NK  	  5M! V3R lV 4       4      pV P                  P                  W$P                  /4      # )z0Only monomials can be raised to a rational powerc              3  ó4   <"  € T F  qS,          x € K  	  R # 5ir&   r   r  s   & €r   rŒ   Ú,PuiseuxPoly._pow_rational.<locals>.<genexpr>ø  s   øé € Ð+¡U ˜!—e’e£UùrÃ  )	r  rb  rK   r    r   Úis_oner)   rN   r,   )r/   rR   ru   rÿ   r   s   &f   r   rŒ  ÚPuiseuxPoly._pow_rationalñ  sŒ   ø€ Ø�|�|ˆ|ÜÐOÓPÐPØŸ:™:›<Ñ‰ˆ%Ø—‘×!Ñ!ˆØ�}‰}˜U×#Ò#ÜÐOÓPÐPß”Ô+¡UÓ+—‘Ô+¡UÓ+Ó+ˆØ�y‰y×"Ñ" E¯:©:Ð#6Ó7Ð7r   c               ó   € V ^8„  d   QhRR/# rV  r   )r   s   "r   r   r–   û  s   € ÷ 	3ñ 	3�kñ 	3r   c                	óš  € V P                   '       g   \        R 4      hV P                  4       w  w  rV P                  P                  pVP
                  '       g#   VP                  V4      '       g   \        R4      h\        ;QJ d    . R V 4       F  NK  	  5M! R V 4       4      p^V,          pV P                  P                  W/4      # )zOnly terms can be invertedz"Cannot invert non-unit coefficientc              3  ó&   "  € T F  q) x € K	  	  R # 5ir&   r   )r‰   r{   s   & r   rŒ   Ú#PuiseuxPoly._inv.<locals>.<genexpr>  s   é € Ð(¡%˜Q•b£%ùs   ‚)	r  rb  rK   r    r   Úis_FieldrÌ  r)   rN   )r/   ru   rÿ   r   s   &   r   r‘  ÚPuiseuxPoly._invû  s—   € Ø�|�|ˆ|ÜÐ9Ó:Ð:ØŸ:™:›<Ñ‰ˆ%Ø—‘×!Ñ!ˆØ��ˆ v§}¡}°U×';Ò';ÜÐAÓBÐBß”Ñ(¡%Ó(—‘Ñ(¡%Ó(Ó(ˆØ�E•	ˆØ�y‰y×"Ñ" E >Ó2Ð2r   c               ó    € V ^8„  d   QhRRRR/# )r   ri   rG   r   r   )r   s   "r   r   r–     s   € ÷ ñ �kð  kñ r   c                ó  € V P                   pVP                  V4      p/ pV P                  4        FJ  w  rVWS,          pV'       g   K  \        V4      pWƒ;;,          ^,          uu&   Wg,          V\	        V4      &   KL  	  V! V4      # )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    rk   rþ   rì   r)   )	r/   ri   r    r#  r0   Úexpvrÿ   rR   r2  s	   &&       r   ÚdiffÚPuiseuxPoly.diff  sl   € ð �y‰yˆØ�J‰J�q‹MˆØˆØŸ>™>Ö+‰KˆDØ•ˆAß‰qÜ˜“J�Ø—˜•	“Ø#�i�”%˜“(“ñ ,ñ �A‹wˆr   r   N)5rm   rn   ro   rp   rq   Ú__annotations__rš   Úclassmethodr˜   r    rC   rŸ   rØ   rä   rè   rí   rò   rö   rú   rþ   rK   Úpropertyr  r  rN   r$  r9   rS  rX  r]  rh  rm  ru  r{  r�  r…  r�  r“  r—  rc  rd  rs  rt  rz  r  r€  r’  rŠ  r‹  rŒ  r‘  r×  rr   r   r   r   rG   rG   ç   ss  ‡ ñ'ðR ÓØ
ÓØ!Ó!ØÓõ0ð ô3ó ð3ð ôó ðõ
"ð ô/ó ð/ðb ô1ó ð1ð ô<ó ð<õ"4õ 'õ!õ õõõ&ð ô!ó ð!õ&ð ô!5ó ð!5õFõ0%õ:4'õlõIõ"õ"õ"õ"õ"õ"õ	"õ"õ"õ>õ7õ>õ7õ7õ>õQõQõBõ(õ8õ	3÷ñ r   rG   N)rq   Ú
__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   r}   rƒ   r‘   rG   r   r   r   Ú<module>rå     sc   ðñõ& #å "ß 3Ý Ý ß (õ !÷ ß"Ý$Ý*ß2õ÷(Y"ñ Y"õxGõGõ8÷tó tr   