Ë
    P/æjg  ã                   ó  — d dl Z d dlmZ d dlmZmZmZmZmZ d dl	Z	d dl
Z	d dlZ	d dlZ	d dlZ	d dlZ	d dlZ	d dlZ	d dlmZ  e j&                  d«      d„ «       Z e j&                  d«      d„ «       Z G d„ de	j,                  j.                  «      Zy)	é    N)Únullcontext)ÚAnyÚCallableÚDictÚOptionalÚSequence)Útorch_function_passthroughc            	      ó  — t         t         j                  ft         j                  t         j                  j                  ft         j                  j                  t         j                  j                  j                  ft         j                  t         j                  j                  ft         j
                  t         j                  j
                  ft         j                  t         j                  j                  fg} i t         j                  j                  t         j                  j                  “t         j                  j                  t         j                  j                  “t         j                  j                  t         j                  j                  “t         j                  j                  t         j                  j                  “t         j                  j                   t         j                  j"                  “t         j                  j$                  t         j                  j&                  “t         j                  j(                  t         j                  j*                  “t         j                  j,                  t         j                  j.                  “t         j                  j0                  t         j                  j2                  “t         j                  j4                  t         j                  j6                  “t         j                  j8                  t         j                  j:                  “t         j                  j<                  t         j                  j<                  “t         j                  j>                  t         j                  j>                  “t         j                  j@                  t         j                  j@                  “t         j                  jB                  t         j                  jB                  “t         j                  jD                  t         j                  jD                  “t         j                  jF                  t         j                  jF                  “t         j                  jH                  t         j                  jH                  t         j                  jJ                  t         j                  jJ                  t         j                  jL                  t         jN                  jP                  t         j                  jR                  t         jN                  jR                  i¥}| D ]M  \  }}|jT                  D ]9  }|jV                  jY                  |«      ||jV                  jY                  |«      <   Œ; ŒO t[        t         j                  «      D ]c  }|t         j                  jT                  v sŒ t         j                  jV                  jY                  |«      |t]        t         j                  |«      <   Œe t         j                  j^                  jT                  D ]e  }t]        t         j                  |d«      xs t]        t         |«      }t         j                  j^                  jV                  jY                  |«      ||<   Œg |S )z}
    Mapping of torch API functions to torch._refs functions.
    E.g. torch_to_refs_map()[torch.add] == torch._refs.add
    N)0ÚtorchÚ_refsÚnnÚ
functionalÚspecialÚfftÚlinalgÚTensorÚ
__invert__Úbitwise_notÚ__xor__Úbitwise_xorÚ__and__Úbitwise_andÚ__or__Ú
bitwise_orÚ__eq__ÚeqÚ__rsub__ÚrsubÚ__rtruediv__ÚrtruedivÚ__floordiv__Úfloor_divideÚ__rfloordiv__Ú	rfloordivÚ__pow__ÚpowÚ__rpow__ÚrpowÚ	new_emptyÚnew_fullÚ	new_zerosÚnew_onesÚfill_Úzero_ÚtoÚsum_to_sizeÚcopy_Ú_primsÚcopy_toÚresizeÚ__all__Ú__dict__ÚgetÚdirÚgetattrÚ_conversions)ÚmodulesÚrÚ	mod_torchÚmod_refsÚsÚtensor_attrs         úW/root/repos/pocs/video-evals/.venv/lib/python3.12/site-packages/torch/_prims/context.pyÚtorch_to_refs_maprB      s0  € ô 
”—‘ÐÜ	�‰”5—;‘;—>‘>Ð"Ü	�‰×	Ñ	œeŸk™kŸn™n×7Ñ7Ð8Ü	�‰œŸ™×+Ñ+Ð,Ü	�‰”E—K‘K—O‘OÐ$Ü	�‰”u—{‘{×)Ñ)Ð*ð€GðÜ�‰×Ñ¤§¡×!8Ñ!8ðä�‰×ÑœeŸk™k×5Ñ5ðô 	�‰×ÑœeŸk™k×5Ñ5ðô 	�‰×ÑœUŸ[™[×3Ñ3ð	ô
 	�‰×ÑœUŸ[™[Ÿ^™^ðô 	�‰×ÑœuŸ{™{×/Ñ/ðô 	�‰×!Ñ!¤5§;¡;×#7Ñ#7ðô 	�‰×!Ñ!¤5§;¡;×#;Ñ#;ðô 	�‰×"Ñ"¤E§K¡K×$9Ñ$9ðô 	�‰×ÑœeŸk™kŸo™oðô 	�‰×ÑœuŸ{™{×/Ñ/ðô 	�‰×Ñ¤§¡× 5Ñ 5ðô 	�‰×ÑœuŸ{™{×3Ñ3ðô 	�‰×Ñ¤§¡× 5Ñ 5ðô 	�‰×ÑœuŸ{™{×3Ñ3ðô  	�‰×ÑœEŸK™K×-Ñ-ð!ô" 	�‰×ÑœEŸK™K×-Ñ-ð#ô$ 	�‰�‰œŸ™Ÿ™Ü�‰× Ñ ¤%§+¡+×"9Ñ"9ä�‰×ÑœEŸL™L×0Ñ0Ü�‰×ÑœUŸ\™\×0Ñ0ñ-€Að0  'ò DÑˆ	�8Ø×!Ñ!ò 	DˆAØ+3×+<Ñ+<×+@Ñ+@ÀÓ+CˆAˆi× Ñ ×$Ñ$ QÓ'Ò(ñ	DðDô
 ”—‘Óò FˆØ”—‘×#Ñ#Ò#Ü*/¯+©+×*>Ñ*>×*BÑ*BÀ1Ó*EˆAŒg”e—l‘l AÓ&Ò'ðFô
 �[‰[×%Ñ%×-Ñ-ò BˆÜœeŸl™l¨A¨tÓ4ÒI¼ÄÀqÓ8IˆÜŸ™×1Ñ1×:Ñ:×>Ñ>¸qÓAˆˆ+ŠðBð €Hó    c                  óª   — t         j                  j                  D � ch c]+  } t         j                  j                  j	                  | «      ’Œ- c} S c c} w )zJ
    Set of all prim functions, e.g., torch._prims.add in all_prims()
    )r   r2   r5   r6   r7   )r?   s    rA   Ú	all_primsrE   H   s7   € ô
 38·,±,×2FÑ2FÖG¨QŒE�L‰L×!Ñ!×%Ñ% aÕ(ÒGÐGùÒGs   �0Ac            
       óJ   — e Zd ZdZdd„ efd„Z	 	 ddededee   d	e	e
   fd
„Zy)ÚTorchRefsModeaB  
    Switches the interpretation of torch.* functions and Tensor methods to
    use PrimTorch refs in torch._refs.  (Direct calls to _refs are unaffected.)

    >>> # xdoctest: +SKIP
    >>> with TorchRefsMode():
    ...     torch.add(x, y)  # calls torch._refs.add(x, y)

    By default, this context manager will fall back on the torch.* if the
    ref does not exist; set strict=True to error if this occurs.
    If the ref exists we still would like to fall back on the torch.* sometimes,
    this behavior can be customized by passing a function to should_fallback_fn.
    Fc                   ó   — y)NF© )Ú_s    rA   ú<lambda>zTorchRefsMode.<lambda>b   s   � rC   c                 ó.   — || _         || _        || _        y )N)ÚstrictÚshould_fallback_fnÚprims_mode_cls)ÚselfrM   rN   rO   s       rA   Ú__init__zTorchRefsMode.__init___   s   € ð ˆŒØ"4ˆÔØ,ˆÕrC   NÚ	orig_funcÚtypesÚargsÚkwargsc                 ó$  — |€i }|t         v s|t        «       v r"| j                  «       5   ||i |¤Žcd d d «       S t        «       }|j	                  |d «      }|€Ot        |t        j                  j                  «      r+t        j                  j                  j	                  |d «      }n_|€]t        |t        j                  j                  «      r9t        |dd «      }|�*t        j                  j                  j	                  |d «      }|�1| j                  | ||||«      r ||i |¤ŽS | 5   ||i |¤Žcd d d «       S | j                  r+t        dt        j                   j#                  |«      › �«      ‚ ||i |¤ŽS # 1 sw Y   �ŒHxY w# 1 sw Y   ŒUxY w)NÚdefaultzno _refs support for )r	   rE   rO   rB   r7   Ú
isinstancer   Ú_opsÚ
OpOverloadÚ_decompÚdecomposition_tableÚOpOverloadPacketr9   rN   rM   ÚRuntimeErrorÚ	overridesÚresolve_name)rP   rR   rS   rT   rU   ÚmappingÚfuncrW   s           rA   Ú__torch_function__z TorchRefsMode.__torch_function__i   s�  € ð ˆ>ØˆFð Ô2Ñ2°iÄ9Ã;Ñ6NØ×$Ñ$Ó&ñ 2Ù  $Ð1¨&Ñ1÷2ñ 2ä#Ó%ˆØ�{‰{˜9 dÓ+ˆð ˆ<œJ y´%·*±*×2GÑ2GÔHÜ—=‘=×4Ñ4×8Ñ8¸ÀDÓI‰DØˆ\œj¨´E·J±J×4OÑ4OÔPÜ˜i¨°DÓ9ˆGØÐ"Ü—}‘}×8Ñ8×<Ñ<¸WÀdÓK�àÐà×&Ñ& t¨Y¸¸dÀFÔKÙ  $Ð1¨&Ñ1Ð1àñ -Ù˜TÐ, VÑ,÷-ñ -à�;Š;ÜØ'¬¯©×(DÑ(DÀYÓ(OÐ'PÐQóð ñ ˜$Ð) &Ñ)Ð)÷;2ñ 2ú÷.-ð -ús   ©E9Ä(FÅ9FÆF)rI   N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   rQ   r   r   r   r   r   rc   rI   rC   rA   rG   rG   P   sR   „ ñð  Ù+Ø"ó	-ð !Ø!%ñ)*àð)*ð ð)*ð �s‰mð	)*ð
 ˜‘ô)*rC   rG   )Ú	functoolsÚ
contextlibr   Útypingr   r   r   r   r   r   Útorch._decompÚtorch._primsÚtorch._refsÚtorch._refs.nnÚtorch._refs.nn.functionalÚtorch._refs.specialÚtorch.overridesÚtorch._prims_commonr	   Ú	lru_cacherB   rE   r_   ÚTorchFunctionModerG   rI   rC   rA   ú<module>ru      s‰   ðã Ý "ß :Õ :ã Û Û Û Û Û  Û Û Ý :ð €×Ñ�TÓñ3ó ð3ðl €×Ñ�TÓñHó ðHôB*�E—O‘O×5Ñ5õ B*rC   