ó
    "EñiJ7  ã                   ó.  • S SK r S SKrS SKJr  S SKrS SKrS SKJrJrJ	r	J
r
JrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJr   " S S5      r " S S\5      r " S S	\5      rS
\R<                  S\R>                  S\R<                  4S jr  " S S5      r!g)é    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                   ó¼  • \ rS rSr\S 5       r\S 5       r\S 5       r\S 5       r\	S 5       r
\S 5       r\S 5       r\S	 5       r\S
 5       r\S 5       r\S 5       r\S 5       r\S 5       r\S 5       r\S 5       r\S 5       r\S 5       r\S 5       r\S 5       r\S 5       r\S 5       r\S 5       r\S 5       r\S 5       r\S\4S j5       r\S 5       r \	S 5       r!\S 5       r"\S 5       r#\S  5       r$\S! 5       r%\S" 5       r&\S# 5       r'\S$ 5       r(\S% 5       r)\S& 5       r*\S' 5       r+\S( 5       r,\S) 5       r-\S* 5       r.\S+ 5       r/\S, 5       r0S-r1g.)/ÚReferenceAnalysisé'   c                 ó.   • [         R                  " U 5      $ ©N)ÚsympyÚsympify©ÚcÚdtypes     ÚY/home/mande/repo/quber/.venv/lib/python3.13/site-packages/torch/utils/_sympy/reference.pyÚconstantÚReferenceAnalysis.constant(   ó   € ä�}Š}˜QÓÐó    c                 ó
   • X-  $ r   © ©ÚaÚbs     r"   Úor_ÚReferenceAnalysis.or_,   ó	   € à‰uˆr&   c                 ó
   • X-  $ r   r(   r)   s     r"   Úand_ÚReferenceAnalysis.and_0   r.   r&   c                 ó²   • [        U [        R                  5      (       d  [        U[        R                  5      (       a  [        R                  " X5      $ X:H  $ r   )Ú
isinstancer   ÚExprÚEqr)   s     r"   ÚeqÚReferenceAnalysis.eq4   s8   € ä�aœŸ™×$Ñ$¬
°1´e·j±j×(AÑ(AÜ—8’8˜A“>Ð!Ø‰vˆr&   c                 óB   • U R                  U R                  X5      5      $ r   )Únot_r6   ©Úclsr*   r+   s      r"   ÚneÚReferenceAnalysis.ne:   s   € à�x‰x˜Ÿ™˜q›Ó%Ð%r&   c                 ó
   • X:  $ r   r(   r)   s     r"   ÚltÚReferenceAnalysis.lt>   r.   r&   c                 ó
   • X:„  $ r   r(   r)   s     r"   ÚgtÚReferenceAnalysis.gtB   r.   r&   c                 ó
   • X:*  $ r   r(   r)   s     r"   ÚleÚReferenceAnalysis.leF   ó	   € à‰vˆr&   c                 ó
   • X:¬  $ r   r(   r)   s     r"   ÚgeÚReferenceAnalysis.geJ   rG   r&   c                 óH   • [        U [        5      (       a  [        S5      eU ) $ )Nznot_ needs sympy expr)r3   ÚboolÚAssertionError©r*   s    r"   r9   ÚReferenceAnalysis.not_N   s"   € ä�aœ×ÑÜ Ð!8Ó9Ð9Øˆrˆ	r&   c                 ó   • [        SU 5      $ )Ng      ð?©r	   ©Úxs    r"   Ú
reciprocalÚReferenceAnalysis.reciprocalT   s   € ä˜C Ó#Ð#r&   c                 ó   • [        U S5      $ )Né   ©r   rR   s    r"   ÚsquareÚReferenceAnalysis.squareX   s   € ä˜A˜qÓ!Ð!r&   c                 ó   • [        U 5      $ r   )r   ©rS   r!   s     r"   Útrunc_to_intÚReferenceAnalysis.trunc_to_int\   ó   € ä˜!‹}Ðr&   c                 ó.   • [         R                  " U 5      $ r   )r   Úceilingr\   s     r"   Úceil_to_intÚReferenceAnalysis.ceil_to_int`   r%   r&   c                 ó.   • [         R                  " U 5      $ r   )r   Úfloorr\   s     r"   Úfloor_to_intÚReferenceAnalysis.floor_to_intd   s   € ä�{Š{˜1‹~Ðr&   c                 ó@   • [        [        R                  5      " U 5      $ r   )r   r   re   rR   s    r"   re   ÚReferenceAnalysis.floorh   s   € äœ5Ÿ;™;Ô'¨Ó*Ð*r&   c                 ó@   • [        [        R                  5      " U 5      $ r   )r   r   ra   rR   s    r"   ÚceilÚReferenceAnalysis.ceill   s   € äœ5Ÿ=™=Ô)¨!Ó,Ð,r&   c                 ó^   • U[         R                  :X  a  [        U 5      $ [        SU S35      e©Nz	to_dtype z NYI)ÚtorchÚfloat64r   ÚNotImplementedErrorr\   s     r"   Úto_dtypeÚReferenceAnalysis.to_dtypep   s,   € à”E—M‘MÓ!Ü˜1“:ÐÜ! I¨e¨W°DÐ"9Ó:Ð:r&   c                 ó   • [        X5      $ r   )r   ©rS   Úys     r"   ÚmodÚReferenceAnalysis.modv   ó   € ä�1‹yÐr&   c                 ó   • [        U 5      $ r   )ÚabsrR   s    r"   r{   ÚReferenceAnalysis.absz   s   € ä�1‹vˆr&   c                 ó   • U * $ r   r(   rR   s    r"   ÚnegÚReferenceAnalysis.neg~   s	   € àˆrˆ	r&   c                 ó   • [        X5      $ r   rQ   r)   s     r"   ÚtruedivÚReferenceAnalysis.truediv‚   ó   € ä˜AÓ!Ð!r&   c                 ó   • [        X5      $ r   )r   r)   s     r"   Úint_truedivÚReferenceAnalysis.int_truediv†   s   € ä˜!ÓÐr&   c                 ó   • [        X5      $ r   )r
   r)   s     r"   ÚfloordivÚReferenceAnalysis.floordivŠ   s   € ä˜‹~Ðr&   Úreturnc                 ó   • [        S5      e)NzTODO: truncdiv©rq   r)   s     r"   ÚtruncdivÚReferenceAnalysis.truncdivŽ   s   € ä!Ð"2Ó3Ð3r&   c                 ó@   • [        [        R                  5      " X5      $ r   )r   ÚoperatorÚaddr)   s     r"   r‘   ÚReferenceAnalysis.add’   ó   € äœ8Ÿ<™<Ô(¨Ó.Ð.r&   c                 ó(   • [         R                  " U6 $ r   )r   ÚAdd)r;   Úargss     r"   Úsym_sumÚReferenceAnalysis.sym_sum–   s   € ä�yŠy˜$ÐÐr&   c                 ó@   • [        [        R                  5      " X5      $ r   )r   r�   Úmulr)   s     r"   rš   ÚReferenceAnalysis.mulš   r“   r&   c                 ó@   • [        [        R                  5      " X5      $ r   )r   r�   Úsubr)   s     r"   r�   ÚReferenceAnalysis.subž   r“   r&   c                 ó   • [        U 5      $ r   )r   rR   s    r"   ÚexpÚReferenceAnalysis.exp¢   ó   € ä  Ó#Ð#r&   c                 ó   • [        U 5      $ r   )r   rR   s    r"   ÚlogÚReferenceAnalysis.log¦   r¢   r&   c                 ó   • [        U 5      $ r   )r   rR   s    r"   Úlog2ÚReferenceAnalysis.log2ª   ó   € ä! !Ó$Ð$r&   c                 ó   • [        U 5      $ r   )r   rR   s    r"   ÚsqrtÚReferenceAnalysis.sqrt®   r©   r&   c                 ó,   • [        [        5      " X5      $ r   )r   r   r)   s     r"   ÚpowÚReferenceAnalysis.pow²   s   € ô œ8Ô$ QÓ*Ð*r&   c                 ó   • [        X5      $ r   rX   r)   s     r"   Úpow_by_naturalÚ ReferenceAnalysis.pow_by_natural·   rƒ   r&   c                 ó   • [        X5      $ r   )r   r)   s     r"   ÚminimumÚReferenceAnalysis.minimum»   ry   r&   c                 ó   • [        X5      $ r   )r   r)   s     r"   ÚmaximumÚReferenceAnalysis.maximum¿   ry   r&   c                 ó   • [        U 5      $ r   )r   ©r*   r!   s     r"   Úround_to_intÚReferenceAnalysis.round_to_intÃ   r_   r&   c                 ó   • [        X5      $ r   )r   r)   s     r"   Úround_decimalÚReferenceAnalysis.round_decimalÇ   rƒ   r&   c                 ó   • [        X5      $ r   )r   r)   s     r"   Úbitwise_andÚReferenceAnalysis.bitwise_andË   ó   € ä$ QÓ*Ð*r&   c                 ó   • [        X5      $ r   )r   r)   s     r"   Ú
bitwise_orÚReferenceAnalysis.bitwise_orÏ   s   € ä# AÓ)Ð)r&   c                 ó   • [        X5      $ r   )r   r)   s     r"   Úbitwise_xorÚReferenceAnalysis.bitwise_xorÓ   rÃ   r&   r(   N)2Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ústaticmethodr#   r,   r0   r6   Úclassmethodr<   r?   rB   rE   rI   r9   rT   rY   r]   rb   rf   re   rk   rr   rw   r{   r~   r�   r…   rˆ   r   r�   r‘   r—   rš   r�   r    r¤   r§   r«   r®   r±   r´   r·   r»   r¾   rÁ   rÅ   rÈ   Ú__static_attributes__r(   r&   r"   r   r   '   sO  † Øñ ó ð ð ñó ðð ñó ðð ñó ðð
 ñ&ó ð&ð ñó ðð ñó ðð ñó ðð ñó ðð ñó ðð
 ñ$ó ð$ð ñ"ó ð"ð ñó ðð ñ ó ð ð ñó ðð ñ+ó ð+ð ñ-ó ð-ð ñ;ó ð;ð
 ñó ðð ñó ðð ñó ðð ñ"ó ð"ð ñ ó ð ð ñó ðð ð4˜(ó 4ó ð4ð ñ/ó ð/ð ñ ó ð ð ñ/ó ð/ð ñ/ó ð/ð ñ$ó ð$ð ñ$ó ð$ð ñ%ó ð%ð ñ%ó ð%ð ñ+ó ð+ð ñ"ó ð"ð ñó ðð ñó ðð ñó ðð ñ"ó ð"ð ñ+ó ð+ð ñ*ó ð*ð ñ+ó ó+r&   r   c                   óÄ  • \ rS rSr\S 5       r\S 5       r\S 5       r\S 5       r	\S 5       r
\S 5       r\S 5       r\S	 5       r\S
\4S j5       r\S
\4S j5       r\S 5       r\S 5       r\S 5       r\S 5       r\S 5       r\S 5       r\S 5       r\S 5       r\S 5       r\S 5       r\S 5       r\S 5       r\S 5       r\S 5       r\S 5       r\S 5       r Sr!g)ÚPythonReferenceAnalysiséÛ   c                 óÒ   • U[         R                  L a  [        U 5      $ U[         R                  L a  [	        U 5      $ U[         R
                  L a  [        U 5      $ [        SU 35      e)Núunrecognized dtype )ro   Úint64ÚintÚdoubleÚfloatrL   rM   r   s     r"   r#   Ú PythonReferenceAnalysis.constantÜ   sT   € à”E—K‘KÒÜ�q“6ˆMØ”e—l‘lÒ"Ü˜“8ˆOØ”e—j‘jÒ Ü˜“7ˆNä Ð#6°u°gÐ!>Ó?Ð?r&   c                 ó.   • [         R                  " U 5      $ r   )ro   Úsym_notrN   s    r"   r9   ÚPythonReferenceAnalysis.not_ç   r%   r&   c                 óÞ   • [        U5      S:X  a  g[        U5      S:X  a  US   $ U R                  US   US   5      n[        S[        U5      5       H  nU R                  X!U   5      nM     U$ )Nr   é   rW   )Úlenr‘   Úrange)r;   r–   ÚaccÚis       r"   r—   ÚPythonReferenceAnalysis.sym_sumë   sh   € äˆt‹9˜‹>ØÜˆt‹9˜‹>Ø˜‘7ˆNØ�g‰g�d˜1‘g˜t A™wÓ'ˆÜ�qœ#˜d›)Ö$ˆAØ—'‘'˜# A™wÓ'ŠCñ %àˆ
r&   c                 ó
   • X-  $ r   r(   r)   s     r"   rˆ   Ú PythonReferenceAnalysis.floordivö   rG   r&   c                 ó
   • X-  $ r   r(   ru   s     r"   rw   ÚPythonReferenceAnalysis.modú   r.   r&   c                 ó
   • X-  $ r   r(   ru   s     r"   Ú
python_modÚ"PythonReferenceAnalysis.python_modþ   r.   r&   c                 ó
   • X-  $ r   r(   r)   s     r"   r�   Ú PythonReferenceAnalysis.truncdiv  r.   r&   c                 ót   • U[         R                  :X  a  [         R                  " U 5      $ [        SU S35      ern   )ro   rp   Ú	sym_floatrq   r\   s     r"   rr   Ú PythonReferenceAnalysis.to_dtype  s1   € à”E—M‘MÓ!Ü—?’? 1Ó%Ð%Ü! I¨e¨W°DÐ"9Ó:Ð:r&   rŠ   c                 ó   • [        S5      e)Nz!exp is not valid shape sympy expr©rM   rR   s    r"   r    ÚPythonReferenceAnalysis.exp  ó   € äÐ@ÓAÐAr&   c                 ó   • [        S5      e)Nz!log is not valid shape sympy exprrò   rR   s    r"   r¤   ÚPythonReferenceAnalysis.log  rô   r&   c                 ó.   • [         R                  " U 5      $ r   )ro   Ú	_sym_log2rR   s    r"   r§   ÚPythonReferenceAnalysis.log2  ó   € ä�Š˜qÓ!Ð!r&   c                 ó.   • [         R                  " U 5      $ r   )ro   Ú	_sym_sqrtrR   s    r"   r«   ÚPythonReferenceAnalysis.sqrt  rú   r&   c                 ó.   • [         R                  " X5      $ r   )ro   Úsym_minr)   s     r"   r´   ÚPythonReferenceAnalysis.minimum  ó   € ä�}Š}˜QÓ"Ð"r&   c                 ó.   • [         R                  " X5      $ r   )ro   Úsym_maxr)   s     r"   r·   ÚPythonReferenceAnalysis.maximum   r  r&   c                 ó.   • [         R                  " U 5      $ r   )Úmathre   r\   s     r"   rf   Ú$PythonReferenceAnalysis.floor_to_int$  s   € ä�zŠz˜!‹}Ðr&   c                 ó.   • [         R                  " U 5      $ r   )r  rk   r\   s     r"   rb   Ú#PythonReferenceAnalysis.ceil_to_int(  s   € ä�yŠy˜‹|Ðr&   c                 ó@   • [        [        R                  " U 5      5      $ r   )rÙ   r  re   rR   s    r"   re   ÚPythonReferenceAnalysis.floor,  s   € ä”T—Z’Z “]Ó#Ð#r&   c                 ó@   • [        [        R                  " U 5      5      $ r   )rÙ   r  rk   rR   s    r"   rk   ÚPythonReferenceAnalysis.ceil0  s   € ä”T—Y’Y˜q“\Ó"Ð"r&   c                 ó
   • X-  $ r   r(   r)   s     r"   r�   ÚPythonReferenceAnalysis.truediv4  r.   r&   c                 ó
   • X-  $ r   r(   r)   s     r"   r®   ÚPythonReferenceAnalysis.pow8  s	   € à‰tˆr&   c                 ó
   • X-  $ r   r(   r)   s     r"   r±   Ú&PythonReferenceAnalysis.pow_by_natural<  s   € ð
 ‰tˆr&   c                 ó   • [        U 5      $ r   ©Úroundrº   s     r"   r»   Ú$PythonReferenceAnalysis.round_to_intC  s   € ä�Q‹xˆr&   c                 ó   • [        XS9$ )N)Úndigitsr  r)   s     r"   r¾   Ú%PythonReferenceAnalysis.round_decimalG  s   € ä�QÑ"Ð"r&   c                 ó
   • X-  $ r   r(   r)   s     r"   rÁ   Ú#PythonReferenceAnalysis.bitwise_andK  r.   r&   c                 ó
   • X-  $ r   r(   r)   s     r"   rÅ   Ú"PythonReferenceAnalysis.bitwise_orO  r.   r&   c                 ó
   • X-  $ r   r(   r)   s     r"   rÈ   Ú#PythonReferenceAnalysis.bitwise_xorS  r.   r&   r(   N)"rÊ   rË   rÌ   rÍ   rÎ   r#   r9   rÏ   r—   rˆ   rw   rê   r�   rr   r   r    r¤   r§   r«   r´   r·   rf   rb   re   rk   r�   r®   r±   r»   r¾   rÁ   rÅ   rÈ   rÐ   r(   r&   r"   rÒ   rÒ   Û   s  † Øñ@ó ð@ð ñ ó ð ð ñó ðð ñó ðð ñó ðð ñó ðð ñó ðð ñ;ó ð;ð
 ðB�(ó Bó ðBð ðB�(ó Bó ðBð ñ"ó ð"ð ñ"ó ð"ð ñ#ó ð#ð ñ#ó ð#ð ñó ðð ñó ðð ñ$ó ð$ð ñ#ó ð#ð ñó ðð ñó ðð ñó ðð ñó ðð ñ#ó ð#ð ñó ðð ñó ðð ñó ór&   rÒ   c                   ó$   • \ rS rSr\S 5       rSrg)Ú OptimizedPythonReferenceAnalysisiZ  c                 ó.   • [         R                  " U 5      $ r   )ro   r—   )r–   s    r"   r—   Ú(OptimizedPythonReferenceAnalysis.sym_sum[  s   € ä�}Š}˜TÓ"Ð"r&   r(   N)rÊ   rË   rÌ   rÍ   rÎ   r—   rÐ   r(   r&   r"   r"  r"  Z  s   † Øñ#ó ó#r&   r"  rS   r!   rŠ   c                 óh   • [         R                  R                  R                  R	                  X5      $ r   )ro   ÚopsÚprimsÚconvert_element_typeÚdefaultr\   s     r"   Ú	_to_dtyper*  `  s!   € Ü�9‰9�?‰?×/Ñ/×7Ñ7¸ÓAÐAr&   c                   óL  • \ rS rSr\S 5       r\S 5       r\S 5       r\S 5       r\S 5       r	\S 5       r
\S 5       r\S	 5       r\S
 5       r\S 5       r\S 5       r\S 5       r\S 5       r\S 5       r\S 5       r\S 5       r\S 5       r\S 5       r\S 5       r\S 5       r\S 5       r\S\4S j5       r\S 5       r\S 5       r\S 5       r\S 5       r \S 5       r!\S\4S j5       r"\S 5       r#\S  5       r$\S! 5       r%\S" 5       r&\S# 5       r'\S$ 5       r(\S% 5       r)\S& 5       r*\S' 5       r+\S( 5       r,\S) 5       r-\S* 5       r.\S+ 5       r/\S, 5       r0\S- 5       r1\S. 5       r2\S/ 5       r3\S0 5       r4\S1 5       r5\S2 5       r6\S3 5       r7\S\4S4 j5       r8S5r9g6)7ÚTensorReferenceAnalysisir  c                 ó:  • U[         R                  L a  [        U 5      nOLU[         R                  L a  [	        U 5      nO-U[         R
                  L a  [        U 5      nO[        SU 35      e[         R                  R                  R                  R                  X!S9$ )NrÕ   )r!   )ro   rÖ   r×   rØ   rÙ   rL   rM   r&  ÚatenÚscalar_tensorr)  )r    r!   Úds      r"   r#   Ú TensorReferenceAnalysis.constantu  sx   € ð ”E—K‘KÒÜ�A“‰AØ”e—l‘lÒ"Ü�a“‰AØ”e—j‘jÒ Ü�Q“‰Aä Ð#6°u°gÐ!>Ó?Ð?Ü�y‰y�~‰~×+Ñ+×3Ñ3°AÐ3ÐCÐCr&   c                 óh   • [         R                  R                  R                  R	                  X5      $ r   )ro   r&  r.  Ú
logical_orr)  r)   s     r"   r,   ÚTensorReferenceAnalysis.or_‚  s!   € ä�y‰y�~‰~×(Ñ(×0Ñ0°Ó6Ð6r&   c                 óh   • [         R                  R                  R                  R	                  X5      $ r   )ro   r&  r.  Úlogical_andr)  r)   s     r"   r0   ÚTensorReferenceAnalysis.and_†  s!   € ä�y‰y�~‰~×)Ñ)×1Ñ1°!Ó7Ð7r&   c                 óT   • [         R                  R                  R                  X5      $ r   )ro   r&  r.  rÁ   r)   s     r"   rÁ   Ú#TensorReferenceAnalysis.bitwise_andŠ  ó   € ä�y‰y�~‰~×)Ñ)¨!Ó/Ð/r&   c                 óT   • [         R                  R                  R                  X5      $ r   )ro   r&  r.  rÅ   r)   s     r"   rÅ   Ú"TensorReferenceAnalysis.bitwise_orŽ  s   € ä�y‰y�~‰~×(Ñ(¨Ó.Ð.r&   c                 óT   • [         R                  R                  R                  X5      $ r   )ro   r&  r.  rÈ   r)   s     r"   rÈ   Ú#TensorReferenceAnalysis.bitwise_xor’  r:  r&   c                 óh   • [         R                  R                  R                  R	                  X5      $ r   )ro   r&  r.  r6   ÚTensorr)   s     r"   r6   ÚTensorReferenceAnalysis.eq–  ó!   € ä�y‰y�~‰~× Ñ ×'Ñ'¨Ó-Ð-r&   c                 óh   • [         R                  R                  R                  R	                  X5      $ r   )ro   r&  r.  r<   r@  r:   s      r"   r<   ÚTensorReferenceAnalysis.neš  rB  r&   c                 óh   • [         R                  R                  R                  R	                  X5      $ r   )ro   r&  r.  r?   r@  r)   s     r"   r?   ÚTensorReferenceAnalysis.ltž  rB  r&   c                 óh   • [         R                  R                  R                  R	                  X5      $ r   )ro   r&  r.  rB   r@  r)   s     r"   rB   ÚTensorReferenceAnalysis.gt¢  rB  r&   c                 óh   • [         R                  R                  R                  R	                  X5      $ r   )ro   r&  r.  rE   r@  r)   s     r"   rE   ÚTensorReferenceAnalysis.le¦  rB  r&   c                 óh   • [         R                  R                  R                  R	                  X5      $ r   )ro   r&  r.  rI   r@  r)   s     r"   rI   ÚTensorReferenceAnalysis.geª  rB  r&   c                 óh   • [         R                  R                  R                  R	                  U 5      $ r   )ro   r&  r.  Úlogical_notr)  rN   s    r"   r9   ÚTensorReferenceAnalysis.not_®  s!   € ä�y‰y�~‰~×)Ñ)×1Ñ1°!Ó4Ð4r&   c                 óh   • [         R                  R                  R                  R	                  U 5      $ r   )ro   r&  r.  rT   r)  rR   s    r"   rT   Ú"TensorReferenceAnalysis.reciprocal²  s!   € ä�y‰y�~‰~×(Ñ(×0Ñ0°Ó3Ð3r&   c                 óh   • [         R                  R                  R                  R	                  U 5      $ r   )ro   r&  r.  rY   r)  rR   s    r"   rY   ÚTensorReferenceAnalysis.square¶  s#   € ô �y‰y�~‰~×$Ñ$×,Ñ,¨QÓ/Ð/r&   c                 ó|   • [        [        R                  R                  R                  R                  U 5      U5      $ r   )r*  ro   r&  r.  Útruncr)  r\   s     r"   r]   Ú$TensorReferenceAnalysis.trunc_to_int»  ó(   € äœŸ™Ÿ™×-Ñ-×5Ñ5°aÓ8¸%Ó@Ð@r&   c                 ó|   • [        [        R                  R                  R                  R                  U 5      U5      $ r   )r*  ro   r&  r.  rk   r)  r\   s     r"   rb   Ú#TensorReferenceAnalysis.ceil_to_int¿  s(   € äœŸ™Ÿ™×,Ñ,×4Ñ4°QÓ7¸Ó?Ð?r&   c                 ó|   • [        [        R                  R                  R                  R                  U 5      U5      $ r   )r*  ro   r&  r.  re   r)  r\   s     r"   rf   Ú$TensorReferenceAnalysis.floor_to_intÃ  rW  r&   c                 óh   • [         R                  R                  R                  R	                  U 5      $ r   )ro   r&  r.  re   r)  rR   s    r"   re   ÚTensorReferenceAnalysis.floorÇ  ó!   € ä�y‰y�~‰~×#Ñ#×+Ñ+¨AÓ.Ð.r&   c                 óh   • [         R                  R                  R                  R	                  U 5      $ r   )ro   r&  r.  rk   r)  rR   s    r"   rk   ÚTensorReferenceAnalysis.ceilË  ó!   € ä�y‰y�~‰~×"Ñ"×*Ñ*¨1Ó-Ð-r&   c                 ó   • [        X5      $ r   )r*  r\   s     r"   rr   Ú TensorReferenceAnalysis.to_dtypeÏ  s   € ä˜Ó"Ð"r&   rŠ   c                 ó   • [        S5      e)Nz8no C-style modulus operation available from frontend atmrŒ   ru   s     r"   rw   ÚTensorReferenceAnalysis.modÓ  s   € ô "ØFó
ð 	
r&   c                 óh   • [         R                  R                  R                  R	                  U 5      $ r   )ro   r&  r.  r{   r)  rR   s    r"   r{   ÚTensorReferenceAnalysis.absÚ  ó!   € ä�y‰y�~‰~×!Ñ!×)Ñ)¨!Ó,Ð,r&   c                 óh   • [         R                  R                  R                  R	                  U 5      $ r   )ro   r&  r.  r~   r)  rR   s    r"   r~   ÚTensorReferenceAnalysis.negÞ  rh  r&   c                 óh   • [         R                  R                  R                  R	                  X5      $ r   )ro   r&  r.  Útrue_divider@  r)   s     r"   r�   ÚTensorReferenceAnalysis.truedivâ  s!   € ä�y‰y�~‰~×)Ñ)×0Ñ0°Ó6Ð6r&   c                 ó   • [        S5      e)Nz8Python int truediv difficult to implement in PyTorch atm)rq   ro   r&  r.  rl  r)  r*  rp   r)   s     r"   r…   Ú#TensorReferenceAnalysis.int_truedivæ  ó   € ä!ØFó
ð 	
r&   c                 óf   • [         R                  R                  R                  R	                  XSS9$ )Nre   )Úrounding_mode)ro   r&  r.  ÚdivÚTensor_moder)   s     r"   rˆ   Ú TensorReferenceAnalysis.floordivô  s&   € ä�y‰y�~‰~×!Ñ!×-Ñ-¨aÀ'Ð-ÐJÐJr&   c                 ó   • [        S5      e)Nz9no C-style truncdiv operation available from frontend atmrŒ   r)   s     r"   r�   Ú TensorReferenceAnalysis.truncdivø  s   € ä!ØGó
ð 	
r&   c                 óh   • [         R                  R                  R                  R	                  X5      $ r   )ro   r&  r.  r‘   r@  r)   s     r"   r‘   ÚTensorReferenceAnalysis.addþ  ó!   € ä�y‰y�~‰~×!Ñ!×(Ñ(¨Ó.Ð.r&   c                 óh   • [         R                  R                  R                  R	                  X5      $ r   )ro   r&  r.  rš   r@  r)   s     r"   rš   ÚTensorReferenceAnalysis.mul  rz  r&   c                 óh   • [         R                  R                  R                  R	                  X5      $ r   )ro   r&  r.  r�   r@  r)   s     r"   r�   ÚTensorReferenceAnalysis.sub  rz  r&   c                 óh   • [         R                  R                  R                  R	                  U 5      $ r   )ro   r&  r.  r    r)  rR   s    r"   r    ÚTensorReferenceAnalysis.exp
  rh  r&   c                 óh   • [         R                  R                  R                  R	                  U 5      $ r   )ro   r&  r.  r¤   r)  rR   s    r"   r¤   ÚTensorReferenceAnalysis.log  rh  r&   c                 óh   • [         R                  R                  R                  R	                  U 5      $ r   )ro   r&  r.  r§   r)  rR   s    r"   r§   ÚTensorReferenceAnalysis.log2  ra  r&   c                 óh   • [         R                  R                  R                  R	                  U 5      $ r   )ro   r&  r.  r«   r)  rR   s    r"   r«   ÚTensorReferenceAnalysis.sqrt  ra  r&   c                 óh   • [         R                  R                  R                  R	                  U 5      $ r   )ro   r&  r.  Úsinr)  rR   s    r"   rˆ  ÚTensorReferenceAnalysis.sin  rh  r&   c                 óh   • [         R                  R                  R                  R	                  U 5      $ r   )ro   r&  r.  Úcosr)  rR   s    r"   r‹  ÚTensorReferenceAnalysis.cos  rh  r&   c                 óh   • [         R                  R                  R                  R	                  U 5      $ r   )ro   r&  r.  Útanhr)  rR   s    r"   rŽ  ÚTensorReferenceAnalysis.tanh"  ra  r&   c                 óh   • [         R                  R                  R                  R	                  U 5      $ r   )ro   r&  r.  Úsinhr)  rR   s    r"   r‘  ÚTensorReferenceAnalysis.sinh&  ra  r&   c                 óh   • [         R                  R                  R                  R	                  U 5      $ r   )ro   r&  r.  Úcoshr)  rR   s    r"   r”  ÚTensorReferenceAnalysis.cosh*  ra  r&   c                 óh   • [         R                  R                  R                  R	                  U 5      $ r   )ro   r&  r.  Útanr)  rR   s    r"   r—  ÚTensorReferenceAnalysis.tan.  rh  r&   c                 óh   • [         R                  R                  R                  R	                  U 5      $ r   )ro   r&  r.  Úacosr)  rR   s    r"   rš  ÚTensorReferenceAnalysis.acos2  ra  r&   c                 óh   • [         R                  R                  R                  R	                  U 5      $ r   )ro   r&  r.  Úatanr)  rR   s    r"   r�  ÚTensorReferenceAnalysis.atan6  ra  r&   c                 óh   • [         R                  R                  R                  R	                  U 5      $ r   )ro   r&  r.  Úasinr)  rR   s    r"   r   ÚTensorReferenceAnalysis.asin:  ra  r&   c                 óh   • [         R                  R                  R                  R	                  X5      $ r   ©ro   r&  r.  r®   ÚTensor_Tensorr)   s     r"   r®   ÚTensorReferenceAnalysis.pow>  s!   € ä�y‰y�~‰~×!Ñ!×/Ñ/°Ó5Ð5r&   c                 óh   • [         R                  R                  R                  R	                  X5      $ r   r£  r)   s     r"   r±   Ú&TensorReferenceAnalysis.pow_by_naturalB  s#   € ô �y‰y�~‰~×!Ñ!×/Ñ/°Ó5Ð5r&   c                 óh   • [         R                  R                  R                  R	                  X5      $ r   )ro   r&  r.  r´   r)  r)   s     r"   r´   ÚTensorReferenceAnalysis.minimumG  ó!   € ä�y‰y�~‰~×%Ñ%×-Ñ-¨aÓ3Ð3r&   c                 óh   • [         R                  R                  R                  R	                  X5      $ r   )ro   r&  r.  r·   r)  r)   s     r"   r·   ÚTensorReferenceAnalysis.maximumK  rª  r&   c                 óh   • [         R                  R                  R                  R	                  U 5      $ r   )ro   r&  r.  r  r)  rº   s     r"   r»   Ú$TensorReferenceAnalysis.round_to_intO  r^  r&   c                 ó   • [        S5      e)Nz8round decimal doesn't support Tensor second argument atmrŒ   r)   s     r"   r¾   Ú%TensorReferenceAnalysis.round_decimalS  rp  r&   r(   N):rÊ   rË   rÌ   rÍ   rÎ   r#   r,   r0   rÁ   rÅ   rÈ   r6   rÏ   r<   r?   rB   rE   rI   r9   rT   rY   r]   rb   rf   re   rk   rr   r   rw   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Ð   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  r�   Útypingr   r   ro   Ú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>r³     s’   ðã Û Ý ã ã ÷÷ ÷ ÷ ÷ ó ÷<n+ñ n+ôhzÐ/ô zô~#Ð'>ô #ðB�—‘ð B e§k¡kð B°e·l±lô B÷$e
ò e
r&   