
    IЦig                        S SK r S SKJr  S SKJrJrJrJrJr  S SK	r	S SK
r	S SKr	S SKr	S SKr	S SKr	S SKr	S SKr	S SKJr  \ R&                  " S5      S 5       r\ R&                  " S5      S 5       r " S S\	R,                  R.                  5      rg)	    N)nullcontext)AnyCallableDictOptionalSequence)torch_function_passthroughc            	      (   [         [         R                  4[         R                  [         R                  R                  4[         R                  R                  [         R                  R                  R                  4[         R                  [         R                  R                  4[         R
                  [         R                  R
                  4[         R                  [         R                  R                  4/n 0 [         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                  R0                  [         R                  R2                  _[         R                  R4                  [         R                  R6                  _[         R                  R8                  [         R                  R:                  _[         R                  R<                  [         R                  R<                  _[         R                  R>                  [         R                  R>                  _[         R                  R@                  [         R                  R@                  _[         R                  RB                  [         R                  RB                  _[         R                  RD                  [         R                  RD                  _[         R                  RF                  [         R                  RF                  _[         R                  RH                  [         R                  RH                  [         R                  RJ                  [         R                  RJ                  [         R                  RL                  [         RN                  RP                  [         R                  RR                  [         RN                  RR                  0EnU  HN  u  p#URT                   H9  nURV                  RY                  U5      XRV                  RY                  U5      '   M;     MP     [[        [         R                  5       Hg  nU[         R                  RT                  ;   d  M#  [         R                  RV                  RY                  U5      U[]        [         R                  U5      '   Mi     [         R                  R^                  RT                   Hj  n[]        [         R                  US5      =(       d    []        [         U5      n[         R                  R^                  RV                  RY                  U5      X'   Ml     U$ )zq
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         S/var/www/html/ai-image-ml/venv/lib/python3.13/site-packages/torch/_prims/context.pytorch_to_refs_maprB      s    
	5;;>>"			ekknn778	++,	EKKOO$	u{{))*G!8!8ekk55 	ekk55 	U[[33	
 	U[[^^ 	u{{// 	!!5;;#7#7 	!!5;;#;#; 	""EKK$9$9 	ekkoo 	u{{// 	 5 5 	u{{33 	 5 5 	u{{33  	EKK--!" 	EKK--#$ 	  %++"9"9ELL00U\\00-A0  '	!!A+3+<+<+@+@+CA  $$Q'( "  '
 ###*/++*>*>*B*B1*EAgellA&' 
 [[%%--ellAt4Iq8I11::>>qA . H    c                      [         R                  R                   V s1 s H,  n [         R                  R                  R	                  U 5      iM.     sn $ s  sn f )zB
Set of all prim functions, e.g., torch._prims.add in all_prims()
)r   r2   r5   r6   r7   )r?   s    rA   	all_primsrE   H   s=    
 38,,2F2FG2FQELL!!%%a(2FGGGs   3Ac            
       X    \ rS rSrSrSS \4S jr  SS\S\S	\\	   S
\
\   4S jjrSrg)TorchRefsModeP   a  
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                      g)NF )_s    rA   <lambda>TorchRefsMode.<lambda>b   s    erC   c                 (    Xl         X l        X0l        g )N)strictshould_fallback_fnprims_mode_cls)selfrO   rP   rQ   s       rA   __init__TorchRefsMode.__init___   s     "4,rC   N	orig_functypesargskwargsc                 n   Uc  0 nU[         ;   d  U[        5       ;   a"  U R                  5          U" U0 UD6sS S S 5        $ [        5       nUR	                  US 5      nUcT  [        U[        R                  R                  5      (       a+  [        R                  R                  R	                  US 5      nOfUcc  [        U[        R                  R                  5      (       a:  [        USS 5      nUb*  [        R                  R                  R	                  US 5      nUb4  U R                  XXcU5      (       a  U" U0 UD6$ U    U" U0 UD6sS S S 5        $ U R                  (       a+  [        S[        R                   R#                  U5       35      eU" U0 UD6$ ! , (       d  f       GNc= f! , (       d  f       Nd= f)Ndefaultzno _refs support for )r	   rE   rQ   rB   r7   
isinstancer   _ops
OpOverload_decompdecomposition_tableOpOverloadPacketr9   rP   rO   RuntimeError	overridesresolve_name)rR   rU   rV   rW   rX   mappingfuncrZ   s           rA   __torch_function__ TorchRefsMode.__torch_function__i   sr    >F 22i9;6N$$& $1&1 '&#%{{9d+ <Jy%**2G2GHH==4488DID\jEJJ4O4OPPiD9G"}}88<<WdK&&tFKK $1&11T,V, ;;'(D(DY(O'PQ  $)&)); '&. s   F>F&
F#&
F4)rQ   rP   rO   )rJ   N)__name__
__module____qualname____firstlineno____doc__r   rS   r   r   r   r   r   rf   __static_attributes__rJ   rC   rA   rG   rG   P   sW      +"	- !!%)*)* )* sm	)*
 )* )*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   rb   TorchFunctionModerG   rJ   rC   rA   <module>r{      s     " : :          : T3 3l TH HB*EOO55 B*rC   