Ë
    [^(h$5  ã                   ó(  — d dl Z d dlZd dlmZ d dlZd dlZd dlmZmZm	Z	m
Z
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ  G d„ d«      Z G d„ de«      Z G d„ d	e«      Zd
ej:                  dej<                  dej:                  fd„Z G d„ d«      Z y)é    N)ÚUnion)Ú_keep_floatÚBitwiseFn_bitwise_andÚBitwiseFn_bitwise_orÚFloatPowÚFloatTrueDivÚFloorDivÚ
IntTrueDivÚMaxÚMinÚModÚOpaqueUnaryFn_expÚOpaqueUnaryFn_logÚOpaqueUnaryFn_log2ÚOpaqueUnaryFn_sqrtÚPowByNaturalÚRoundDecimalÚ
RoundToIntÚToFloatÚ
TruncToIntc                   óœ  — e Zd Zed„ «       Zed„ «       Zed„ «       Zed„ «       Zed„ «       Z	ed„ «       Z
ed„ «       Zed„ «       Zed	„ «       Zed
„ «       Zed„ «       Zed„ «       Zed„ «       Zed„ «       Zed„ «       Zed„ «       Zed„ «       Zed„ «       Zed„ «       Zed„ «       Zed„ «       Zed„ «       Zed„ «       Zed„ «       Zed„ «       Zed„ «       Zed„ «       Zed„ «       Z ed„ «       Z!ed„ «       Z"ed„ «       Z#ed „ «       Z$ed!„ «       Z%ed"„ «       Z&ed#„ «       Z'ed$„ «       Z(ed%„ «       Z)ed&„ «       Z*ed'„ «       Z+ed(„ «       Z,ed)„ «       Z-y*)+ÚReferenceAnalysisc                 ó,   — t        j                  | «      S ©N)ÚsympyÚsympify©ÚcÚdtypes     úZ/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/torch/utils/_sympy/reference.pyÚconstantzReferenceAnalysis.constant'   ó   € ä�}‰}˜QÓÐó    c                 ó   — | |z  S r   © ©ÚaÚbs     r    Úor_zReferenceAnalysis.or_+   ó   € à�1‰uˆr#   c                 ó   — | |z  S r   r%   r&   s     r    Úand_zReferenceAnalysis.and_/   r*   r#   c                 ó    — t        | t        j                  «      st        |t        j                  «      rt        j                  | |«      S | |k(  S r   )Ú
isinstancer   ÚExprÚEqr&   s     r    ÚeqzReferenceAnalysis.eq3   s6   € ä�aœŸ™Ô$¬
°1´e·j±jÔ(AÜ—8‘8˜A˜q“>Ð!Ø�A‰vˆr#   c                 óD   — | j                  | j                  ||«      «      S r   )Únot_r1   ©Úclsr'   r(   s      r    ÚnezReferenceAnalysis.ne9   s   € à�x‰x˜Ÿ™˜q !›Ó%Ð%r#   c                 ó   — | |k  S r   r%   r&   s     r    ÚltzReferenceAnalysis.lt=   r*   r#   c                 ó   — | |kD  S r   r%   r&   s     r    ÚgtzReferenceAnalysis.gtA   r*   r#   c                 ó   — | |k  S r   r%   r&   s     r    ÚlezReferenceAnalysis.leE   ó   € à�A‰vˆr#   c                 ó   — | |k\  S r   r%   r&   s     r    ÚgezReferenceAnalysis.geI   r=   r#   c                 ó,   — t        | t        «      rJ ‚|  S r   )r.   Úbool©r'   s    r    r3   zReferenceAnalysis.not_M   s   € ä˜a¤Ô&Ð&Ð&Øˆrˆ	r#   c                 ó   — t        d| «      S )Ng      ð?©r   ©Úxs    r    Ú
reciprocalzReferenceAnalysis.reciprocalR   s   € ä˜C Ó#Ð#r#   c                 ó   — t        | d«      S )Né   ©r   rE   s    r    ÚsquarezReferenceAnalysis.squareV   ó   € ä˜A˜qÓ!Ð!r#   c                 ó   — t        | «      S r   )r   ©rF   r   s     r    Útrunc_to_intzReferenceAnalysis.trunc_to_intZ   ó   € ä˜!‹}Ðr#   c                 ó,   — t        j                  | «      S r   )r   ÚceilingrN   s     r    Úceil_to_intzReferenceAnalysis.ceil_to_int^   r"   r#   c                 ó,   — t        j                  | «      S r   )r   ÚfloorrN   s     r    Úfloor_to_intzReferenceAnalysis.floor_to_intb   s   € ä�{‰{˜1‹~Ðr#   c                 ó@   —  t        t        j                  «      | «      S r   )r   r   rU   rE   s    r    rU   zReferenceAnalysis.floorf   s   € à'Œ{œ5Ÿ;™;Ó'¨Ó*Ð*r#   c                 ó@   —  t        t        j                  «      | «      S r   )r   r   rR   rE   s    r    ÚceilzReferenceAnalysis.ceilj   s   € à)Œ{œ5Ÿ=™=Ó)¨!Ó,Ð,r#   c                 ó\   — |t         j                  k(  rt        | «      S t        d|› d�«      ‚©Nz	to_dtype z NYI)ÚtorchÚfloat64r   ÚNotImplementedErrorrN   s     r    Úto_dtypezReferenceAnalysis.to_dtypen   s,   € à”E—M‘MÒ!Ü˜1“:ÐÜ! I¨e¨W°DÐ"9Ó:Ð:r#   c                 ó   — t        | |«      S r   )r   ©rF   Úys     r    ÚmodzReferenceAnalysis.modt   ó   € ä�1�a‹yÐr#   c                 ó   — t        | «      S r   )ÚabsrE   s    r    rf   zReferenceAnalysis.absx   s   € ä�1‹vˆr#   c                 ó   — |  S r   r%   rE   s    r    ÚnegzReferenceAnalysis.neg|   s	   € àˆrˆ	r#   c                 ó   — t        | |«      S r   rD   r&   s     r    ÚtruedivzReferenceAnalysis.truediv€   rL   r#   c                 ó   — t        | |«      S r   )r
   r&   s     r    Úint_truedivzReferenceAnalysis.int_truediv„   s   € ä˜!˜QÓÐr#   c                 ó   — t        | |«      S r   )r	   r&   s     r    ÚfloordivzReferenceAnalysis.floordivˆ   s   € ä˜˜1‹~Ðr#   c                 ó   — t        d«      ‚)NzTODO: truncdiv©r^   r&   s     r    ÚtruncdivzReferenceAnalysis.truncdivŒ   s   € ä!Ð"2Ó3Ð3r#   c                 óB   —  t        t        j                  «      | |«      S r   )r   ÚoperatorÚaddr&   s     r    rt   zReferenceAnalysis.add�   ó   € à(Œ{œ8Ÿ<™<Ó(¨¨AÓ.Ð.r#   c                 ó&   — t        j                  |Ž S r   )r   ÚAdd)r5   Úargss     r    Úsym_sumzReferenceAnalysis.sym_sum”   s   € ä�y‰y˜$ÐÐr#   c                 óB   —  t        t        j                  «      | |«      S r   )r   rs   Úmulr&   s     r    r{   zReferenceAnalysis.mul˜   ru   r#   c                 óB   —  t        t        j                  «      | |«      S r   )r   rs   Úsubr&   s     r    r}   zReferenceAnalysis.subœ   ru   r#   c                 ó   — t        | «      S r   )r   rE   s    r    ÚexpzReferenceAnalysis.exp    ó   € ä  Ó#Ð#r#   c                 ó   — t        | «      S r   )r   rE   s    r    ÚlogzReferenceAnalysis.log¤   r€   r#   c                 ó   — t        | «      S r   )r   rE   s    r    Úlog2zReferenceAnalysis.log2¨   ó   € ä! !Ó$Ð$r#   c                 ó   — t        | «      S r   )r   rE   s    r    ÚsqrtzReferenceAnalysis.sqrt¬   r…   r#   c                 ó.   —  t        t        «      | |«      S r   )r   r   r&   s     r    ÚpowzReferenceAnalysis.pow°   s   € à$Œ{œ8Ó$ Q¨Ó*Ð*r#   c                 ó   — t        | |«      S r   rJ   r&   s     r    Úpow_by_naturalz ReferenceAnalysis.pow_by_natural´   rL   r#   c                 ó   — t        | |«      S r   )r   r&   s     r    ÚminimumzReferenceAnalysis.minimum¸   rd   r#   c                 ó   — t        | |«      S r   )r   r&   s     r    ÚmaximumzReferenceAnalysis.maximum¼   rd   r#   c                 ó   — t        | «      S r   )r   ©r'   r   s     r    Úround_to_intzReferenceAnalysis.round_to_intÀ   rP   r#   c                 ó   — t        | |«      S r   )r   r&   s     r    Úround_decimalzReferenceAnalysis.round_decimalÄ   rL   r#   c                 ó   — t        | |«      S r   )r   r&   s     r    Úbitwise_andzReferenceAnalysis.bitwise_andÈ   s   € ä$ Q¨Ó*Ð*r#   c                 ó   — t        | |«      S r   )r   r&   s     r    Ú
bitwise_orzReferenceAnalysis.bitwise_orÌ   s   € ä# A qÓ)Ð)r#   N).Ú__name__Ú
__module__Ú__qualname__Ústaticmethodr!   r)   r,   r1   Úclassmethodr6   r8   r:   r<   r?   r3   rG   rK   rO   rS   rV   rU   rY   r_   rc   rf   rh   rj   rl   rn   rq   rt   ry   r{   r}   r   r‚   r„   r‡   r‰   r‹   r�   r�   r’   r”   r–   r˜   r%   r#   r    r   r   &   s4  „ Øñ ó ð ð ñó ðð ñó ðð ñó ðð
 ñ&ó ð&ð ñó ðð ñó ðð ñó ðð ñó ðð ñó ðð ñ$ó ð$ð ñ"ó ð"ð ñó ðð ñ ó ð ð ñó ðð ñ+ó ð+ð ñ-ó ð-ð ñ;ó ð;ð
 ñó ðð ñó ðð ñó ðð ñ"ó ð"ð ñ ó ð ð ñó ðð ñ4ó ð4ð ñ/ó ð/ð ñ ó ð ð ñ/ó ð/ð ñ/ó ð/ð ñ$ó ð$ð ñ$ó ð$ð ñ%ó ð%ð ñ%ó ð%ð ñ+ó ð+ð ñ"ó ð"ð ñó ðð ñó ðð ñó ðð ñ"ó ð"ð ñ+ó ð+ð ñ*ó ñ*r#   r   c                   óŒ  — e Zd Zed„ «       Zed„ «       Zed„ «       Zed„ «       Zed„ «       Z	ed„ «       Z
ed„ «       Zed„ «       Zed	„ «       Zed
„ «       Zed„ «       Zed„ «       Zed„ «       Zed„ «       Zed„ «       Zed„ «       Zed„ «       Zed„ «       Zed„ «       Zed„ «       Zed„ «       Zed„ «       Zed„ «       Zed„ «       Zy)ÚPythonReferenceAnalysisc                 óÌ   — |t         j                  u rt        | «      S |t         j                  u rt	        | «      S |t         j
                  u rt        | «      S t        d|› �«      ‚)Núunrecognized dtype )r\   Úint64ÚintÚdoubleÚfloatrA   ÚAssertionErrorr   s     r    r!   z PythonReferenceAnalysis.constantÕ   sT   € à”E—K‘KÑÜ�q“6ˆMØ”e—l‘lÑ"Ü˜“8ˆOØ”e—j‘jÑ Ü˜“7ˆNä Ð#6°u°gÐ!>Ó?Ð?r#   c                 ó,   — t        j                  | «      S r   )r\   Úsym_notrB   s    r    r3   zPythonReferenceAnalysis.not_à   r"   r#   c                 óØ   — t        |«      dk(  ryt        |«      dk(  r|d   S | j                  |d   |d   «      }t        dt        |«      «      D ]  }| j                  |||   «      }Œ |S )Nr   é   rI   )Úlenrt   Úrange)r5   rx   ÚaccÚis       r    ry   zPythonReferenceAnalysis.sym_sumä   so   € äˆt‹9˜Š>ØÜˆt‹9˜Š>Ø˜‘7ˆNØ�g‰g�d˜1‘g˜t A™wÓ'ˆÜ�qœ#˜d›)Ó$ò 	(ˆAØ—'‘'˜#˜t A™wÓ'‰Cð	(àˆ
r#   c                 ó   — | |z  S r   r%   r&   s     r    rn   z PythonReferenceAnalysis.floordivï   r=   r#   c                 ó   — | |z  S r   r%   ra   s     r    rc   zPythonReferenceAnalysis.modó   r*   r#   c                 ó   — | |z  S r   r%   r&   s     r    rq   z PythonReferenceAnalysis.truncdiv÷   r*   r#   c                 óp   — |t         j                  k(  rt        j                  | «      S t        d|› d�«      ‚r[   )r\   r]   Ú	sym_floatr^   rN   s     r    r_   z PythonReferenceAnalysis.to_dtypeû   s1   € à”E—M‘MÒ!Ü—?‘? 1Ó%Ð%Ü! I¨e¨W°DÐ"9Ó:Ð:r#   c                 ó   — t        d«      ‚)Nz!exp is not valid shape sympy expr©r¦   rE   s    r    r   zPythonReferenceAnalysis.exp  ó   € äÐ@ÓAÐAr#   c                 ó   — t        d«      ‚)Nz!log is not valid shape sympy exprrµ   rE   s    r    r‚   zPythonReferenceAnalysis.log  r¶   r#   c                 ó,   — t        j                  | «      S r   )r\   Ú	_sym_log2rE   s    r    r„   zPythonReferenceAnalysis.log2	  ó   € ä�‰˜qÓ!Ð!r#   c                 ó,   — t        j                  | «      S r   )r\   Ú	_sym_sqrtrE   s    r    r‡   zPythonReferenceAnalysis.sqrt  rº   r#   c                 ó.   — t        j                  | |«      S r   )r\   Úsym_minr&   s     r    r�   zPythonReferenceAnalysis.minimum  ó   € ä�}‰}˜Q Ó"Ð"r#   c                 ó.   — t        j                  | |«      S r   )r\   Úsym_maxr&   s     r    r�   zPythonReferenceAnalysis.maximum  r¿   r#   c                 ó,   — t        j                  | «      S r   )ÚmathrU   rN   s     r    rV   z$PythonReferenceAnalysis.floor_to_int  s   € ä�z‰z˜!‹}Ðr#   c                 ó,   — t        j                  | «      S r   )rÃ   rY   rN   s     r    rS   z#PythonReferenceAnalysis.ceil_to_int  s   € ä�y‰y˜‹|Ðr#   c                 ó>   — t        t        j                  | «      «      S r   )r¥   rÃ   rU   rE   s    r    rU   zPythonReferenceAnalysis.floor!  s   € ä”T—Z‘Z “]Ó#Ð#r#   c                 ó>   — t        t        j                  | «      «      S r   )r¥   rÃ   rY   rE   s    r    rY   zPythonReferenceAnalysis.ceil%  s   € ä”T—Y‘Y˜q“\Ó"Ð"r#   c                 ó   — | |z  S r   r%   r&   s     r    rj   zPythonReferenceAnalysis.truediv)  r*   r#   c                 ó   — | |z  S r   r%   r&   s     r    r‰   zPythonReferenceAnalysis.pow-  s   € à�!‰tˆr#   c                 ó   — | |z  S r   r%   r&   s     r    r‹   z&PythonReferenceAnalysis.pow_by_natural1  s   € ð
 �!‰tˆr#   c                 ó   — t        | «      S r   ©Úroundr‘   s     r    r’   z$PythonReferenceAnalysis.round_to_int8  s   € ä�Q‹xˆr#   c                 ó   — t        | |¬«      S )N)ÚndigitsrË   r&   s     r    r”   z%PythonReferenceAnalysis.round_decimal<  s   € ä�Q Ô"Ð"r#   c                 ó   — | |z  S r   r%   r&   s     r    r–   z#PythonReferenceAnalysis.bitwise_and@  r*   r#   c                 ó   — | |z  S r   r%   r&   s     r    r˜   z"PythonReferenceAnalysis.bitwise_orD  r*   r#   N)r™   rš   r›   rœ   r!   r3   r�   ry   rn   rc   rq   r_   r   r‚   r„   r‡   r�   r�   rV   rS   rU   rY   rj   r‰   r‹   r’   r”   r–   r˜   r%   r#   r    rŸ   rŸ   Ô   sæ  „ Øñ@ó ð@ð ñ ó ð ð ñó ðð ñó ðð ñó ðð ñó ðð ñ;ó ð;ð
 ñBó ðBð ñBó ðBð ñ"ó ð"ð ñ"ó ð"ð ñ#ó ð#ð ñ#ó ð#ð ñó ðð ñó ðð ñ$ó ð$ð ñ#ó ð#ð ñó ðð ñó ðð ñó ðð ñó ðð ñ#ó ð#ð ñó ðð ñó ñr#   rŸ   c                   ó   — e Zd Zed„ «       Zy)Ú OptimizedPythonReferenceAnalysisc                 ó,   — t        j                  | «      S r   )r\   ry   )rx   s    r    ry   z(OptimizedPythonReferenceAnalysis.sym_sumL  s   € ä�}‰}˜TÓ"Ð"r#   N)r™   rš   r›   rœ   ry   r%   r#   r    rÒ   rÒ   K  s   „ Øñ#ó ñ#r#   rÒ   rF   r   Úreturnc                 ój   — t         j                  j                  j                  j	                  | |«      S r   )r\   ÚopsÚprimsÚconvert_element_typeÚdefaultrN   s     r    Ú	_to_dtyperÚ   Q  s#   € Ü�9‰9�?‰?×/Ñ/×7Ñ7¸¸5ÓAÐAr#   c                   ó  — e Zd Zed„ «       Zed„ «       Zed„ «       Zed„ «       Zed„ «       Zed„ «       Z	e
d„ «       Zed„ «       Zed	„ «       Zed
„ «       Zed„ «       Zed„ «       Zed„ «       Zed„ «       Zed„ «       Zed„ «       Zed„ «       Zed„ «       Zed„ «       Zed„ «       Zed„ «       Zed„ «       Zed„ «       Zed„ «       Zed„ «       Zed„ «       Zed„ «       Zed„ «       Z ed„ «       Z!ed„ «       Z"ed„ «       Z#ed „ «       Z$ed!„ «       Z%ed"„ «       Z&ed#„ «       Z'ed$„ «       Z(ed%„ «       Z)ed&„ «       Z*ed'„ «       Z+ed(„ «       Z,ed)„ «       Z-ed*„ «       Z.ed+„ «       Z/ed,„ «       Z0ed-„ «       Z1ed.„ «       Z2ed/„ «       Z3ed0„ «       Z4ed1„ «       Z5y2)3ÚTensorReferenceAnalysisc                 ó<  — |t         j                  u rt        | «      }nJ|t         j                  u rt	        | «      }n,|t         j
                  u rt        | «      }nt        d|› �«      ‚t         j                  j                  j                  j                  ||¬«      S )Nr¡   )r   )r\   r¢   r£   r¤   r¥   rA   r¦   rÖ   ÚatenÚscalar_tensorrÙ   )r   r   Úds      r    r!   z TensorReferenceAnalysis.constantf  sz   € ð ”E—K‘KÑÜ�A“‰AØ”e—l‘lÑ"Ü�a“‰AØ”e—j‘jÑ Ü�Q“‰Aä Ð#6°u°gÐ!>Ó?Ð?Ü�y‰y�~‰~×+Ñ+×3Ñ3°A¸UÐ3ÓCÐCr#   c                 ój   — t         j                  j                  j                  j	                  | |«      S r   )r\   rÖ   rÞ   Ú
logical_orrÙ   r&   s     r    r)   zTensorReferenceAnalysis.or_s  s#   € ä�y‰y�~‰~×(Ñ(×0Ñ0°°AÓ6Ð6r#   c                 ój   — t         j                  j                  j                  j	                  | |«      S r   )r\   rÖ   rÞ   Úlogical_andrÙ   r&   s     r    r,   zTensorReferenceAnalysis.and_w  s#   € ä�y‰y�~‰~×)Ñ)×1Ñ1°!°QÓ7Ð7r#   c                 óV   — t         j                  j                  j                  | |«      S r   )r\   rÖ   rÞ   r–   r&   s     r    r–   z#TensorReferenceAnalysis.bitwise_and{  s   € ä�y‰y�~‰~×)Ñ)¨!¨QÓ/Ð/r#   c                 óV   — t         j                  j                  j                  | |«      S r   )r\   rÖ   rÞ   r˜   r&   s     r    r˜   z"TensorReferenceAnalysis.bitwise_or  s   € ä�y‰y�~‰~×(Ñ(¨¨AÓ.Ð.r#   c                 ój   — t         j                  j                  j                  j	                  | |«      S r   )r\   rÖ   rÞ   r1   ÚTensorr&   s     r    r1   zTensorReferenceAnalysis.eqƒ  ó#   € ä�y‰y�~‰~× Ñ ×'Ñ'¨¨1Ó-Ð-r#   c                 ój   — t         j                  j                  j                  j	                  ||«      S r   )r\   rÖ   rÞ   r6   rè   r4   s      r    r6   zTensorReferenceAnalysis.ne‡  ré   r#   c                 ój   — t         j                  j                  j                  j	                  | |«      S r   )r\   rÖ   rÞ   r8   rè   r&   s     r    r8   zTensorReferenceAnalysis.lt‹  ré   r#   c                 ój   — t         j                  j                  j                  j	                  | |«      S r   )r\   rÖ   rÞ   r:   rè   r&   s     r    r:   zTensorReferenceAnalysis.gt�  ré   r#   c                 ój   — t         j                  j                  j                  j	                  | |«      S r   )r\   rÖ   rÞ   r<   rè   r&   s     r    r<   zTensorReferenceAnalysis.le“  ré   r#   c                 ój   — t         j                  j                  j                  j	                  | |«      S r   )r\   rÖ   rÞ   r?   rè   r&   s     r    r?   zTensorReferenceAnalysis.ge—  ré   r#   c                 óh   — t         j                  j                  j                  j	                  | «      S r   )r\   rÖ   rÞ   Úlogical_notrÙ   rB   s    r    r3   zTensorReferenceAnalysis.not_›  s!   € ä�y‰y�~‰~×)Ñ)×1Ñ1°!Ó4Ð4r#   c                 óh   — t         j                  j                  j                  j	                  | «      S r   )r\   rÖ   rÞ   rG   rÙ   rE   s    r    rG   z"TensorReferenceAnalysis.reciprocalŸ  s!   € ä�y‰y�~‰~×(Ñ(×0Ñ0°Ó3Ð3r#   c                 óh   — t         j                  j                  j                  j	                  | «      S r   )r\   rÖ   rÞ   rK   rÙ   rE   s    r    rK   zTensorReferenceAnalysis.square£  s#   € ô �y‰y�~‰~×$Ñ$×,Ñ,¨QÓ/Ð/r#   c                 ó|   — t        t        j                  j                  j                  j                  | «      |«      S r   )rÚ   r\   rÖ   rÞ   ÚtruncrÙ   rN   s     r    rO   z$TensorReferenceAnalysis.trunc_to_int¨  ó(   € äœŸ™Ÿ™×-Ñ-×5Ñ5°aÓ8¸%Ó@Ð@r#   c                 ó|   — t        t        j                  j                  j                  j                  | «      |«      S r   )rÚ   r\   rÖ   rÞ   rY   rÙ   rN   s     r    rS   z#TensorReferenceAnalysis.ceil_to_int¬  s(   € äœŸ™Ÿ™×,Ñ,×4Ñ4°QÓ7¸Ó?Ð?r#   c                 ó|   — t        t        j                  j                  j                  j                  | «      |«      S r   )rÚ   r\   rÖ   rÞ   rU   rÙ   rN   s     r    rV   z$TensorReferenceAnalysis.floor_to_int°  rõ   r#   c                 óh   — t         j                  j                  j                  j	                  | «      S r   )r\   rÖ   rÞ   rU   rÙ   rE   s    r    rU   zTensorReferenceAnalysis.floor´  ó!   € ä�y‰y�~‰~×#Ñ#×+Ñ+¨AÓ.Ð.r#   c                 óh   — t         j                  j                  j                  j	                  | «      S r   )r\   rÖ   rÞ   rY   rÙ   rE   s    r    rY   zTensorReferenceAnalysis.ceil¸  ó!   € ä�y‰y�~‰~×"Ñ"×*Ñ*¨1Ó-Ð-r#   c                 ó   — t        | |«      S r   )rÚ   rN   s     r    r_   z TensorReferenceAnalysis.to_dtype¼  s   € ä˜˜EÓ"Ð"r#   c                 ó   — t        d«      ‚)Nz8no C-style modulus operation available from frontend atmrp   ra   s     r    rc   zTensorReferenceAnalysis.modÀ  s   € ô "ØFó
ð 	
r#   c                 óh   — t         j                  j                  j                  j	                  | «      S r   )r\   rÖ   rÞ   rf   rÙ   rE   s    r    rf   zTensorReferenceAnalysis.absÇ  ó!   € ä�y‰y�~‰~×!Ñ!×)Ñ)¨!Ó,Ð,r#   c                 óh   — t         j                  j                  j                  j	                  | «      S r   )r\   rÖ   rÞ   rh   rÙ   rE   s    r    rh   zTensorReferenceAnalysis.negË  rÿ   r#   c                 ój   — t         j                  j                  j                  j	                  | |«      S r   )r\   rÖ   rÞ   Útrue_dividerè   r&   s     r    rj   zTensorReferenceAnalysis.truedivÏ  s#   € ä�y‰y�~‰~×)Ñ)×0Ñ0°°AÓ6Ð6r#   c                 ó   — t        d«      ‚)Nz8Python int truediv difficult to implement in PyTorch atm)r^   r\   rÖ   rÞ   r  rÙ   rÚ   r]   r&   s     r    rl   z#TensorReferenceAnalysis.int_truedivÓ  ó   € ä!ØFó
ð 	
r#   c                 ón   — t         j                  j                  j                  j	                  | |d¬«      S )NrU   )Úrounding_mode)r\   rÖ   rÞ   ÚdivÚTensor_moder&   s     r    rn   z TensorReferenceAnalysis.floordivà  s(   € ä�y‰y�~‰~×!Ñ!×-Ñ-¨a°À'Ð-ÓJÐJr#   c                 ó   — t        d«      ‚)Nz9no C-style truncdiv operation available from frontend atmrp   r&   s     r    rq   z TensorReferenceAnalysis.truncdivä  s   € ä!ØGó
ð 	
r#   c                 ój   — t         j                  j                  j                  j	                  | |«      S r   )r\   rÖ   rÞ   rt   rè   r&   s     r    rt   zTensorReferenceAnalysis.addê  ó#   € ä�y‰y�~‰~×!Ñ!×(Ñ(¨¨AÓ.Ð.r#   c                 ój   — t         j                  j                  j                  j	                  | |«      S r   )r\   rÖ   rÞ   r{   rè   r&   s     r    r{   zTensorReferenceAnalysis.mulî  r  r#   c                 ój   — t         j                  j                  j                  j	                  | |«      S r   )r\   rÖ   rÞ   r}   rè   r&   s     r    r}   zTensorReferenceAnalysis.subò  r  r#   c                 óh   — t         j                  j                  j                  j	                  | «      S r   )r\   rÖ   rÞ   r   rÙ   rE   s    r    r   zTensorReferenceAnalysis.expö  rÿ   r#   c                 óh   — t         j                  j                  j                  j	                  | «      S r   )r\   rÖ   rÞ   r‚   rÙ   rE   s    r    r‚   zTensorReferenceAnalysis.logú  rÿ   r#   c                 óh   — t         j                  j                  j                  j	                  | «      S r   )r\   rÖ   rÞ   r„   rÙ   rE   s    r    r„   zTensorReferenceAnalysis.log2þ  rû   r#   c                 óh   — t         j                  j                  j                  j	                  | «      S r   )r\   rÖ   rÞ   r‡   rÙ   rE   s    r    r‡   zTensorReferenceAnalysis.sqrt  rû   r#   c                 óh   — t         j                  j                  j                  j	                  | «      S r   )r\   rÖ   rÞ   ÚsinrÙ   rE   s    r    r  zTensorReferenceAnalysis.sin  rÿ   r#   c                 óh   — t         j                  j                  j                  j	                  | «      S r   )r\   rÖ   rÞ   ÚcosrÙ   rE   s    r    r  zTensorReferenceAnalysis.cos
  rÿ   r#   c                 óh   — t         j                  j                  j                  j	                  | «      S r   )r\   rÖ   rÞ   ÚtanhrÙ   rE   s    r    r  zTensorReferenceAnalysis.tanh  rû   r#   c                 óh   — t         j                  j                  j                  j	                  | «      S r   )r\   rÖ   rÞ   ÚsinhrÙ   rE   s    r    r  zTensorReferenceAnalysis.sinh  rû   r#   c                 óh   — t         j                  j                  j                  j	                  | «      S r   )r\   rÖ   rÞ   ÚcoshrÙ   rE   s    r    r  zTensorReferenceAnalysis.cosh  rû   r#   c                 óh   — t         j                  j                  j                  j	                  | «      S r   )r\   rÖ   rÞ   ÚtanrÙ   rE   s    r    r  zTensorReferenceAnalysis.tan  rÿ   r#   c                 óh   — t         j                  j                  j                  j	                  | «      S r   )r\   rÖ   rÞ   ÚacosrÙ   rE   s    r    r  zTensorReferenceAnalysis.acos  rû   r#   c                 óh   — t         j                  j                  j                  j	                  | «      S r   )r\   rÖ   rÞ   ÚatanrÙ   rE   s    r    r!  zTensorReferenceAnalysis.atan"  rû   r#   c                 óh   — t         j                  j                  j                  j	                  | «      S r   )r\   rÖ   rÞ   ÚasinrÙ   rE   s    r    r#  zTensorReferenceAnalysis.asin&  rû   r#   c                 ój   — t         j                  j                  j                  j	                  | |«      S r   ©r\   rÖ   rÞ   r‰   ÚTensor_Tensorr&   s     r    r‰   zTensorReferenceAnalysis.pow*  s#   € ä�y‰y�~‰~×!Ñ!×/Ñ/°°1Ó5Ð5r#   c                 ój   — t         j                  j                  j                  j	                  | |«      S r   r%  r&   s     r    r‹   z&TensorReferenceAnalysis.pow_by_natural.  s%   € ô �y‰y�~‰~×!Ñ!×/Ñ/°°1Ó5Ð5r#   c                 ój   — t         j                  j                  j                  j	                  | |«      S r   )r\   rÖ   rÞ   r�   rÙ   r&   s     r    r�   zTensorReferenceAnalysis.minimum3  ó#   € ä�y‰y�~‰~×%Ñ%×-Ñ-¨a°Ó3Ð3r#   c                 ój   — t         j                  j                  j                  j	                  | |«      S r   )r\   rÖ   rÞ   r�   rÙ   r&   s     r    r�   zTensorReferenceAnalysis.maximum7  r)  r#   c                 óh   — t         j                  j                  j                  j	                  | «      S r   )r\   rÖ   rÞ   rÌ   rÙ   r‘   s     r    r’   z$TensorReferenceAnalysis.round_to_int;  rù   r#   c                 ó   — t        d«      ‚)Nz8round decimal doesn't support Tensor second argument atmrp   r&   s     r    r”   z%TensorReferenceAnalysis.round_decimal?  r  r#   N)6r™   rš   r›   rœ   r!   r)   r,   r–   r˜   r1   r�   r6   r8   r:   r<   r?   r3   rG   rK   rO   rS   rV   rU   rY   r_   rc   rf   rh   rj   rl   rn   rq   rt   r{   r}   r   r‚   r„   r‡   r  r  r  r  r  r  r  r!  r#  r‰   r‹   r�   r�   r’   r”   r%   r#   r    rÜ   rÜ   c  sà  „ ð ñ
Dó ð
Dð ñ7ó ð7ð ñ8ó ð8ð ñ0ó ð0ð ñ/ó ð/ð ñ.ó ð.ð ñ.ó ð.ð ñ.ó ð.ð ñ.ó ð.ð ñ.ó ð.ð ñ.ó ð.ð ñ5ó ð5ð ñ4ó ð4ð ñ0ó ð0ð ñAó ðAð ñ@ó ð@ð ñAó ðAð ñ/ó ð/ð ñ.ó ð.ð ñ#ó ð#ð ñ
ó ð
ð ñ-ó ð-ð ñ-ó ð-ð ñ7ó ð7ð ñ

ó ð

ð ñKó ðKð ñ
ó ð
ð
 ñ/ó ð/ð ñ/ó ð/ð ñ/ó ð/ð ñ-ó ð-ð ñ-ó ð-ð ñ.ó ð.ð ñ.ó ð.ð ñ-ó ð-ð ñ-ó ð-ð ñ.ó ð.ð ñ.ó ð.ð ñ.ó ð.ð ñ-ó ð-ð ñ.ó ð.ð ñ.ó ð.ð ñ.ó ð.ð ñ6ó ð6ð ñ6ó ð6ð ñ4ó ð4ð ñ4ó ð4ð ñ/ó ð/ð ñ
ó ñ
r#   rÜ   )!rÃ   rs   Útypingr   r   r\   Útorch.utils._sympy.functionsr   r   r   r   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   rŸ   rÒ   rè   r   rÚ   rÜ   r%   r#   r    ú<module>r/     s’   ðã Û Ý ã ã ÷÷ ÷ ÷ ÷ ñ ÷:h*ñ h*ô\rÐ/ô rôn#Ð'>ô #ðB�—‘ð B e§k¡kð B°e·l±ló B÷$`
ò `
r#   