+
    &jhw                    :   ^ RI Ht ^ RIt^ RIHt ^ RIHt ^ RIHu H	t	 ^ RI
Ht ^ RIHtHtHt ^ RIHt ^ RIHtHtHtHtHtHtHtHtHtHtHtHtHtH t H!t!H"t"H#t# ^ R	I$H%t% ]'       d   ^ R
I&H't' RR.t(RR.t). RNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNR NR!NR"NR#NR$NR%NR&NR'NR(NR)NR*NR+NR,NR-NR.NR/NR0NR1NR2NR3NR4Nt*R5.t+R6 R7 lt,R8 R9 lt-R: R; lt.R< R= lt/R> R? lt0R@ RA lt1RB RC lt2RD RE lt3RF RG lt4RH RI lt5]RJ RK l4       t6]RL RM l4       t7R# )N    )annotationsN)defaultdict)TYPE_CHECKING)	translate)BindingDispatcherSignatureExpr)with_native_function)
AnnotationArgumentBackendIndexBackendMetadataBaseOperatorNameBaseTyBaseTypeDEFAULT_KERNEL_NAMESPACEDeviceCheckTypeDispatchKeyFunctionSchemaNativeFunctionNativeFunctionsGroupOperatorNameReturn
SchemaKindVariant)	concatMap)Sequencez'adaptive_avg_pool3d_backward.grad_inputz _slow_conv2d_backward.grad_input_cummax_helper_cummin_helper_assert_asyncz_assert_async.msg_assert_tensor_metadata_cslt_sparse_mm_search_assert_scalar_dimI_dimV_has_same_storage_numel_linalg_check_errors_local_scalar_dense%_nested_tensor_from_mask_left_aligned_nnz_use_cudnn_ctc_lossz_use_cudnn_ctc_loss.Tensor_use_miopen_ctc_lossz_use_miopen_ctc_loss.Tensor#_validate_compressed_sparse_indicesallclose	dense_dimequalis_coalesced	is_pinnedis_same_size	is_set_toq_per_channel_axisq_scaleq_zero_pointqschemerecord_stream
sparse_dimsym_constrain_rangesym_constrain_range_for_size_nested_tensor_storage_offsets'_chunk_grad_outputs_efficient_attention_fused_sdp_choice_print_sink_tokens_nested_get_ragged_idx
polygamma_c                    V ^8  d   QhRRRR/# )   native_functionszSequence[NativeFunction]returnz6dict[FunctionSchema, dict[SchemaKind, NativeFunction]] )formats   "{/Users/jameslopez/projects/CWCArchive/cwc-podcast/.venv/lib/python3.14/site-packages/torchgen/native_function_generation.py__annotate__rK   p   s     ( (.(;(    c                R   \        \        4      pV  F  pWP                  P                  4       ,          pVP                  P	                  4       V9   d4   \        R VP                  P	                  4        RVP                   24      hW#VP                  P	                  4       &   K  	  V# )zDuplicate schema kind z for )r   dictfunc	signaturekindAssertionError)rF   pre_grouped_native_functionsfds   &   rJ   pre_group_native_functionsrV   p   s    
 	D ! ()9)9);<66;;=A #9!&&++-affX!VWW!&&++-	 
 ('rL   c                    V ^8  d   QhRRRR/# )rE   overload_name
str | NonerG   strrH   )rI   s   "rJ   rK   rK      s     B B* B BrL   c                     V '       g   R # V  R2# )out_outrH   )rX   s   &rJ   &get_expected_out_variant_overload_namer^      s    %5Am_D+AArL   c                    V ^8  d   QhRRRR/# rE   rO   r   rG   rH   )rI   s   "rJ   rK   rK      s       > rL   c                   V P                  4       \        P                  8w  d   \        R V P                  4        24      hV P                  P
                  f   \        R4      h\        V P                  P                  4       P                  \        V P                  P                  4      4      V P                  P                  4       P                  \        RV P                  P
                  P                  P                   RV P                  P
                  P                  P"                  R7      .4      V P$                  R7      # )zExpected inplace schema, got Nz Expected self_arg to be non-Noner\   nametypedefault
annotationrc   	argumentsreturns)rQ   r   inplacerR   rh   self_argr   rc   remove_inplacewith_overloadr^   rX   remove_self_annotationwith_out_argsr   argumentrd   rf   ri   )rO   s   &rJ   self_to_out_signaturerq      s    yy{j(((<TYY[MJKK~~&?@@
 YY%%'5524993J3JK
 ..779GG0099>> #~~66??JJ		
  rL   c                    V ^8  d   QhRRRR/# r`   rH   )rI   s   "rJ   rK   rK      s      n  rL   c                   V P                  4       \        P                  8w  d   \        R V P                  4        24      h\	        V 4      w  r\        V P                  P                  \        V P                  P                  4      4      V P                  P                  4       P                  V4      \        V4      R7      # )z Expected functional schema, got rg   )rQ   r   
functionalrR   generate_out_args_from_schemar   rc   rm   r^   rX   rh   rP   ro   tuplerO   new_returnsnew_out_argss   &  rJ   functional_to_out_signaturerz      s    yy{j+++?		}MNN =d CK
 YY$$24993J3JK
 ..**,::
 k" rL   c                    V ^8  d   QhRRRR/# )rE   rO   r   rG   z#tuple[list[Return], list[Argument]]rH   )rI   s   "rJ   rK   rK      s     +% +%
+%(+%rL   c           
        \         ;QJ d&    R  V P                   4       F  '       g   K   RM	  RM! R  V P                   4       4      '       d   \        R4      hV P                   Uu. uF&  qP                  P	                  4       '       g   K$  VNK(  	  pp\        V4      ^ 8X  d   \        R4      h\        R V P                  P                  4      p\        P                   Uu. uF  qDV9  g   K  VNK  	  pp\        ;QJ d&    R V P                   4       F  '       d   K   RM	  RM! R V P                   4       4      p. p. p\        V P                  4       F  w  rVP                  P	                  4       '       d   \        \        V P                  4      ^8X  d   RMRV	 2VP                  R\        P                  ! WY,           R	24      R
7      p
VP!                  V
4       V'       d6   \#        RV
P                  V
P$                  R7      pVP!                  V4       K  K  VP!                  V4       K  	  W3# u upi u upi )c              3  x   "   T F0  qP                   R J;'       d    VP                   P                  x  K2  	  R # 5iN)rf   is_write.0rs   & rJ   	<genexpr>0generate_out_args_from_schema.<locals>.<genexpr>   s,     
T|!<<t#==(=(==|s   ::TFz8Mutable schema kinds should not return mutable argumentsz(Expected at least one tensor-like returnc                N    V P                   f   . # V P                   P                  # r~   )rf   	alias_set)as   &rJ   <lambda>/generate_out_args_from_schema.<locals>.<lambda>   s    ,"H!,,2H2HHrL   c              3  l   "   T F*  qP                   \        \        P                  4      8H  x  K,  	  R # 5ir~   )rd   r   r   Tensorr   s   & rJ   r   r      s      W,Qvv&--)@@,s   24r\   N!rb   )rc   rd   rf   )anyri   rR   rd   is_tensor_likelenr   rh   flat_allstringascii_lowercaseall	enumerater   r   parseappendr   rf   )rO   r   tensorlike_retsused_annotationsxvalid_annotationsall_rets_are_tensorsry   rx   inew_outnew_rets   &           rJ   ru   ru      s   
 s
Tt||
Tsss
Tt||
TTTWXX"&,,J,Q&&2G2G2Iqq,OJ
?q GHH H %+$:$:X$:qGW>W$:X3W$,,W333W$,,WW#%L !#K$,,'66  ""!$,,/14UCs)VV%++/@/C.DA,FG	G (# !GLLW=O=O ""7+ $ q!# ($ $$G K Ys   (!H<H<$I1Ic                    V ^8  d   QhRRRR/# r`   rH   )rI   s   "rJ   rK   rK      s      > n rL   c                   V P                  4       \        P                  8w  d   \        R V P                  4        24      h\	        V 4      w  r\        V P                  P                  4       P                  \        V P                  P                  4      4      V P                  P                  V4      \        V4      R7      # )zExpected mutable schema, got rg   )rQ   r   mutablerR   ru   r   rc   rl   rm   r^   rX   rh   ro   rv   rw   s   &  rJ   mutable_to_out_signaturer      s    yy{j(((<TYY[MJKK !>d CKYY%%'5524993J3JK
 ....|<k" rL   c               $    V ^8  d   QhRRRRRR/# )rE   rT   r   kr   rG   zMtuple[NativeFunction, dict[DispatchKey, dict[OperatorName, BackendMetadata]]]rH   )rI   s   "rJ   rK   rK     s)     d dd$dRdrL   c                   ^ RI Hp V\        P                  8X  Ed   V P                  P                  4       \        P                  8X  d   \        R4      hV P                  P                  RR7      P                  \        \        V P                  P                  P                  P                  RV P                  P                  P                  P                  V P                  P                  4       \        P                  8H  R7      V P                  P                  P                  R7      4      pMV\        P                   8X  d   V P                  P                  4       \        P"                  8X  d   \%        V P                  4      pMV P                  P                  4       \        P                  8X  d   \'        V P                  4      pMYV P                  P                  4       \        P                  8X  d   \)        V P                  4      pM\        R4      h\        R	4      hVP                  4       \        P                   8X  d   VP                  P+                  4       MVP                  V4      pV P                  P-                  4       '       d
   VR
,          p\.        P0                  VP                  \3        VR\4        R7      //pR0\7        V P8                  0 R&m,          4      ,          p\;        R'/ RVbRV P<                  bR\>        P@                  0bRRbRRbRRbRRbR. bR/ bRRbRRbRRbRRbRRbR\B        PD                  bRV PF                  bR\7        4       bRV PH                  bR RbR!RbR"RbR#RbR$VbR%V PJ                  b V3# )(r   )cppz1Cannot generate functional from functional schemaT)keep_return_namesF)baserj   dunder_methodfunctional_overload)rc   rX   z^We only bother generating out= functions from either inplace or mutable or functional variantszDWe currently only generate either functional or out= NativeFunctions_symint)kernel
structuredcpp_namespace	generatedrO   !use_const_ref_for_mutable_tensorsvariantsr   structured_delegateNstructured_inheritsprecomputedautogenufunc_inner_loopmanual_kernel_registrationmanual_cpp_bindingpython_modulecategory_overridedevice_guarddevice_checkloccpp_no_default_argsis_abstract&has_composite_implicit_autograd_kernel4has_composite_implicit_autograd_nested_tensor_kernel&has_composite_explicit_autograd_kernel5has_composite_explicit_autograd_non_functional_kerneltags	namespace>   	view_copypt2_compliant_tagnondeterministic_seededrH   )&torchgen.apir   r   rt   rO   rQ   rR   rP   	with_namer   r   rc   r   r   r   rX   r\   rj   rq   r   rz   unambiguous_name
has_symintr   CompositeExplicitAutogradr   r   setr   r   r   r   functionr   NoCheckr   r   r   )rT   r   r   rO   kernel_namebackend_metadatar   s   &&     rJ   generate_functionr     s=    !J!!!66;;=J111 !TUU vv$7AA%))..!"#&&++"2"2"@"@()9K9K(K  ffkk77	
 
jnn	 66;;=J...(0DVV[[]j000+AFF3DVV[[]j333.qvv6D p  R
 	
 99;*..( 			""$XXd^ 
 	vvy --II" 60
 =3	NN D
 	 	
	
./.Q.Q	
 &&'		

 	
 !%	
 !%	
 	
 	
  	
 (-	
  %	
 	
 #	
 	
  )00!	
" #	
$ !$%	
& '	
( 49)	
* BG+	
, 48-	
. CH/	
4 5	
6 kk7	
: 	= rL   c               $    V ^8  d   QhRRRRRR/# )rE   rszlist[NativeFunction]indicesz6dict[DispatchKey, dict[OperatorName, BackendMetadata]]rG   NonerH   )rI   s   "rJ   rK   rK     s+     y yyCy 
yrL   c                4   \        V 4      pVP                  4        EFw  p\        P                  V9   p\        P                  V9   p\        P
                  V9   p\        P                  V9   p\        ;QJ d*    R  VP                  4        4       F  '       g   K   RM	  RM! R  VP                  4        4       4      pV'       g   V'       g   V'       g   V'       g   K  \        ;QJ d*    R VP                  4        4       F  '       d   K   RM	  RM! R VP                  4        4       4      p	\        ;QJ d*    R VP                  4        4       F  '       g   K   RM	  RM! R VP                  4        4       4      p
\        ;QJ d*    R VP                  4        4       F  '       d   K   RM	  RM! R VP                  4        4       4      pV	'       g   V
'       g   V'       d   V'       g   EK  V'       d   \        VP                  4       4      ^8X  dw   \        V\        P                  ,          P                  P                  4      \        9  d7   \        R\        V\        P                  ,          P                  4       24      hEKq  V'       dA   \        V\        P                  ,          P                  P                  4      \        9   d   EK  V'       d   V\        P
                  ,          MTV'       d   V\        P                  ,          M5V'       d   V\        P                  ,          MV\        P                  ,          pVP                  P!                  4       \        P                  8H  ;'       g]    \        ;QJ d0    R VP                  P"                   4       F  '       g   K   RM%	  RM!! R VP                  P"                   4       4      p\        ;QJ d&    R VP$                   4       F  '       g   K   RM	  RM! R VP$                   4       4      pV'       * ;'       d    T;'       d    TpV'       g{   V'       gs   \        VP                  P                  4      \&        9  dK   \        VP                  P                  4      \(        9  d#   \        R	\        VP                  4       R
24      hV'       dY   \+        V\        P                  4      w  ppVV\        P                  &   \,        P.                  ! VV4       V P1                  V4       V'       d   EK  V'       g   V'       g   EK  \+        V\        P                  4      w  ppVV\        P                  &   \,        P.                  ! VV4       V P1                  V4       EKz  	  R# )c              3  @   "   T F  pR VP                   9   x  K  	  R# 5i)coreN)r   )r   variants   & rJ   r   1add_generated_native_functions.<locals>.<genexpr>  s     GJf,Js   TFc              3  8   "   T F  qP                   x  K  	  R # 5ir~   )r   r   rT   s   & rJ   r   r     s     F:a11:   c              3     "   T FD  qP                   ;'       d-    \        VP                  P                  P                  4      R 8g  x  KF  	  R# 5i)set_N)
is_view_oprZ   rO   rc   r   s   & rJ   r   r     s8      JTQ@@QVV[[%5%5!6&!@@*s
   A5Ac              3  8   "   T F  qP                   x  K  	  R # 5ir~   )r   r   s   & rJ   r   r     s      )BLQ88*r   zEFound an out= operator that we could not find any other variants of: c              3  T   "   T F  qP                   P                  4       x  K   	  R # 5ir~   )rd   r   r   s   & rJ   r   r     s#      M1EA%%''1Es   &(c              3  >   "   T F  pR \        V4      9   x  K  	  R# 5i)r\   N)rZ   )r   op_names   & rJ   r   r     s     QgES\1s   zBFound an operator that we could not generate an out= variant for: z.
This type of operators don't have tensor-like return, making it difficult to generate a proper out= variant. If
out= variant is not needed, please add the function name into FUNCTIONAL_OPS_THAT_CANNOT_GET_AN_OUT_VARIANT list.N)rV   valuesr   rt   rj   r   r\   r   r   r   rZ   rO   rc   &OUT_OPS_THAT_DONT_GET_GROUPED_PROPERLYrR   *INPLACE_OPS_THAT_DONT_GET_GROUPED_PROPERLYrQ   ri   r   *MUTABLE_OPS_THAT_CANNOT_GET_AN_OUT_VARIANT-FUNCTIONAL_OPS_THAT_CANNOT_GET_AN_OUT_VARIANTr   r   
grow_indexr   )r   r   rS   rU   has_functionalhas_inplacehas_mutablehas_outis_core
are_manualhas_view_opsare_composite_implicitbase_fnbase_fn_valid	needs_outgets_out_variantfnmetadatas   &&                rJ   add_generated_native_functionsr     s    $>b#A )002#..!3 ((A- ((A-..A%#GAHHJG###GAHHJGG +NNF188:FF188:FFJ 3 JK((*333 JK((* L &)S )BC((*)SSS )BC((*) &" \-CG3qxxz?a/ *..)..334AB )_`cdefpftftdudzdz`{_|}  
 *,,-22778=>   *$$%  z))*  z~~&z,,- " $LL--/:3E3EE   M181E1EM M181E1EM JM QQQQQI#*{JJ}JJ=))*EFGLL--.HI )^_bcjcoco_p^q rr u   0*..IH$&*..!'':		"
 ">w2B2B0*:O:OPH+-*''('':		"c 3rL   c               $    V ^8  d   QhRRRRRR/# )rE   retsztuple[Return, ...]names	list[str]rG   rZ   rH   )rI   s   "rJ   rK   rK     s'     
Y 
Y' 
Y	 
Yc 
YrL   c                L   \        V 4      \        V4      8w  d$   \        R \        V 4       R\        V4       24      h\        V 4      ^ 8X  d   R# \        V 4      ^8X  d   RV^ ,           R2# R\        P                  ! V 4      P	                  4        RRP                  V4       R2# )z#Returns and names length mismatch: z vs  zreturn ;(, );)r   rR   
dispatcherreturns_typecpp_typejoin)r   r   s   &&rJ   
return_strr
    s    
4yCJ1#d)DUM
 	
 4yA~	Taq
!$$006??AB!DIIeDTCUUWXXrL   c               $    V ^8  d   QhRRRRRR/# )rE   rO   r   out_varrZ   rG   r   rH   )rI   s   "rJ   rK   rK     s!     	 	~ 	 		 	rL   c                    V P                  4       p. p\        V P                  4      ^8  p\        V4       F-  w  rVVe   K  TP	                  V'       d
   RV RV R2MT4       K/  	  V# )   	std::get<>())aliased_return_namesr   ri   r   r   )rO   r  aliased_retsnon_aliased_namesis_out_var_a_tupler   r   s   &&     rJ   gather_nonaliased_inner_retsr    sl    ,,.LT\\*Q.,'9$$/A)A3b	+w (
 rL   c                    V ^8  d   QhRRRR/# rE   gr   rG   rY   rH   )rI   s   "rJ   rK   rK   !  s     9 9'; 9
 9rL   c                   R V P                   P                  9  d   R# V P                  e)   R V P                  P                  9  d   V P                  pM^V P                  e)   R V P                  P                  9  d   V P                  pM(\	        \        V P                   P                  4      4      h\        V P                   P                  4      p\        VP                  4      p. p. p. p\        \        P                  ! V P                   P                  4      \        P                  ! VP                  4      4       F  w  rxVP                  e   VP                  P                  '       d   VP                  RVP                   RVP                   R24       VP                  \        VP                   R2\        P                   ! WwP                  R7      R7      4       VP                  VP                   R24       K  VP                  \        P"                  ! V4      4       K  	  RP%                  \'        WCP)                  4       4       U	u. uF  qP*                  NK  	  up	4      p
R	p\-        VP                  P.                  4      ^ 8  d   RV R
2MRp\1        VP                  V4      p\3        V P                   P                  P.                  W,           4      pRP%                  V4      pRTP5                  VP                  4       V P6                  P                  P9                  4       '       d   RMR,           R7       RV RV RVP                  P                  P;                  4        RV
 RV R2# u up	i )r   Nzauto z_clone = clone_arg(r  _clone)binds)exprrd   r  outputz = r  
r   rc   z {
  
  z
at::_ops::::call();
  
}
)rt   r   rj   r   rR   rZ   rO   r   zipr  jit_argumentsrf   r   r   rc   r	   argument_typerp   r	  r   rh   r  r   ri   r  r
  defnr\   r   r   )r  target_fsig
target_sigcontextclone_mutable_inputscloned_return_namesa_curra_tgteexprsout_namemaybe_assigninner_return_namesret_strclone_mutable_inputs_strs   &               rJ   gen_composite_functional_kernelr8     s    !,,+++yyAIINN!B99	
	;aiinn#D99 S!2!2344
all//
0C$X]]3J$&G   !2!23  / 'E,<,<,E,E,E ''}$7}BG NN"KK=/#11&L  &&&++f'=>NN:..v67#$ IIy:N:N:P'QR'Q!vv'QRSEH,/0E0E,F,JU8*C(PRL5hmmXN	!!#5#KG  $yy)=>sxxz!%%***?*?*A*AYrJK L M .
8==-->>@A P
) 	  Ss   M8c                    V ^8  d   QhRRRR/# r  rH   )rI   s   "rJ   rK   rK   `  s     6 6 4 6 6rL   c                   R V P                   P                  9  d   R# \        V P                   P                  4      p\        V P                  P                  4      pRP                  \        VP                  4       VP                  4       4       Uu. uF  q3P                  NK  	  up4      p. pRp\        V P                   P                  P                  P                   4       Fp  w  rx\        V P                  P                  P                  4      ^8X  d   TMRV RV R2p	VP                  RVP                   RV	 RVP                   RV	 R	2	4       Kr  	  . p
\        V P                   P                  P                  4       4       Ff  w  r{Ve   V
P                  V4       K  \        V P                  P                  P                  4      ^8X  d   TMRV RV R2p	V
P                  V	4       Kh  	  R
P                  V4      pR
TP                  V P                   P                  P                  P!                  4       V P                   P                  P#                  4       '       d   RMR,           R7       RV RV P                  P                  P                  P!                  4        RV RV R\%        V P                   P                  P                  V
4       R2# u upi )r   Nr  
tmp_outputr  r  r  z  resize_out_helper(z);
  copy_arg(r  r  r   r  r   z
 {
  auto z = at::_ops::r"  r#  r!  r$  )r\   r   r   rO   rt   r	  r   rh   r  r   r   ri   r   rc   r  r(  r   r   r
  )r  r*  r+  r1  r2  	copy_outsr3  r   out_argfunctional_return_namer   ret_namecopy_outs_strs   &            rJ   gen_composite_out_kernelrA  _  s}    !%%**$ aeejj
)C$Q\\%6%67JII"3==?J4H4H4JKLKAKLE IH

 4 4 8 89
 1<<$$,,-2 QCr(1- 	
 	\\N"%;$< =LL>2329	
 : D !!@!@!BCKK! q||((001Q6  2hZq1 #
 KK./ D IIi(Mquuzz//1!%%**BWBWBYBYY_abc d ezq||0055FFHIQVPW X/ aeejj  $'( )	 G 	Ms   K)8
__future__r   r   collectionsr   typingr   torchgen.api.dispatcherapir  torchgen.api.translater   torchgen.api.typesr   r   r	   torchgen.contextr
   torchgen.modelr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   torchgen.utilsr   collections.abcr   r   r   r   r   rV   r^   rq   rz   ru   r   r   r   r
  r  r8  rA  rH   rL   rJ   <module>rM     sk   "  #   , , , A A 1    & % ( . '* & 	. *'1'1'1 '1 	'1
 '1 '1 '1 '1 '1 '1 ,'1 '1 '1 !'1 '1  "!'1" *#'1$ %'1& ''1( )'1* +'1, -'1. /'10 1'12 3'14 5'16 7'18 9'1: ;'1< ='1> ?'1@ #A'1B %C'1D .E'1F G'1H I'1J K'1L M'1 -^ . *(BF,+%fHd^yx
Y	 9 9| 6 6rL   