§
    Ì²Åjàl  ã                  ó²  — U d dl mZ d dlZd dlZd dl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mZmZmZmZmZ d dlmZ erd dlmZ  ej        ¦   «         Zded	<   d@d„Z e d¦  «        Z!dAd„Z"dBd„Z# e d¦  «        Z$ e d¦  «        Z%dCd„Z&dCd„Z' e d¦  «        Z( e d¦  «        Z)dDd „Z*d!Z+ ej,        e+¦  «        Z-d"ed#<   dEd$„Z.dFd&„Z/dGd)„Z0dGd*„Z1ej2        d+ej3        dej4        d,ej5        dej6        dej7        dej8        diZ9dHd.„Z:dId/„Z;dJd3„Z<dJd4„Z=dJd5„Z>dKd7„Z?dJd8„Z@ e d9¦  «        ZAdLd:„ZBdMd;„ZC G d<„ d=¦  «        ZD G d>„ d?¦  «        ZEdS )Né    )ÚannotationsN)ÚTYPE_CHECKING)Únative_function_manager)ÚArgumentÚBackendIndexÚBaseTyÚBaseTypeÚFunctionSchemaÚNativeFunctionsGroupÚNativeFunctionsViewGroupÚOptionalTypeÚSelfArgumentÚTensorOptionsArgumentsÚType)Úconfig)ÚSequencezlogging.LoggerÚloggerÚ	argumentsú:Sequence[Argument | SelfArgument | TensorOptionsArguments]ÚreturnÚboolc                ód   — | D ],}t          |dd ¦  «        }|sŒt          |dd¦  «        }|r dS Œ-dS )NÚ
annotationÚ	alias_set© TF)Úgetattr)r   Úargr   r   s       úRC:\Projects\Historical\venv\Lib\site-packages\torchgen/static_runtime/generator.pyÚ	has_aliasr   !   sY   € ð ð ð ˆÝ˜S ,°Ñ5Ô5ˆ
Øð 	ØÝ˜J¨°RÑ8Ô8ˆ	Øð 	Ø�4�4ð	àˆ5ó    )¹Úsparse_sampled_addmmÚhspmmÚlinalg_svdvalsÚsspaddmmÚcoalesceÚ_indicesÚindicesÚ_valuesÚvaluesÚcrow_indicesÚcol_indicesÚfloor_divideÚgerÚconj_physicalÚbinary_cross_entropyÚarccoshÚcholeskyÚlu_solveÚlinalg_choleskyÚlinalg_householder_productÚlinalg_ldl_solveÚ_compute_linear_combinationÚ
_make_dualÚ
_fw_primalÚ_index_reduceÚ!_new_zeros_with_same_feature_metaÚ_conj_physicalÚ binary_cross_entropy_with_logitsÚbincountÚconv_tbcÚcopyÚ
_copy_fromÚ_copy_from_and_resizeÚcount_nonzeroÚcudnn_affine_grid_generatorÚ$cudnn_affine_grid_generator_backwardÚcudnn_grid_samplerÚ
diag_embedÚ	embeddingÚembedding_dense_backwardÚ_embedding_bag_dense_backwardÚ*_embedding_bag_per_sample_weights_backwardÚgrid_sampler_2dÚ_grid_sampler_2d_cpu_fallbackÚgrid_sampler_3dÚisnanÚmkldnn_linearÚmedianÚ	nanmedianÚ_sparse_sparse_matmulÚbatch_norm_backward_elemtÚ_euclidean_distÚpixel_shuffleÚpixel_unshuffleÚchannel_shuffleÚ_reshape_nested_backwardÚreluÚpreluÚceluÚslice_scatterÚselect_scatterÚdiagonal_scatterÚsumÚ_mkldnn_transposeÚ_nested_tensor_from_maskÚ_nested_from_paddedÚ_nested_tensor_sizeÚ&_nested_from_padded_and_nested_exampleÚ_standard_gamma_gradÚ_dirichlet_gradÚnative_normÚ_sparse_softmaxÚ_sparse_softmax_backward_dataÚ_sparse_log_softmaxÚ!_sparse_log_softmax_backward_dataÚzeroÚ_sparse_addmmÚsparse_maskÚ_sparse_mask_projectionÚ	_to_denseÚ	_coalesceÚ
_coalescedÚcopy_sparse_to_sparseÚ	to_sparseÚto_sparse_csrÚto_sparse_cscÚ	to_mkldnnÚquantize_per_tensor_dynamicÚquantize_per_channelÚq_per_channel_scalesÚq_per_channel_zero_pointsÚint_reprÚ"_make_per_channel_quantized_tensorÚsetÚliftÚ
lift_freshÚlift_fresh_copyÚmasked_scatterÚ_masked_softmaxÚ_masked_softmax_backwardÚputÚindex_reduceÚtraceÚ_cholesky_solve_helperÚdistÚmaxÚ_torch_cuda_cu_linker_symbol_opÚglu_jvpÚglu_backward_jvpÚhardswish_backwardÚrrelu_with_noise_backwardÚ#mkldnn_adaptive_avg_pool2d_backwardÚ_adaptive_avg_pool2d_backwardÚ_adaptive_avg_pool3d_backwardÚisinfÚlinalg_lu_solveÚlinalg_vecdotÚlinalg_matrix_expÚlinalg_eigvalshÚ_test_warn_in_autogradÚ%_test_autograd_multiple_dispatch_viewÚ*_test_autograd_multiple_dispatch_view_copyÚ_segment_reduceÚ_segment_reduce_backwardÚ_fw_primal_copyÚ_make_dual_copyÚview_as_real_copyÚview_as_complex_copyÚ
_conj_copyÚ_neg_view_copyÚdiagonal_copyÚdetach_copyÚsqueeze_copyÚt_copyÚunsqueeze_copyÚ_indices_copyÚ_values_copyÚindices_copyÚvalues_copyÚcrow_indices_copyÚcol_indices_copyÚccol_indicesÚccol_indices_copyÚrow_indicesÚrow_indices_copyÚunfold_copyÚ
alias_copyÚ_triton_multi_head_attentionÚspecial_airy_aiÚspecial_bessel_j0Úspecial_bessel_j1Úspecial_bessel_y0Úspecial_bessel_y1Úspecial_chebyshev_polynomial_tÚspecial_chebyshev_polynomial_uÚspecial_chebyshev_polynomial_vÚspecial_chebyshev_polynomial_wÚspecial_hermite_polynomial_hÚspecial_hermite_polynomial_heÚspecial_laguerre_polynomial_lÚspecial_legendre_polynomial_pÚspecial_modified_bessel_i0Úspecial_modified_bessel_i1Úspecial_modified_bessel_k0Úspecial_modified_bessel_k1Ú!special_scaled_modified_bessel_k0Ú!special_scaled_modified_bessel_k1Ú&special_shifted_chebyshev_polynomial_tÚ&special_shifted_chebyshev_polynomial_uÚ&special_shifted_chebyshev_polynomial_vÚ&special_shifted_chebyshev_polynomial_wÚspecial_spherical_bessel_j0Ú_foobarÚ_nested_tensor_stridesÚ_nested_tensor_storage_offsetsÚ_nested_get_valuesÚ_nested_get_values_copyÚ_nested_view_from_jaggedÚ_nested_view_from_jagged_copyÚ_nested_view_from_bufferÚ_nested_view_from_buffer_copyÚ_int_mmÚ_to_sparse_cscÚ_to_sparse_csrÚsegment_reduceÚgú/NativeFunctionsGroup | NativeFunctionsViewGroupc                ój  — d}d }t          | t          ¦  «        r| j        j        }| j        j        }n'| j        j        j        j        j        }| j        j        }t          j	        | ¦  «        rt                               d|¦  «         dS |t          v rt                               d|¦  «         dS |                     ¦   «         D ]6}t          |j        ¦  «        }|st                               d|¦  «          dS Œ7t          | t          ¦  «        r]dt!          j        |j        d¬¦  «                             ¦   «         k    r*t                               dt)          |¦  «        ¦  «         dS d	S | j        j                             ¦   «         D ]@}t          |j        ¦  «        }|s(t                               d| j        j        ¦  «          dS ŒA| j        s[t/          | d
¦  «        rIt)          |¦  «                             d¦  «        r't)          |j        ¦  «                             d¦  «        sdS dt!          j        |j        d¬¦  «                             ¦   «         k    rt                               d|¦  «         dS t3          |j        j        ¦  «        rt                               d|¦  «         dS d	S )NÚ zHAND WRITTEN: %sFzBLOCKED: %sz!NOT SUPPORTED TYPE CONVERTING: %sz
at::Tensor)ÚsymintzNON-TENSOR RET TYPE: %sTÚoutzTensor(a!) out) -> Tensor(a!)z.outzat::Tensor &zNON_TENSOR RET TYPE: %szINPUTS ALIAS: %s)Ú
isinstancer   ÚviewÚ	root_nameÚfuncrß   ÚnameÚbaser   Úis_hand_writtenr   ÚinfoÚBLOCKED_OPSÚschema_order_argumentsÚivalue_type_conversion_methodÚtypeÚcppÚreturns_typeÚreturnsÚcpp_typeÚstrÚ
functionalÚ
structuredÚhasattrÚendswithr   r   Únon_out)rÚ   Úbase_op_namerã   r   Úmaybe_methods        r   Úis_supportedrø   ö   s‘  € Ø€LØ€DÝ�!Õ-Ñ.Ô.ð Ø”vÔ'ˆØŒvŒ{ˆˆà”u”z”Ô+Ô0ˆØŒuŒzˆÝÔ˜aÑ Ô ð Ý�ŠÐ&¨Ñ5Ô5Ð5ØˆuØ•{Ð"Ð"Ý�Š�M <Ñ0Ô0Ð0ØˆuØ×*Ò*Ñ,Ô,ð ð ˆÝ4°S´XÑ>Ô>ˆØð 	å�KŠKÐ;¸TÑBÔBÐBØ�5�5ð	õ
 �!Õ-Ñ.Ô.ð ð �3Ô+¨D¬LÀÐGÑGÔG×PÒPÑRÔRÒRÐRå�KŠKÐ1µ3°t±9´9Ñ=Ô=Ð=Ø�5Øˆtð Œ|Ô ×7Ò7Ñ9Ô9ð ð ˆÝ4°S´XÑ>Ô>ˆØð 	å�KŠKÐ;¸Q¼\Ô=NÑOÔOÐOØ�5�5ð	ð
 Œ<ð 	õ
 ˜˜5Ñ!Ô!ð	å�t‘9”9×%Ò%Ð&EÑFÔFð	õ �t”y‘>”>×*Ò*¨6Ñ2Ô2ð	ð
 �5à�Ô)¨$¬,¸uÐEÑEÔE×NÒNÑPÔPÒPÐPÝ�ŠÐ-¨tÑ4Ô4Ð4ØˆuÝ�”Ô'Ñ(Ô(ð å�ŠÐ&¨Ñ5Ô5Ð5ØˆuØˆ4r    Úarg_typeúBaseType | OptionalType | Typeútuple[bool, str] | Nonec                óº  — t           j        dt           j        dt           j        dt           j        dt           j        dt           j        di}d}t          | t          ¦  «        r| j	        }n@t          | t          ¦  «        r)t          | j        t          ¦  «        sdS | j        j	        }ndS ||vrdS ||         }t          | t          ¦  «        r|d         S |d	         S )
aD  
    Return the method call expression of `c10::ivalue' to convert its contained value to
    the expected value of `arg_type` type. For example, for `arg_type` == BaseTy.Tensor,
    this function returns ".toTensor()", so that it can be appended to the ivalue's
    variable name to get the value of the expected type.
    ))Tz
toTensor())FztoOptional<at::Tensor>()))FztoInt())FztoOptional<int64_t>()))FztoBool())FztoOptional<bool>()))Fz
toScalar())FztoOptional<at::Scalar>()))FztoScalarType())FztoOptional<at::ScalarType>()))FztoStringView())FztoOptional<c10::string_view>()Nr   é   )r   ÚTensorÚintr   ÚScalarÚ
ScalarTyperð   rà   r	   rä   r   Úelem)rù   Útype_conversion_methodsÚbase_ty_objectÚmethodss       r   rê   rê   2  sâ   € õ 	ŒÐRÝŒ
ÐJÝŒÐIÝŒÐSÝÔð 
õ 	Œ
ð 
ðÐð €NÝ�(�HÑ%Ô%ð Ø!œˆˆÝ	�H�lÑ	+Ô	+ð Ý˜(œ-­Ñ2Ô2ð 	à�4Ø!œÔ+ˆˆàˆtàÐ4Ð4Ð4ØˆtØ% nÔ5€GÝ�(�HÑ%Ô%ð Ø�qŒzÐØ�1Œ:Ðr    )Úbitwise_notÚbitwise_andÚ
bitwise_orÚbitwise_xorÚbitwise_left_shiftÚbitwise_right_shiftÚgcdÚlcmÚscatterÚgatherÚ _convert_indices_from_coo_to_csrÚ _convert_indices_from_csr_to_coo)Úview_as_realÚimagÚ_conjÚop_namerð   c                ó   — | t           v S ©N)Úshould_use_int_tensor_ops_©r  s    r   Úshould_use_int_tensorr  p  s   € ØÕ0Ð0Ð0r    c                ó   — | t           v S r  )Úshould_use_complex_tensor_ops_r  s    r   Úshould_use_complex_tensorr  t  s   € ØÕ4Ð4Ð4r    )	ÚaddmvÚ	index_addr  r  Únll_loss_backwardÚdotÚvdotÚouterr-   )ÚaddmmÚmmÚnuclear_normÚdiagÚ_addmm_activationÚmatrix_HÚtrÿ   c                ó2   — | t           v rdS | t          v rdS dS )Nrý   é   é   )Útest_tensor_dim_ops_1_Útest_tensor_dim_ops_2_r  s    r   Útest_tensor_dimr0  Š  s)   € ØÕ(Ð(Ð(ØˆqØÕ(Ð(Ð(ØˆqØˆ1r    z{"view_as_complex": "{2, 2}"}zdict[str, str]Útest_tensor_shape_jsonc                ó2   — | t           v rt           |          S dS )NrÝ   )r1  r  s    r   Útest_tensor_shaper3  –  s   € ØÕ(Ð(Ð(Ý% gÔ.Ð.àˆrr    Úindexc                óð  — t          |¦  «        }|dk    rr|dk    rdnd}t          |¦  «        }t          j        |t	          |¦  «        z  ¦  «        }||dz  z  }d                     d                     |› g|z  ¦  «        ¦  «        }t          |¦  «        rd|› d	�}nt          |¦  «        rd
|› d�}nd|› d�}t          j
        |t          j        dt          j        dt          j        dt          j        dt          j        di}d }	t!          | t"          ¦  «        r| j        }	n=t!          | t&          ¦  «        rt!          | j        t"          ¦  «        sJ ‚| j        j        }	|	|v s
J d¦   «         ‚||	         }
|
S )NrÝ   r   é   é@   r,  z{{{}}}ú,zat::randint(1, 100, z, at::kInt)z
at::randn(z, at::kComplexFloat)z	at::rand(ú)Ú1ÚfalseÚ2zat::ScalarType::Floatz"floor"znot expected type)r3  r0  ÚmathÚceilÚfloatÚformatÚjoinr  r  r   rþ   rÿ   r   r   r  rð   rà   r	   rä   r   r  )rù   r4  r  Útensor_size_exÚnum_tensorsÚnum_dimÚsize_per_dimÚtensor_expressionÚvalue_expressionsr  Úvalue_expressions              r   Útest_value_expressionrI  �  s©  € õ ' wÑ/Ô/€NØ˜ÒÐØ! QšJ˜J�b�b¨BˆÝ! 'Ñ*Ô*ˆÝ”y ­u°W©~¬~Ñ!=Ñ>Ô>ˆØ˜ qÑ(Ñ(ˆØ!Ÿš¨¯ª°lÐ3DÐ2EÈÑ2OÑ)PÔ)PÑQÔQˆÝ˜WÑ%Ô%ð :ØN°>ÐNÐNÐNÐÐÝ	" 7Ñ	+Ô	+ð :ØM¨ÐMÐMÐMÐÐà9¨Ð9Ð9Ð9Ðõ 	ŒÐ(ÝŒ
�CÝŒ�WÝŒ�sÝÔÐ2ÝŒ
�IðÐð €NÝ�(�HÑ%Ô%ð ,Ø!œˆˆå˜(¥LÑ1Ô1ð 	
µjØŒM�8ñ7
ô 7
ð 	
ð 	
ð 
ð "œÔ+ˆØÐ.Ð.Ð.Ð.Ð0CÑ.Ô.Ð.Ø(¨Ô8ÐØÐr    Úschemar
   c                ó�  — |                       ¦   «         rJ ‚| j        j        j        }i }|                      ¦   «         D ]"}t	          |j        ||¦  «        }|||j        <   Œ#t          j        |||¦  «         g }|                     ¦   «         D ]"\  }}| 	                    d|› |› d|› �¦  «         Œ#d 
                    |¦  «        dz   S )Nzauto z = ú;
    ú;)Ú	is_out_fnrä   rå   ré   rI  rë   r   Úoverride_test_valuesÚitemsÚappendrA  )	rJ  r4  Úschema_nameÚarg_mapr   Útest_value_expÚarg_populationsÚarg_nameÚ	arg_values	            r   Úgenerate_test_value_definitionsrX  Ä  så   € Ø×ÒÑ!Ô!Ð!Ð!Ð!Ø”+Ô"Ô'€KØ€GØ×,Ò,Ñ.Ô.ð +ð +ˆÝ.¨s¬x¸ÀÑLÔLˆØ*ˆ�”ÑÐÝ
Ô ¨°eÑ<Ô<Ð<Ø€OØ&Ÿ}š}™œð Hð HÑˆ�)Ø×ÒÐF xÐF°ÐFÐF¸9ÐFÐFÑGÔGÐGÐGØ�>Š>˜/Ñ*Ô*¨SÑ0Ð0r    c                ó–   ‡— |                       ¦   «         rJ ‚d                     ˆfd„|                      ¦   «         D ¦   «         ¦  «        S )Nr8  c              3  ó.   •K  — | ]}|j         › ‰› �V — Œd S r  ©rä   )Ú.0r   r4  s     €r   ú	<genexpr>z,generate_test_value_names.<locals>.<genexpr>Ô  s0   øè è € ÐTÐT¨S�s”xÐ( Ð(Ð(ÐTÐTÐTÐTÐTÐTr    )rN  rA  ré   )rJ  r4  s    `r   Úgenerate_test_value_namesr^  Ò  sN   ø€ Ø×ÒÑ!Ô!Ð!Ð!Ð!Ø�8Š8ÐTÐTÐTÐT°F×4QÒ4QÑ4SÔ4SÐTÑTÔTÑTÔTÐTr    rþ   r?  úlist[tuple[str, str | None]]c                óL   ‡— dd„Šˆfd„|                       ¦   «         D ¦   «         S )Nr   r   r   útuple[str, str | None]c                óì   — | j         }d}t          |t          ¦  «        r	|j        }d}t          |t          ¦  «        sJ ‚d }|j        t          v rt          |j                 }|r|r|› d�}d| j        z   |fS )NFTú?ú%)rë   rà   r   r  r	   rä   Ú/generate_test_ir_arguments_base_ty_to_type_str_)r   r*  Úadd_optionalÚtype_strs       r   Úir_argumentz/generate_test_ir_arguments.<locals>.ir_argumentå  sŒ   € ØŒHˆØˆÝ�a�Ñ&Ô&ð 	 Ø”ˆAØˆLÝ˜!�XÑ&Ô&Ð&Ð&Ð&ØˆØŒ6ÕDÐDÐDÝFÀqÄvÔNˆHØð 	&˜ð 	&Ø"�~�~�~ˆHØ�c”h‘ Ð)Ð)r    c                ó&   •— g | ]} ‰|¦  «        ‘ŒS r   r   )r\  r   rh  s     €r   ú
<listcomp>z.generate_test_ir_arguments.<locals>.<listcomp>ó  s#   ø€ ÐHÐHÐH ˆKˆK˜ÑÔÐHÐHÐHr    )r   r   r   ra  )ré   )rJ  rh  s    @r   Úgenerate_test_ir_argumentsrk  â  s@   ø€ ð*ð *ð *ð *ð IÐHÐHÐH¨×(EÒ(EÑ(GÔ(GÐHÑHÔHÐHr    c                ó  — g }t          |                      ¦   «         ¦  «        D ]N\  }}t          |j        ¦  «        }|sJ ‚|\  }}|rdnd}|                     d|› d|j        › d|› d|› �¦  «         ŒOd                     |¦  «        dz   S )	Nú&rÝ   z
const autoú z = p_node->Input(z).rL  rM  )Ú	enumerateré   rê   rë   rQ  rä   rA  )rJ  rU  Úir   r÷   Úis_referenceÚtype_conversion_methodÚ	references           r   Úgenerate_arg_extractionrt  ö  s½   € Ø€OÝ˜F×9Ò9Ñ;Ô;Ñ<Ô<ð 
ð 
‰ˆˆ3Ý4°S´XÑ>Ô>ˆØÐÐˆ|Ø/;Ñ,ˆÐ,Ø'Ð/�C�C¨Rˆ	Ø×ÒØ]˜Ð]Ð] S¤XÐ]Ð]ÀÐ]Ð]ÐE[Ð]Ð]ñ	
ô 	
ð 	
ð 	
ð �>Š>˜/Ñ*Ô*¨SÑ0Ð0r    r   Úbackend_indexr   c                ó’   — |                      | j        ¦  «        }| j        s|€t          j        | j        j        ¦  «        S |j        S r  )Ú
get_kernelrñ   rò   rì   rä   rã   Úkernel©rÚ   ru  rx  s      r   Úget_kernel_namerz    sB   € Ø×%Ò% a¤lÑ3Ô3€FØ„|ð +�v�~ÝŒx˜œÔ)Ñ*Ô*Ð*ØŒ=Ðr    c                ó’   — |                      | j        ¦  «        }| j        s|€t          j        | j        j        ¦  «        S |j        S r  )rw  rß   rò   rì   rä   rã   rx  ry  s      r   Úget_out_kernel_namer|  
  sA   € Ø×%Ò% a¤eÑ,Ô,€FØ„|ð $�v�~ÝŒx˜œœ
Ñ#Ô#Ð#ØŒ=Ðr    c                óö   — | j         j        }|                     ¦   «         rJ ‚t          | |¦  «        }d„ |                     ¦   «         D ¦   «         }| j        rdnd}d|› d|› dd                     |¦  «        › d�S )	Nc              3  ó$   K  — | ]}|j         V — Œd S r  r[  ©r\  r   s     r   r]  z0generate_non_out_variant_call.<locals>.<genexpr>  ó$   è è € ÐEÐE˜c�”ÐEÐEÐEÐEÐEÐEr    ÚcpuÚnativeúat::ú::ú(r8  r9  )rñ   rã   rN  rz  ré   rò   rA  )rÚ   ru  rJ  Úkernel_nameÚ	arg_namesÚnamespace_names         r   Úgenerate_non_out_variant_callr‰    s‘   € ð Œ\Ô€FØ×ÒÑ!Ô!Ð!Ð!Ð!Ý! ! ]Ñ3Ô3€KØEÐE V×%BÒ%BÑ%DÔ%DÐEÑEÔE€IØœlÐ8�U�U°€NØH�.ÐHÐH KÐHÐH°#·(²(¸9Ñ2EÔ2EÐHÐHÐHÐHr    r   c                ó  — | j         j        }t          j        |¦  «        }|                     | j         ¦  «        }|r|j        }d„ |                     ¦   «         D ¦   «         }d}d|› d|› dd                     |¦  «        › d�S )Nc              3  ó$   K  — | ]}|j         V — Œd S r  r[  r  s     r   r]  z,generate_call_to_view_ops.<locals>.<genexpr>$  r€  r    r‚  rƒ  r„  r…  r8  r9  )rá   rã   rì   rä   rw  rx  ré   rA  )rÚ   ru  rJ  r†  rx  r‡  rˆ  s          r   Úgenerate_call_to_view_opsrŒ    s‘   € ð ŒVŒ[€FÝ”(˜6Ñ"Ô"€KØ×%Ò% a¤fÑ-Ô-€FØð $Ø”mˆØEÐE V×%BÒ%BÑ%DÔ%DÐEÑEÔE€IØ€NØH�.ÐHÐH KÐHÐH°#·(²(¸9Ñ2EÔ2EÐHÐHÐHÐHr    c                óŒ  — | j         j        }|                     ¦   «         sJ ‚g }t          | |¦  «        }| j        rd„ |j        j         D ¦   «         }ng }|j        j        D ]h}t          |t          ¦  «        r | 	                    |j
        j        ¦  «         Œ7t          |t          ¦  «        sJ ‚| 	                    |j        ¦  «         Œi| j        sIt          |j        j         ¦  «        dk    sJ ‚| 	                    |j        j         d         j        ¦  «         d                     |¦  «        }| j        rdnd}d|› d|› d	|› d
�S )Nc                ó   — g | ]	}|j         ‘Œ
S r   r[  )r\  Úout_args     r   rj  z-generate_out_variant_call.<locals>.<listcomp>2  s   € ÐFÐFÐF g�W”\ÐFÐFÐFr    rý   r   r8  r�  r‚  rƒ  r„  r…  r9  )rß   rã   rN  r|  rò   r   rõ   rà   r   rQ  Úargumenträ   r   ÚlenrA  )rÚ   ru  rJ  r‡  r†  r   Úcpp_arg_namesrˆ  s           r   Úgenerate_out_variant_callr“  )  sb  € ð ŒUŒZ€FØ×ÒÑÔÐÐÐØ€IÝ% a¨Ñ7Ô7€KØ„|ð àFÐF°Ô1AÔ1EÐFÑFÔFˆ	ˆ	àˆ	ØÔÔ'ð 'ð 'ˆÝ�c�<Ñ(Ô(ð 	'Ø×Ò˜Sœ\Ô.Ñ/Ô/Ð/Ð/å˜c¥8Ñ,Ô,Ð,Ð,Ð,Ø×Ò˜SœXÑ&Ô&Ð&Ð&ØŒ<ð 7Ý�6Ô#Ô'Ñ(Ô(¨AÒ-Ð-Ð-Ð-Ø×Ò˜Ô)Ô-¨aÔ0Ô5Ñ6Ô6Ð6Ø—H’H˜YÑ'Ô'€MØœlÐ8�U�U°€NØB�.ÐBÐB KÐBÐB°-ÐBÐBÐBÐBr    )zisin.Scalar_Tensorr  r!  r"  r&  ÚhistcÚl1_lossÚmulti_margin_lossÚmultilabel_margin_lossÚnll_lossÚ
nll_loss2dÚprodc                ól   — t          | ¦  «        }|d |                     d¦  «        …         }|t          vS )Nr…  )rð   ÚfindÚno_memory_resize_ops)rJ  Ú
schema_strÚtype_variant_op_names      r   Úshould_check_resizer   U  s6   € Ý�V‘”€JØ%Ð&<¨
¯ª¸Ñ(<Ô(<Ð&<Ô=ÐØÕ';Ð;Ð;r    c                ó8   — | j         j        j        j        j        S r  )rñ   rã   rä   rå   )rÚ   s    r   Úop_name_from_groupr¢  [  s   € ØŒ<ÔÔ!Ô&Ô+Ð+r    c                  ó.   — e Zd Zdd„Zdd	„Zdd„Zdd„ZdS )ÚGenOpDispatcherÚgroupsúSequence[NativeFunctionsGroup]ru  r   r   rð   c                ó|  — |sdS g }|D ]|}t          |¦  «        5  t          |¦  «        sJ ‚t          |t          ¦  «        sJ ‚|                      ||¦  «        }|                     |¦  «         d d d ¦  «         n# 1 swxY w Y   Œ}t          |d         ¦  «        }d                     |¦  «        }d|› d|› d|› d�}|S )NrÝ   r   ú
z&
REGISTER_OPERATOR_FUNCTOR(
    aten::ú,
    aten_ú(,
    [](Node* n) -> SROperator {
      z9
      LogAndDumpSchema(n);
      return nullptr;
    })
)r   rø   rà   r   Úout_variant_op_generatorrQ  r¢  rA  ©	Úselfr¥  ru  Úgenerated_type_variantsrÚ   Úgenerated_type_variantr  ÚbodyÚ	generateds	            r   Úout_variantzGenOpDispatcher.out_variant`  sT  € ð ð 	Ø�2Ø"$ÐØð 	Gð 	GˆAÝ(¨Ñ+Ô+ð Gð GÝ# A‘”Ð&Ð&�Ý! !Õ%9Ñ:Ô:Ð:Ð:Ð:Ø)-×)FÒ)FÀqÈ-Ñ)XÔ)XÐ&Ø'×.Ò.Ð/EÑFÔFÐFð	Gð Gð Gñ Gô Gð Gð Gð Gð Gð Gð Gøøøð Gð Gð Gð Gøõ
 % V¨A¤YÑ/Ô/ˆØ�yŠyÐ0Ñ1Ô1ˆð	àð	ð 	ð ð	ð 	ð
 ð	ð 	ð 	ˆ	ð Ðó   šAA:Á:A>	ÂA>	ú"Sequence[NativeFunctionsViewGroup]c                ó†  — |sdS g }|D ]|}t          |¦  «        5  t          |¦  «        sJ ‚t          |t          ¦  «        sJ ‚|                      ||¦  «        }|                     |¦  «         d d d ¦  «         n# 1 swxY w Y   Œ}t          j        |d         ¦  «        }d                     |¦  «        }d|› d|› d|› d�}|S )NrÝ   r   r¨  z-
REGISTER_NATIVE_OPERATOR_FUNCTOR(
    aten::r©  rª  z:
      LogAndDumpSchema(n);
      return nullptr;
    });
)	r   rø   rà   r   Úview_op_generatorrQ  r   Úfunc_name_base_strrA  r¬  s	            r   rá   zGenOpDispatcher.viewz  sW  € ð ð 	Ø�2Ø"$ÐØð 	Gð 	GˆAÝ(¨Ñ+Ô+ð Gð GÝ# A‘”Ð&Ð&�Ý! !Õ%=Ñ>Ô>Ð>Ð>Ð>Ø)-×)?Ò)?ÀÀ=Ñ)QÔ)QÐ&Ø'×.Ò.Ð/EÑFÔFÐFð	Gð Gð Gñ Gô Gð Gð Gð Gð Gð Gð Gøøøð Gð Gð Gð Gøõ
 Ô+¨F°1¬IÑ6Ô6ˆØ�yŠyÐ0Ñ1Ô1ˆð	àð	ð 	ð ð	ð 	ð
 ð	ð 	ð 	ˆ	ð Ðr³  rÚ   r   c                ó†  — |j         }t          |j        ¦  «        }t          |j         j        ¦  «        }t	          ||¦  «        }t          |j        j        j        j        ¦  «        dk    sJ ‚t          |j        j        j        j        d         j        ¦  «        }t          ||¦  «        }d|› d|› d|› d|› d|› d|› d	�}	|	S )
Nrý   r   ú+
      if (n->matches(torch::schema("aten::ú<"))) {
        return [](ProcessedNode* p_node) {
          zM
          if (p_node->Output(0).isNone()) {
            p_node->Output(0) = z2;
            return;
          }
          auto& z< = p_node->Output(0).toTensor();
          fastResizeToZero(z);
          ú;
        };
      })
rñ   rð   rã   rt  r‰  r‘  rß   r   rä   r“  )
r­  rÚ   ru  rñ   rJ  Úpopulated_argumentÚfunctional_variant_callÚout_variable_nameÚout_variant_callr±  s
             r   r«  z(GenOpDispatcher.out_variant_op_generator”  sü   € ð ”\ˆ
Ý�Z”_Ñ%Ô%ˆÝ4°Q´\Ô5FÑGÔGÐÝ"?ÀÀ=Ñ"QÔ"QÐÝ�1”5”:Ô'Ô+Ñ,Ô,°Ò1Ð1Ð1Ð1Ý ¤¤
Ô 4Ô 8¸Ô ;Ô @ÑAÔAÐÝ4°Q¸ÑFÔFÐðØ+1ðð ð ðð ð
 "9ðð ð #ðð ð .ðð ð ðð ð ˆ	ð Ðr    r   c                ó¢   — t          |j        j        ¦  «        }t          |j        j        ¦  «        }t	          ||¦  «        }d|› d|› d|› d�}|S )Nr¹  rº  z!
            p_node->Output(0) = r»  )rð   rá   rã   rt  rŒ  )r­  rÚ   ru  rJ  r¼  r½  r±  s          r   r¶  z!GenOpDispatcher.view_op_generator­  sv   € õ �Q”V”[Ñ!Ô!ˆÝ4°Q´V´[ÑAÔAÐÝ";¸A¸}Ñ"MÔ"MÐðØ+1ðð ð ðð ð "9ð	ð ð ˆ	ð Ðr    N)r¥  r¦  ru  r   r   rð   )r¥  r´  ru  r   r   rð   ©rÚ   r   ru  r   r   rð   ©rÚ   r   ru  r   r   rð   )Ú__name__Ú
__module__Ú__qualname__r²  rá   r«  r¶  r   r    r   r¤  r¤  _  sd   € € € € € ðð ð ð ð4ð ð ð ð4ð ð ð ð2ð ð ð ð ð r    r¤  c                  ó.   — e Zd Zdd„Zdd„Zdd
„Zdd„ZdS )ÚGenOpTestCaser¥  r¦  r   rð   c                ó4  — |sdS g }|D ]{}t          |¦  «        5  t          |¦  «        sJ ‚t          |t          ¦  «        sJ ‚|                      |¦  «        }|                     |¦  «         d d d ¦  «         n# 1 swxY w Y   Œ|d                     |¦  «        S ©NrÝ   r¨  )r   rø   rà   r   Ú"out_variant_op_test_case_generatorrQ  rA  ©r­  r¥  r®  rÚ   r¯  s        r   r²  zGenOpTestCase.out_variant¾  s  € Øð 	Ø�2Ø"$ÐØð 	Gð 	GˆAÝ(¨Ñ+Ô+ð Gð GÝ# A‘”Ð&Ð&�Ý! !Õ%9Ñ:Ô:Ð:Ð:Ð:Ø)-×)PÒ)PÐQRÑ)SÔ)SÐ&Ø'×.Ò.Ð/EÑFÔFÐFð	Gð Gð Gñ Gô Gð Gð Gð Gð Gð Gð Gøøøð Gð Gð Gð Gøð
 �yŠyÐ0Ñ1Ô1Ð1ó   šAA9Á9A=	Â A=	r´  c                ó4  — |sdS g }|D ]{}t          |¦  «        5  t          |¦  «        sJ ‚t          |t          ¦  «        sJ ‚|                      |¦  «        }|                     |¦  «         d d d ¦  «         n# 1 swxY w Y   Œ|d                     |¦  «        S rÉ  )r   rø   rà   r   Úview_op_test_case_generatorrQ  rA  rË  s        r   rá   zGenOpTestCase.viewÊ  s  € Øð 	Ø�2Ø"$ÐØð 	Gð 	GˆAÝ(¨Ñ+Ô+ð Gð GÝ# A‘”Ð&Ð&�Ý! !Õ%=Ñ>Ô>Ð>Ð>Ð>Ø)-×)IÒ)IÈ!Ñ)LÔ)LÐ&Ø'×.Ò.Ð/EÑFÔFÐFð	Gð Gð Gñ Gô Gð Gð Gð Gð Gð Gð Gøøøð Gð Gð Gð Gøð
 �yŠyÐ0Ñ1Ô1Ð1rÌ  rÚ   r   c                óf  — |j         j        }t          |¦  «        }|                     d¦  «        dk    sJ ‚|d |                     d¦  «        …                              dd¦  «        }t          |¦  «        }|                     |¦  «        sJ ‚t          |¦  «        }d                     d„ |D ¦   «         ¦  «        }d                     d„ |D ¦   «         ¦  «        }t          |j
        ¦  «        dk    rHt          |j
        d         j        t          ¦  «        r#|j
        d         j        j        t          j        u sJ ‚t#          |d¦  «        }	t%          |d¦  «        }
t#          |d¦  «        }t%          |d¦  «        }t'          |¦  «        rd	nd
}d|› d|› d|› d|› d|	› d|
› d|› d|› d|› d|› d�}|S )Nr…  r   ú.Ú_ú, c              3  ó2   K  — | ]\  }}|€|n|› d|› �V — Œd S ©Nz: r   ©r\  rV  rù   s      r   r]  zCGenOpTestCase.out_variant_op_test_case_generator.<locals>.<genexpr>à  óQ   è è € ð ð á&�H˜hð %Ð,��°XÐ2KÐ2KÀÐ2KÐ2Kðð ð ð ð ð r    c              3  ó    K  — | ]	\  }}|V — Œ
d S r  r   ©r\  rV  rÑ  s      r   r]  zCGenOpTestCase.out_variant_op_test_case_generator.<locals>.<genexpr>å  ó&   è è € ÐEÐE©K¨H°a˜xÐEÐEÐEÐEÐEÐEr    rý   Útruer;  ú
TEST(StaticRuntime, autogen_ú1) {
  const std::string script = R"IR(
    graph(ú?):
        %bias: None = prim::Constant()
        %ret = aten::úQ)
        %cloned = aten::clone(%ret, %bias)
        return (%cloned)
  )IR";

  ú
  std::vector<IValue> args{zj};
  testStaticRuntime(script, args, {}, /*use_allclose=*/false, /*use_equalnan=*/false, /*check_resize=*/z);

  z
  std::vector<IValue> args2{zm};
  testStaticRuntime(script, args, args2, /*use_allclose=*/false, /*use_equalnan=*/false, /*check_resize=*/z);

}
)rñ   rã   rð   rœ  Úreplacer¢  Ú
startswithrk  rA  r‘  rî   rà   rë   r	   rä   r   rþ   rX  r^  r   )r­  rÚ   rJ  rž  rŸ  r  Ú	arg_typesÚarg_declarationsr‡  Útest_value_definitionsÚtest_value_namesÚtest_value_definitions2Útest_value_names2Úcheck_resizer±  s                  r   rÊ  z0GenOpTestCase.out_variant_op_test_case_generatorÖ  s?  € Ø”Ô"ˆÝ˜‘[”[ˆ
Ø�Š˜sÑ#Ô# aÒ'Ð'Ð'Ð'Ø)Ð*@¨J¯OªO¸CÑ,@Ô,@Ð*@ÔA×IÒIÈ#ÈsÑSÔSÐÝ$ QÑ'Ô'ˆØ#×.Ò.¨wÑ7Ô7Ð7Ð7Ð7å.¨vÑ6Ô6ˆ	ØŸ9š9ðð à*3ðñ ô ñ
ô 
Ðð —I’IÐEÐE¸9ÐEÑEÔEÑFÔFˆ	å�”ÑÔ 1Ò$Ð$Ý˜6œ>¨!Ô,Ô1µ8Ñ<Ô<ð %à”˜qÔ!Ô&Ô+­v¬}Ð<Ð<Ð<ð=õ "AÀÈÑ!KÔ!KÐÝ4°V¸QÑ?Ô?ÐÝ"AÀ&È!Ñ"LÔ"LÐÝ5°f¸aÑ@Ô@ÐÝ!4°VÑ!<Ô!<ÐI�v�vÀ'ˆðØ1ðð ð ðð ð
 ðð ð
 !*ðð ð ðð ð .ðð ð kwðð ð ðð ð 0ðð ð  lxð!ð ð ˆ	ð( Ðr    r   c                óâ  — |j         j        }t          |¦  «        }|                     d¦  «        dk    sJ ‚|d |                     d¦  «        …                              dd¦  «        }|j         j        }|                     |¦  «        sJ ‚t          |¦  «        }d                     d„ |D ¦   «         ¦  «        }d                     d„ |D ¦   «         ¦  «        }t          |j
        ¦  «        dk    rHt          |j
        d         j        t          ¦  «        r#|j
        d         j        j        t          j        u sJ ‚t#          |d¦  «        }	t%          |d¦  «        }
d	|› d
|› d|› d|› d|	› d|
› d�}|S )Nr…  r   rÐ  rÑ  rÒ  c              3  ó2   K  — | ]\  }}|€|n|› d|› �V — Œd S rÔ  r   rÕ  s      r   r]  z<GenOpTestCase.view_op_test_case_generator.<locals>.<genexpr>  rÖ  r    c              3  ó    K  — | ]	\  }}|V — Œ
d S r  r   rØ  s      r   r]  z<GenOpTestCase.view_op_test_case_generator.<locals>.<genexpr>  rÙ  r    rý   rÛ  rÜ  rÝ  rÞ  rß  z(};
  testStaticRuntime(script, args);
}
)rá   rã   rð   rœ  rà  râ   rá  rk  rA  r‘  rî   rà   rë   r	   rä   r   rþ   rX  r^  )r­  rÚ   rJ  rž  rŸ  r  râ  rã  r‡  rä  rå  r±  s               r   rÎ  z)GenOpTestCase.view_op_test_case_generator  sÅ  € Ø””ˆÝ˜‘[”[ˆ
Ø�Š˜sÑ#Ô# aÒ'Ð'Ð'Ð'Ø)Ð*@¨J¯OªO¸CÑ,@Ô,@Ð*@ÔA×IÒIÈ#ÈsÑSÔSÐØ”&Ô"ˆØ#×.Ò.¨wÑ7Ô7Ð7Ð7Ð7å.¨vÑ6Ô6ˆ	ØŸ9š9ðð à*3ðñ ô ñ
ô 
Ðð —I’IÐEÐE¸9ÐEÑEÔEÑFÔFˆ	å�”ÑÔ 1Ò$Ð$Ý˜6œ>¨!Ô,Ô1µ8Ñ<Ô<ð %à”˜qÔ!Ô&Ô+­v¬}Ð<Ð<Ð<ð=õ "AÀÈÑ!KÔ!KÐÝ4°V¸QÑ?Ô?ÐðØ1ðð ð ðð ð
 ðð ð
 !*ðð ð ðð ð .ðð ð ˆ	ð  Ðr    N)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Ç  ½  se   € € € € € ð
2ð 
2ð 
2ð 
2ð
2ð 
2ð 
2ð 
2ð.ð .ð .ð .ð`'ð 'ð 'ð 'ð 'ð '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ú   r4  rÿ   r  rð   r   rð   )rJ  r
   r4  rÿ   r   rð   )rJ  r
   r   r_  )rJ  r
   r   rð   rÁ  rÂ  )rJ  r
   r   r   rì  )FÚ
__future__r   ÚjsonÚloggingr=  Útypingr   Útorchgen.api.cppÚapirì   Útorchgen.contextr   Útorchgen.modelr   r   r   r	   r
   r   r   r   r   r   r   Útorchgen.static_runtimer   Úcollections.abcr   Ú	getLoggerr   Ú__annotations__r   Ú	frozensetrè   rø   rê   r  r  r  r  r.  r/  r0  Útest_tensor_shapes_stringÚloadsr1  r3  rI  rX  r^  rþ   rÿ   r?  rð   r   r  r   re  rk  rt  rz  r|  r‰  rŒ  r“  r�  r   r¢  r¤  rÇ  r   r    r   ú<module>rü     s8  ðØ "Ð "Ð "Ð "Ð "Ð "Ð "à €€€Ø €€€Ø €€€Ø  Ð  Ð  Ð  Ð  Ð  à Ð Ð Ð Ð Ð Ð Ð Ð Ø 4Ð 4Ð 4Ð 4Ð 4Ð 4ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð +Ð *Ð *Ð *Ð *Ð *ð ð )Ø(Ð(Ð(Ð(Ð(Ð(ð +˜Ô*Ñ,Ô,€Ð ,Ð ,Ð ,Ñ ,ð
ð 
ð 
ð 
ð ˆiðCñEô E€ðP9ð 9ð 9ð 9ðx(ð (ð (ð (ðV '˜Yðñô Ð ð  "+ Ð+LÑ!MÔ!MÐ ð1ð 1ð 1ð 1ð5ð 5ð 5ð 5ð #˜ð
ñô Ð ð #˜ØQñô Ð ð
ð ð ð ð <Ð Ø)3¨¬Ð4MÑ)NÔ)NÐ Ð NÐ NÐ NÑ Nðð ð ð ð$ð $ð $ð $ðN1ð 1ð 1ð 1ðUð Uð Uð Uð „M�8Ø
„J�Ø
„L�'Ø
„J�Ø
„M�5Ø
Ô�uØ
„K�ð3Ð /ðIð Ið Ið Ið(
1ð 
1ð 
1ð 
1ðð ð ð ðð ð ð ðIð Ið Ið Ið
Ið 
Ið 
Ið 
IðCð Cð Cð Cð4 !�yðñô Ð ð$<ð <ð <ð <ð,ð ,ð ,ð ,ð[ð [ð [ð [ð [ñ [ô [ð [ð|pð pð pð pð pñ pô pð pð pð pr    