1#pragma once
2
3// @generated by torchgen/gen.py from Functions.h
4
5#ifdef TORCH_ASSERT_NO_OPERATORS
6#error This change adds a dependency on native_functions.yaml, \
7 meaning the file will need to be re-compiled every time an operator \
8 is changed or added. Consider if your change would be better placed in \
9 another file, or if a more specific header might achieve the same goal. \
10 See NOTE: [Tensor vs. TensorBase]
11#endif
12
13#if defined(AT_PER_OPERATOR_HEADERS) && defined(TORCH_ASSERT_ONLY_METHOD_OPERATORS)
14#error This change adds a dependency on all pytorch operators, meaning the \
15 file will need to be re-compiled every time an operator is changed or added. \
16 Consider including a specific operator from <ATen/ops/{my_operator}.h> and \
17 see NOTE [TORCH_ASSERT_ONLY_METHOD_OPERATORS].
18#endif
19
20// NOTE: [TORCH_ASSERT_ONLY_METHOD_OPERATORS]
21//
22// In ATen, certain generated headers files include the definitions of
23// every single operator in PyTorch. Unfortunately this means every
24// time an operator signature is updated or changed in
25// native_functions.yaml, you (and every other PyTorch developer) need
26// to recompile every source file that includes any of these headers.
27//
28// To break up these header dependencies, and improve incremental
29// build times for all PyTorch developers. These headers are split
30// into per-operator headers in the `ATen/ops` folder. This limits
31// incremental builds to only changes to methods of `Tensor`, or files
32// that use the specific operator being changed. With `at::sum` as an
33// example, you should include
34//
35// <ATen/ops/sum.h> // instead of ATen/Functions.h
36// <ATen/ops/sum_native.h> // instead of ATen/NativeFunctions.h
37// <ATen/ops/sum_ops.h> // instead of ATen/Operators.h
38// <ATen/ops/sum_cpu_dispatch.h> // instead of ATen/CPUFunctions.h
39//
40// However, even if you're careful to use this in your own code.
41// `Functions.h` might be included indirectly through another header
42// without you realising. To avoid this, you can add
43//
44// #define TORCH_ASSERT_ONLY_METHOD_OPERATORS
45//
46// to the top of your source file. This way any time the non-specific
47// headers are included, the compiler will error out.
48//
49// Also, be aware that `ops` are not available in all build
50// configurations (namely fb-internal) so you must guard these
51// includes with `#ifdef AT_PER_OPERATOR_HEADERS`. e.g.
52//
53// #ifndef AT_PER_OPERATOR_HEADERS
54// #include <ATen/Functions.h>
55// #else
56// #include <ATen/ops/sum.h>
57// #endif
58
59#include <ATen/Context.h>
60#include <ATen/DeviceGuard.h>
61#include <ATen/TensorUtils.h>
62#include <ATen/TracerMode.h>
63#include <ATen/core/Generator.h>
64#include <ATen/core/Reduction.h>
65#include <c10/core/SymInt.h>
66#include <ATen/core/Tensor.h>
67#include <c10/core/Scalar.h>
68#include <c10/core/Storage.h>
69#include <c10/core/TensorOptions.h>
70#include <c10/util/Deprecated.h>
71#include <c10/util/Optional.h>
72#include <c10/util/OptionalArrayRef.h>
73
74#include <ATen/ops/from_blob.h>
75#include <ATen/ops/tensor.h>
76
77#include <ATen/ops/_adaptive_avg_pool2d.h>
78#include <ATen/ops/_adaptive_avg_pool2d_backward.h>
79#include <ATen/ops/_adaptive_avg_pool3d.h>
80#include <ATen/ops/_adaptive_avg_pool3d_backward.h>
81#include <ATen/ops/_add_batch_dim.h>
82#include <ATen/ops/_add_relu.h>
83#include <ATen/ops/_addmm_activation.h>
84#include <ATen/ops/_aminmax.h>
85#include <ATen/ops/_amp_foreach_non_finite_check_and_unscale.h>
86#include <ATen/ops/_amp_update_scale.h>
87#include <ATen/ops/_assert_async.h>
88#include <ATen/ops/_assert_tensor_metadata.h>
89#include <ATen/ops/_autocast_to_full_precision.h>
90#include <ATen/ops/_autocast_to_reduced_precision.h>
91#include <ATen/ops/_backward.h>
92#include <ATen/ops/_batch_norm_impl_index.h>
93#include <ATen/ops/_batch_norm_impl_index_backward.h>
94#include <ATen/ops/_cast_Byte.h>
95#include <ATen/ops/_cast_Char.h>
96#include <ATen/ops/_cast_Double.h>
97#include <ATen/ops/_cast_Float.h>
98#include <ATen/ops/_cast_Half.h>
99#include <ATen/ops/_cast_Int.h>
100#include <ATen/ops/_cast_Long.h>
101#include <ATen/ops/_cast_Short.h>
102#include <ATen/ops/_cdist_backward.h>
103#include <ATen/ops/_cdist_forward.h>
104#include <ATen/ops/_cholesky_solve_helper.h>
105#include <ATen/ops/_choose_qparams_per_tensor.h>
106#include <ATen/ops/_chunk_grad_outputs_efficient_attention.h>
107#include <ATen/ops/_coalesce.h>
108#include <ATen/ops/_coalesced.h>
109#include <ATen/ops/_compute_linear_combination.h>
110#include <ATen/ops/_conj.h>
111#include <ATen/ops/_conj_copy.h>
112#include <ATen/ops/_conj_physical.h>
113#include <ATen/ops/_conv_depthwise2d.h>
114#include <ATen/ops/_convert_indices_from_coo_to_csr.h>
115#include <ATen/ops/_convert_indices_from_csr_to_coo.h>
116#include <ATen/ops/_convolution.h>
117#include <ATen/ops/_convolution_double_backward.h>
118#include <ATen/ops/_convolution_mode.h>
119#include <ATen/ops/_copy_from.h>
120#include <ATen/ops/_copy_from_and_resize.h>
121#include <ATen/ops/_ctc_loss.h>
122#include <ATen/ops/_ctc_loss_backward.h>
123#include <ATen/ops/_cudnn_ctc_loss.h>
124#include <ATen/ops/_cudnn_init_dropout_state.h>
125#include <ATen/ops/_cudnn_rnn.h>
126#include <ATen/ops/_cudnn_rnn_backward.h>
127#include <ATen/ops/_cudnn_rnn_flatten_weight.h>
128#include <ATen/ops/_cufft_clear_plan_cache.h>
129#include <ATen/ops/_cufft_get_plan_cache_max_size.h>
130#include <ATen/ops/_cufft_get_plan_cache_size.h>
131#include <ATen/ops/_cufft_set_plan_cache_max_size.h>
132#include <ATen/ops/_cummax_helper.h>
133#include <ATen/ops/_cummin_helper.h>
134#include <ATen/ops/_debug_has_internal_overlap.h>
135#include <ATen/ops/_dimI.h>
136#include <ATen/ops/_dimV.h>
137#include <ATen/ops/_dim_arange.h>
138#include <ATen/ops/_dirichlet_grad.h>
139#include <ATen/ops/_efficient_attention_backward.h>
140#include <ATen/ops/_efficient_attention_forward.h>
141#include <ATen/ops/_efficientzerotensor.h>
142#include <ATen/ops/_embedding_bag.h>
143#include <ATen/ops/_embedding_bag_backward.h>
144#include <ATen/ops/_embedding_bag_dense_backward.h>
145#include <ATen/ops/_embedding_bag_forward_only.h>
146#include <ATen/ops/_embedding_bag_per_sample_weights_backward.h>
147#include <ATen/ops/_embedding_bag_sparse_backward.h>
148#include <ATen/ops/_empty_affine_quantized.h>
149#include <ATen/ops/_empty_per_channel_affine_quantized.h>
150#include <ATen/ops/_euclidean_dist.h>
151#include <ATen/ops/_fake_quantize_learnable_per_channel_affine.h>
152#include <ATen/ops/_fake_quantize_learnable_per_channel_affine_backward.h>
153#include <ATen/ops/_fake_quantize_learnable_per_tensor_affine.h>
154#include <ATen/ops/_fake_quantize_learnable_per_tensor_affine_backward.h>
155#include <ATen/ops/_fake_quantize_per_tensor_affine_cachemask_tensor_qparams.h>
156#include <ATen/ops/_fft_c2c.h>
157#include <ATen/ops/_fft_c2r.h>
158#include <ATen/ops/_fft_r2c.h>
159#include <ATen/ops/_flash_attention_backward.h>
160#include <ATen/ops/_flash_attention_forward.h>
161#include <ATen/ops/_foobar.h>
162#include <ATen/ops/_foreach_abs.h>
163#include <ATen/ops/_foreach_acos.h>
164#include <ATen/ops/_foreach_add.h>
165#include <ATen/ops/_foreach_addcdiv.h>
166#include <ATen/ops/_foreach_addcmul.h>
167#include <ATen/ops/_foreach_asin.h>
168#include <ATen/ops/_foreach_atan.h>
169#include <ATen/ops/_foreach_ceil.h>
170#include <ATen/ops/_foreach_clamp_max.h>
171#include <ATen/ops/_foreach_clamp_min.h>
172#include <ATen/ops/_foreach_cos.h>
173#include <ATen/ops/_foreach_cosh.h>
174#include <ATen/ops/_foreach_div.h>
175#include <ATen/ops/_foreach_erf.h>
176#include <ATen/ops/_foreach_erfc.h>
177#include <ATen/ops/_foreach_exp.h>
178#include <ATen/ops/_foreach_expm1.h>
179#include <ATen/ops/_foreach_floor.h>
180#include <ATen/ops/_foreach_frac.h>
181#include <ATen/ops/_foreach_lerp.h>
182#include <ATen/ops/_foreach_lgamma.h>
183#include <ATen/ops/_foreach_log.h>
184#include <ATen/ops/_foreach_log10.h>
185#include <ATen/ops/_foreach_log1p.h>
186#include <ATen/ops/_foreach_log2.h>
187#include <ATen/ops/_foreach_maximum.h>
188#include <ATen/ops/_foreach_minimum.h>
189#include <ATen/ops/_foreach_mul.h>
190#include <ATen/ops/_foreach_neg.h>
191#include <ATen/ops/_foreach_norm.h>
192#include <ATen/ops/_foreach_reciprocal.h>
193#include <ATen/ops/_foreach_round.h>
194#include <ATen/ops/_foreach_sigmoid.h>
195#include <ATen/ops/_foreach_sin.h>
196#include <ATen/ops/_foreach_sinh.h>
197#include <ATen/ops/_foreach_sqrt.h>
198#include <ATen/ops/_foreach_sub.h>
199#include <ATen/ops/_foreach_tan.h>
200#include <ATen/ops/_foreach_tanh.h>
201#include <ATen/ops/_foreach_trunc.h>
202#include <ATen/ops/_foreach_zero.h>
203#include <ATen/ops/_fused_adam.h>
204#include <ATen/ops/_fused_adamw.h>
205#include <ATen/ops/_fused_dropout.h>
206#include <ATen/ops/_fused_moving_avg_obs_fq_helper.h>
207#include <ATen/ops/_fused_sdp_choice.h>
208#include <ATen/ops/_fw_primal.h>
209#include <ATen/ops/_fw_primal_copy.h>
210#include <ATen/ops/_gather_sparse_backward.h>
211#include <ATen/ops/_grid_sampler_2d_cpu_fallback.h>
212#include <ATen/ops/_grid_sampler_2d_cpu_fallback_backward.h>
213#include <ATen/ops/_has_compatible_shallow_copy_type.h>
214#include <ATen/ops/_has_same_storage_numel.h>
215#include <ATen/ops/_histogramdd_bin_edges.h>
216#include <ATen/ops/_histogramdd_from_bin_cts.h>
217#include <ATen/ops/_histogramdd_from_bin_tensors.h>
218#include <ATen/ops/_index_put_impl.h>
219#include <ATen/ops/_indices.h>
220#include <ATen/ops/_indices_copy.h>
221#include <ATen/ops/_is_all_true.h>
222#include <ATen/ops/_is_any_true.h>
223#include <ATen/ops/_is_zerotensor.h>
224#include <ATen/ops/_linalg_check_errors.h>
225#include <ATen/ops/_linalg_det.h>
226#include <ATen/ops/_linalg_eigh.h>
227#include <ATen/ops/_linalg_slogdet.h>
228#include <ATen/ops/_linalg_solve_ex.h>
229#include <ATen/ops/_linalg_svd.h>
230#include <ATen/ops/_local_scalar_dense.h>
231#include <ATen/ops/_log_softmax.h>
232#include <ATen/ops/_log_softmax_backward_data.h>
233#include <ATen/ops/_logcumsumexp.h>
234#include <ATen/ops/_lstm_mps.h>
235#include <ATen/ops/_lu_with_info.h>
236#include <ATen/ops/_make_dual.h>
237#include <ATen/ops/_make_dual_copy.h>
238#include <ATen/ops/_make_per_channel_quantized_tensor.h>
239#include <ATen/ops/_make_per_tensor_quantized_tensor.h>
240#include <ATen/ops/_masked_scale.h>
241#include <ATen/ops/_masked_softmax.h>
242#include <ATen/ops/_masked_softmax_backward.h>
243#include <ATen/ops/_mkldnn_reshape.h>
244#include <ATen/ops/_mkldnn_transpose.h>
245#include <ATen/ops/_mps_convolution.h>
246#include <ATen/ops/_mps_convolution_transpose.h>
247#include <ATen/ops/_mps_max_pool2d.h>
248#include <ATen/ops/_native_batch_norm_legit.h>
249#include <ATen/ops/_native_decoder_only_multi_head_attention.h>
250#include <ATen/ops/_native_multi_head_attention.h>
251#include <ATen/ops/_neg_view.h>
252#include <ATen/ops/_neg_view_copy.h>
253#include <ATen/ops/_nested_from_padded.h>
254#include <ATen/ops/_nested_from_padded_and_nested_example.h>
255#include <ATen/ops/_nested_select_backward.h>
256#include <ATen/ops/_nested_sum_backward.h>
257#include <ATen/ops/_nested_tensor_from_mask.h>
258#include <ATen/ops/_nested_tensor_from_mask_left_aligned.h>
259#include <ATen/ops/_nested_tensor_from_tensor_list.h>
260#include <ATen/ops/_nested_tensor_offsets.h>
261#include <ATen/ops/_nested_tensor_size.h>
262#include <ATen/ops/_nested_tensor_softmax_with_shape.h>
263#include <ATen/ops/_nested_tensor_strides.h>
264#include <ATen/ops/_nested_view_from_buffer.h>
265#include <ATen/ops/_nested_view_from_buffer_copy.h>
266#include <ATen/ops/_new_zeros_with_same_feature_meta.h>
267#include <ATen/ops/_nnpack_available.h>
268#include <ATen/ops/_nnpack_spatial_convolution.h>
269#include <ATen/ops/_nnz.h>
270#include <ATen/ops/_pack_padded_sequence.h>
271#include <ATen/ops/_pack_padded_sequence_backward.h>
272#include <ATen/ops/_pad_circular.h>
273#include <ATen/ops/_pad_enum.h>
274#include <ATen/ops/_pad_packed_sequence.h>
275#include <ATen/ops/_pdist_backward.h>
276#include <ATen/ops/_pdist_forward.h>
277#include <ATen/ops/_pin_memory.h>
278#include <ATen/ops/_prelu_kernel.h>
279#include <ATen/ops/_prelu_kernel_backward.h>
280#include <ATen/ops/_remove_batch_dim.h>
281#include <ATen/ops/_reshape_alias.h>
282#include <ATen/ops/_reshape_alias_copy.h>
283#include <ATen/ops/_reshape_copy.h>
284#include <ATen/ops/_reshape_from_tensor.h>
285#include <ATen/ops/_resize_output.h>
286#include <ATen/ops/_rowwise_prune.h>
287#include <ATen/ops/_sample_dirichlet.h>
288#include <ATen/ops/_saturate_weight_to_fp16.h>
289#include <ATen/ops/_scaled_dot_product_attention.h>
290#include <ATen/ops/_scaled_dot_product_attention_math.h>
291#include <ATen/ops/_scaled_dot_product_efficient_attention.h>
292#include <ATen/ops/_scaled_dot_product_efficient_attention_backward.h>
293#include <ATen/ops/_scaled_dot_product_flash_attention.h>
294#include <ATen/ops/_scaled_dot_product_flash_attention_backward.h>
295#include <ATen/ops/_segment_reduce_backward.h>
296#include <ATen/ops/_shape_as_tensor.h>
297#include <ATen/ops/_slow_conv2d_backward.h>
298#include <ATen/ops/_slow_conv2d_forward.h>
299#include <ATen/ops/_sobol_engine_draw.h>
300#include <ATen/ops/_sobol_engine_ff.h>
301#include <ATen/ops/_sobol_engine_initialize_state.h>
302#include <ATen/ops/_sobol_engine_scramble.h>
303#include <ATen/ops/_softmax.h>
304#include <ATen/ops/_softmax_backward_data.h>
305#include <ATen/ops/_sparse_addmm.h>
306#include <ATen/ops/_sparse_broadcast_to.h>
307#include <ATen/ops/_sparse_broadcast_to_copy.h>
308#include <ATen/ops/_sparse_bsc_tensor_unsafe.h>
309#include <ATen/ops/_sparse_bsr_tensor_unsafe.h>
310#include <ATen/ops/_sparse_compressed_tensor_unsafe.h>
311#include <ATen/ops/_sparse_coo_tensor_unsafe.h>
312#include <ATen/ops/_sparse_coo_tensor_with_dims.h>
313#include <ATen/ops/_sparse_coo_tensor_with_dims_and_tensors.h>
314#include <ATen/ops/_sparse_csc_tensor_unsafe.h>
315#include <ATen/ops/_sparse_csr_prod.h>
316#include <ATen/ops/_sparse_csr_sum.h>
317#include <ATen/ops/_sparse_csr_tensor_unsafe.h>
318#include <ATen/ops/_sparse_log_softmax.h>
319#include <ATen/ops/_sparse_log_softmax_backward_data.h>
320#include <ATen/ops/_sparse_mm.h>
321#include <ATen/ops/_sparse_mm_reduce_impl.h>
322#include <ATen/ops/_sparse_mm_reduce_impl_backward.h>
323#include <ATen/ops/_sparse_softmax.h>
324#include <ATen/ops/_sparse_softmax_backward_data.h>
325#include <ATen/ops/_sparse_sparse_matmul.h>
326#include <ATen/ops/_sparse_sum.h>
327#include <ATen/ops/_sparse_sum_backward.h>
328#include <ATen/ops/_spdiags.h>
329#include <ATen/ops/_stack.h>
330#include <ATen/ops/_standard_gamma.h>
331#include <ATen/ops/_standard_gamma_grad.h>
332#include <ATen/ops/_test_ambiguous_defaults.h>
333#include <ATen/ops/_test_autograd_multiple_dispatch.h>
334#include <ATen/ops/_test_autograd_multiple_dispatch_view.h>
335#include <ATen/ops/_test_autograd_multiple_dispatch_view_copy.h>
336#include <ATen/ops/_test_check_tensor.h>
337#include <ATen/ops/_test_optional_filled_intlist.h>
338#include <ATen/ops/_test_optional_floatlist.h>
339#include <ATen/ops/_test_optional_intlist.h>
340#include <ATen/ops/_test_serialization_subcmul.h>
341#include <ATen/ops/_test_string_default.h>
342#include <ATen/ops/_test_warn_in_autograd.h>
343#include <ATen/ops/_thnn_differentiable_gru_cell_backward.h>
344#include <ATen/ops/_thnn_differentiable_lstm_cell_backward.h>
345#include <ATen/ops/_thnn_fused_gru_cell.h>
346#include <ATen/ops/_thnn_fused_gru_cell_backward.h>
347#include <ATen/ops/_thnn_fused_lstm_cell.h>
348#include <ATen/ops/_thnn_fused_lstm_cell_backward.h>
349#include <ATen/ops/_thnn_fused_lstm_cell_backward_impl.h>
350#include <ATen/ops/_to_copy.h>
351#include <ATen/ops/_to_cpu.h>
352#include <ATen/ops/_to_dense.h>
353#include <ATen/ops/_transform_bias_rescale_qkv.h>
354#include <ATen/ops/_transformer_decoder_only_layer_fwd.h>
355#include <ATen/ops/_transformer_encoder_layer_fwd.h>
356#include <ATen/ops/_trilinear.h>
357#include <ATen/ops/_triton_multi_head_attention.h>
358#include <ATen/ops/_triton_scaled_dot_attention.h>
359#include <ATen/ops/_unique.h>
360#include <ATen/ops/_unique2.h>
361#include <ATen/ops/_unpack_dual.h>
362#include <ATen/ops/_unsafe_view.h>
363#include <ATen/ops/_upsample_bicubic2d_aa.h>
364#include <ATen/ops/_upsample_bicubic2d_aa_backward.h>
365#include <ATen/ops/_upsample_bilinear2d_aa.h>
366#include <ATen/ops/_upsample_bilinear2d_aa_backward.h>
367#include <ATen/ops/_upsample_nearest_exact1d.h>
368#include <ATen/ops/_upsample_nearest_exact1d_backward.h>
369#include <ATen/ops/_upsample_nearest_exact2d.h>
370#include <ATen/ops/_upsample_nearest_exact2d_backward.h>
371#include <ATen/ops/_upsample_nearest_exact3d.h>
372#include <ATen/ops/_upsample_nearest_exact3d_backward.h>
373#include <ATen/ops/_use_cudnn_ctc_loss.h>
374#include <ATen/ops/_use_cudnn_rnn_flatten_weight.h>
375#include <ATen/ops/_validate_compressed_sparse_indices.h>
376#include <ATen/ops/_validate_sparse_bsc_tensor_args.h>
377#include <ATen/ops/_validate_sparse_bsr_tensor_args.h>
378#include <ATen/ops/_validate_sparse_compressed_tensor_args.h>
379#include <ATen/ops/_validate_sparse_coo_tensor_args.h>
380#include <ATen/ops/_validate_sparse_csc_tensor_args.h>
381#include <ATen/ops/_validate_sparse_csr_tensor_args.h>
382#include <ATen/ops/_values.h>
383#include <ATen/ops/_values_copy.h>
384#include <ATen/ops/_version.h>
385#include <ATen/ops/_weight_norm.h>
386#include <ATen/ops/_weight_norm_differentiable_backward.h>
387#include <ATen/ops/_weight_norm_interface.h>
388#include <ATen/ops/_weight_norm_interface_backward.h>
389#include <ATen/ops/abs.h>
390#include <ATen/ops/absolute.h>
391#include <ATen/ops/acos.h>
392#include <ATen/ops/acosh.h>
393#include <ATen/ops/adaptive_avg_pool1d.h>
394#include <ATen/ops/adaptive_avg_pool2d.h>
395#include <ATen/ops/adaptive_avg_pool3d.h>
396#include <ATen/ops/adaptive_avg_pool3d_backward.h>
397#include <ATen/ops/adaptive_max_pool1d.h>
398#include <ATen/ops/adaptive_max_pool2d.h>
399#include <ATen/ops/adaptive_max_pool2d_backward.h>
400#include <ATen/ops/adaptive_max_pool3d.h>
401#include <ATen/ops/adaptive_max_pool3d_backward.h>
402#include <ATen/ops/add.h>
403#include <ATen/ops/addbmm.h>
404#include <ATen/ops/addcdiv.h>
405#include <ATen/ops/addcmul.h>
406#include <ATen/ops/addmm.h>
407#include <ATen/ops/addmv.h>
408#include <ATen/ops/addr.h>
409#include <ATen/ops/adjoint.h>
410#include <ATen/ops/affine_grid_generator.h>
411#include <ATen/ops/affine_grid_generator_backward.h>
412#include <ATen/ops/alias.h>
413#include <ATen/ops/alias_copy.h>
414#include <ATen/ops/align_as.h>
415#include <ATen/ops/align_tensors.h>
416#include <ATen/ops/align_to.h>
417#include <ATen/ops/all.h>
418#include <ATen/ops/allclose.h>
419#include <ATen/ops/alpha_dropout.h>
420#include <ATen/ops/amax.h>
421#include <ATen/ops/amin.h>
422#include <ATen/ops/aminmax.h>
423#include <ATen/ops/and.h>
424#include <ATen/ops/angle.h>
425#include <ATen/ops/any.h>
426#include <ATen/ops/arange.h>
427#include <ATen/ops/arccos.h>
428#include <ATen/ops/arccosh.h>
429#include <ATen/ops/arcsin.h>
430#include <ATen/ops/arcsinh.h>
431#include <ATen/ops/arctan.h>
432#include <ATen/ops/arctan2.h>
433#include <ATen/ops/arctanh.h>
434#include <ATen/ops/argmax.h>
435#include <ATen/ops/argmin.h>
436#include <ATen/ops/argsort.h>
437#include <ATen/ops/argwhere.h>
438#include <ATen/ops/as_strided.h>
439#include <ATen/ops/as_strided_copy.h>
440#include <ATen/ops/as_strided_scatter.h>
441#include <ATen/ops/asin.h>
442#include <ATen/ops/asinh.h>
443#include <ATen/ops/atan.h>
444#include <ATen/ops/atan2.h>
445#include <ATen/ops/atanh.h>
446#include <ATen/ops/atleast_1d.h>
447#include <ATen/ops/atleast_2d.h>
448#include <ATen/ops/atleast_3d.h>
449#include <ATen/ops/avg_pool1d.h>
450#include <ATen/ops/avg_pool2d.h>
451#include <ATen/ops/avg_pool2d_backward.h>
452#include <ATen/ops/avg_pool3d.h>
453#include <ATen/ops/avg_pool3d_backward.h>
454#include <ATen/ops/baddbmm.h>
455#include <ATen/ops/bartlett_window.h>
456#include <ATen/ops/batch_norm.h>
457#include <ATen/ops/batch_norm_backward_elemt.h>
458#include <ATen/ops/batch_norm_backward_reduce.h>
459#include <ATen/ops/batch_norm_elemt.h>
460#include <ATen/ops/batch_norm_gather_stats.h>
461#include <ATen/ops/batch_norm_gather_stats_with_counts.h>
462#include <ATen/ops/batch_norm_stats.h>
463#include <ATen/ops/batch_norm_update_stats.h>
464#include <ATen/ops/bernoulli.h>
465#include <ATen/ops/bilinear.h>
466#include <ATen/ops/binary_cross_entropy.h>
467#include <ATen/ops/binary_cross_entropy_backward.h>
468#include <ATen/ops/binary_cross_entropy_with_logits.h>
469#include <ATen/ops/bincount.h>
470#include <ATen/ops/binomial.h>
471#include <ATen/ops/bitwise_and.h>
472#include <ATen/ops/bitwise_left_shift.h>
473#include <ATen/ops/bitwise_not.h>
474#include <ATen/ops/bitwise_or.h>
475#include <ATen/ops/bitwise_right_shift.h>
476#include <ATen/ops/bitwise_xor.h>
477#include <ATen/ops/blackman_window.h>
478#include <ATen/ops/block_diag.h>
479#include <ATen/ops/bmm.h>
480#include <ATen/ops/broadcast_tensors.h>
481#include <ATen/ops/broadcast_to.h>
482#include <ATen/ops/bucketize.h>
483#include <ATen/ops/can_cast.h>
484#include <ATen/ops/cartesian_prod.h>
485#include <ATen/ops/cat.h>
486#include <ATen/ops/cauchy.h>
487#include <ATen/ops/ccol_indices.h>
488#include <ATen/ops/ccol_indices_copy.h>
489#include <ATen/ops/cdist.h>
490#include <ATen/ops/ceil.h>
491#include <ATen/ops/celu.h>
492#include <ATen/ops/chain_matmul.h>
493#include <ATen/ops/chalf.h>
494#include <ATen/ops/channel_shuffle.h>
495#include <ATen/ops/cholesky.h>
496#include <ATen/ops/cholesky_inverse.h>
497#include <ATen/ops/cholesky_solve.h>
498#include <ATen/ops/choose_qparams_optimized.h>
499#include <ATen/ops/chunk.h>
500#include <ATen/ops/clamp.h>
501#include <ATen/ops/clamp_max.h>
502#include <ATen/ops/clamp_min.h>
503#include <ATen/ops/clip.h>
504#include <ATen/ops/clone.h>
505#include <ATen/ops/coalesce.h>
506#include <ATen/ops/col2im.h>
507#include <ATen/ops/col_indices.h>
508#include <ATen/ops/col_indices_copy.h>
509#include <ATen/ops/column_stack.h>
510#include <ATen/ops/combinations.h>
511#include <ATen/ops/complex.h>
512#include <ATen/ops/concat.h>
513#include <ATen/ops/concatenate.h>
514#include <ATen/ops/conj.h>
515#include <ATen/ops/conj_physical.h>
516#include <ATen/ops/constant_pad_nd.h>
517#include <ATen/ops/contiguous.h>
518#include <ATen/ops/conv1d.h>
519#include <ATen/ops/conv2d.h>
520#include <ATen/ops/conv3d.h>
521#include <ATen/ops/conv_depthwise3d.h>
522#include <ATen/ops/conv_tbc.h>
523#include <ATen/ops/conv_tbc_backward.h>
524#include <ATen/ops/conv_transpose1d.h>
525#include <ATen/ops/conv_transpose2d.h>
526#include <ATen/ops/conv_transpose3d.h>
527#include <ATen/ops/convolution.h>
528#include <ATen/ops/convolution_backward.h>
529#include <ATen/ops/convolution_backward_overrideable.h>
530#include <ATen/ops/convolution_overrideable.h>
531#include <ATen/ops/copy.h>
532#include <ATen/ops/copy_sparse_to_sparse.h>
533#include <ATen/ops/copysign.h>
534#include <ATen/ops/corrcoef.h>
535#include <ATen/ops/cos.h>
536#include <ATen/ops/cosh.h>
537#include <ATen/ops/cosine_embedding_loss.h>
538#include <ATen/ops/cosine_similarity.h>
539#include <ATen/ops/count_nonzero.h>
540#include <ATen/ops/cov.h>
541#include <ATen/ops/cross.h>
542#include <ATen/ops/cross_entropy_loss.h>
543#include <ATen/ops/crow_indices.h>
544#include <ATen/ops/crow_indices_copy.h>
545#include <ATen/ops/ctc_loss.h>
546#include <ATen/ops/cudnn_affine_grid_generator.h>
547#include <ATen/ops/cudnn_affine_grid_generator_backward.h>
548#include <ATen/ops/cudnn_batch_norm.h>
549#include <ATen/ops/cudnn_batch_norm_backward.h>
550#include <ATen/ops/cudnn_convolution.h>
551#include <ATen/ops/cudnn_convolution_add_relu.h>
552#include <ATen/ops/cudnn_convolution_relu.h>
553#include <ATen/ops/cudnn_convolution_transpose.h>
554#include <ATen/ops/cudnn_grid_sampler.h>
555#include <ATen/ops/cudnn_grid_sampler_backward.h>
556#include <ATen/ops/cudnn_is_acceptable.h>
557#include <ATen/ops/cummax.h>
558#include <ATen/ops/cummaxmin_backward.h>
559#include <ATen/ops/cummin.h>
560#include <ATen/ops/cumprod.h>
561#include <ATen/ops/cumprod_backward.h>
562#include <ATen/ops/cumsum.h>
563#include <ATen/ops/cumulative_trapezoid.h>
564#include <ATen/ops/data.h>
565#include <ATen/ops/deg2rad.h>
566#include <ATen/ops/dense_dim.h>
567#include <ATen/ops/dequantize.h>
568#include <ATen/ops/det.h>
569#include <ATen/ops/detach.h>
570#include <ATen/ops/detach_copy.h>
571#include <ATen/ops/diag.h>
572#include <ATen/ops/diag_embed.h>
573#include <ATen/ops/diagflat.h>
574#include <ATen/ops/diagonal.h>
575#include <ATen/ops/diagonal_backward.h>
576#include <ATen/ops/diagonal_copy.h>
577#include <ATen/ops/diagonal_scatter.h>
578#include <ATen/ops/diff.h>
579#include <ATen/ops/digamma.h>
580#include <ATen/ops/dist.h>
581#include <ATen/ops/div.h>
582#include <ATen/ops/divide.h>
583#include <ATen/ops/dot.h>
584#include <ATen/ops/dropout.h>
585#include <ATen/ops/dsplit.h>
586#include <ATen/ops/dstack.h>
587#include <ATen/ops/einsum.h>
588#include <ATen/ops/elu.h>
589#include <ATen/ops/elu_backward.h>
590#include <ATen/ops/embedding.h>
591#include <ATen/ops/embedding_backward.h>
592#include <ATen/ops/embedding_bag.h>
593#include <ATen/ops/embedding_dense_backward.h>
594#include <ATen/ops/embedding_renorm.h>
595#include <ATen/ops/embedding_sparse_backward.h>
596#include <ATen/ops/empty.h>
597#include <ATen/ops/empty_like.h>
598#include <ATen/ops/empty_quantized.h>
599#include <ATen/ops/empty_strided.h>
600#include <ATen/ops/eq.h>
601#include <ATen/ops/equal.h>
602#include <ATen/ops/erf.h>
603#include <ATen/ops/erfc.h>
604#include <ATen/ops/erfinv.h>
605#include <ATen/ops/exp.h>
606#include <ATen/ops/exp2.h>
607#include <ATen/ops/expand.h>
608#include <ATen/ops/expand_as.h>
609#include <ATen/ops/expand_copy.h>
610#include <ATen/ops/expm1.h>
611#include <ATen/ops/exponential.h>
612#include <ATen/ops/eye.h>
613#include <ATen/ops/fake_quantize_per_channel_affine.h>
614#include <ATen/ops/fake_quantize_per_channel_affine_cachemask.h>
615#include <ATen/ops/fake_quantize_per_channel_affine_cachemask_backward.h>
616#include <ATen/ops/fake_quantize_per_tensor_affine.h>
617#include <ATen/ops/fake_quantize_per_tensor_affine_cachemask.h>
618#include <ATen/ops/fake_quantize_per_tensor_affine_cachemask_backward.h>
619#include <ATen/ops/fbgemm_linear_fp16_weight.h>
620#include <ATen/ops/fbgemm_linear_fp16_weight_fp32_activation.h>
621#include <ATen/ops/fbgemm_linear_int8_weight.h>
622#include <ATen/ops/fbgemm_linear_int8_weight_fp32_activation.h>
623#include <ATen/ops/fbgemm_linear_quantize_weight.h>
624#include <ATen/ops/fbgemm_pack_gemm_matrix_fp16.h>
625#include <ATen/ops/fbgemm_pack_quantized_matrix.h>
626#include <ATen/ops/feature_alpha_dropout.h>
627#include <ATen/ops/feature_dropout.h>
628#include <ATen/ops/fft_fft.h>
629#include <ATen/ops/fft_fft2.h>
630#include <ATen/ops/fft_fftfreq.h>
631#include <ATen/ops/fft_fftn.h>
632#include <ATen/ops/fft_fftshift.h>
633#include <ATen/ops/fft_hfft.h>
634#include <ATen/ops/fft_hfft2.h>
635#include <ATen/ops/fft_hfftn.h>
636#include <ATen/ops/fft_ifft.h>
637#include <ATen/ops/fft_ifft2.h>
638#include <ATen/ops/fft_ifftn.h>
639#include <ATen/ops/fft_ifftshift.h>
640#include <ATen/ops/fft_ihfft.h>
641#include <ATen/ops/fft_ihfft2.h>
642#include <ATen/ops/fft_ihfftn.h>
643#include <ATen/ops/fft_irfft.h>
644#include <ATen/ops/fft_irfft2.h>
645#include <ATen/ops/fft_irfftn.h>
646#include <ATen/ops/fft_rfft.h>
647#include <ATen/ops/fft_rfft2.h>
648#include <ATen/ops/fft_rfftfreq.h>
649#include <ATen/ops/fft_rfftn.h>
650#include <ATen/ops/fill.h>
651#include <ATen/ops/fill_diagonal.h>
652#include <ATen/ops/fix.h>
653#include <ATen/ops/flatten.h>
654#include <ATen/ops/flatten_dense_tensors.h>
655#include <ATen/ops/flip.h>
656#include <ATen/ops/fliplr.h>
657#include <ATen/ops/flipud.h>
658#include <ATen/ops/float_power.h>
659#include <ATen/ops/floor.h>
660#include <ATen/ops/floor_divide.h>
661#include <ATen/ops/fmax.h>
662#include <ATen/ops/fmin.h>
663#include <ATen/ops/fmod.h>
664#include <ATen/ops/frac.h>
665#include <ATen/ops/fractional_max_pool2d.h>
666#include <ATen/ops/fractional_max_pool2d_backward.h>
667#include <ATen/ops/fractional_max_pool3d.h>
668#include <ATen/ops/fractional_max_pool3d_backward.h>
669#include <ATen/ops/frexp.h>
670#include <ATen/ops/frobenius_norm.h>
671#include <ATen/ops/from_file.h>
672#include <ATen/ops/full.h>
673#include <ATen/ops/full_like.h>
674#include <ATen/ops/fused_moving_avg_obs_fake_quant.h>
675#include <ATen/ops/gather.h>
676#include <ATen/ops/gather_backward.h>
677#include <ATen/ops/gcd.h>
678#include <ATen/ops/ge.h>
679#include <ATen/ops/gelu.h>
680#include <ATen/ops/gelu_backward.h>
681#include <ATen/ops/geometric.h>
682#include <ATen/ops/geqrf.h>
683#include <ATen/ops/ger.h>
684#include <ATen/ops/glu.h>
685#include <ATen/ops/glu_backward.h>
686#include <ATen/ops/glu_backward_jvp.h>
687#include <ATen/ops/glu_jvp.h>
688#include <ATen/ops/gradient.h>
689#include <ATen/ops/greater.h>
690#include <ATen/ops/greater_equal.h>
691#include <ATen/ops/grid_sampler.h>
692#include <ATen/ops/grid_sampler_2d.h>
693#include <ATen/ops/grid_sampler_2d_backward.h>
694#include <ATen/ops/grid_sampler_3d.h>
695#include <ATen/ops/grid_sampler_3d_backward.h>
696#include <ATen/ops/group_norm.h>
697#include <ATen/ops/gru.h>
698#include <ATen/ops/gru_cell.h>
699#include <ATen/ops/gt.h>
700#include <ATen/ops/hamming_window.h>
701#include <ATen/ops/hann_window.h>
702#include <ATen/ops/hardshrink.h>
703#include <ATen/ops/hardshrink_backward.h>
704#include <ATen/ops/hardsigmoid.h>
705#include <ATen/ops/hardsigmoid_backward.h>
706#include <ATen/ops/hardswish.h>
707#include <ATen/ops/hardswish_backward.h>
708#include <ATen/ops/hardtanh.h>
709#include <ATen/ops/hardtanh_backward.h>
710#include <ATen/ops/heaviside.h>
711#include <ATen/ops/hinge_embedding_loss.h>
712#include <ATen/ops/histc.h>
713#include <ATen/ops/histogram.h>
714#include <ATen/ops/histogramdd.h>
715#include <ATen/ops/hsplit.h>
716#include <ATen/ops/hspmm.h>
717#include <ATen/ops/hstack.h>
718#include <ATen/ops/huber_loss.h>
719#include <ATen/ops/huber_loss_backward.h>
720#include <ATen/ops/hypot.h>
721#include <ATen/ops/i0.h>
722#include <ATen/ops/igamma.h>
723#include <ATen/ops/igammac.h>
724#include <ATen/ops/im2col.h>
725#include <ATen/ops/imag.h>
726#include <ATen/ops/index.h>
727#include <ATen/ops/index_add.h>
728#include <ATen/ops/index_copy.h>
729#include <ATen/ops/index_fill.h>
730#include <ATen/ops/index_put.h>
731#include <ATen/ops/index_reduce.h>
732#include <ATen/ops/index_select.h>
733#include <ATen/ops/index_select_backward.h>
734#include <ATen/ops/indices.h>
735#include <ATen/ops/indices_copy.h>
736#include <ATen/ops/infinitely_differentiable_gelu_backward.h>
737#include <ATen/ops/inner.h>
738#include <ATen/ops/instance_norm.h>
739#include <ATen/ops/int_repr.h>
740#include <ATen/ops/inverse.h>
741#include <ATen/ops/is_coalesced.h>
742#include <ATen/ops/is_complex.h>
743#include <ATen/ops/is_conj.h>
744#include <ATen/ops/is_distributed.h>
745#include <ATen/ops/is_floating_point.h>
746#include <ATen/ops/is_inference.h>
747#include <ATen/ops/is_leaf.h>
748#include <ATen/ops/is_neg.h>
749#include <ATen/ops/is_nonzero.h>
750#include <ATen/ops/is_pinned.h>
751#include <ATen/ops/is_same_size.h>
752#include <ATen/ops/is_set_to.h>
753#include <ATen/ops/is_signed.h>
754#include <ATen/ops/is_vulkan_available.h>
755#include <ATen/ops/isclose.h>
756#include <ATen/ops/isfinite.h>
757#include <ATen/ops/isin.h>
758#include <ATen/ops/isinf.h>
759#include <ATen/ops/isnan.h>
760#include <ATen/ops/isneginf.h>
761#include <ATen/ops/isposinf.h>
762#include <ATen/ops/isreal.h>
763#include <ATen/ops/istft.h>
764#include <ATen/ops/item.h>
765#include <ATen/ops/kaiser_window.h>
766#include <ATen/ops/kl_div.h>
767#include <ATen/ops/kron.h>
768#include <ATen/ops/kthvalue.h>
769#include <ATen/ops/l1_loss.h>
770#include <ATen/ops/layer_norm.h>
771#include <ATen/ops/lcm.h>
772#include <ATen/ops/ldexp.h>
773#include <ATen/ops/le.h>
774#include <ATen/ops/leaky_relu.h>
775#include <ATen/ops/leaky_relu_backward.h>
776#include <ATen/ops/lerp.h>
777#include <ATen/ops/less.h>
778#include <ATen/ops/less_equal.h>
779#include <ATen/ops/lgamma.h>
780#include <ATen/ops/lift.h>
781#include <ATen/ops/lift_fresh.h>
782#include <ATen/ops/lift_fresh_copy.h>
783#include <ATen/ops/linalg_cholesky.h>
784#include <ATen/ops/linalg_cholesky_ex.h>
785#include <ATen/ops/linalg_cond.h>
786#include <ATen/ops/linalg_cross.h>
787#include <ATen/ops/linalg_det.h>
788#include <ATen/ops/linalg_diagonal.h>
789#include <ATen/ops/linalg_eig.h>
790#include <ATen/ops/linalg_eigh.h>
791#include <ATen/ops/linalg_eigvals.h>
792#include <ATen/ops/linalg_eigvalsh.h>
793#include <ATen/ops/linalg_householder_product.h>
794#include <ATen/ops/linalg_inv.h>
795#include <ATen/ops/linalg_inv_ex.h>
796#include <ATen/ops/linalg_ldl_factor.h>
797#include <ATen/ops/linalg_ldl_factor_ex.h>
798#include <ATen/ops/linalg_ldl_solve.h>
799#include <ATen/ops/linalg_lstsq.h>
800#include <ATen/ops/linalg_lu.h>
801#include <ATen/ops/linalg_lu_factor.h>
802#include <ATen/ops/linalg_lu_factor_ex.h>
803#include <ATen/ops/linalg_lu_solve.h>
804#include <ATen/ops/linalg_matmul.h>
805#include <ATen/ops/linalg_matrix_exp.h>
806#include <ATen/ops/linalg_matrix_norm.h>
807#include <ATen/ops/linalg_matrix_power.h>
808#include <ATen/ops/linalg_matrix_rank.h>
809#include <ATen/ops/linalg_multi_dot.h>
810#include <ATen/ops/linalg_norm.h>
811#include <ATen/ops/linalg_pinv.h>
812#include <ATen/ops/linalg_qr.h>
813#include <ATen/ops/linalg_slogdet.h>
814#include <ATen/ops/linalg_solve.h>
815#include <ATen/ops/linalg_solve_ex.h>
816#include <ATen/ops/linalg_solve_triangular.h>
817#include <ATen/ops/linalg_svd.h>
818#include <ATen/ops/linalg_svdvals.h>
819#include <ATen/ops/linalg_tensorinv.h>
820#include <ATen/ops/linalg_tensorsolve.h>
821#include <ATen/ops/linalg_vander.h>
822#include <ATen/ops/linalg_vecdot.h>
823#include <ATen/ops/linalg_vector_norm.h>
824#include <ATen/ops/linear.h>
825#include <ATen/ops/linear_backward.h>
826#include <ATen/ops/linspace.h>
827#include <ATen/ops/log.h>
828#include <ATen/ops/log10.h>
829#include <ATen/ops/log1p.h>
830#include <ATen/ops/log2.h>
831#include <ATen/ops/log_normal.h>
832#include <ATen/ops/log_sigmoid.h>
833#include <ATen/ops/log_sigmoid_backward.h>
834#include <ATen/ops/log_sigmoid_forward.h>
835#include <ATen/ops/log_softmax.h>
836#include <ATen/ops/logaddexp.h>
837#include <ATen/ops/logaddexp2.h>
838#include <ATen/ops/logcumsumexp.h>
839#include <ATen/ops/logdet.h>
840#include <ATen/ops/logical_and.h>
841#include <ATen/ops/logical_not.h>
842#include <ATen/ops/logical_or.h>
843#include <ATen/ops/logical_xor.h>
844#include <ATen/ops/logit.h>
845#include <ATen/ops/logit_backward.h>
846#include <ATen/ops/logspace.h>
847#include <ATen/ops/logsumexp.h>
848#include <ATen/ops/lshift.h>
849#include <ATen/ops/lstm.h>
850#include <ATen/ops/lstm_cell.h>
851#include <ATen/ops/lstm_mps_backward.h>
852#include <ATen/ops/lt.h>
853#include <ATen/ops/lu_solve.h>
854#include <ATen/ops/lu_unpack.h>
855#include <ATen/ops/mH.h>
856#include <ATen/ops/mT.h>
857#include <ATen/ops/margin_ranking_loss.h>
858#include <ATen/ops/masked_fill.h>
859#include <ATen/ops/masked_scatter.h>
860#include <ATen/ops/masked_select.h>
861#include <ATen/ops/masked_select_backward.h>
862#include <ATen/ops/matmul.h>
863#include <ATen/ops/matmul_backward.h>
864#include <ATen/ops/matrix_H.h>
865#include <ATen/ops/matrix_exp.h>
866#include <ATen/ops/matrix_exp_backward.h>
867#include <ATen/ops/matrix_power.h>
868#include <ATen/ops/max.h>
869#include <ATen/ops/max_pool1d.h>
870#include <ATen/ops/max_pool1d_with_indices.h>
871#include <ATen/ops/max_pool2d.h>
872#include <ATen/ops/max_pool2d_with_indices.h>
873#include <ATen/ops/max_pool2d_with_indices_backward.h>
874#include <ATen/ops/max_pool3d.h>
875#include <ATen/ops/max_pool3d_with_indices.h>
876#include <ATen/ops/max_pool3d_with_indices_backward.h>
877#include <ATen/ops/max_unpool2d.h>
878#include <ATen/ops/max_unpool3d.h>
879#include <ATen/ops/maximum.h>
880#include <ATen/ops/mean.h>
881#include <ATen/ops/median.h>
882#include <ATen/ops/meshgrid.h>
883#include <ATen/ops/min.h>
884#include <ATen/ops/minimum.h>
885#include <ATen/ops/miopen_batch_norm.h>
886#include <ATen/ops/miopen_batch_norm_backward.h>
887#include <ATen/ops/miopen_convolution.h>
888#include <ATen/ops/miopen_convolution_add_relu.h>
889#include <ATen/ops/miopen_convolution_relu.h>
890#include <ATen/ops/miopen_convolution_transpose.h>
891#include <ATen/ops/miopen_depthwise_convolution.h>
892#include <ATen/ops/miopen_rnn.h>
893#include <ATen/ops/miopen_rnn_backward.h>
894#include <ATen/ops/mish.h>
895#include <ATen/ops/mish_backward.h>
896#include <ATen/ops/mkldnn_adaptive_avg_pool2d.h>
897#include <ATen/ops/mkldnn_adaptive_avg_pool2d_backward.h>
898#include <ATen/ops/mkldnn_convolution.h>
899#include <ATen/ops/mkldnn_linear.h>
900#include <ATen/ops/mkldnn_linear_backward.h>
901#include <ATen/ops/mkldnn_linear_backward_input.h>
902#include <ATen/ops/mkldnn_linear_backward_weights.h>
903#include <ATen/ops/mkldnn_max_pool2d.h>
904#include <ATen/ops/mkldnn_max_pool2d_backward.h>
905#include <ATen/ops/mkldnn_max_pool3d.h>
906#include <ATen/ops/mkldnn_max_pool3d_backward.h>
907#include <ATen/ops/mkldnn_reorder_conv2d_weight.h>
908#include <ATen/ops/mkldnn_reorder_conv3d_weight.h>
909#include <ATen/ops/mkldnn_rnn_layer.h>
910#include <ATen/ops/mkldnn_rnn_layer_backward.h>
911#include <ATen/ops/mm.h>
912#include <ATen/ops/mode.h>
913#include <ATen/ops/moveaxis.h>
914#include <ATen/ops/movedim.h>
915#include <ATen/ops/mps_convolution_backward.h>
916#include <ATen/ops/mps_convolution_transpose_backward.h>
917#include <ATen/ops/mps_max_pool2d_backward.h>
918#include <ATen/ops/mse_loss.h>
919#include <ATen/ops/mse_loss_backward.h>
920#include <ATen/ops/msort.h>
921#include <ATen/ops/mul.h>
922#include <ATen/ops/multi_margin_loss.h>
923#include <ATen/ops/multi_margin_loss_backward.h>
924#include <ATen/ops/multilabel_margin_loss.h>
925#include <ATen/ops/multilabel_margin_loss_backward.h>
926#include <ATen/ops/multilabel_margin_loss_forward.h>
927#include <ATen/ops/multinomial.h>
928#include <ATen/ops/multiply.h>
929#include <ATen/ops/mv.h>
930#include <ATen/ops/mvlgamma.h>
931#include <ATen/ops/nan_to_num.h>
932#include <ATen/ops/nanmean.h>
933#include <ATen/ops/nanmedian.h>
934#include <ATen/ops/nanquantile.h>
935#include <ATen/ops/nansum.h>
936#include <ATen/ops/narrow.h>
937#include <ATen/ops/narrow_copy.h>
938#include <ATen/ops/native_batch_norm.h>
939#include <ATen/ops/native_batch_norm_backward.h>
940#include <ATen/ops/native_channel_shuffle.h>
941#include <ATen/ops/native_dropout.h>
942#include <ATen/ops/native_dropout_backward.h>
943#include <ATen/ops/native_group_norm.h>
944#include <ATen/ops/native_group_norm_backward.h>
945#include <ATen/ops/native_layer_norm.h>
946#include <ATen/ops/native_layer_norm_backward.h>
947#include <ATen/ops/native_norm.h>
948#include <ATen/ops/ne.h>
949#include <ATen/ops/neg.h>
950#include <ATen/ops/negative.h>
951#include <ATen/ops/nested_to_padded_tensor.h>
952#include <ATen/ops/new_empty.h>
953#include <ATen/ops/new_empty_strided.h>
954#include <ATen/ops/new_full.h>
955#include <ATen/ops/new_ones.h>
956#include <ATen/ops/new_zeros.h>
957#include <ATen/ops/nextafter.h>
958#include <ATen/ops/nll_loss.h>
959#include <ATen/ops/nll_loss2d.h>
960#include <ATen/ops/nll_loss2d_backward.h>
961#include <ATen/ops/nll_loss2d_forward.h>
962#include <ATen/ops/nll_loss_backward.h>
963#include <ATen/ops/nll_loss_forward.h>
964#include <ATen/ops/nll_loss_nd.h>
965#include <ATen/ops/nonzero.h>
966#include <ATen/ops/nonzero_numpy.h>
967#include <ATen/ops/norm.h>
968#include <ATen/ops/norm_except_dim.h>
969#include <ATen/ops/normal.h>
970#include <ATen/ops/not_equal.h>
971#include <ATen/ops/nuclear_norm.h>
972#include <ATen/ops/numpy_T.h>
973#include <ATen/ops/one_hot.h>
974#include <ATen/ops/ones.h>
975#include <ATen/ops/ones_like.h>
976#include <ATen/ops/or.h>
977#include <ATen/ops/orgqr.h>
978#include <ATen/ops/ormqr.h>
979#include <ATen/ops/outer.h>
980#include <ATen/ops/output_nr.h>
981#include <ATen/ops/pad.h>
982#include <ATen/ops/pad_sequence.h>
983#include <ATen/ops/pairwise_distance.h>
984#include <ATen/ops/pdist.h>
985#include <ATen/ops/permute.h>
986#include <ATen/ops/permute_copy.h>
987#include <ATen/ops/pin_memory.h>
988#include <ATen/ops/pinverse.h>
989#include <ATen/ops/pixel_shuffle.h>
990#include <ATen/ops/pixel_unshuffle.h>
991#include <ATen/ops/poisson.h>
992#include <ATen/ops/poisson_nll_loss.h>
993#include <ATen/ops/polar.h>
994#include <ATen/ops/polygamma.h>
995#include <ATen/ops/positive.h>
996#include <ATen/ops/pow.h>
997#include <ATen/ops/prelu.h>
998#include <ATen/ops/prod.h>
999#include <ATen/ops/promote_types.h>
1000#include <ATen/ops/put.h>
1001#include <ATen/ops/q_per_channel_axis.h>
1002#include <ATen/ops/q_per_channel_scales.h>
1003#include <ATen/ops/q_per_channel_zero_points.h>
1004#include <ATen/ops/q_scale.h>
1005#include <ATen/ops/q_zero_point.h>
1006#include <ATen/ops/qr.h>
1007#include <ATen/ops/qscheme.h>
1008#include <ATen/ops/quantile.h>
1009#include <ATen/ops/quantize_per_channel.h>
1010#include <ATen/ops/quantize_per_tensor.h>
1011#include <ATen/ops/quantize_per_tensor_dynamic.h>
1012#include <ATen/ops/quantized_batch_norm.h>
1013#include <ATen/ops/quantized_gru_cell.h>
1014#include <ATen/ops/quantized_lstm_cell.h>
1015#include <ATen/ops/quantized_max_pool1d.h>
1016#include <ATen/ops/quantized_max_pool2d.h>
1017#include <ATen/ops/quantized_rnn_relu_cell.h>
1018#include <ATen/ops/quantized_rnn_tanh_cell.h>
1019#include <ATen/ops/rad2deg.h>
1020#include <ATen/ops/rand.h>
1021#include <ATen/ops/rand_like.h>
1022#include <ATen/ops/randint.h>
1023#include <ATen/ops/randint_like.h>
1024#include <ATen/ops/randn.h>
1025#include <ATen/ops/randn_like.h>
1026#include <ATen/ops/random.h>
1027#include <ATen/ops/randperm.h>
1028#include <ATen/ops/range.h>
1029#include <ATen/ops/ravel.h>
1030#include <ATen/ops/real.h>
1031#include <ATen/ops/reciprocal.h>
1032#include <ATen/ops/record_stream.h>
1033#include <ATen/ops/refine_names.h>
1034#include <ATen/ops/reflection_pad1d.h>
1035#include <ATen/ops/reflection_pad1d_backward.h>
1036#include <ATen/ops/reflection_pad2d.h>
1037#include <ATen/ops/reflection_pad2d_backward.h>
1038#include <ATen/ops/reflection_pad3d.h>
1039#include <ATen/ops/reflection_pad3d_backward.h>
1040#include <ATen/ops/relu.h>
1041#include <ATen/ops/relu6.h>
1042#include <ATen/ops/remainder.h>
1043#include <ATen/ops/rename.h>
1044#include <ATen/ops/renorm.h>
1045#include <ATen/ops/repeat.h>
1046#include <ATen/ops/repeat_interleave.h>
1047#include <ATen/ops/replication_pad1d.h>
1048#include <ATen/ops/replication_pad1d_backward.h>
1049#include <ATen/ops/replication_pad2d.h>
1050#include <ATen/ops/replication_pad2d_backward.h>
1051#include <ATen/ops/replication_pad3d.h>
1052#include <ATen/ops/replication_pad3d_backward.h>
1053#include <ATen/ops/requires_grad.h>
1054#include <ATen/ops/reshape.h>
1055#include <ATen/ops/reshape_as.h>
1056#include <ATen/ops/resize.h>
1057#include <ATen/ops/resize_as.h>
1058#include <ATen/ops/resize_as_sparse.h>
1059#include <ATen/ops/resolve_conj.h>
1060#include <ATen/ops/resolve_neg.h>
1061#include <ATen/ops/result_type.h>
1062#include <ATen/ops/retain_grad.h>
1063#include <ATen/ops/retains_grad.h>
1064#include <ATen/ops/rnn_relu.h>
1065#include <ATen/ops/rnn_relu_cell.h>
1066#include <ATen/ops/rnn_tanh.h>
1067#include <ATen/ops/rnn_tanh_cell.h>
1068#include <ATen/ops/roll.h>
1069#include <ATen/ops/rot90.h>
1070#include <ATen/ops/round.h>
1071#include <ATen/ops/row_indices.h>
1072#include <ATen/ops/row_indices_copy.h>
1073#include <ATen/ops/row_stack.h>
1074#include <ATen/ops/rrelu.h>
1075#include <ATen/ops/rrelu_with_noise.h>
1076#include <ATen/ops/rrelu_with_noise_backward.h>
1077#include <ATen/ops/rshift.h>
1078#include <ATen/ops/rsqrt.h>
1079#include <ATen/ops/rsub.h>
1080#include <ATen/ops/scalar_tensor.h>
1081#include <ATen/ops/scaled_dot_product_attention.h>
1082#include <ATen/ops/scatter.h>
1083#include <ATen/ops/scatter_add.h>
1084#include <ATen/ops/scatter_reduce.h>
1085#include <ATen/ops/searchsorted.h>
1086#include <ATen/ops/segment_reduce.h>
1087#include <ATen/ops/select.h>
1088#include <ATen/ops/select_backward.h>
1089#include <ATen/ops/select_copy.h>
1090#include <ATen/ops/select_scatter.h>
1091#include <ATen/ops/selu.h>
1092#include <ATen/ops/set.h>
1093#include <ATen/ops/set_data.h>
1094#include <ATen/ops/sgn.h>
1095#include <ATen/ops/sigmoid.h>
1096#include <ATen/ops/sigmoid_backward.h>
1097#include <ATen/ops/sign.h>
1098#include <ATen/ops/signbit.h>
1099#include <ATen/ops/silu.h>
1100#include <ATen/ops/silu_backward.h>
1101#include <ATen/ops/sin.h>
1102#include <ATen/ops/sinc.h>
1103#include <ATen/ops/sinh.h>
1104#include <ATen/ops/size.h>
1105#include <ATen/ops/slice.h>
1106#include <ATen/ops/slice_backward.h>
1107#include <ATen/ops/slice_copy.h>
1108#include <ATen/ops/slice_scatter.h>
1109#include <ATen/ops/slogdet.h>
1110#include <ATen/ops/slow_conv3d.h>
1111#include <ATen/ops/slow_conv3d_forward.h>
1112#include <ATen/ops/slow_conv_dilated2d.h>
1113#include <ATen/ops/slow_conv_dilated3d.h>
1114#include <ATen/ops/slow_conv_transpose2d.h>
1115#include <ATen/ops/slow_conv_transpose3d.h>
1116#include <ATen/ops/smm.h>
1117#include <ATen/ops/smooth_l1_loss.h>
1118#include <ATen/ops/smooth_l1_loss_backward.h>
1119#include <ATen/ops/soft_margin_loss.h>
1120#include <ATen/ops/soft_margin_loss_backward.h>
1121#include <ATen/ops/softmax.h>
1122#include <ATen/ops/softplus.h>
1123#include <ATen/ops/softplus_backward.h>
1124#include <ATen/ops/softshrink.h>
1125#include <ATen/ops/softshrink_backward.h>
1126#include <ATen/ops/sort.h>
1127#include <ATen/ops/sparse_bsc_tensor.h>
1128#include <ATen/ops/sparse_bsr_tensor.h>
1129#include <ATen/ops/sparse_compressed_tensor.h>
1130#include <ATen/ops/sparse_coo_tensor.h>
1131#include <ATen/ops/sparse_csc_tensor.h>
1132#include <ATen/ops/sparse_csr_tensor.h>
1133#include <ATen/ops/sparse_dim.h>
1134#include <ATen/ops/sparse_mask.h>
1135#include <ATen/ops/sparse_resize.h>
1136#include <ATen/ops/sparse_resize_and_clear.h>
1137#include <ATen/ops/sparse_sampled_addmm.h>
1138#include <ATen/ops/special_airy_ai.h>
1139#include <ATen/ops/special_bessel_j0.h>
1140#include <ATen/ops/special_bessel_j1.h>
1141#include <ATen/ops/special_bessel_y0.h>
1142#include <ATen/ops/special_bessel_y1.h>
1143#include <ATen/ops/special_chebyshev_polynomial_t.h>
1144#include <ATen/ops/special_chebyshev_polynomial_u.h>
1145#include <ATen/ops/special_chebyshev_polynomial_v.h>
1146#include <ATen/ops/special_chebyshev_polynomial_w.h>
1147#include <ATen/ops/special_digamma.h>
1148#include <ATen/ops/special_entr.h>
1149#include <ATen/ops/special_erf.h>
1150#include <ATen/ops/special_erfc.h>
1151#include <ATen/ops/special_erfcx.h>
1152#include <ATen/ops/special_erfinv.h>
1153#include <ATen/ops/special_exp2.h>
1154#include <ATen/ops/special_expit.h>
1155#include <ATen/ops/special_expm1.h>
1156#include <ATen/ops/special_gammainc.h>
1157#include <ATen/ops/special_gammaincc.h>
1158#include <ATen/ops/special_gammaln.h>
1159#include <ATen/ops/special_hermite_polynomial_h.h>
1160#include <ATen/ops/special_hermite_polynomial_he.h>
1161#include <ATen/ops/special_i0.h>
1162#include <ATen/ops/special_i0e.h>
1163#include <ATen/ops/special_i1.h>
1164#include <ATen/ops/special_i1e.h>
1165#include <ATen/ops/special_laguerre_polynomial_l.h>
1166#include <ATen/ops/special_legendre_polynomial_p.h>
1167#include <ATen/ops/special_log1p.h>
1168#include <ATen/ops/special_log_ndtr.h>
1169#include <ATen/ops/special_log_softmax.h>
1170#include <ATen/ops/special_logit.h>
1171#include <ATen/ops/special_logsumexp.h>
1172#include <ATen/ops/special_modified_bessel_i0.h>
1173#include <ATen/ops/special_modified_bessel_i1.h>
1174#include <ATen/ops/special_modified_bessel_k0.h>
1175#include <ATen/ops/special_modified_bessel_k1.h>
1176#include <ATen/ops/special_multigammaln.h>
1177#include <ATen/ops/special_ndtr.h>
1178#include <ATen/ops/special_ndtri.h>
1179#include <ATen/ops/special_polygamma.h>
1180#include <ATen/ops/special_psi.h>
1181#include <ATen/ops/special_round.h>
1182#include <ATen/ops/special_scaled_modified_bessel_k0.h>
1183#include <ATen/ops/special_scaled_modified_bessel_k1.h>
1184#include <ATen/ops/special_shifted_chebyshev_polynomial_t.h>
1185#include <ATen/ops/special_shifted_chebyshev_polynomial_u.h>
1186#include <ATen/ops/special_shifted_chebyshev_polynomial_v.h>
1187#include <ATen/ops/special_shifted_chebyshev_polynomial_w.h>
1188#include <ATen/ops/special_sinc.h>
1189#include <ATen/ops/special_softmax.h>
1190#include <ATen/ops/special_spherical_bessel_j0.h>
1191#include <ATen/ops/special_xlog1py.h>
1192#include <ATen/ops/special_xlogy.h>
1193#include <ATen/ops/special_zeta.h>
1194#include <ATen/ops/split.h>
1195#include <ATen/ops/split_copy.h>
1196#include <ATen/ops/split_with_sizes.h>
1197#include <ATen/ops/split_with_sizes_copy.h>
1198#include <ATen/ops/sqrt.h>
1199#include <ATen/ops/square.h>
1200#include <ATen/ops/squeeze.h>
1201#include <ATen/ops/squeeze_copy.h>
1202#include <ATen/ops/sspaddmm.h>
1203#include <ATen/ops/stack.h>
1204#include <ATen/ops/std.h>
1205#include <ATen/ops/std_mean.h>
1206#include <ATen/ops/stft.h>
1207#include <ATen/ops/stride.h>
1208#include <ATen/ops/sub.h>
1209#include <ATen/ops/subtract.h>
1210#include <ATen/ops/sum.h>
1211#include <ATen/ops/sum_to_size.h>
1212#include <ATen/ops/svd.h>
1213#include <ATen/ops/swapaxes.h>
1214#include <ATen/ops/swapdims.h>
1215#include <ATen/ops/t.h>
1216#include <ATen/ops/t_copy.h>
1217#include <ATen/ops/take.h>
1218#include <ATen/ops/take_along_dim.h>
1219#include <ATen/ops/tan.h>
1220#include <ATen/ops/tanh.h>
1221#include <ATen/ops/tanh_backward.h>
1222#include <ATen/ops/tensor_split.h>
1223#include <ATen/ops/tensordot.h>
1224#include <ATen/ops/thnn_conv2d.h>
1225#include <ATen/ops/threshold.h>
1226#include <ATen/ops/threshold_backward.h>
1227#include <ATen/ops/tile.h>
1228#include <ATen/ops/to.h>
1229#include <ATen/ops/to_dense.h>
1230#include <ATen/ops/to_dense_backward.h>
1231#include <ATen/ops/to_mkldnn.h>
1232#include <ATen/ops/to_mkldnn_backward.h>
1233#include <ATen/ops/to_padded_tensor.h>
1234#include <ATen/ops/to_sparse.h>
1235#include <ATen/ops/to_sparse_bsc.h>
1236#include <ATen/ops/to_sparse_bsr.h>
1237#include <ATen/ops/to_sparse_csc.h>
1238#include <ATen/ops/to_sparse_csr.h>
1239#include <ATen/ops/topk.h>
1240#include <ATen/ops/trace.h>
1241#include <ATen/ops/trace_backward.h>
1242#include <ATen/ops/transpose.h>
1243#include <ATen/ops/transpose_copy.h>
1244#include <ATen/ops/trapezoid.h>
1245#include <ATen/ops/trapz.h>
1246#include <ATen/ops/triangular_solve.h>
1247#include <ATen/ops/tril.h>
1248#include <ATen/ops/tril_indices.h>
1249#include <ATen/ops/triplet_margin_loss.h>
1250#include <ATen/ops/triu.h>
1251#include <ATen/ops/triu_indices.h>
1252#include <ATen/ops/true_divide.h>
1253#include <ATen/ops/trunc.h>
1254#include <ATen/ops/type_as.h>
1255#include <ATen/ops/unbind.h>
1256#include <ATen/ops/unbind_copy.h>
1257#include <ATen/ops/unflatten.h>
1258#include <ATen/ops/unflatten_dense_tensors.h>
1259#include <ATen/ops/unfold.h>
1260#include <ATen/ops/unfold_backward.h>
1261#include <ATen/ops/unfold_copy.h>
1262#include <ATen/ops/uniform.h>
1263#include <ATen/ops/unique_consecutive.h>
1264#include <ATen/ops/unique_dim.h>
1265#include <ATen/ops/unique_dim_consecutive.h>
1266#include <ATen/ops/unsafe_chunk.h>
1267#include <ATen/ops/unsafe_split.h>
1268#include <ATen/ops/unsafe_split_with_sizes.h>
1269#include <ATen/ops/unsqueeze.h>
1270#include <ATen/ops/unsqueeze_copy.h>
1271#include <ATen/ops/upsample_bicubic2d.h>
1272#include <ATen/ops/upsample_bicubic2d_backward.h>
1273#include <ATen/ops/upsample_bilinear2d.h>
1274#include <ATen/ops/upsample_bilinear2d_backward.h>
1275#include <ATen/ops/upsample_linear1d.h>
1276#include <ATen/ops/upsample_linear1d_backward.h>
1277#include <ATen/ops/upsample_nearest1d.h>
1278#include <ATen/ops/upsample_nearest1d_backward.h>
1279#include <ATen/ops/upsample_nearest2d.h>
1280#include <ATen/ops/upsample_nearest2d_backward.h>
1281#include <ATen/ops/upsample_nearest3d.h>
1282#include <ATen/ops/upsample_nearest3d_backward.h>
1283#include <ATen/ops/upsample_trilinear3d.h>
1284#include <ATen/ops/upsample_trilinear3d_backward.h>
1285#include <ATen/ops/value_selecting_reduction_backward.h>
1286#include <ATen/ops/values.h>
1287#include <ATen/ops/values_copy.h>
1288#include <ATen/ops/vander.h>
1289#include <ATen/ops/var.h>
1290#include <ATen/ops/var_mean.h>
1291#include <ATen/ops/vdot.h>
1292#include <ATen/ops/view.h>
1293#include <ATen/ops/view_as.h>
1294#include <ATen/ops/view_as_complex.h>
1295#include <ATen/ops/view_as_complex_copy.h>
1296#include <ATen/ops/view_as_real.h>
1297#include <ATen/ops/view_as_real_copy.h>
1298#include <ATen/ops/view_copy.h>
1299#include <ATen/ops/vsplit.h>
1300#include <ATen/ops/vstack.h>
1301#include <ATen/ops/where.h>
1302#include <ATen/ops/xlogy.h>
1303#include <ATen/ops/xor.h>
1304#include <ATen/ops/zero.h>
1305#include <ATen/ops/zeros.h>
1306#include <ATen/ops/zeros_like.h>
1307
1308namespace at {
1309
1310
1311
1312// Special C++ only overloads for std()-like functions (See gh-40287)
1313// These are needed because int -> bool conversion takes precedence over int -> IntArrayRef
1314// So, for example std(0) would select the std(unbiased=False) overload
1315TORCH_API inline Tensor var(const Tensor& self, int dim) {
1316 return at::var(self, IntArrayRef{dim});
1317}
1318TORCH_API inline std::tuple<Tensor, Tensor> var_mean(const Tensor& self, int dim) {
1319 return at::var_mean(self, IntArrayRef{dim});
1320}
1321TORCH_API inline Tensor std(const Tensor& self, int dim) {
1322 return at::std(self, IntArrayRef{dim});
1323}
1324TORCH_API inline std::tuple<Tensor, Tensor> std_mean(const Tensor& self, int dim) {
1325 return at::std_mean(self, IntArrayRef{dim});
1326}
1327
1328inline int64_t numel(const Tensor& tensor) {
1329 return tensor.numel();
1330}
1331
1332inline int64_t size(const Tensor& tensor, int64_t dim) {
1333 return tensor.size(dim);
1334}
1335
1336inline int64_t stride(const Tensor& tensor, int64_t dim) {
1337 return tensor.stride(dim);
1338}
1339
1340inline bool is_complex(const Tensor& tensor) {
1341 return tensor.is_complex();
1342}
1343
1344inline bool is_floating_point(const Tensor& tensor) {
1345 return tensor.is_floating_point();
1346}
1347
1348inline bool is_signed(const Tensor& tensor) {
1349 return tensor.is_signed();
1350}
1351
1352inline bool is_inference(const Tensor& tensor) {
1353 return tensor.is_inference();
1354}
1355
1356inline bool _is_zerotensor(const Tensor& tensor) {
1357 return tensor._is_zerotensor();
1358}
1359
1360inline bool is_conj(const Tensor& tensor) {
1361 return tensor.is_conj();
1362}
1363
1364inline Tensor conj(const Tensor& tensor) {
1365 return tensor.conj();
1366}
1367
1368inline bool is_neg(const Tensor& tensor) {
1369 return tensor.is_neg();
1370}
1371
1372}
1373