§
    Ì²Åj.  ã                   ó´   — d dl mZ d dlZd dlmZ d dlmZ d dlmZ d dl	m
Z
 d dlmZ d dlmZmZ  G d„ d	e
e¬
¦  «        Zej        Z G d„ de
e¬
¦  «        ZdS )é    N)ÚExpr)Ú
_sympifyit)Ú
AtomicExpr)ÚNumber)Úglobal_parameters)ÚSÚ	Singletonc                   óª  ‡ — e Zd ZdZdZdZdZdZdZdZ	dZ
dZdZd„ Zd„ Zd„ Z	  ed	e¦  «        d
„ ¦   «         ZeZ ed	e¦  «        d„ ¦   «         Z ed	e¦  «        d„ ¦   «         Z ed	e¦  «        d„ ¦   «         ZeZ ed	e¦  «        d„ ¦   «         Zd„ Zd„ Zd„ Zd„ Zˆ fd„Zd„ Zd„ Zd„ Z d„ Z!d„ Z"d„ Z# ed	e¦  «        d„ ¦   «         Z$e$Z%d„ Z&d„ Z'ˆ xZ(S )ÚIntInfinityah  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                 ó*   — t          j        | ¦  «        S ©N©r   Ú__new__©Úclss    úKC:\Projects\Historical\venv\Lib\site-packages\torch/utils/_sympy/numbers.pyr   zIntInfinity.__new__)   ó   € ÝÔ! #Ñ&Ô&Ð&ó    c                 ó   — dS )NÚint_oor   ©ÚselfÚprinters     r   Ú	_sympystrzIntInfinity._sympystr,   s   € Øˆxr   c                 ó   — | |k    r|S d S r   r   ©r   ÚoldÚnews      r   Ú
_eval_subszIntInfinity._eval_subs/   ó   € Ø�3Š;ˆ;ØˆJð ˆ;r   Úotherc                 óö   — t          |t          ¦  «        rPt          j        rD|t          j        t          j        fv r|S |t          j        t          j        fv rt          j        S | S t          j	        | |¦  «        S r   )
Ú
isinstancer   r   Úevaluater   ÚInfinityÚNegativeInfinityÚNegativeIntInfinityÚNaNÚ__add__©r   r#   s     r   r+   zIntInfinity.__add__<   sl   € å�e�VÑ$Ô$ð 	Õ):Ô)Cð 	Ø�œ¥QÔ%7Ð8Ð8Ð8Ø�Ø�Ô.µ´Ð6Ð6Ð6Ý”u�ØˆKÝŒ~˜d EÑ*Ô*Ð*r   c                 ó&  — t          |t          ¦  «        rht          j        r\|t          j        u rt          j        S |t          j        u rt          j        S |t          j        t          j        fv rt          j        S | S t          j	        | |¦  «        S r   )
r%   r   r   r&   r   r'   r(   r   r*   Ú__sub__r,   s     r   r.   zIntInfinity.__sub__H   s}   € å�e�VÑ$Ô$ð 	Õ):Ô)Cð 	Ø�œ
Ð"Ð"ÝÔ)Ð)Ø�Ô*Ð*Ð*Ý”zÐ!Ø�œ­¬Ð.Ð.Ð.Ý”u�ØˆKÝŒ~˜d EÑ*Ô*Ð*r   c                 ó.   — |                        |¦  «        S r   ©r+   r,   s     r   Ú__rsub__zIntInfinity.__rsub__T   ó   € à��Š˜uÑ%Ô%Ð%r   c                 óÚ   — t          |t          ¦  «        rBt          j        r6|j        s|t
          j        u rt
          j        S |j        r| S t
          j        S t          j	        | |¦  «        S r   )
r%   r   r   r&   Úis_zeror   r*   Úis_extended_positiver)   Ú__mul__r,   s     r   r6   zIntInfinity.__mul__X   se   € å�e�VÑ$Ô$ð 	)Õ):Ô)Cð 	)ØŒ}ð  ­¬  Ý”u�ØÔ)ð Ø�ÝÔ(Ð(ÝŒ~˜d EÑ*Ô*Ð*r   c                 ó:  — t          |t          ¦  «        rrt          j        rf|t          j        t          j        t          j        t          j        t          j	        fv rt          j	        S |j
        rt          j        S t          j        S t          j        | |¦  «        S r   ©r%   r   r   r&   r   r'   r   r(   r)   r*   Úis_extended_nonnegativeÚ__truediv__r,   s     r   r:   zIntInfinity.__truediv__d   s„   € å�e�VÑ$Ô$ð 	&Õ):Ô)Cð 	&ØÝ”
Ý”ÝÔ"ÝÔ%Ý”ðð ð õ ”u�ØÔ,ð "Ý”zÐ!ÝÔ%Ð%ÝÔ! $¨Ñ.Ô.Ð.r   c                 ó   — t           j        S r   ©r   r   ©r   s    r   Ú__abs__zIntInfinity.__abs__t   ó
   € ÝŒ}Ðr   c                 ó   — t           j        S r   ©r   r)   r=   s    r   Ú__neg__zIntInfinity.__neg__w   s   € ÝÔ$Ð$r   c                 ó   — |j         rt          j        S |j        rt          j        S |t          j        u rt          j        S |t          j        u rt          j        S |j        du rh|j        rcddl	m
}  ||¦  «        }|j        rt          j        S |j        rt          j        S |j        rt          j        S | |                     ¦   «         z  S d S d S )NFr   )Úre)r5   r   r   Úis_extended_negativeÚZeror*   ÚComplexInfinityÚis_extended_realÚ	is_numberÚ$sympy.functions.elementary.complexesrD   Úis_positiveÚis_negativer4   Úevalf)r   ÚexptrD   Ú	expt_reals       r   Ú_eval_powerzIntInfinity._eval_powerz   sÛ   € ØÔ$ð 	!Ý”=Ð ØÔ$ð 	Ý”6ˆMØ•1”5ˆ=ˆ=Ý”5ˆLØ•1Ô$Ð$Ð$Ý”5ˆLØÔ  EÐ)Ð)¨d¬nÐ)Ø?Ð?Ð?Ð?Ð?Ð?à˜˜4™œˆIØÔ$ð )ÝÔ(Ð(ØÔ$ð Ý”v�ØÔ ð Ý”u�à˜4Ÿ:š:™<œ<Ñ'Ð'ð *Ð)Ð)Ð)r   c                 ó   — t           j        S r   )ÚmlibÚfinf©r   Úprecs     r   Ú_as_mpf_valzIntInfinity._as_mpf_val�   s
   € ÝŒyÐr   c                 óD   •— t          ¦   «                              ¦   «         S r   ©ÚsuperÚ__hash__©r   Ú	__class__s    €r   rZ   zIntInfinity.__hash__“   ó   ø€ Ý‰wŒw×ÒÑ!Ô!Ð!r   c                 ó   — |t           j        u S r   r<   r,   s     r   Ú__eq__zIntInfinity.__eq__–   s   € Ø�œÐ%Ð%r   c                 ó   — |t           j        uS r   r<   r,   s     r   Ú__ne__zIntInfinity.__ne__™   s   € Ø�AœMÐ)Ð)r   c                 ó‚   — |t           j        u rt          j        S |t           j        u rt          j        S t          j        S r   ©r   r'   ÚsympyÚfalser   Útruer,   s     r   Ú__gt__zIntInfinity.__gt__œ   s4   € Ø•A”JÐÐÝ”;ÐØ•a”mÐ#Ð#Ý”;Ðå”:Ðr   c                 ó‚   — |t           j        u rt          j        S |t           j        u rt          j        S t          j        S r   rc   r,   s     r   Ú__ge__zIntInfinity.__ge__¤   s4   € Ø•A”JÐÐÝ”;ÐØ•a”mÐ#Ð#Ý”:Ðå”:Ðr   c                 ó‚   — |t           j        u rt          j        S |t           j        u rt          j        S t          j        S r   ©r   r'   rd   rf   r   re   r,   s     r   Ú__lt__zIntInfinity.__lt__¬   s4   € Ø•A”JÐÐÝ”:ÐØ•a”mÐ#Ð#Ý”;Ðå”;Ðr   c                 ó‚   — |t           j        u rt          j        S |t           j        u rt          j        S t          j        S r   rk   r,   s     r   Ú__le__zIntInfinity.__le__´   s4   € Ø•A”JÐÐÝ”:ÐØ•a”mÐ#Ð#Ý”:Ðå”;Ðr   c                 óR   — t          |t          ¦  «        st          S t          j        S r   ©r%   r   ÚNotImplementedr   r*   r,   s     r   Ú__mod__zIntInfinity.__mod__¼   ó!   € å˜%¥Ñ&Ô&ð 	"Ý!Ð!ÝŒuˆr   c                 ó   — | S r   r   r=   s    r   ÚfloorzIntInfinity.floorÄ   ó   € Øˆr   c                 ó   — | S r   r   r=   s    r   ÚceilingzIntInfinity.ceilingÇ   rv   r   ))Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ú
is_integerÚis_commutativerI   rH   Úis_comparabler5   Úis_primeÚ_op_priorityÚ	__slots__r   r   r!   r   rq   r+   Ú__radd__r.   r1   r6   Ú__rmul__r:   r>   rB   rP   rV   rZ   r_   ra   rg   ri   rl   rn   rr   Ú__rmod__ru   rx   Ú__classcell__©r\   s   @r   r   r      s\  ø€ € € € € ð	ð 	ð €JØ€NØ€IØÐØ€MØÐØ€Hð €Là€Ið'ð 'ð 'ðð ð ðð ð ð
ð €Z�˜Ñ(Ô(ð+ð +ñ )Ô(ð+ð €Hà€Z�˜Ñ(Ô(ð	+ð 	+ñ )Ô(ð	+ð €Z�˜Ñ(Ô(ð&ð &ñ )Ô(ð&ð €Z�˜Ñ(Ô(ð+ð +ñ )Ô(ð+ð €Hà€Z�˜Ñ(Ô(ð/ð /ñ )Ô(ð/ðð ð ð%ð %ð %ð(ð (ð (ð,ð ð ð"ð "ð "ð "ð "ð&ð &ð &ð*ð *ð *ðð ð ðð ð ðð ð ðð ð ð €Z�˜Ñ(Ô(ðð ñ )Ô(ðð
 €Hðð ð ðð ð ð ð ð ð r   r   )Ú	metaclassc                   ó°  ‡ — e Zd ZdZdZdZdZdZdZdZ	dZ
dZdZd„ Zd„ Zd„ Z	  ed	e¦  «        d
„ ¦   «         ZeZ ed	e¦  «        d„ ¦   «         Z ed	e¦  «        d„ ¦   «         Z ed	e¦  «        d„ ¦   «         ZeZ ed	e¦  «        d„ ¦   «         Zd„ Zd„ Zd„ Zd„ Zˆ fd„Zd„ Zd„ Zd„ Z d„ Z!d„ Z"d„ Z# ed	e¦  «        d„ ¦   «         Z$e$Z%d„ Z&d„ Z'd„ Z(ˆ xZ)S )r)   z­Negative integer infinite quantity.

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

    See Also
    ========

    IntInfinity
    r   TFr   c                 ó*   — t          j        | ¦  «        S r   r   r   s    r   r   zNegativeIntInfinity.__new__ç   r   r   c                 ó   — | |k    r|S d S r   r   r   s      r   r!   zNegativeIntInfinity._eval_subsê   r"   r   c                 ó   — dS )Nz-int_oor   r   s     r   r   zNegativeIntInfinity._sympystrî   s   € Øˆyr   r#   c                 óò   — t          |t          ¦  «        rNt          j        rB|t          j        u rt          j        S |t          j        t          j        fv rt          j        S | S t          j        | |¦  «        S r   )	r%   r   r   r&   r   r'   r   r*   r+   r,   s     r   r+   zNegativeIntInfinity.__add__ù   sf   € å�e�VÑ$Ô$ð 	Õ):Ô)Cð 	Ø�œ
Ð"Ð"Ý”zÐ!Ø�œ­¬Ð.Ð.Ð.Ý”u�ØˆKÝŒ~˜d EÑ*Ô*Ð*r   c                 óò   — t          |t          ¦  «        rNt          j        rB|t          j        u rt          j        S |t          j        t          j        fv rt          j        S | S t          j	        | |¦  «        S r   )
r%   r   r   r&   r   r(   r'   r)   r*   r.   r,   s     r   r.   zNegativeIntInfinity.__sub__  sh   € å�e�VÑ$Ô$ð 	Õ):Ô)Cð 	Ø�Ô*Ð*Ð*Ý”zÐ!Ø�Ô.µ´Ð6Ð6Ð6Ý”u�ØˆKÝŒ~˜d EÑ*Ô*Ð*r   c                 ó.   — |                        |¦  «        S r   r0   r,   s     r   r1   zNegativeIntInfinity.__rsub__  r2   r   c                 óÚ   — t          |t          ¦  «        rBt          j        r6|j        s|t
          j        u rt
          j        S |j        r| S t
          j        S t          j	        | |¦  «        S r   )
r%   r   r   r&   r4   r   r*   r5   r   r6   r,   s     r   r6   zNegativeIntInfinity.__mul__  sd   € å�e�VÑ$Ô$ð 	!Õ):Ô)Cð 	!ØŒ}ð  ­¬  Ý”u�ØÔ)ð Ø�Ý”=Ð ÝŒ~˜d EÑ*Ô*Ð*r   c                 ó&  — t          |t          ¦  «        rht          j        r\|t          j        t          j        t          j        t          j        t          j	        fv rt          j	        S |j
        r| S t          j        S t          j        | |¦  «        S r   r8   r,   s     r   r:   zNegativeIntInfinity.__truediv__  s€   € å�e�VÑ$Ô$ð 	Õ):Ô)Cð 	ØÝ”
Ý”ÝÔ"ÝÔ%Ý”ðð ð õ ”u�ØÔ,ð Ø�Ý”:ÐÝÔ! $¨Ñ.Ô.Ð.r   c                 ó   — t           j        S r   r<   r=   s    r   r>   zNegativeIntInfinity.__abs__/  r?   r   c                 ó   — t           j        S r   r<   r=   s    r   rB   zNegativeIntInfinity.__neg__2  r?   r   c                 óÖ  — |j         rá|t          j        t          j        t          j        t          j        t          j        fv rt          j        S t          |t          j	        ¦  «        r&|j
        r|j        rt          j        S t          j        S t          j        |z  }t          j        |z  }|dk    r	|j        r|S |t          j        u r|j        r|j        st          j        S ||z  S d S )Nr   )rI   r   r*   r'   r(   r   r)   r%   rd   ÚIntegerr5   Úis_oddÚNegativeOneÚ	is_finiterG   r4   )r   rN   Úinf_partÚs_parts       r   rP   zNegativeIntInfinity._eval_power5  së   € ØŒ>ð 	%ØÝ”Ý”
ÝÔ"Ý”ÝÔ%ðð ð õ ”u�å˜$¥¤Ñ.Ô.ð )°4Ô3Lð )Ø”;ð )ÝÔ0Ð0åœ=Ð(å”} dÑ*ˆHÝ”] DÑ(ˆFØ˜1Š}ˆ} Ô!1ˆ}Ø�à�AÔ-Ð-Ð-ØÔ$ð .àœð .õ Ô(Ð(Ø˜HÑ$Ð$ð5	%ð 	%r   c                 ó   — t           j        S r   )rR   ÚfninfrT   s     r   rV   zNegativeIntInfinity._as_mpf_valR  s
   € ÝŒzÐr   c                 óD   •— t          ¦   «                              ¦   «         S r   rX   r[   s    €r   rZ   zNegativeIntInfinity.__hash__U  r]   r   c                 ó   — |t           j        u S r   rA   r,   s     r   r_   zNegativeIntInfinity.__eq__X  s   € Ø�Ô-Ð-Ð-r   c                 ó   — |t           j        uS r   rA   r,   s     r   ra   zNegativeIntInfinity.__ne__[  s   € Ø�AÔ1Ð1Ð1r   c                 ó‚   — |t           j        u rt          j        S |t           j        u rt          j        S t          j        S r   ©r   r(   rd   rf   r)   re   r,   s     r   rg   zNegativeIntInfinity.__gt__^  s6   € Ø•AÔ&Ð&Ð&Ý”:ÐØ•aÔ+Ð+Ð+Ý”;Ðå”;Ðr   c                 ó‚   — |t           j        u rt          j        S |t           j        u rt          j        S t          j        S r   r¡   r,   s     r   ri   zNegativeIntInfinity.__ge__f  s6   € Ø•AÔ&Ð&Ð&Ý”:ÐØ•aÔ+Ð+Ð+Ý”:Ðå”;Ðr   c                 ó‚   — |t           j        u rt          j        S |t           j        u rt          j        S t          j        S r   ©r   r(   rd   re   r)   rf   r,   s     r   rl   zNegativeIntInfinity.__lt__n  s6   € Ø•AÔ&Ð&Ð&Ý”;ÐØ•aÔ+Ð+Ð+Ý”;Ðå”:Ðr   c                 ó‚   — |t           j        u rt          j        S |t           j        u rt          j        S t          j        S r   r¤   r,   s     r   rn   zNegativeIntInfinity.__le__v  s6   € Ø•AÔ&Ð&Ð&Ý”;ÐØ•aÔ+Ð+Ð+Ý”:Ðå”:Ðr   c                 óR   — t          |t          ¦  «        st          S t          j        S r   rp   r,   s     r   rr   zNegativeIntInfinity.__mod__~  rs   r   c                 ó   — | S r   r   r=   s    r   ru   zNegativeIntInfinity.floor†  rv   r   c                 ó   — | S r   r   r=   s    r   rx   zNegativeIntInfinity.ceiling‰  rv   r   c                 ó6   — t           j        dt           j        diS )Né   )r   r—   r   r=   s    r   Úas_powers_dictz"NegativeIntInfinity.as_powers_dictŒ  s   € Ý”˜q¥!¤-°Ð3Ð3r   )*ry   rz   r{   r|   r�   r}   rH   r~   r   rE   rI   r€   r‚   r   r!   r   r   rq   r+   rƒ   r.   r1   r6   r„   r:   r>   rB   rP   rV   rZ   r_   ra   rg   ri   rl   rn   rr   r…   ru   rx   r«   r†   r‡   s   @r   r)   r)   Î   si  ø€ € € € € ð	ð 	ð €Là€JØÐØ€NØ€MØÐØ€IØ€Hà€Ið'ð 'ð 'ðð ð ðð ð ðð €Z�˜Ñ(Ô(ð+ð +ñ )Ô(ð+ð €Hà€Z�˜Ñ(Ô(ð+ð +ñ )Ô(ð+ð €Z�˜Ñ(Ô(ð&ð &ñ )Ô(ð&ð €Z�˜Ñ(Ô(ð+ð +ñ )Ô(ð+ð €Hà€Z�˜Ñ(Ô(ð/ð /ñ )Ô(ð/ðð ð ðð ð ð%ð %ð %ð:ð ð ð"ð "ð "ð "ð "ð.ð .ð .ð2ð 2ð 2ðð ð ðð ð ðð ð ðð ð ð €Z�˜Ñ(Ô(ðð ñ )Ô(ðð
 €Hðð ð ðð ð ð4ð 4ð 4ð 4ð 4ð 4ð 4r   r)   )Úmpmath.libmpÚlibmprR   rd   r   Úsympy.core.decoratorsr   Úsympy.core.exprr   Úsympy.core.numbersr   Úsympy.core.parametersr   Úsympy.core.singletonr   r	   r   r   r)   r   r   r   ú<module>r³      s  ðà Ð Ð Ð Ð Ð Ø €€€Ø Ð Ð Ð Ð Ð Ø ,Ð ,Ð ,Ð ,Ð ,Ð ,Ø &Ð &Ð &Ð &Ð &Ð &Ø %Ð %Ð %Ð %Ð %Ð %Ø 3Ð 3Ð 3Ð 3Ð 3Ð 3Ø -Ð -Ð -Ð -Ð -Ð -Ð -Ð -ð|ð |ð |ð |ð |�& Ið |ñ |ô |ð |ð~ 
Œ€ð4ð 4ð 4ð 4ð 4˜&¨Ið 4ñ 4ô 4ð 4ð 4ð 4r   