+
    &j3%                       ^ RI Ht ^ RIt^ RIHt ^ RIHt ^ RIHt ^ RI	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 ^ R	IHt ]'       d   ^ R
IHt R R ltR R ltR R ltR R ltR R lt R R lt!R R lt"R R lt#R R lt$R R lt%R R  lt&R! R" lt'R# R$ lt(]! R%R&7       ! R' R(4      4       t)R) R* lt*R# )+    )annotationsN)	dataclass)TYPE_CHECKING)	translate)DispatcherSignature)method_with_native_function)
ArgumentBaseTyBaseTypeFunctionSchemaListTypeNativeFunctionOptionalTypeReturn
SchemaKindType)mapMaybe)Sequencec                    V ^8  d   QhRRRR/#    typr   returnbool )formats   "r/Users/jameslopez/projects/CWCArchive/cwc-podcast/.venv/lib/python3.14/site-packages/torchgen/gen_vmap_plumbing.py__annotate__r      s     C C4 CD C    c                l    \        V \        4      ;'       d    V P                  \        P                  8H  # N)
isinstancer   namer
   Tensorr   s   &r   	is_tensorr&      s$    c8$BBV]])BBr   c                    V ^8  d   QhRRRR/# r   r   )r   s   "r   r   r   !   s     A AD AT Ar   c                \    \        V \        4      ;'       d    \        V P                  4      # r!   )r"   r   r&   elemr%   s   &r   is_optional_tensorr*   !   s     c<(@@Ysxx-@@r   c                    V ^8  d   QhRRRR/# r   r   )r   s   "r   r   r   %   s     = = = =r   c                \    \        V \        4      ;'       d    \        V P                  4      # r!   )r"   r   r&   r)   r%   s   &r   is_tensor_listr-   %   s     c8$<<388)<<r   c               $    V ^8  d   QhRRRRRR/# r   r#   strcur_level_varr   z	list[str]r   )r   s   "r   r   r   )   s!     / / /C /I /r   c           	     j    R V  RV  RV  RV R2	p\         P                  ! V4      P                  R4      # )z
    auto [_value, z_bdim] = unwrapTensorAtLevel(, );
textwrapdedentsplitr#   r1   results   && r   unwrap_tensorr=   )   sD    &;D6M?RTXF??6"((..r   c               $    V ^8  d   QhRRRRRR/# r/   r   )r   s   "r   r   r   /   s!     / / /S /Y /r   c                |    R V  RV  RV  RV  RV  RV  RV R2p\         P                  ! V4      P                  R4      # )	z    std::optional<Tensor> z#_value;
    std::optional<int64_t> z_bdim;
    if (z) {
        std::tie(r3   z_bdim) = unwrapTensorAtLevel(z
.value(), z);
    }r6   r7   r;   s   && r   unwrap_optional_tensorr@   /   sh    & ! 6 "		 xv%B4&
S`Ra b	
F ??6"((..r   c               $    V ^8  d   QhRRRRRR/# )r   flat_argumentszSequence[Argument]r1   r0   r   ztuple[str, list[str]]r   )r   s   "r   r   r   9   s$     + +&+7:++r   c                f   V  Uu. uF  q"P                   NK  	  ppV  Uu. uF  q"P                  NK  	  pp\        WC4       UUu. uF  w  rV\        V4      '       g   K  VNK  	  ppp\        WC4       UUu. uF  w  rV\	        V4      '       g   K  VNK  	  ppp. p	V F  p
V	\        W4      ,          p	K  	  V F  pV	\        W4      ,          p	K  	  R P                  V	4      p. pV F2  pW9   g   W9   d   W R2V R2.,          pK!  VP                  V4       K4  	  W3# u upi u upi u uppi u uppi )r6   _value_bdim)	r#   typezipr&   r*   r=   r@   joinappend)rB   r1   a	arg_names	arg_typesr   r#   tensorsoptional_tensorsunwrapstensor
opt_tensorunwrap_codeunwrapped_arg_listargs   &&             r   gen_unwrapsrU   9   s*    "00AI0!/0AI0%(%>Q%>	)C.tt%>GQ!)77;Mc;R7   G=77  '
)*DD '))G$K>S4U&>cU%="AA%%c*	 
 **- 10Qs"   DD"D'D'4D-D-c               (    V ^8  d   QhRRRRRRRR/# )r   	outer_sigr   schemar   r1   r0   r   r   )r   s   "r   r   r   U   s,      ",:KNr   c                   . pVP                   P                  pV FG  pVP                  P                  4       '       g   K%  VP	                  R VP
                   RV R24       KI  	  \        P                  ! V4      pRP                  R \        V P                  4       VP                  4       4       4       4      pRRP                  V4       RVP                  P
                  P                  4        RV R2# )	z!isBatchedAtLevel(r4   )c              3  8   "   T F  qP                   x  K  	  R # 5ir!   )expr).0es   & r   	<genexpr>4gen_case_where_all_bdims_are_none.<locals>.<genexpr>`   s       I1Is   zif (z && z) {
  return at::_ops::z::call();
})	argumentsflat_allrF   is_tensor_likerI   r#   r   from_schemarH   r   funcunambiguous_name)rW   rX   r1   
conditions	flat_argsrT   sigtranslated_argss   &&&     r   !gen_case_where_all_bdims_are_nonerl   U   s     J  ))Ixx&&((.sxxj=/KL 
 
)
)&
1Cii  !)"5"5"7I  O[[ HHMM2245W_<M N r   c               (    V ^8  d   QhRRRRRRRR/# )r   returnsztuple[Return, ...]r1   r0   results_varr   r   )r   s   "r   r   r   i   s,      03BEr   c                   ^ p. pV  F  p\        VP                  4      '       d4   VP                  RV RV RV^,            RV RV R24       V^,          pKQ  \        VP                  4      '       d4   VP                  RV RV RV^,            RV RV R24       V^,          pK  VP                  RV RV R24       V^,          pK  	  \	        V4      ^8X  d   RV^ ,           R	2pV# R
RP                  V4       R2pV# )r   zmakeBatched(std::get<z>(z), std::get<z), rZ   zmakeBatchedVector(std::get<z	std::get<zreturn ;zreturn std::make_tuple(r4   r5   )r&   rF   rI   r-   lenrH   )rn   r1   ro   idxwrapped_returnsretr<   s   &&&    r   gen_returnsrv   i   s6    COSXX""'uB{m<ayPRS^R__bcpbqqrs 1HCCHH%%""-cU"[McTUgYVXYdXeehivhwwxy 1HC""Yse2k]!#DE1HC  ?q ?1-.a0 M +499_+E*FbIMr   c                    V ^8  d   QhRRRR/# )r   rX   r   r   r   r   )r   s   "r   r   r      s     K Kn K Kr   c                    \         ;QJ d0    R  V P                  P                   4       F  '       g   K   R# 	  R# ! R  V P                  P                   4       4      # )c              3  T   "   T F  qP                   P                  4       x  K   	  R # 5ir!   rF   rd   )r]   rJ   s   & r   r_   4accepts_at_least_one_tensor_input.<locals>.<genexpr>   s      J0I1vv$$&&0I   &(TF)anyrb   rc   )rX   s   &r   !accepts_at_least_one_tensor_inputr~      sC    3J0@0@0I0IJ33J3J3J0@0@0I0IJJJr   c                    V ^8  d   QhRRRR/# )r   argumentr	   r   r   r   )r   s   "r   r   r      s     L LX L$ Lr   c                Z    V P                   R J;'       d    V P                   P                  # r!   )
annotationis_write)r   s   &r   is_mutated_argr      s'    d*KKx/B/B/K/KKr   c                    V ^8  d   QhRRRR/# r   native_functionr   r   
str | Noner   )r   s   "r   r   r      s     * *~ ** *r   c                :   V P                   p\        P                  ! V4      pVP                  pVP	                  4       \
        P                  8w  d   \        R VP	                  4        24      h\        VP                  P                  ^ ,          4      '       g   R# \        VP                  P                   Uu. uF  p\        V4      '       g   K  VNK  	  up4      ^8w  d   R# \        V4      ^ 8X  d   R# \        ;QJ d    R V 4       F  '       d   K   RM	  RM! R V 4       4      '       g   R# \        V4      '       g   R# Rp\        VP                  P                  V4      w  rg\        W!V4      pRVP!                  VP"                  P%                  4       R,           R7       R	V R
\&        P(                  ! VR4       R\&        P(                  ! VR4       RRP+                  V4       RVP                  P                  ^ ,          P"                   R2# u upi )zExpected inplace schema, got Nc              3     "   T F7  p\        VP                  4      ;'       g    \        VP                  4      x  K9  	  R # 5ir!   )r&   rF   r-   r]   ru   s   & r   r_   ,gen_vmap_inplace_plumbing.<locals>.<genexpr>   s-     R'3y">>nSXX&>>'s
    AAFT	cur_level:template <typename batch_rule_t, batch_rule_t batch_rule>
_generated_plumbingr#   z {
  c10::impl::ExcludeDispatchKeyGuard guard(DispatchKey::FuncTorchBatched);
  auto maybe_layer = maybeCurrentDynamicLayer();
  vmap_check_escaped(maybe_layer, "gen_vmap_inplace_plumbing");
  int64_t  = maybe_layer->layerId();
  r6   
  batch_rule(r4   z);
  return z;
})rf   r   re   rn   kindr   inplaceAssertionErrorr   rb   rc   rr   allr~   rU   rl   declr#   rg   r8   indentrH   )	r   rX   rj   rn   rT   r1   rO   rS   bdims_all_none_cases	   &        r   gen_vmap_inplace_plumbingr      s   
 !!F

)
)&
1CnnG {{}
***<V[[]OLMM&**33A677
6++44L4Cs8KCC4LMQRR 7|q3R'R333R'RRR,V44M"-f.>.>.G.G"WG;CWv{{++-0EEF G H / 	$d+ , -	$   !ii*+, -




#
#A
&
+
+	, - ! Ms   9HHc                    V ^8  d   QhRRRR/# )r   r   r   r   r0   r   )r   s   "r   r   r      s      . S r   c                   V P                   p\        P                  ! V4      pR p\        VP                  P
                  V4      w  rE\        W!V4      pRVP                  VP                  P                  4       R,           R7       RV R\        P                  ! VR4       R\        P                  ! VR4       RR	P                  V4       R
2# )r   r   r   r   z {
  c10::impl::ExcludeDispatchKeyGuard guard(DispatchKey::FuncTorchBatched);
  auto maybe_layer = maybeCurrentDynamicLayer();
  vmap_check_escaped(maybe_layer, "gen_vmap_plumbing_no_returns");
  int64_t r   r   r6   r   r4   ra   )rf   r   re   rU   rb   rc   rl   r   r#   rg   r8   r   rH   )r   rX   rj   r1   rO   rS   r   s   &      r   gen_vmap_plumbing_no_returnsr      s    !!F

)
)&
1CM"-f.>.>.G.G"WG;CWv{{++-0EEF G H / 	$d+ , -	$   !ii*+, -
 
r   c                    V ^8  d   QhRRRR/# r   r   )r   s   "r   r   r      s     1 1~ 1* 1r   c                   V P                   p\        P                  ! V4      pVP                  p\	        V4      '       g   R # \        V4      ^ 8X  d   \        V 4      # . ROp\        ;QJ d    R V 4       F  '       d   K   RM	  RM! R V 4       4      '       g"   VP                  P                  4       V9  d   R # RV P                  9   d   R # VP                  4       \        P                  8X  d   \        V 4      # VP                  4       \        P                  8w  d   R # RpRp\!        VP"                  P$                  V4      w  rx\'        W!V4      p	\)        W6V4      p
RVP+                  VP                  P                  4       R,           R	7       R
V R\,        P.                  ! V	R4       R\,        P.                  ! VR4       RV RRP1                  V4       RV
 R2# )Nc              3  T   "   T F  qP                   P                  4       x  K   	  R # 5ir!   rz   r   s   & r   r_   $gen_vmap_plumbing.<locals>.<genexpr>   s     =Wc''))Wr|   FTinplace_viewresultsr   r   r   r   z {
  c10::impl::ExcludeDispatchKeyGuard guard(DispatchKey::FuncTorchBatched);
  auto maybe_layer = maybeCurrentDynamicLayer();
  vmap_check_escaped(maybe_layer, "gen_vmap_plumbing");
  int64_t r   r   r6   z
  auto z = batch_rule(r4   z);
  z
})#_scaled_dot_product_flash_attention#_scaled_dot_product_cudnn_attention-_scaled_dot_product_flash_attention_quantized)rf   r   re   rn   r~   rr   r   r   r#   rg   tagsr   r   r   r   
functionalrU   rb   rc   rl   rv   r   r8   r   rH   )r   rX   rj   rn   return_symint_overridesro   r1   rO   rS   r   rt   s   &          r   gen_vmap_plumbingr      s   !!F

)
)&
1CnnG -V44
7|q+O<< C=W=CCC=W===KK((*2II---{{}
***(99 {{}
---KM"-f.>.>.G.G"WG;CW!'+FOv{{++-0EEF G H / 	$d+ , -	$   !}N499-?#@"A B  r   T)frozenc                  ,    ] tR tRt]R R l4       tRtR# )ComputeBatchRulePlumbingi  c                    V ^8  d   QhRRRR/# )r   fr   r   r   r   )r   s   "r   r   %ComputeBatchRulePlumbing.__annotate__  s      . Z r   c                	    \        V4      pV# r!   )r   )selfr   r<   s   && r   __call__!ComputeBatchRulePlumbing.__call__  s    "1%r   r   N)__name__
__module____qualname____firstlineno__r   r   __static_attributes__r   r   r   r   r     s      !r   r   c                    V ^8  d   QhRRRR/# )r   native_functionszSequence[NativeFunction]r   r0   r   )r   s   "r   r   r   	  s      ,D  r   c                f    R P                  \        \        \        4       V 4      4      4      pRV R2# )r6   z|
#pragma once
#include <ATen/Operators.h>
#include <ATen/functorch/PlumbingHelper.h>

namespace at { namespace functorch {

z 

}} // namespace at::functorch
)rH   listr   r   )r   bodys   & r   gen_all_vmap_plumbingr   	  s<    99T(#;#=?OPQRD  
 
r   )+
__future__r   r8   dataclassesr   typingr   torchgen.api.translater   torchgen.api.typesr   torchgen.contextr   torchgen.modelr	   r
   r   r   r   r   r   r   r   r   torchgen.utilsr   collections.abcr   r&   r*   r-   r=   r@   rU   rl   rv   r~   r   r   r   r   r   r   r   r   r   <module>r      s    "  !   , 2 8   $ (CA=//+8(4KL*Z*1h $  r   