§
    ŠŠtjh  ã                  óF  — d dl mZ d dlZd dlmZ d dlmZmZmZ d dl	m
Z
 erd dl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
d¦  «        Z ed	¦  «        Zej        dd„¦   «         Zej        dd„¦   «         Z G d„ dej        j        ¦  «        ZdS )é    )ÚannotationsN)Únullcontext)ÚAnyÚTYPE_CHECKINGÚTypeVar)Ú	ParamSpec)ÚCallableÚSequence)Útorch_function_passthroughÚ_PÚ_RÚreturnúdict[Any, Any]c            	     ó	  — 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        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        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)        i¥}| D ]D\  }}|j*        D ]7}|j+         ,                    |¦  «        ||j+         ,                    |¦  «        <   Œ8ŒEt[          t           j        ¦  «        D ]T}|t           j        j*        v r?t           j        j+         ,                    |¦  «        |t]          t           j        |¦  «        <   ŒUt           j        j/        j*        D ]^}t]          t           j        |d¦  «        pt]          t           |¦  «        }t           j        j/        j+         ,                    |¦  «        ||<   Œ_|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         úR/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/torch/_prims/context.pyÚtorch_to_refs_maprH      s;  € õ 
•”ÐÝ	Œ•5”;”>Ð"Ý	ŒÔ	�eœkœnÔ7Ð8Ý	Œ�œÔ+Ð,Ý	Œ•E”K”OÐ$Ý	Œ•u”{Ô)Ð*ð€GðÝŒÔ¥¤Ô!8ðåŒÔ�eœkÔ5ðõ 	ŒÔ�eœkÔ5ðõ 	ŒÔ�Uœ[Ô3ð	õ
 	ŒÔ�Uœ[œ^ðõ 	ŒÔ�uœ{Ô/ðõ 	ŒÔ!¥5¤;Ô#7ðõ 	ŒÔ!¥5¤;Ô#;ðõ 	ŒÔ"¥E¤KÔ$9ðõ 	ŒÔ�eœkœoðõ 	ŒÔ�uœ{Ô/ðõ 	ŒÔ¥¤Ô 5ðõ 	ŒÔ�uœ{Ô3ðõ 	ŒÔ¥¤Ô 5ðõ 	ŒÔ�uœ{Ô3ðõ  	ŒÔ�EœKÔ-ð!õ" 	ŒÔ�EœKÔ-ð#õ$ 	ŒŒ�œœÝŒÔ ¥%¤+Ô"9åŒÔ�EœLÔ0ÝŒÔ�Uœ\Ô0ð-ð €Að0  'ð Dð DÑˆ	�8ØÔ!ð 	Dð 	DˆAØ+3Ô+<×+@Ò+@ÀÑ+CÔ+CˆAˆiÔ ×$Ò$ QÑ'Ô'Ñ(Ð(ð	Dõ •”ÑÔð Fð FˆØ•”Ô#Ð#Ð#Ý*/¬+Ô*>×*BÒ*BÀ1Ñ*EÔ*EˆA�g•e”l AÑ&Ô&Ñ'øõ Œ[Ô%Ô-ð Bð BˆÝ�eœl¨A¨tÑ4Ô4ÐI½ÅÀqÑ8IÔ8IˆÝœÔ1Ô:×>Ò>¸qÑAÔAˆˆ+‰ˆà€Hó    úset[Any]c                 ó8   — d„ t           j        j        D ¦   «         S )zJ
    Set of all prim functions, e.g., torch._prims.add in all_prims()
    c                óV   — h | ]&}t           j        j                             |¦  «        ’Œ'S © )r   r8   r<   r=   )Ú.0rE   s     rG   ú	<setcomp>zall_prims.<locals>.<setcomp>W   s+   € ÐGÐGÐG¨Q�EŒLÔ!×%Ò% aÑ(Ô(ÐGÐGÐGrI   )r   r8   r;   rM   rI   rG   Ú	all_primsrP   R   s   € ð
 HÐGµ%´,Ô2FÐGÑGÔGÐGrI   c                  ó2   — e Zd ZdZdd„ efdd„Z	 	 ddd„ZdS )Ú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                 ó   — dS )NFrM   )Ú_s    rG   ú<lambda>zTorchRefsMode.<lambda>l   s   € ¸U€ rI   ÚstrictÚboolÚshould_fallback_fnúCallable[..., bool]Úprims_mode_clsÚtyper   ÚNonec                ó0   — || _         || _        || _        d S )N)rV   rX   rZ   )ÚselfrV   rX   rZ   s       rG   Ú__init__zTorchRefsMode.__init__i   s!   € ð ˆŒØ"4ˆÔØ,ˆÔÐÐrI   rM   NÚ	orig_funcúCallable[_P, _R]ÚtypesúSequence[type]ÚargsúSequence[Any]Úkwargsúdict[str, Any] | Noner   c                ó|  — |€i }|t           v s|t          ¦   «         v r4|                      ¦   «         5   ||i |¤Žcd d d ¦  «         S # 1 swxY w Y   t          ¦   «         }|                     |d ¦  «        }|€Et          |t          j        j        ¦  «        r&t          j	        j
                             |d ¦  «        }n~|€|t          |t          j        j        ¦  «        r]t          |dd ¦  «        }|€#|j        rt          ||j        d         d ¦  «        }|�%t          j	        j
                             |d ¦  «        }|�C|                      | ||||¦  «        r ||i |¤ŽS | 5   ||i |¤Žcd d d ¦  «         S # 1 swxY w Y   | j        r/t!          dt          j                             |¦  «        › �¦  «        ‚ ||i |¤ŽS )NÚdefaultr   zno _refs support for )r   rP   rZ   rH   r=   Ú
isinstancer   Ú_opsÚ
OpOverloadÚ_decompÚdecomposition_tableÚOpOverloadPacketr?   Ú_dirrX   rV   ÚRuntimeErrorÚ	overridesÚresolve_name)r^   r`   rb   rd   rf   ÚmappingÚfuncri   s           rG   Ú__torch_function__z TorchRefsMode.__torch_function__s   sc  € ð ˆ>ØˆFð Õ2Ð2Ð2°iÅ9Á;Ä;Ð6NÐ6NØ×$Ò$Ñ&Ô&ð 2ð 2à �y $Ð1¨&Ð1Ð1ð2ð 2ð 2ð 2ñ 2ô 2ð 2ð 2ð 2ð 2ð 2ð 2øøøð 2ð 2ð 2ð 2õ $Ñ%Ô%ˆØ�{Š{˜9 dÑ+Ô+ˆð ˆ<�J yµ%´*Ô2GÑHÔHˆ<Ý”=Ô4×8Ò8¸ÀDÑIÔIˆDˆDØˆ\�j¨µE´JÔ4OÑPÔPˆ\Ý˜i¨°DÑ9Ô9ˆGØˆ 9¤>ˆÝ! )¨Y¬^¸AÔ->ÀÑEÔE�ØÐ"Ý”}Ô8×<Ò<¸WÀdÑKÔK�àÐà×&Ò& t¨Y¸¸dÀFÑKÔKð 2à �y $Ð1¨&Ð1Ð1Ð1àð -ð -Ø�t˜TÐ, VÐ,Ð,ð-ð -ð -ð -ñ -ô -ð -ð -ð -ð -ð -ð -øøøð -ð -ð -ð -àŒ;ð 	ÝØQ­¬×(DÒ(DÀYÑ(OÔ(OÐQÐQñô ð ð ˆy˜$Ð) &Ð)Ð)Ð)s#   ²AÁAÁAÅ E5Å5E9Å<E9)rV   rW   rX   rY   rZ   r[   r   r\   )rM   N)
r`   ra   rb   rc   rd   re   rf   rg   r   r   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r_   rv   rM   rI   rG   rR   rR   Z   sf   € € € € € ðð ð  Ø2BÐ2BØ*ð	-ð -ð -ð -ð -ð !Ø(,ð.*ð .*ð .*ð .*ð .*ð .*ð .*rI   rR   )r   r   )r   rJ   ) Ú
__future__r   Ú	functoolsÚ
contextlibr   Útypingr   r   r   Útyping_extensionsr   Úcollections.abcr	   r
   r   Útorch._decompÚtorch._primsÚtorch._refsÚtorch._refs.nnÚtorch._refs.nn.functionalÚtorch._refs.specialÚtorch.overridesÚtorch._prims_commonr   r   r   ÚcacherH   rP   rr   ÚTorchFunctionModerR   rM   rI   rG   ú<module>r‹      sž  ðØ "Ð "Ð "Ð "Ð "Ð "à Ð Ð Ð Ø "Ð "Ð "Ð "Ð "Ð "Ø .Ð .Ð .Ð .Ð .Ð .Ð .Ð .Ð .Ð .Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'ð ð 3Ø2Ð2Ð2Ð2Ð2Ð2Ð2Ð2à €€€Ø Ð Ð Ð Ø Ð Ð Ð Ø Ð Ð Ð Ø Ð Ð Ð Ø  Ð  Ð  Ð  Ø Ð Ð Ð Ø Ð Ð Ð Ø :Ð :Ð :Ð :Ð :Ð :ð €Yˆt�_„_€Ø€WˆT�]„]€ð „ð3ð 3ð 3ñ „ð3ðl „ðHð Hð Hñ „ðHðG*ð G*ð G*ð G*ð G*�E”OÔ5ñ G*ô G*ð G*ð G*ð G*rI   