ó
    "Eñi/  ã                   ó²   • S SK Jr  S SKrS SKJr  S SKJr  S SKJr  S SK	J
r
  S SKJr  S SKJrJr   " S S	\
\S
9r\R                   rS\4S jr " S S\
\S
9rg)é    N)ÚExpr)Ú
_sympifyit)Ú
AtomicExpr)ÚNumber)Úglobal_parameters)ÚSÚ	Singletonc                   ót  ^ • \ rS rSrSrSrSrSrSrSr	Sr
SrSrSrS rS\4S	 jrS
 r \" S\5      S 5       r\r\" S\5      S 5       r\" S\5      S 5       r\" S\5      S 5       r\r\" S\5      S 5       rS rS rS rS rU 4S jrS r S r!S r"S r#S r$S r%\" S\5      S 5       r&\&r'S r(S r)Sr*U =r+$ )ÚIntInfinityé   aL  Positive integer infinite quantity.

Integer infinity is a value in an extended integers which
is greater than all other integers.  We distinguish it from
sympy's existing notion of infinity in that it reports that
it is_integer.

Infinity is a singleton, and can be accessed by ``S.IntInfinity``,
or can be imported as ``int_oo``.
TFç      Y@© c                 ó.   • [         R                  " U 5      $ ©N©r   Ú__new__©Úclss    ÚW/home/mande/repo/quber/.venv/lib/python3.13/site-packages/torch/utils/_sympy/numbers.pyr   ÚIntInfinity.__new__*   ó   € Ü×!Ò! #Ó&Ð&ó    Úreturnc                 ó   • g)NÚint_oor   ©ÚselfÚprinters     r   Ú	_sympystrÚIntInfinity._sympystr-   s   € Ør   c                 ó   • X:X  a  U$ g r   r   ©r   ÚoldÚnews      r   Ú
_eval_subsÚIntInfinity._eval_subs0   ó   € Ø‹;ØˆJð r   Úotherc                 ó:  • [        U[        5      (       aq  [        R                  (       a\  U[        R
                  [        R                  4;   a  U$ U[        R                  [        R                  4;   a  [        R                  $ U $ [        R                  " X5      $ r   )
Ú
isinstancer   r   Úevaluater   ÚInfinityÚNegativeInfinityÚNegativeIntInfinityÚNaNÚ__add__©r   r(   s     r   r0   ÚIntInfinity.__add__=   sh   € ä�eœV×$Ñ$Ô):×)C×)CØœŸ™¤Q×%7Ñ%7Ð8Ó8Ø�Øœ×.Ñ.´·±Ð6Ó6Ü—u‘u�ØˆKÜ�~Š~˜dÓ*Ð*r   c                 óz  • [        U[        5      (       a‘  [        R                  (       a|  U[        R
                  L a  [        R                  $ U[        R                  L a  [        R
                  $ U[        R                  [        R                  4;   a  [        R                  $ U $ [        R                  " X5      $ r   )
r*   r   r   r+   r   r,   r-   r   r/   Ú__sub__r1   s     r   r4   ÚIntInfinity.__sub__I   sz   € ä�eœV×$Ñ$Ô):×)C×)CØœŸ
™
Ò"Ü×)Ñ)Ð)Øœ×*Ñ*Ò*Ü—z‘zÐ!ØœŸ™¬¯©Ð.Ó.Ü—u‘u�ØˆKÜ�~Š~˜dÓ*Ð*r   c                 ó&   • U * R                  U5      $ r   ©r0   r1   s     r   Ú__rsub__ÚIntInfinity.__rsub__U   ó   € à��‰˜uÓ%Ð%r   c                 ó0  • [        U[        5      (       al  [        R                  (       aW  UR                  (       d  U[
        R                  L a  [
        R                  $ UR                  (       a  U $ [
        R                  $ [        R                  " X5      $ r   )
r*   r   r   r+   Úis_zeror   r/   Úis_extended_positiver.   Ú__mul__r1   s     r   r>   ÚIntInfinity.__mul__Y   s[   € ä�eœV×$Ñ$Ô):×)C×)CØ�}�} ¬¯©¢Ü—u‘u�Ø×)×)Ø�Ü×(Ñ(Ð(Ü�~Š~˜dÓ*Ð*r   c                 ó¦  • [        U[        5      (       a§  [        R                  (       a’  U[        R
                  [        R                  [        R                  [        R                  [        R                  4;   a  [        R                  $ UR                  (       a  [        R
                  $ [        R                  $ [        R                  " X5      $ r   ©r*   r   r   r+   r   r,   r   r-   r.   r/   Úis_extended_nonnegativeÚ__truediv__r1   s     r   rC   ÚIntInfinity.__truediv__e   s‡   € ä�eœV×$Ñ$Ô):×)C×)CØÜ—
‘
Ü—‘Ü×"Ñ"Ü×%Ñ%Ü—‘ðó ô —u‘u�Ø×,×,Ü—z‘zÐ!Ü×%Ñ%Ð%Ü×!Ò! $Ó.Ð.r   c                 ó"   • [         R                  $ r   ©r   r   ©r   s    r   Ú__abs__ÚIntInfinity.__abs__u   ó   € Ü�}‰}Ðr   c                 ó"   • [         R                  $ r   ©r   r.   rG   s    r   Ú__neg__ÚIntInfinity.__neg__x   s   € Ü×$Ñ$Ð$r   c                 ó\  • UR                   (       a  [        R                  $ UR                  (       a  [        R                  $ U[        R
                  L a  [        R
                  $ U[        R                  L a  [        R
                  $ UR                  SL a•  UR                  (       aƒ  SSK	J
n  U" U5      nUR                  (       a  [        R                  $ UR                  (       a  [        R                  $ UR                  (       a  [        R
                  $ XR                  5       -  $ g g )NFr   )Úre)r=   r   r   Úis_extended_negativeÚZeror/   ÚComplexInfinityÚis_extended_realÚ	is_numberÚ$sympy.functions.elementary.complexesrP   Úis_positiveÚis_negativer<   Úevalf)r   ÚexptrP   Ú	expt_reals       r   Ú_eval_powerÚIntInfinity._eval_power{   sÂ   € Ø×$×$Ü—=‘=Ð Ø×$×$Ü—6‘6ˆMØ”1—5‘5Š=Ü—5‘5ˆLØ”1×$Ñ$Ò$Ü—5‘5ˆLØ× Ñ  EÒ)¨d¯n¯nÝ?á˜4›ˆIØ×$×$Ü×(Ñ(Ð(Ø×$×$Ü—v‘v�Ø× × Ü—u‘u�àŸ:™:›<Ñ'Ð'ð /=Ð)r   c                 ó"   • [         R                  $ r   )ÚmlibÚfinf©r   Úprecs     r   Ú_as_mpf_valÚIntInfinity._as_mpf_val‘   s   € Ü�y‰yÐr   c                 ó    >• [         TU ]  5       $ r   ©ÚsuperÚ__hash__©r   Ú	__class__s    €r   rh   ÚIntInfinity.__hash__”   ó   ø€ Ü‰wÑÓ!Ð!r   c                 ó&   • U[         R                  L $ r   rF   r1   s     r   Ú__eq__ÚIntInfinity.__eq__—   s   € ØœŸ™Ð%Ð%r   c                 ó&   • U[         R                  L$ r   rF   r1   s     r   Ú__ne__ÚIntInfinity.__ne__š   s   € ØœAŸM™MÐ)Ð)r   c                 ó®   • U[         R                  L a  [        R                  $ U[         R                  L a  [        R                  $ [        R
                  $ r   ©r   r,   ÚsympyÚfalser   Útruer1   s     r   Ú__gt__ÚIntInfinity.__gt__�   s8   € Ø”A—J‘JÒÜ—;‘;ÐØ”a—m‘mÒ#Ü—;‘;Ðä—:‘:Ðr   c                 ó®   • U[         R                  L a  [        R                  $ U[         R                  L a  [        R
                  $ [        R
                  $ r   rt   r1   s     r   Ú__ge__ÚIntInfinity.__ge__¥   s8   € Ø”A—J‘JÒÜ—;‘;ÐØ”a—m‘mÒ#Ü—:‘:Ðä—:‘:Ðr   c                 ó®   • U[         R                  L a  [        R                  $ U[         R                  L a  [        R
                  $ [        R
                  $ r   ©r   r,   ru   rw   r   rv   r1   s     r   Ú__lt__ÚIntInfinity.__lt__­   s8   € Ø”A—J‘JÒÜ—:‘:ÐØ”a—m‘mÒ#Ü—;‘;Ðä—;‘;Ðr   c                 ó®   • U[         R                  L a  [        R                  $ U[         R                  L a  [        R                  $ [        R
                  $ r   r~   r1   s     r   Ú__le__ÚIntInfinity.__le__µ   s8   € Ø”A—J‘JÒÜ—:‘:ÐØ”a—m‘mÒ#Ü—:‘:Ðä—;‘;Ðr   c                 óX   • [        U[        5      (       d  [        $ [        R                  $ r   ©r*   r   ÚNotImplementedr   r/   r1   s     r   Ú__mod__ÚIntInfinity.__mod__½   ó   € ä˜%¤×&Ñ&Ü!Ð!Ü�u‰uˆr   c                 ó   • U $ r   r   rG   s    r   ÚfloorÚIntInfinity.floorÅ   ó   € Øˆr   c                 ó   • U $ r   r   rG   s    r   ÚceilingÚIntInfinity.ceilingÈ   r�   r   ),Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__Ú
is_integerÚis_commutativerU   rT   Úis_comparabler=   Úis_primeÚ_op_priorityÚ	__slots__r   Ústrr   r%   r   r†   r0   Ú__radd__r4   r8   r>   Ú__rmul__rC   rH   rM   r\   rc   rh   rn   rq   rx   r{   r   r‚   r‡   Ú__rmod__r‹   r�   Ú__static_attributes__Ú__classcell__©rj   s   @r   r   r      sO  ø† ñ	ð €JØ€NØ€IØÐØ€MØÐØ€Hð €Là€Iò'ð Cô òð
ñ �˜Ó(ñ+ó )ð+ð €Há�˜Ó(ñ	+ó )ð	+ñ �˜Ó(ñ&ó )ð&ñ �˜Ó(ñ+ó )ð+ð €Há�˜Ó(ñ/ó )ð/òò%ò(ò,õ"ò&ò*òòòòñ �˜Ó(ñó )ðð
 €Hò÷ð r   r   )Ú	metaclassr   c                 ó„   • U [         R                  [         R                  [         R                  [         R                  4;   $ )ae  Check if an expression is any type of infinity (positive or negative).

This handles both sympy's built-in infinities (oo, -oo) and PyTorch's
integer infinities (int_oo, -int_oo).

Note: We cannot rely on sympy's is_finite property because IntInfinity
and NegativeIntInfinity have is_integer=True, which implies is_finite=True
in sympy's assumption system.
)r   r,   r-   r   r.   )Úexprs    r   Úis_infiniter¦   Ï   s6   € ð Ü	�
‰
Ü	×ÑÜ	�‰Ü	×Ñð	ñ ð r   c                   óz  ^ • \ rS rSrSrSrSrSrSrSr	Sr
SrSrSrS rS rS	\4S
 jr \" S\5      S 5       r\r\" S\5      S 5       r\" S\5      S 5       r\" S\5      S 5       r\r\" S\5      S 5       rS rS rS rS rU 4S jrS r S r!S r"S r#S r$S r%\" S\5      S 5       r&\&r'S r(S r)S r*Sr+U =r,$ ) r.   éâ   z•Negative integer infinite quantity.

NegativeInfinity is a singleton, and can be accessed
by ``S.NegativeInfinity``.

See Also
========

IntInfinity
r   TFr   c                 ó.   • [         R                  " U 5      $ r   r   r   s    r   r   ÚNegativeIntInfinity.__new__û   r   r   c                 ó   • X:X  a  U$ g r   r   r"   s      r   r%   ÚNegativeIntInfinity._eval_subsþ   r'   r   r   c                 ó   • g)Nz-int_oor   r   s     r   r   ÚNegativeIntInfinity._sympystr  s   € Ør   r(   c                 ó4  • [        U[        5      (       an  [        R                  (       aY  U[        R
                  L a  [        R
                  $ U[        R                  [        R                  4;   a  [        R                  $ U $ [        R                  " X5      $ r   )	r*   r   r   r+   r   r,   r   r/   r0   r1   s     r   r0   ÚNegativeIntInfinity.__add__  s`   € ä�eœV×$Ñ$Ô):×)C×)CØœŸ
™
Ò"Ü—z‘zÐ!ØœŸ™¬¯©Ð.Ó.Ü—u‘u�ØˆKÜ�~Š~˜dÓ*Ð*r   c                 ó4  • [        U[        5      (       an  [        R                  (       aY  U[        R
                  L a  [        R                  $ U[        R                  [        R                  4;   a  [        R                  $ U $ [        R                  " X5      $ r   )
r*   r   r   r+   r   r-   r,   r.   r/   r4   r1   s     r   r4   ÚNegativeIntInfinity.__sub__  sd   € ä�eœV×$Ñ$Ô):×)C×)CØœ×*Ñ*Ò*Ü—z‘zÐ!Øœ×.Ñ.´·±Ð6Ó6Ü—u‘u�ØˆKÜ�~Š~˜dÓ*Ð*r   c                 ó&   • U * R                  U5      $ r   r7   r1   s     r   r8   ÚNegativeIntInfinity.__rsub__#  r:   r   c                 ó0  • [        U[        5      (       al  [        R                  (       aW  UR                  (       d  U[
        R                  L a  [
        R                  $ UR                  (       a  U $ [
        R                  $ [        R                  " X5      $ r   )
r*   r   r   r+   r<   r   r/   r=   r   r>   r1   s     r   r>   ÚNegativeIntInfinity.__mul__'  sY   € ä�eœV×$Ñ$Ô):×)C×)CØ�}�} ¬¯©¢Ü—u‘u�Ø×)×)Ø�Ü—=‘=Ð Ü�~Š~˜dÓ*Ð*r   c                 óŠ  • [        U[        5      (       a™  [        R                  (       a„  U[        R
                  [        R                  [        R                  [        R                  [        R                  4;   a  [        R                  $ UR                  (       a  U $ [        R
                  $ [        R                  " X5      $ r   rA   r1   s     r   rC   ÚNegativeIntInfinity.__truediv__3  s€   € ä�eœV×$Ñ$Ô):×)C×)CØÜ—
‘
Ü—‘Ü×"Ñ"Ü×%Ñ%Ü—‘ðó ô —u‘u�Ø×,×,Ø�Ü—:‘:ÐÜ×!Ò! $Ó.Ð.r   c                 ó"   • [         R                  $ r   rF   rG   s    r   rH   ÚNegativeIntInfinity.__abs__C  rJ   r   c                 ó"   • [         R                  $ r   rF   rG   s    r   rM   ÚNegativeIntInfinity.__neg__F  rJ   r   c                 ó¼  • UR                   (       GaJ  U[        R                  [        R                  [        R                  [        R
                  [        R                  4;   a  [        R                  $ [        U[        R                  5      (       aB  UR                  (       a1  UR                  (       a  [        R                  $ [        R
                  $ [        R
                  U-  n[        R                  U-  nUS:X  a  UR                  (       a  U$ U[        R                  L a2  UR                  (       a!  UR                  (       d  [        R                  $ X2-  $ g )Nr   )rU   r   r/   r,   r-   r   r.   r*   ru   ÚIntegerr=   Úis_oddÚNegativeOneÚ	is_finiterS   r<   )r   rZ   Úinf_partÚs_parts       r   r\   ÚNegativeIntInfinity._eval_powerI  sè   € Ø�>�>ˆ>ØÜ—‘Ü—
‘
Ü×"Ñ"Ü—‘Ü×%Ñ%ðó ô —u‘u�ä˜$¤§¡×.Ñ.°4×3L×3LØ—;—;Ü×0Ñ0Ð0äŸ=™=Ð(ä—}‘} dÑ*ˆHÜ—]‘] DÑ(ˆFØ˜1‹} ×!1×!1Ø�àœA×-Ñ-Ò-Ø×$×$ØŸŸä×(Ñ(Ð(ØÑ$Ð$ð5 r   c                 ó"   • [         R                  $ r   )r_   Úfninfra   s     r   rc   ÚNegativeIntInfinity._as_mpf_valf  s   € Ü�z‰zÐr   c                 ó    >• [         TU ]  5       $ r   rf   ri   s    €r   rh   ÚNegativeIntInfinity.__hash__i  rl   r   c                 ó&   • U[         R                  L $ r   rL   r1   s     r   rn   ÚNegativeIntInfinity.__eq__l  s   € Øœ×-Ñ-Ð-Ð-r   c                 ó&   • U[         R                  L$ r   rL   r1   s     r   rq   ÚNegativeIntInfinity.__ne__o  s   € ØœA×1Ñ1Ð1Ð1r   c                 ó®   • U[         R                  L a  [        R                  $ U[         R                  L a  [        R
                  $ [        R
                  $ r   ©r   r-   ru   rw   r.   rv   r1   s     r   rx   ÚNegativeIntInfinity.__gt__r  s<   € Ø”A×&Ñ&Ò&Ü—:‘:ÐØ”a×+Ñ+Ò+Ü—;‘;Ðä—;‘;Ðr   c                 ó®   • U[         R                  L a  [        R                  $ U[         R                  L a  [        R                  $ [        R
                  $ r   rÏ   r1   s     r   r{   ÚNegativeIntInfinity.__ge__z  s<   € Ø”A×&Ñ&Ò&Ü—:‘:ÐØ”a×+Ñ+Ò+Ü—:‘:Ðä—;‘;Ðr   c                 ó®   • U[         R                  L a  [        R                  $ U[         R                  L a  [        R                  $ [        R
                  $ r   ©r   r-   ru   rv   r.   rw   r1   s     r   r   ÚNegativeIntInfinity.__lt__‚  s<   € Ø”A×&Ñ&Ò&Ü—;‘;ÐØ”a×+Ñ+Ò+Ü—;‘;Ðä—:‘:Ðr   c                 ó®   • U[         R                  L a  [        R                  $ U[         R                  L a  [        R
                  $ [        R
                  $ r   rÔ   r1   s     r   r‚   ÚNegativeIntInfinity.__le__Š  s<   € Ø”A×&Ñ&Ò&Ü—;‘;ÐØ”a×+Ñ+Ò+Ü—:‘:Ðä—:‘:Ðr   c                 óX   • [        U[        5      (       d  [        $ [        R                  $ r   r…   r1   s     r   r‡   ÚNegativeIntInfinity.__mod__’  r‰   r   c                 ó   • U $ r   r   rG   s    r   r‹   ÚNegativeIntInfinity.floorš  r�   r   c                 ó   • U $ r   r   rG   s    r   r�   ÚNegativeIntInfinity.ceiling�  r�   r   c                 óF   • [         R                  S[         R                  S0$ )Né   )r   rÀ   r   rG   s    r   Úas_powers_dictÚ"NegativeIntInfinity.as_powers_dict   s   € Ü—‘˜q¤!§-¡-°Ð3Ð3r   )-r‘   r’   r“   r”   r•   rš   r–   rT   r—   r˜   rQ   rU   r™   r›   r   r%   rœ   r   r   r†   r0   r�   r4   r8   r>   rž   rC   rH   rM   r\   rc   rh   rn   rq   rx   r{   r   r‚   r‡   rŸ   r‹   r�   rà   r    r¡   r¢   s   @r   r.   r.   â   sR  ø† ñ	ð €Là€JØÐØ€NØ€MØÐØ€IØ€Hà€Iò'òð Cô ðñ �˜Ó(ñ+ó )ð+ð €Há�˜Ó(ñ+ó )ð+ñ �˜Ó(ñ&ó )ð&ñ �˜Ó(ñ+ó )ð+ð €Há�˜Ó(ñ/ó )ð/òòò%ò:õ"ò.ò2òòòòñ �˜Ó(ñó )ðð
 €Hòò÷4ð 4r   r.   )Úmpmath.libmpÚlibmpr_   ru   r   Úsympy.core.decoratorsr   Úsympy.core.exprr   Úsympy.core.numbersr   Úsympy.core.parametersr   Úsympy.core.singletonr   r	   r   r   Úboolr¦   r.   r   r   r   Ú<module>rê      sU   ðå Û Ý Ý ,Ý &Ý %Ý 3ß -ô|�& Iò |ð~ 
�‰€ð˜ô ô&4˜&¨Ió 4r   