Ë
    S²j!9  ã                   ó,  — 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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)ÚNoReturn)Ú_keep_floatÚBitwiseFn_bitwise_andÚBitwiseFn_bitwise_orÚBitwiseFn_bitwise_xorÚ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ef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     ú[/var/www/html/ia-enhanced/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_0   r+   r$   c                 ó    — t        | t        j                  «      st        |t        j                  «      rt        j                  | |«      S | |k(  S r   )Ú
isinstancer   ÚExprÚEqr'   s     r!   ÚeqzReferenceAnalysis.eq4   s6   € ä�aœŸ™Ô$¬
°1´e·j±jÔ(AÜ—8‘8˜A˜q“>Ð!Ø�A‰vˆr$   c                 óD   — | j                  | j                  ||«      «      S r   )Únot_r2   ©Úclsr(   r)   s      r!   ÚnezReferenceAnalysis.ne:   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.gtB   r+   r$   c                 ó   — | |k  S r   r&   r'   s     r!   ÚlezReferenceAnalysis.leF   ó   € à�A‰vˆr$   c                 ó   — | |k\  S r   r&   r'   s     r!   ÚgezReferenceAnalysis.geJ   r>   r$   c                 ó>   — t        | t        «      rt        d«      ‚|  S )Nznot_ needs sympy expr)r/   ÚboolÚAssertionError©r(   s    r!   r4   zReferenceAnalysis.not_N   s   € ä�aœÔÜ Ð!8Ó9Ð9Øˆrˆ	r$   c                 ó   — t        d| «      S )Ng      ð?©r	   ©Úxs    r!   Ú
reciprocalzReferenceAnalysis.reciprocalT   s   € ä˜C Ó#Ð#r$   c                 ó   — t        | d«      S )Né   ©r   rG   s    r!   ÚsquarezReferenceAnalysis.squareX   ó   € ä˜A˜qÓ!Ð!r$   c                 ó   — t        | «      S r   )r   ©rH   r    s     r!   Útrunc_to_intzReferenceAnalysis.trunc_to_int\   ó   € ä˜!‹}Ðr$   c                 ó,   — t        j                  | «      S r   )r   ÚceilingrP   s     r!   Úceil_to_intzReferenceAnalysis.ceil_to_int`   r#   r$   c                 ó,   — t        j                  | «      S r   )r   ÚfloorrP   s     r!   Úfloor_to_intzReferenceAnalysis.floor_to_intd   s   € ä�{‰{˜1‹~Ðr$   c                 ó@   —  t        t        j                  «      | «      S r   )r   r   rW   rG   s    r!   rW   zReferenceAnalysis.floorh   s   € à'Œ{œ5Ÿ;™;Ó'¨Ó*Ð*r$   c                 ó@   —  t        t        j                  «      | «      S r   )r   r   rT   rG   s    r!   ÚceilzReferenceAnalysis.ceill   s   € à)Œ{œ5Ÿ=™=Ó)¨!Ó,Ð,r$   c                 ó\   — |t         j                  k(  rt        | «      S t        d|› d�«      ‚©Nz	to_dtype z NYI)ÚtorchÚfloat64r   ÚNotImplementedErrorrP   s     r!   Úto_dtypezReferenceAnalysis.to_dtypep   s,   € à”E—M‘MÒ!Ü˜1“:ÐÜ! I¨e¨W°DÐ"9Ó:Ð:r$   c                 ó   — t        | |«      S r   )r   ©rH   Úys     r!   ÚmodzReferenceAnalysis.modv   ó   € ä�1�a‹yÐr$   c                 ó   — t        | «      S r   )ÚabsrG   s    r!   rh   zReferenceAnalysis.absz   s   € ä�1‹vˆr$   c                 ó   — |  S r   r&   rG   s    r!   ÚnegzReferenceAnalysis.neg~   s	   € àˆrˆ	r$   c                 ó   — t        | |«      S r   rF   r'   s     r!   ÚtruedivzReferenceAnalysis.truediv‚   rN   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$   Úreturnc                 ó   — 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!   rw   zReferenceAnalysis.add’   ó   € à(Œ{œ8Ÿ<™<Ó(¨¨AÓ.Ð.r$   c                 ó&   — t        j                  |Ž S r   )r   ÚAdd)r6   Úargss     r!   Úsym_sumzReferenceAnalysis.sym_sum–   s   € ä�y‰y˜$ÐÐr$   c                 óB   —  t        t        j                  «      | |«      S r   )r   rv   Úmulr'   s     r!   r~   zReferenceAnalysis.mulš   rx   r$   c                 óB   —  t        t        j                  «      | |«      S r   )r   rv   Úsubr'   s     r!   r€   zReferenceAnalysis.subž   rx   r$   c                 ó   — t        | «      S r   )r   rG   s    r!   ÚexpzReferenceAnalysis.exp¢   ó   € ä  Ó#Ð#r$   c                 ó   — t        | «      S r   )r   rG   s    r!   ÚlogzReferenceAnalysis.log¦   rƒ   r$   c                 ó   — t        | «      S r   )r   rG   s    r!   Úlog2zReferenceAnalysis.log2ª   ó   € ä! !Ó$Ð$r$   c                 ó   — t        | «      S r   )r   rG   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   rL   r'   s     r!   Úpow_by_naturalz ReferenceAnalysis.pow_by_natural·   rN   r$   c                 ó   — t        | |«      S r   )r   r'   s     r!   ÚminimumzReferenceAnalysis.minimum»   rf   r$   c                 ó   — t        | |«      S r   )r   r'   s     r!   ÚmaximumzReferenceAnalysis.maximum¿   rf   r$   c                 ó   — t        | «      S r   )r   ©r(   r    s     r!   Úround_to_intzReferenceAnalysis.round_to_intÃ   rR   r$   c                 ó   — t        | |«      S r   )r   r'   s     r!   Úround_decimalzReferenceAnalysis.round_decimalÇ   rN   r$   c                 ó   — t        | |«      S r   )r   r'   s     r!   Úbitwise_andzReferenceAnalysis.bitwise_andË   ó   € ä$ Q¨Ó*Ð*r$   c                 ó   — t        | |«      S r   )r   r'   s     r!   Ú
bitwise_orzReferenceAnalysis.bitwise_orÏ   s   € ä# A qÓ)Ð)r$   c                 ó   — t        | |«      S r   )r   r'   s     r!   Úbitwise_xorzReferenceAnalysis.bitwise_xorÓ   rš   r$   N)0Ú__name__Ú
__module__Ú__qualname__Ústaticmethodr"   r*   r-   r2   Úclassmethodr7   r9   r;   r=   r@   r4   rI   rM   rQ   rU   rX   rW   r[   ra   re   rh   rj   rl   rn   rp   r   rt   rw   r|   r~   r€   r‚   r…   r‡   rŠ   rŒ   rŽ   r�   r’   r•   r—   r™   rœ   rž   r&   r$   r!   r   r   '   sO  „ Øñ ó ð ð ñó ðð ñó ðð ñó ðð
 ñ&ó ð&ð ñó ðð ñó ðð ñó ðð ñó ðð ñó ðð
 ñ$ó ð$ð ñ"ó ð"ð ñó ðð ñ ó ð ð ñó ðð ñ+ó ð+ð ñ-ó ð-ð ñ;ó ð;ð
 ñó ðð ñó ðð ñó ðð ñ"ó ð"ð ñ ó ð ð ñó ðð ð4˜(ò 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	efd
„«       Zed	ef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ÚfloatrB   rC   r   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_notrD   s    r!   r4   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   é   rK   )Úlenrw   Úrange)r6   r{   ÚaccÚis       r!   r|   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!   rp   z PythonReferenceAnalysis.floordivö   r>   r$   c                 ó   — | |z  S r   r&   rc   s     r!   re   zPythonReferenceAnalysis.modú   r+   r$   c                 ó   — | |z  S r   r&   rc   s     r!   Ú
python_modz"PythonReferenceAnalysis.python_modþ   r+   r$   c                 ó   — | |z  S r   r&   r'   s     r!   rt   z PythonReferenceAnalysis.truncdiv  r+   r$   c                 óp   — |t         j                  k(  rt        j                  | «      S t        d|› d�«      ‚r]   )r^   r_   Ú	sym_floatr`   rP   s     r!   ra   z PythonReferenceAnalysis.to_dtype  s1   € à”E—M‘MÒ!Ü—?‘? 1Ó%Ð%Ü! I¨e¨W°DÐ"9Ó:Ð:r$   rq   c                 ó   — t        d«      ‚)Nz!exp is not valid shape sympy expr©rC   rG   s    r!   r‚   zPythonReferenceAnalysis.exp  ó   € äÐ@ÓAÐAr$   c                 ó   — t        d«      ‚)Nz!log is not valid shape sympy exprr¼   rG   s    r!   r…   zPythonReferenceAnalysis.log  r½   r$   c                 ó,   — t        j                  | «      S r   )r^   Ú	_sym_log2rG   s    r!   r‡   zPythonReferenceAnalysis.log2  ó   € ä�‰˜qÓ!Ð!r$   c                 ó,   — t        j                  | «      S r   )r^   Ú	_sym_sqrtrG   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   )ÚmathrW   rP   s     r!   rX   z$PythonReferenceAnalysis.floor_to_int$  s   € ä�z‰z˜!‹}Ðr$   c                 ó,   — t        j                  | «      S r   )rÊ   r[   rP   s     r!   rU   z#PythonReferenceAnalysis.ceil_to_int(  s   € ä�y‰y˜‹|Ðr$   c                 ó>   — t        t        j                  | «      «      S r   )r«   rÊ   rW   rG   s    r!   rW   zPythonReferenceAnalysis.floor,  s   € ä”T—Z‘Z “]Ó#Ð#r$   c                 ó>   — t        t        j                  | «      «      S r   )r«   rÊ   r[   rG   s    r!   r[   zPythonReferenceAnalysis.ceil0  s   € ä”T—Y‘Y˜q“\Ó"Ð"r$   c                 ó   — | |z  S r   r&   r'   s     r!   rl   zPythonReferenceAnalysis.truediv4  r+   r$   c                 ó   — | |z  S r   r&   r'   s     r!   rŒ   zPythonReferenceAnalysis.pow8  s   € à�!‰tˆr$   c                 ó   — | |z  S r   r&   r'   s     r!   rŽ   z&PythonReferenceAnalysis.pow_by_natural<  s   € ð
 �!‰tˆr$   c                 ó   — t        | «      S r   ©Úroundr”   s     r!   r•   z$PythonReferenceAnalysis.round_to_intC  s   € ä�Q‹xˆr$   c                 ó   — t        | |¬«      S )N)ÚndigitsrÒ   r'   s     r!   r—   z%PythonReferenceAnalysis.round_decimalG  s   € ä�Q Ô"Ð"r$   c                 ó   — | |z  S r   r&   r'   s     r!   r™   z#PythonReferenceAnalysis.bitwise_andK  r+   r$   c                 ó   — | |z  S r   r&   r'   s     r!   rœ   z"PythonReferenceAnalysis.bitwise_orO  r+   r$   c                 ó   — | |z  S r   r&   r'   s     r!   rž   z#PythonReferenceAnalysis.bitwise_xorS  r+   r$   c                 ó
   — | |fS r   r&   )ÚexprÚconds     r!   Úexpr_cond_pairz&PythonReferenceAnalysis.expr_cond_pairW  s   € à�dˆ|Ðr$   c                  óp   — | d   d   }t        | d d «      D ]  \  }}t        j                  |||«      }Œ |S )Néÿÿÿÿr   )Úreversedr^   Úsym_ite)ÚpairsÚresultrÚ   rÛ   s       r!   Ú	piecewisez!PythonReferenceAnalysis.piecewise[  sF   € ð
 �r‘˜1‘ˆÜ" 5¨¨" :Ó.ò 	7‰JˆD�$Ü—]‘] 4¨¨vÓ6‰Fð	7àˆr$   N)"rŸ   r    r¡   r¢   r"   r4   r£   r|   rp   re   r·   rt   ra   r   r‚   r…   r‡   rŠ   r�   r’   rX   rU   rW   r[   rl   rŒ   rŽ   r•   r—   r™   rœ   rž   rÜ   rã   r&   r$   r!   r¥   r¥   Û   sF  „ Øñ@ó ð@ð ñ ó ð ð ñó ðð ñó ðð ñó ðð ñó ðð ñó ðð ñ;ó ð;ð
 ðB�(ò Bó ðBð ðB�(ò Bó ðBð ñ"ó ð"ð ñ"ó ð"ð ñ#ó ð#ð ñ#ó ð#ð ñó ðð ñó ðð ñ$ó ð$ð ñ#ó ð#ð ñó ðð ñó ðð ñó ðð ñó ðð ñ#ó ð#ð ñó ðð ñó ðð ñó ðð ñó ðð ñó ñr$   r¥   c                   ó   — e Zd Zed„ «       Zy)Ú OptimizedPythonReferenceAnalysisc                 ó,   — t        j                  | «      S r   )r^   r|   )r{   s    r!   r|   z(OptimizedPythonReferenceAnalysis.sym_sumi  s   € ä�}‰}˜TÓ"Ð"r$   N)rŸ   r    r¡   r¢   r|   r&   r$   r!   rå   rå   h  s   „ Øñ#ó ñ#r$   rå   rH   r    rq   c                 ój   — t         j                  j                  j                  j	                  | |«      S r   )r^   ÚopsÚprimsÚconvert_element_typeÚdefaultrP   s     r!   Ú	_to_dtyperì   n  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efd„«       Zed„ «       Zed„ «       Zed„ «       Zed„ «       Zed„ «       Z edef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„ «       Z5ed2„ «       Z6edefd3„«       Z7y4)5Ú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«   rB   rC   rè   ÚatenÚscalar_tensorrë   )r   r    Úds      r!   r"   z TensorReferenceAnalysis.constantƒ  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#   € ä�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_”  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˜  ó   € ä�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                 óV   — t         j                  j                  j                  | |«      S r   )r^   rè   rð   rž   r'   s     r!   rž   z#TensorReferenceAnalysis.bitwise_xor   rø   r$   c                 ój   — t         j                  j                  j                  j	                  | |«      S r   )r^   rè   rð   r2   ÚTensorr'   s     r!   r2   zTensorReferenceAnalysis.eq¤  ó#   € ä�y‰y�~‰~× Ñ ×'Ñ'¨¨1Ó-Ð-r$   c                 ój   — t         j                  j                  j                  j	                  ||«      S r   )r^   rè   rð   r7   rü   r5   s      r!   r7   zTensorReferenceAnalysis.ne¨  rý   r$   c                 ój   — t         j                  j                  j                  j	                  | |«      S r   )r^   rè   rð   r9   rü   r'   s     r!   r9   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ë   rD   s    r!   r4   zTensorReferenceAnalysis.not_¼  s!   € ä�y‰y�~‰~×)Ñ)×1Ñ1°!Ó4Ð4r$   c                 óh   — t         j                  j                  j                  j	                  | «      S r   )r^   rè   rð   rI   rë   rG   s    r!   rI   z"TensorReferenceAnalysis.reciprocalÀ  s!   € ä�y‰y�~‰~×(Ñ(×0Ñ0°Ó3Ð3r$   c                 óh   — t         j                  j                  j                  j	                  | «      S r   )r^   rè   rð   rM   rë   rG   s    r!   rM   zTensorReferenceAnalysis.squareÄ  s#   € ô �y‰y�~‰~×$Ñ$×,Ñ,¨QÓ/Ð/r$   c                 ó|   — t        t        j                  j                  j                  j                  | «      |«      S r   )rì   r^   rè   rð   Útruncrë   rP   s     r!   rQ   z$TensorReferenceAnalysis.trunc_to_intÉ  ó(   € äœŸ™Ÿ™×-Ñ-×5Ñ5°aÓ8¸%Ó@Ð@r$   c                 ó|   — t        t        j                  j                  j                  j                  | «      |«      S r   )rì   r^   rè   rð   r[   rë   rP   s     r!   rU   z#TensorReferenceAnalysis.ceil_to_intÍ  s(   € äœŸ™Ÿ™×,Ñ,×4Ñ4°QÓ7¸Ó?Ð?r$   c                 ó|   — t        t        j                  j                  j                  j                  | «      |«      S r   )rì   r^   rè   rð   rW   rë   rP   s     r!   rX   z$TensorReferenceAnalysis.floor_to_intÑ  r	  r$   c                 óh   — t         j                  j                  j                  j	                  | «      S r   )r^   rè   rð   rW   rë   rG   s    r!   rW   zTensorReferenceAnalysis.floorÕ  ó!   € ä�y‰y�~‰~×#Ñ#×+Ñ+¨AÓ.Ð.r$   c                 óh   — t         j                  j                  j                  j	                  | «      S r   )r^   rè   rð   r[   rë   rG   s    r!   r[   zTensorReferenceAnalysis.ceilÙ  ó!   € ä�y‰y�~‰~×"Ñ"×*Ñ*¨1Ó-Ð-r$   c                 ó   — t        | |«      S r   )rì   rP   s     r!   ra   z TensorReferenceAnalysis.to_dtypeÝ  s   € ä˜˜EÓ"Ð"r$   rq   c                 ó   — t        d«      ‚)Nz8no C-style modulus operation available from frontend atmrs   rc   s     r!   re   zTensorReferenceAnalysis.modá  s   € ô "ØFó
ð 	
r$   c                 óh   — t         j                  j                  j                  j	                  | «      S r   )r^   rè   rð   rh   rë   rG   s    r!   rh   zTensorReferenceAnalysis.absè  ó!   € ä�y‰y�~‰~×!Ñ!×)Ñ)¨!Ó,Ð,r$   c                 óh   — t         j                  j                  j                  j	                  | «      S r   )r^   rè   rð   rj   rë   rG   s    r!   rj   zTensorReferenceAnalysis.negì  r  r$   c                 ój   — t         j                  j                  j                  j	                  | |«      S r   )r^   rè   rð   Útrue_dividerü   r'   s     r!   rl   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!   rn   z#TensorReferenceAnalysis.int_truedivô  ó   € ä!ØFó
ð 	
r$   c                 ón   — t         j                  j                  j                  j	                  | |d¬«      S )NrW   )Úrounding_mode)r^   rè   rð   ÚdivÚTensor_moder'   s     r!   rp   z TensorReferenceAnalysis.floordiv  s(   € ä�y‰y�~‰~×!Ñ!×-Ñ-¨a°À'Ð-ÓJÐJr$   c                 ó   — t        d«      ‚)Nz9no C-style truncdiv operation available from frontend atmrs   r'   s     r!   rt   z TensorReferenceAnalysis.truncdiv  s   € ä!ØGó
ð 	
r$   c                 ój   — t         j                  j                  j                  j	                  | |«      S r   )r^   rè   rð   rw   rü   r'   s     r!   rw   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ë   rG   s    r!   r‚   zTensorReferenceAnalysis.exp  r  r$   c                 óh   — t         j                  j                  j                  j	                  | «      S r   )r^   rè   rð   r…   rë   rG   s    r!   r…   zTensorReferenceAnalysis.log  r  r$   c                 óh   — t         j                  j                  j                  j	                  | «      S r   )r^   rè   rð   r‡   rë   rG   s    r!   r‡   zTensorReferenceAnalysis.log2   r  r$   c                 óh   — t         j                  j                  j                  j	                  | «      S r   )r^   rè   rð   rŠ   rë   rG   s    r!   rŠ   zTensorReferenceAnalysis.sqrt$  r  r$   c                 óh   — t         j                  j                  j                  j	                  | «      S r   )r^   rè   rð   Úsinrë   rG   s    r!   r'  zTensorReferenceAnalysis.sin(  r  r$   c                 óh   — t         j                  j                  j                  j	                  | «      S r   )r^   rè   rð   Úcosrë   rG   s    r!   r)  zTensorReferenceAnalysis.cos,  r  r$   c                 óh   — t         j                  j                  j                  j	                  | «      S r   )r^   rè   rð   Útanhrë   rG   s    r!   r+  zTensorReferenceAnalysis.tanh0  r  r$   c                 óh   — t         j                  j                  j                  j	                  | «      S r   )r^   rè   rð   Úsinhrë   rG   s    r!   r-  zTensorReferenceAnalysis.sinh4  r  r$   c                 óh   — t         j                  j                  j                  j	                  | «      S r   )r^   rè   rð   Úcoshrë   rG   s    r!   r/  zTensorReferenceAnalysis.cosh8  r  r$   c                 óh   — t         j                  j                  j                  j	                  | «      S r   )r^   rè   rð   Útanrë   rG   s    r!   r1  zTensorReferenceAnalysis.tan<  r  r$   c                 óh   — t         j                  j                  j                  j	                  | «      S r   )r^   rè   rð   Úacosrë   rG   s    r!   r3  zTensorReferenceAnalysis.acos@  r  r$   c                 óh   — t         j                  j                  j                  j	                  | «      S r   )r^   rè   rð   Úatanrë   rG   s    r!   r5  zTensorReferenceAnalysis.atanD  r  r$   c                 óh   — t         j                  j                  j                  j	                  | «      S r   )r^   rè   rð   Úasinrë   rG   s    r!   r7  zTensorReferenceAnalysis.asinH  r  r$   c                 ój   — t         j                  j                  j                  j	                  | |«      S r   ©r^   rè   rð   rŒ   ÚTensor_Tensorr'   s     r!   rŒ   zTensorReferenceAnalysis.powL  s#   € ä�y‰y�~‰~×!Ñ!×/Ñ/°°1Ó5Ð5r$   c                 ój   — t         j                  j                  j                  j	                  | |«      S r   r9  r'   s     r!   rŽ   z&TensorReferenceAnalysis.pow_by_naturalP  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.minimumU  ó#   € ä�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.maximumY  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 atmrs   r'   s     r!   r—   z%TensorReferenceAnalysis.round_decimala  r  r$   N)8rŸ   r    r¡   r¢   r"   r*   r-   r™   rœ   rž   r2   r£   r7   r9   r;   r=   r@   r4   rI   rM   rQ   rU   rX   rW   r[   ra   r   re   rh   rj   rl   rn   rp   rt   rw   r~   r€   r‚   r…   r‡   rŠ   r'  r)  r+  r-  r/  r1  r3  r5  r7  rŒ   rŽ   r�   r’   r•   r—   r&   r$   r!   rî   rî   €  s	  „ ð ñ
Dó ð
Dð ñ7ó ð7ð ñ8ó ð8ð ñ0ó ð0ð ñ/ó ð/ð ñ0ó ð0ð ñ.ó ð.ð ñ.ó ð.ð ñ.ó ð.ð ñ.ó ð.ð ñ.ó ð.ð ñ.ó ð.ð ñ5ó ð5ð ñ4ó ð4ð ñ0ó ð0ð ñAó ðAð ñ@ó ð@ð ñAó ðAð ñ/ó ð/ð ñ.ó ð.ð ñ#ó ð#ð ð
�Xò 
ó ð
ð ñ-ó ð-ð ñ-ó ð-ð ñ7ó ð7ð ñ
ó ð
ð ñKó ðKð ð
˜(ò 
ó ð
ð
 ñ/ó ð/ð ñ/ó ð/ð ñ/ó ð/ð ñ-ó ð-ð ñ-ó ð-ð ñ.ó ð.ð ñ.ó ð.ð ñ-ó ð-ð ñ-ó ð-ð ñ.ó ð.ð ñ.ó ð.ð ñ.ó ð.ð ñ-ó ð-ð ñ.ó ð.ð ñ.ó ð.ð ñ.ó ð.ð ñ6ó ð6ð ñ6ó ð6ð ñ4ó ð4ð ñ4ó ð4ð ñ/ó ð/ð ð
˜xò 
ó ñ
r$   rî   )"rÊ   rv   Ú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$   r!   ú<module>rC     s’   ðã Û Ý ã ã ÷÷ ÷ ÷ ÷ ó ÷<n+ñ n+ôhHÐ/ô HôZ#Ð'>ô #ðB�—‘ð B e§k¡kð B°e·l±ló B÷$e
ò e
r$   