Ë
    Z^(hV-  ã                  ó8  — d dl mZ d dlmZ d dlmc mZ d dlmZ d dl	m
Z
mZmZmZmZmZ d dlmZ d dlmZmZmZ d dlmZ d	d
lmZmZmZmZmZ erd dlmZ  ed«      Z  ed«      Z!	 d	 	 	 	 	 	 	 dd„Z"dd„Z#dd„Z$dd„Z%	 	 	 	 	 	 dd„Z&dd„Z'	 	 	 	 	 	 	 	 dd„Z(y)é    )Úannotations)ÚTYPE_CHECKINGN)Ú	translate)Ú	BaseCTypeÚBindingÚ
NamedCTypeÚSymIntTÚtensorTÚVectorCType)ÚCodeTemplate)ÚArgumentÚNativeFunctionÚOptionalType)ÚFileManageré   )ÚCALL_DISPATCHÚextract_bindingsÚget_view_infoÚmodifies_argumentsÚuse_derived)Ú'NativeFunctionWithDifferentiabilityInfoa+  #define ${uppercase_op}_AVAILABLE
struct ${op} : public ${superclass} {
  ${op}(${constructor_args}) ${initializer_list}
  {}
  virtual ~${op}() override = default;
  virtual std::vector<c10::SymInt> get_symints() const override;
  virtual size_t num_symints() const override;
  virtual std::vector<at::Tensor> get_tensors() const override;
  virtual size_t num_tensors() const override;
  virtual at::Tensor operator()(const at::Tensor&) const override;
  virtual std::unique_ptr<ViewFunc> clone_and_set(
      std::optional<std::vector<c10::SymInt>> = ::std::nullopt,
      std::optional<std::vector<at::Tensor>> = ::std::nullopt) const override;

protected:
  virtual void set_symints(std::vector<c10::SymInt>) override;
  virtual void set_tensors(std::vector<at::Tensor>) override;

private:
  ${state}
};

aˆ  std::vector<c10::SymInt> ${op}::get_symints() const {
  ${get_symints}
}

size_t ${op}::num_symints() const {
  return static_cast<size_t>(${num_symints});
}

void ${op}::set_symints(std::vector<c10::SymInt> ${symints_vec}) {
  TORCH_INTERNAL_ASSERT(${symints_vec}.size() == num_symints());
  ${set_symints}
}

std::vector<at::Tensor> ${op}::get_tensors() const {
  ${get_tensors}
}

size_t ${op}::num_tensors() const {
  return static_cast<size_t>(${num_tensors});
}

void ${op}::set_tensors(std::vector<at::Tensor> ${tensors_vec}) {
  TORCH_INTERNAL_ASSERT(${tensors_vec}.size() == num_tensors());
  ${set_tensors}
}

at::Tensor ${op}::operator()(const at::Tensor& ${call_input_name}) const {
  return ${op_call};
}

std::unique_ptr<ViewFunc> ${op}::clone_and_set(
    std::optional<std::vector<c10::SymInt>> ${symints_vec},
    std::optional<std::vector<at::Tensor>> ${tensors_vec}) const {
  auto output = std::make_unique<${op}>(${clone_args});
  if (${symints_vec}.has_value()) {
    output->set_symints(std::move(*(${symints_vec})));
  }
  if (${tensors_vec}.has_value()) {
    output->set_tensors(std::move(*(${tensors_vec})));
  }
  return output;
}

c                ób  — | j                   j                  j                  «       }|j                  dd«      › d�}|rd|j	                  d«      }dj                  |j                  dd«      j                  d«      D �cg c]  }|j                  «       ‘Œ c}«      }|rd|› �}|rdnd}|› |› �S c c}w )Nú.Ú_Ú
_view_funcÚ ztorch::autograd::generated::)ÚfuncÚnameÚunambiguous_nameÚreplaceÚ
startswithÚjoinÚsplitÚtitle)ÚfÚinclude_namespaceÚ
camel_caser   Úview_func_nameÚ
is_privateÚpÚ	namespaces           úg/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/torchgen/packaged/autograd/gen_view_funcs.pyr(   r(   t   s±   € ð �6‰6�;‰;×'Ñ'Ó)€DØŸ™ S¨#Ó.Ð/¨zÐ:€NÙØ#×.Ñ.¨sÓ3ˆ
ØŸ™Ø .× 6Ñ 6°s¸CÓ @× FÑ FÀsÓ KÖL˜1ˆQ�W‰W�YÒLó
ˆñ à  Ð 0Ð1ˆNÙ2CÑ.È€IØˆ[˜Ð(Ð)Ð)ùò Ms   Á;B,c                ón   — | j                   j                  «       xs | j                   j                  «       S ©N)ÚtypeÚis_tensor_likeÚis_symint_like)Úargs    r,   Úis_symint_or_tensorr3   …   s'   € Ø�8‰8×"Ñ"Ó$ÒA¨¯©×(?Ñ(?Ó(AÐAó    c                óŒ   — t        | j                  | j                  j                  «       | j                  | j
                  ¬«      S )N)r   ÚnctypeÚargumentÚdefault)r   r   r6   Úremove_const_refr7   r8   )Úbindings    r,   r9   r9   ‰   s6   € ÜØ�\‰\Ø�~‰~×.Ñ.Ó0Ø×!Ñ!Ø—‘ô	ð r4   c                óÒ   — | j                   j                  }t        |«      dk(  sJ ‚|d   j                  j	                  «       d u}|d   j                  j                  «       }|xr |S )Nr   r   )r   ÚreturnsÚlenr/   Úis_list_liker0   )Úfnr<   Úreturns_list_likeÚreturns_tensor_likes       r,   Úreturns_multi_tensorrB   ’   s`   € Ø�g‰g�o‰o€GÜˆw‹<˜1ÒÐÐØ ™
Ÿ™×4Ñ4Ó6¸dÐBÐØ! !™*Ÿ/™/×8Ñ8Ó:ÐØÒ4Ð!4Ð4r4   c           
     óî  — g }g }|j                   }|j                  |j                  «       › d|› d�«       t        | «      dkD  r|j                  d«       g }t	        | «      D �]°  \  }}t        |j                  t        «      sJ ‚|j                  j                  j                  «       rf|j                   › d�}|j                  |«       |› d|› d|j                   › d|j                   › d	�}	d
|› d|› d|j                   › d|j                   › d�	}
nºt        |j                  j                  t        «      r_d|j                   › d�}|j                  |«       d|j                   › d�}|› d|› d|› d|j                   › d�}	|› d|j                   › d|› d�}
n7d}|j                  |«       |› d|j                   › d�}	|j                   › d|› d�}
|j                  |	«       |j                  |
«       |t        | «      dz
  k  s�Œœ|j                  d|› d�«       �Œ³ t        |«      dk(  rdndj                  |«      }t        | «      dkD  r|j                  d|› d|› d�«       |j                  d|› d�«       |||fS ) Nú ú;r   zauto i = 0;z.size()z.insert(z.end(), z
.begin(), z.end());z
std::copy(z.begin() + i, z.begin() + i + z	.size(), z
.begin());ú(z.has_value() ? 1 : 0)zif(z.has_value())z
.end(), *(z));z = z[i];Ú1z.push_back(z);r   zi += Ú0z + z	.reserve(zreturn )r   ÚappendÚcpp_typer=   Ú	enumerateÚ
isinstancer7   r   r/   r>   r   r"   Úinsert)ÚbindingsÚstate_vec_typeÚgetter_logicÚsetter_logicÚ	state_vecÚ	num_exprsÚiÚbÚnum_exprÚgetterÚsetterÚconditionalÚ	num_itemss                r,   Úgenerate_state_getter_setterr[   £   s�  € ð €LØ€Là×#Ñ#€IØ×Ñ˜>×2Ñ2Ó4Ð5°Q°y°kÀÐCÔDÜ
ˆ8ƒ}�qÒØ×Ñ˜MÔ*à€IÜ˜(Ó#ó 5‰ˆˆ1Ü˜!Ÿ*™*¤hÔ/Ð/Ð/Ø�:‰:�?‰?×'Ñ'Ô)àŸ&™&˜ Ð)ˆHØ×Ñ˜XÔ&Ø!�{ (¨9¨+°X¸a¿f¹f¸XÀZÐPQ×PVÑPVÈxÐW_Ð`ˆFØ! ) ¨N¸9¸+À_ÐUV×U[ÑU[ÐT\Ð\eÐfg×flÑflÐemÐmwÐx‰FÜ˜Ÿ
™
Ÿ™¬Ô6à˜1Ÿ6™6˜(Ð"7Ð8ˆHØ×Ñ˜XÔ&Ø §¡˜x }Ð5ˆKà�-˜q  ¨8°I°;¸jÈÏÉÈÐPSÐTð ð $�} A a§f¡f X¨S°°¸4Ð@‰FàˆHØ×Ñ˜XÔ&Ø!�{ +¨a¯f©f¨X°RÐ8ˆFØŸ™�x˜s 9 +¨TÐ2ˆFà×Ñ˜FÔ#Ø×Ñ˜FÔ#ØŒs�8‹}˜qÑ Ô Ø×Ñ %¨ z°Ð 3Ö4ð55ô: ˜9“~¨Ò*‘°·
±
¸9Ó0E€IÜ
ˆ8ƒ}�qÒØ×Ñ˜A ) ¨I°i°[ÀÐCÔDà×Ñ˜' ) ¨AÐ.Ô/à˜ yÐ0Ð0r4   c                ó  — t        | «      }|D �cg c]  }|j                  dk7  sŒ|‘Œ }}| j                  j                  j                  dd  }|D �cg c]  }t        j                  |d¬«      ‘Œ }}|D �cg c]  }|j                  «       ‘Œ }}|D �cg c]  }|j                  ‘Œ }	}|D �cg c]  }t        |«      j                  «       › d�‘Œ  }
}t        ||d¬«      }g }t        ||«      D ]N  \  }}|j                  j                  }t        |t        «      sJ ‚|j                  |› d|j                  › d�«       ŒP d	}|gd
„ |D «       ¢}t!        j"                  | j                  j                  j%                  «       |¬«      }t'        | «      rad}d}|› d|› �}|j                  |«       |	j                  |«       |
j                  |› d�«       |j                  |› d|› d�«       |d|› d�z  }t)        |«      dkD  rddj+                  |«      › �nd}|D �cg c]B  }t        |j                  t,        «      r&|j                  j.                  j1                  «       r|‘ŒD }}t3        dt5        t7        t8        «      «      «      }t;        ||«      \  }}}|D �cg c]B  }t        |j                  t,        «      r&|j                  j.                  j=                  «       r|‘ŒD }}t3        dt5        t7        t>        «      «      «      }t;        ||«      \  }}}|j#                  tA        | «      tA        | d¬«      jC                  «       d||
||	|j                  ||||j                  |||||¬«      S c c}w c c}w c c}w c c}w c c}w c c}w c c}w )NÚselfr   T)Úremove_non_owning_ref_typesrE   )Úallow_expensive_conversionsrF   ú)Ú
input_basec              3  ó4   K  — | ]  }|j                   –— Œ y ­wr.   )r   )Ú.0rU   s     r,   ú	<genexpr>z#process_function.<locals>.<genexpr>ö   s   è ø€ Ò&I°! q§v¥vÑ&Iùs   ‚)r   Úunpacked_argsÚview_idxÚint64_trD   ú[ú]r   z: z, r   ÚsymintsÚtensorsF)r'   ztorch::autograd::ViewFunc)ÚopÚuppercase_opÚ
superclassÚinitializer_listÚstateÚconstructor_argsÚ
clone_argsÚsymints_vecÚget_symintsÚset_symintsÚnum_symintsÚtensors_vecÚget_tensorsÚset_tensorsÚnum_tensorsÚcall_input_nameÚop_call)"r   r   r   Ú	argumentsÚflat_allÚ
dispatcherr7   Údefnr9   r   Úzipr6   rL   ÚstrrI   Úexprr   Ú
substituter   rB   r=   r"   r   r/   r1   r   r   r   r	   r[   r0   r
   r(   Úupper) r?   ÚtemplaterN   rU   Únon_self_bindingsÚnon_self_argsÚaÚnon_self_value_bindingsrq   rr   Ústate_variablesÚ
init_exprsÚinitializersÚ	init_exprr   r{   Úop_call_argsr|   Úview_idx_nameÚview_idx_typenameÚview_idx_declro   Úsymint_bindingsÚsymints_vec_typert   ru   rv   Útensor_bindingsÚtensors_vec_typerx   ry   rz   s                                    r,   Úprocess_functionr—   Ö   s«  € Ü Ó#€HØ$,ÖA˜q°·±¸&Ó0@šÐAÐÐAà—G‘G×%Ñ%×.Ñ.¨q¨rÐ2€MàJWöØEFŒ
×Ñ˜A¸4Ö@ðÐð ð
 +<Ö< Q˜Ÿ™�Ð<ÐÐ<Ø"3Ö4˜Q�!—&“&Ð4€JÐ4ð 3JöØ-.Ô˜AÓ×#Ñ#Ó%Ð
& aÒ(ð€Oð ô ØÐ2ÐPTô€Jð €LÜÐ-¨zÓ:ò 9‰ˆˆ9Ø�x‰x�}‰}ˆÜ˜$¤Ô$Ð$Ð$Ø×Ñ˜t˜f A i§n¡nÐ%5°QÐ7Õ8ð9ð #€OØ#ÐJÑ&IÐ7HÔ&IÐJ€LÜ×&Ñ&ØŸ™Ÿ™×6Ñ6Ó8Ø"ô€Gô ˜BÔØ"ˆØ%ÐØ,Ð-¨Q¨}¨oÐ>ˆØ×Ñ Ô.Ø×Ñ˜-Ô(Ø×Ñ - °Ð2Ô3Ø×Ñ˜}˜o¨Q¨}¨o¸QÐ?Ô@Ø�Q�}�o QÐ'Ñ'ˆô :=¸\Ó9JÈQÒ9N˜˜DŸI™I lÓ3Ð4Ñ5ÐTVÐð
 #öàÜ�a—j‘j¤(Ô+°·
±
·±×0NÑ0NÔ0Pò 	
ð€Oð ô
 " )¬[¼Ä7Ó9KÓ-LÓMÐÜ,HØÐ)ó-Ñ)€K�˜kð #öàÜ�a—j‘j¤(Ô+°·
±
·±×0NÑ0NÔ0Pò 	
ð€Oð ô
 " )¬[¼Ä7Ó9KÓ-LÓMÐÜ,HØÐ)ó-Ñ)€K�˜kð ×ÑÜ˜"ÓÜ# B°5Ô9×?Ñ?ÓAØ.Ø)ØØ)ØØ$×)Ñ)ØØØØ$×)Ñ)ØØØØ'Øð# ó ð ùòQ Bùòùò
 =ùÚ4ùòùòNùòs0   �M+¥M+ÁM0Á6M5ÂM:Â,#M?ÈANÊAN	c           
     óø  ‡‡	‡
‡‡— |D �cg c]  }t        |«      sŒ|j                  ‘Œ }}|D �cg c]  }t        |«      €Œt        |«      rŒ|‘Œ }}|D �cg c]  }t	        |t
        «      ‘Œ c}Š|D �cg c]  }t	        |t        «      ‘Œ c}Š	|D �cg c]  }d|j                  › d�‘Œ c}Šd}t        | |d¬«      Š
dD ]!  }||z   Š‰
j                  ‰‰ˆˆ	ˆ
ˆˆfd„«       Œ# y c c}w c c}w c c}w c c}w c c}w )Nz#include <ATen/ops/z_ops.h>Ú	ViewFuncsF)Úinstall_dirÚtemplate_dirÚdry_run)z.hz.cppc                 óB   •— dd‰j                  «       › d�z   ‰z   ‰ ‰‰dœS )Nú@zgenerated from ú/)Úgenerated_commentÚview_func_declarationsÚview_func_definitionsÚops_headers)Útemplate_dir_for_comments)ÚdeclarationsÚdefinitionsÚfmÚfnamer£   s   €€€€€r,   ú<lambda>z gen_view_funcs.<locals>.<lambda>L  s<   ø€ Ø%(Ø# B×$@Ñ$@Ó$BÐ#CÀ1ÐEñ&Fàñ&ð +7Ø)4Ø*ñ€ r4   )
r   r   r   r   r—   ÚFUNCTION_DECLARATIONÚFUNCTION_DEFINITIONÚ	root_namer   Úwrite_with_template)ÚoutÚfns_with_infosÚtemplate_pathr?   ÚfnsÚview_fnsÚfile_basenameÚsuffixr¥   r¦   r§   r¨   r£   s           @@@@@r,   Úgen_view_funcsrµ   5  s  ü€ ð ,Ö
?�r¬{¸2­ˆ2�7‹7Ð
?€CÐ
?ð öØœM¨"Ó-Ñ9ÔBTÐUWÕBXŠð€Hð ð JRÖRÀ2Ô$ RÔ)=Õ>ÒR€LØGOÖPÀÔ# BÔ(;Õ<ÒP€KØIQÖRÀ2Ð(¨¯©¨°gÒ>ÒR€Kà€MÜ	 °=È%Ô	P€BØ ò 
ˆØ Ñ&ˆØ
×ÑØØ÷õ	
ñ
ùò @ùòùò SùÚPùÚRs-   ŠC#›C#¯C(Á C(ÁC(ÁC-Á4C2ÂC7)FT)r%   r   r&   Úboolr'   r¶   Úreturnr‚   )r2   r   r·   r¶   )r:   r   r·   r   )r?   r   r·   r¶   )rN   zlist[Binding]rO   r   r·   z tuple[list[str], list[str], str])r?   r   r†   r   r·   r‚   )r®   r‚   r¯   z-list[NativeFunctionWithDifferentiabilityInfo]r°   r‚   r·   ÚNone))Ú
__future__r   Útypingr   Útorchgen.api.dispatcherÚapir   Útorchgen.api.translater   Útorchgen.api.typesr   r   r   r	   r
   r   Útorchgen.code_templater   Útorchgen.modelr   r   r   Útorchgen.utilsr   Úgen_inplace_or_view_typer   r   r   r   r   Útorchgen.api.autogradr   rª   r«   r(   r3   r9   rB   r[   r—   rµ   © r4   r,   ú<module>rÅ      sñ   ðõ #å  ç ,Ð ,Ý ,÷÷ õ 0ß AÑ AÝ &÷õ ñ ÝMñ $ðóÐ ñ6 #ð,ó.Ð ðh LPð*Øð*Ø*.ð*ØDHð*àó*ó"Bóó5ð"01Øð01àð01ð &ó01óf\ð~
Ø	ð
àAð
ð ð
ð 
ô	
r4   