Ë
    ÌÓ^j).  ã                  ó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           út/var/www/ramen.bs-engineer-server.com/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k7  rt        dt        |«      › �«      ‚|d   j                  j                  «       d u}|d   j                  j                  «       }|xr |S )Nr   zExpected 1 return, got r   )r   ÚreturnsÚlenÚAssertionErrorr/   Úis_list_liker0   )Úfnr<   Úreturns_list_likeÚreturns_tensor_likes       r,   Úreturns_multi_tensorrC   ’   sq   € Ø�g‰g�o‰o€GÜ
ˆ7ƒ|�qÒÜÐ6´s¸7³|°nÐEÓFÐFØ ™
Ÿ™×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!t        dt        |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Expected Argument, got 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   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Ô/Ü Ð#:¼4ÀÇ
Á
Ó;KÐ:LÐ!MÓNÐNØ�:‰:�?‰?×'Ñ'Ô)àŸ&™&˜ Ð)ˆ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ð75ô< ˜9“~¨Ò*‘°·
±
¸9Ó0E€IÜ
ˆ8ƒ}�qÒØ×Ñ˜A ) ¨I°i°[ÀÐCÔDà×Ñ˜' ) ¨AÐ.Ô/à˜ yÐ0Ð0r4   c                óF  — 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 ]c  \  }}|j                  j                  }t        |t        «      st        dt        |«      › �«      ‚|j!                  |› d|j"                  › d	�«       Œe 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                  t0        «      r&|j                  j                  j3                  «       r|‘ŒD }}t5        dt7        t9        t:        «      «      «      }t=        ||«      \  }}}|D �cg c]B  }t        |j                  t0        «      r&|j                  j                  j?                  «       r|‘ŒD }}t5        dt7        t9        t@        «      «      «      }t=        ||«      \  }}}|j'                  tC        | «      tC        | d¬«      jE                  «       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_typesrF   )Úallow_expensive_conversionszExpected name to be str, got rG   ú)Ú
input_basec              3  ó4   K  — | ]  }|j                   –— Œ y ­wr.   )r   )Ú.0rV   s     r,   ú	<genexpr>z#process_function.<locals>.<genexpr>ù   s   è ø€ Ò&I°! q§v¥vÑ&Iùs   ‚)r   Úunpacked_argsÚview_idxÚint64_trE   ú[ú]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   rM   Ústrr>   r/   rJ   Úexprr   Ú
substituter   rC   r=   r"   r   r1   r   r   r   r	   r\   r0   r
   r(   Úupper) r@   ÚtemplaterO   rV   Únon_self_bindingsÚnon_self_argsÚaÚnon_self_value_bindingsrr   rs   Ústate_variablesÚ
init_exprsÚinitializersÚ	init_exprr   r|   Úop_call_argsr}   Úview_idx_nameÚview_idx_typenameÚview_idx_declrp   Úsymint_bindingsÚsymints_vec_typeru   rv   rw   Útensor_bindingsÚtensors_vec_typery   rz   r{   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�}‰}ˆÜ˜$¤Ô$Ü Ð#@ÄÀdÃÀÐ!MÓNÐNØ×Ñ˜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Ø.Ø)ØØ)ØØ$×)Ñ)ØØØØ$×)Ñ)ØØØØ'Øð# ó ð ùòS Bùòùò
 =ùÚ4ùòùòPùòs0   �N ¥N ÁNÁ6N
ÂNÂ,#NÈ.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                 ó@   •— dd‰j                  «       › d‰› �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>O  s6   ø€ Ø%(Ø# B×$@Ñ$@Ó$BÐ#CÀ1ÀUÀGÐLñ&Mà*6Ø)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¶   8  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·   )rO   zlist[Binding]rP   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   rC   r\   r˜   r¶   © r4   r,   ú<module>rÆ      sñ   ðõ #å  ç ,Ð ,Ý ,÷÷ õ 0ß AÑ AÝ &÷õ ñ ÝMñ $ðóÐ ñ6 #ð,ó.Ð ðh LPð*Øð*Ø*.ð*ØDHð*àó*ó"Bóó5ð$11Øð11àð11ð &ó11óh]ð@
Ø	ð
àAð
ð ð
ð 
ô	
r4   