#pragma once
// @generated by torchgen/gen.py from DispatchKeyFunctions_inl.h

// NB: The implementing C++ file is RegisterDispatchKey.cpp

// The only #includes we need are for custom classes that have defaults in the C++ API
#include <c10/core/MemoryFormat.h>
#include <c10/core/Scalar.h>
#include <ATen/core/Reduction.h>

#if defined(AT_PER_OPERATOR_HEADERS) && defined(TORCH_ASSERT_ONLY_METHOD_OPERATORS)
#error This change adds a dependency on all pytorch operators, meaning the     \
  file will need to be re-compiled every time an operator is changed or added. \
  Consider including a specific operator from                                  \
  <ATen/ops/{my_operator}_mps_dispatch.h>.                   \
  See NOTE [TORCH_ASSERT_ONLY_METHOD_OPERATORS].
#endif

#include <ATen/ops/_adaptive_avg_pool2d_mps_dispatch.h>
#include <ATen/ops/_adaptive_avg_pool2d_backward_mps_dispatch.h>
#include <ATen/ops/_batch_norm_with_update_mps_dispatch.h>
#include <ATen/ops/_cdist_forward_mps_dispatch.h>
#include <ATen/ops/_convert_weight_to_int4pack_mps_dispatch.h>
#include <ATen/ops/_copy_from_mps_dispatch.h>
#include <ATen/ops/_copy_from_and_resize_mps_dispatch.h>
#include <ATen/ops/_efficientzerotensor_mps_dispatch.h>
#include <ATen/ops/_fft_c2c_mps_dispatch.h>
#include <ATen/ops/_fft_c2r_mps_dispatch.h>
#include <ATen/ops/_fft_r2c_mps_dispatch.h>
#include <ATen/ops/_fused_adam_mps_dispatch.h>
#include <ATen/ops/_fused_adamw_mps_dispatch.h>
#include <ATen/ops/_fused_sgd_mps_dispatch.h>
#include <ATen/ops/_histogramdd_bin_edges_mps_dispatch.h>
#include <ATen/ops/_histogramdd_from_bin_cts_mps_dispatch.h>
#include <ATen/ops/_histogramdd_from_bin_tensors_mps_dispatch.h>
#include <ATen/ops/_index_put_impl_mps_dispatch.h>
#include <ATen/ops/_local_scalar_dense_mps_dispatch.h>
#include <ATen/ops/_log_softmax_mps_dispatch.h>
#include <ATen/ops/_log_softmax_backward_data_mps_dispatch.h>
#include <ATen/ops/_lstm_mps_mps_dispatch.h>
#include <ATen/ops/_mps_convolution_mps_dispatch.h>
#include <ATen/ops/_mps_convolution_transpose_mps_dispatch.h>
#include <ATen/ops/_native_batch_norm_legit_mps_dispatch.h>
#include <ATen/ops/_prelu_kernel_mps_dispatch.h>
#include <ATen/ops/_prelu_kernel_backward_mps_dispatch.h>
#include <ATen/ops/_reshape_alias_mps_dispatch.h>
#include <ATen/ops/_scaled_dot_product_attention_math_for_mps_mps_dispatch.h>
#include <ATen/ops/_softmax_mps_dispatch.h>
#include <ATen/ops/_softmax_backward_data_mps_dispatch.h>
#include <ATen/ops/_unique2_mps_dispatch.h>
#include <ATen/ops/_upsample_nearest_exact1d_mps_dispatch.h>
#include <ATen/ops/_upsample_nearest_exact1d_backward_mps_dispatch.h>
#include <ATen/ops/_upsample_nearest_exact2d_mps_dispatch.h>
#include <ATen/ops/_upsample_nearest_exact2d_backward_mps_dispatch.h>
#include <ATen/ops/_weight_int4pack_mm_mps_dispatch.h>
#include <ATen/ops/_weight_int8pack_mm_mps_dispatch.h>
#include <ATen/ops/_weight_norm_interface_mps_dispatch.h>
#include <ATen/ops/_weight_norm_interface_backward_mps_dispatch.h>
#include <ATen/ops/abs_mps_dispatch.h>
#include <ATen/ops/acos_mps_dispatch.h>
#include <ATen/ops/acosh_mps_dispatch.h>
#include <ATen/ops/adaptive_avg_pool2d_mps_dispatch.h>
#include <ATen/ops/adaptive_max_pool2d_mps_dispatch.h>
#include <ATen/ops/adaptive_max_pool2d_backward_mps_dispatch.h>
#include <ATen/ops/add_mps_dispatch.h>
#include <ATen/ops/addbmm_mps_dispatch.h>
#include <ATen/ops/addcdiv_mps_dispatch.h>
#include <ATen/ops/addcmul_mps_dispatch.h>
#include <ATen/ops/addmm_mps_dispatch.h>
#include <ATen/ops/addmv_mps_dispatch.h>
#include <ATen/ops/addr_mps_dispatch.h>
#include <ATen/ops/all_mps_dispatch.h>
#include <ATen/ops/amax_mps_dispatch.h>
#include <ATen/ops/amin_mps_dispatch.h>
#include <ATen/ops/aminmax_mps_dispatch.h>
#include <ATen/ops/any_mps_dispatch.h>
#include <ATen/ops/arange_mps_dispatch.h>
#include <ATen/ops/argmax_mps_dispatch.h>
#include <ATen/ops/argmin_mps_dispatch.h>
#include <ATen/ops/as_strided_mps_dispatch.h>
#include <ATen/ops/asin_mps_dispatch.h>
#include <ATen/ops/asinh_mps_dispatch.h>
#include <ATen/ops/atan_mps_dispatch.h>
#include <ATen/ops/atan2_mps_dispatch.h>
#include <ATen/ops/atanh_mps_dispatch.h>
#include <ATen/ops/avg_pool2d_mps_dispatch.h>
#include <ATen/ops/avg_pool2d_backward_mps_dispatch.h>
#include <ATen/ops/baddbmm_mps_dispatch.h>
#include <ATen/ops/batch_norm_backward_mps_dispatch.h>
#include <ATen/ops/bernoulli_mps_dispatch.h>
#include <ATen/ops/binary_cross_entropy_mps_dispatch.h>
#include <ATen/ops/binary_cross_entropy_backward_mps_dispatch.h>
#include <ATen/ops/bincount_mps_dispatch.h>
#include <ATen/ops/bitwise_and_mps_dispatch.h>
#include <ATen/ops/bitwise_left_shift_mps_dispatch.h>
#include <ATen/ops/bitwise_not_mps_dispatch.h>
#include <ATen/ops/bitwise_or_mps_dispatch.h>
#include <ATen/ops/bitwise_right_shift_mps_dispatch.h>
#include <ATen/ops/bitwise_xor_mps_dispatch.h>
#include <ATen/ops/bmm_mps_dispatch.h>
#include <ATen/ops/bucketize_mps_dispatch.h>
#include <ATen/ops/cat_mps_dispatch.h>
#include <ATen/ops/ceil_mps_dispatch.h>
#include <ATen/ops/clamp_mps_dispatch.h>
#include <ATen/ops/clamp_max_mps_dispatch.h>
#include <ATen/ops/clamp_min_mps_dispatch.h>
#include <ATen/ops/complex_mps_dispatch.h>
#include <ATen/ops/conj_physical_mps_dispatch.h>
#include <ATen/ops/constant_pad_nd_mps_dispatch.h>
#include <ATen/ops/copysign_mps_dispatch.h>
#include <ATen/ops/cos_mps_dispatch.h>
#include <ATen/ops/cosh_mps_dispatch.h>
#include <ATen/ops/count_nonzero_mps_dispatch.h>
#include <ATen/ops/cumprod_mps_dispatch.h>
#include <ATen/ops/cumsum_mps_dispatch.h>
#include <ATen/ops/digamma_mps_dispatch.h>
#include <ATen/ops/div_mps_dispatch.h>
#include <ATen/ops/dot_mps_dispatch.h>
#include <ATen/ops/elu_mps_dispatch.h>
#include <ATen/ops/elu_backward_mps_dispatch.h>
#include <ATen/ops/embedding_dense_backward_mps_dispatch.h>
#include <ATen/ops/empty_mps_dispatch.h>
#include <ATen/ops/empty_strided_mps_dispatch.h>
#include <ATen/ops/eq_mps_dispatch.h>
#include <ATen/ops/equal_mps_dispatch.h>
#include <ATen/ops/erf_mps_dispatch.h>
#include <ATen/ops/erfinv_mps_dispatch.h>
#include <ATen/ops/exp_mps_dispatch.h>
#include <ATen/ops/exp2_mps_dispatch.h>
#include <ATen/ops/expm1_mps_dispatch.h>
#include <ATen/ops/exponential_mps_dispatch.h>
#include <ATen/ops/eye_mps_dispatch.h>
#include <ATen/ops/fill_mps_dispatch.h>
#include <ATen/ops/flip_mps_dispatch.h>
#include <ATen/ops/floor_mps_dispatch.h>
#include <ATen/ops/floor_divide_mps_dispatch.h>
#include <ATen/ops/fmax_mps_dispatch.h>
#include <ATen/ops/fmin_mps_dispatch.h>
#include <ATen/ops/fmod_mps_dispatch.h>
#include <ATen/ops/frac_mps_dispatch.h>
#include <ATen/ops/gather_mps_dispatch.h>
#include <ATen/ops/ge_mps_dispatch.h>
#include <ATen/ops/gelu_mps_dispatch.h>
#include <ATen/ops/gelu_backward_mps_dispatch.h>
#include <ATen/ops/glu_mps_dispatch.h>
#include <ATen/ops/glu_backward_mps_dispatch.h>
#include <ATen/ops/grid_sampler_2d_mps_dispatch.h>
#include <ATen/ops/gt_mps_dispatch.h>
#include <ATen/ops/hardsigmoid_mps_dispatch.h>
#include <ATen/ops/hardsigmoid_backward_mps_dispatch.h>
#include <ATen/ops/hardswish_mps_dispatch.h>
#include <ATen/ops/hardswish_backward_mps_dispatch.h>
#include <ATen/ops/hardtanh_mps_dispatch.h>
#include <ATen/ops/hardtanh_backward_mps_dispatch.h>
#include <ATen/ops/histc_mps_dispatch.h>
#include <ATen/ops/histogram_mps_dispatch.h>
#include <ATen/ops/huber_loss_mps_dispatch.h>
#include <ATen/ops/huber_loss_backward_mps_dispatch.h>
#include <ATen/ops/hypot_mps_dispatch.h>
#include <ATen/ops/i0_mps_dispatch.h>
#include <ATen/ops/im2col_mps_dispatch.h>
#include <ATen/ops/index_mps_dispatch.h>
#include <ATen/ops/index_add_mps_dispatch.h>
#include <ATen/ops/index_fill_mps_dispatch.h>
#include <ATen/ops/index_select_mps_dispatch.h>
#include <ATen/ops/is_set_to_mps_dispatch.h>
#include <ATen/ops/isin_mps_dispatch.h>
#include <ATen/ops/isnan_mps_dispatch.h>
#include <ATen/ops/isneginf_mps_dispatch.h>
#include <ATen/ops/isposinf_mps_dispatch.h>
#include <ATen/ops/le_mps_dispatch.h>
#include <ATen/ops/leaky_relu_mps_dispatch.h>
#include <ATen/ops/leaky_relu_backward_mps_dispatch.h>
#include <ATen/ops/lerp_mps_dispatch.h>
#include <ATen/ops/lgamma_mps_dispatch.h>
#include <ATen/ops/linalg_cross_mps_dispatch.h>
#include <ATen/ops/linalg_inv_ex_mps_dispatch.h>
#include <ATen/ops/linalg_lu_factor_mps_dispatch.h>
#include <ATen/ops/linalg_solve_triangular_mps_dispatch.h>
#include <ATen/ops/linalg_vector_norm_mps_dispatch.h>
#include <ATen/ops/linear_mps_dispatch.h>
#include <ATen/ops/linear_backward_mps_dispatch.h>
#include <ATen/ops/linspace_mps_dispatch.h>
#include <ATen/ops/log_mps_dispatch.h>
#include <ATen/ops/log10_mps_dispatch.h>
#include <ATen/ops/log1p_mps_dispatch.h>
#include <ATen/ops/log2_mps_dispatch.h>
#include <ATen/ops/log_sigmoid_backward_mps_dispatch.h>
#include <ATen/ops/log_sigmoid_forward_mps_dispatch.h>
#include <ATen/ops/logaddexp_mps_dispatch.h>
#include <ATen/ops/logaddexp2_mps_dispatch.h>
#include <ATen/ops/logical_and_mps_dispatch.h>
#include <ATen/ops/logical_not_mps_dispatch.h>
#include <ATen/ops/logical_or_mps_dispatch.h>
#include <ATen/ops/logical_xor_mps_dispatch.h>
#include <ATen/ops/logit_mps_dispatch.h>
#include <ATen/ops/logit_backward_mps_dispatch.h>
#include <ATen/ops/lshift_mps_dispatch.h>
#include <ATen/ops/lstm_mps_backward_mps_dispatch.h>
#include <ATen/ops/lt_mps_dispatch.h>
#include <ATen/ops/masked_fill_mps_dispatch.h>
#include <ATen/ops/masked_scatter_mps_dispatch.h>
#include <ATen/ops/masked_select_mps_dispatch.h>
#include <ATen/ops/max_mps_dispatch.h>
#include <ATen/ops/max_pool2d_mps_dispatch.h>
#include <ATen/ops/max_pool2d_backward_mps_dispatch.h>
#include <ATen/ops/max_pool2d_with_indices_mps_dispatch.h>
#include <ATen/ops/max_pool2d_with_indices_backward_mps_dispatch.h>
#include <ATen/ops/maximum_mps_dispatch.h>
#include <ATen/ops/mean_mps_dispatch.h>
#include <ATen/ops/median_mps_dispatch.h>
#include <ATen/ops/min_mps_dispatch.h>
#include <ATen/ops/minimum_mps_dispatch.h>
#include <ATen/ops/mish_mps_dispatch.h>
#include <ATen/ops/mish_backward_mps_dispatch.h>
#include <ATen/ops/mm_mps_dispatch.h>
#include <ATen/ops/mps_convolution_backward_mps_dispatch.h>
#include <ATen/ops/mps_convolution_transpose_backward_mps_dispatch.h>
#include <ATen/ops/mse_loss_mps_dispatch.h>
#include <ATen/ops/mse_loss_backward_mps_dispatch.h>
#include <ATen/ops/mul_mps_dispatch.h>
#include <ATen/ops/multinomial_mps_dispatch.h>
#include <ATen/ops/nan_to_num_mps_dispatch.h>
#include <ATen/ops/nansum_mps_dispatch.h>
#include <ATen/ops/native_batch_norm_mps_dispatch.h>
#include <ATen/ops/native_batch_norm_backward_mps_dispatch.h>
#include <ATen/ops/native_layer_norm_mps_dispatch.h>
#include <ATen/ops/native_layer_norm_backward_mps_dispatch.h>
#include <ATen/ops/ne_mps_dispatch.h>
#include <ATen/ops/neg_mps_dispatch.h>
#include <ATen/ops/nextafter_mps_dispatch.h>
#include <ATen/ops/nll_loss2d_backward_mps_dispatch.h>
#include <ATen/ops/nll_loss2d_forward_mps_dispatch.h>
#include <ATen/ops/nll_loss_backward_mps_dispatch.h>
#include <ATen/ops/nll_loss_forward_mps_dispatch.h>
#include <ATen/ops/nonzero_mps_dispatch.h>
#include <ATen/ops/norm_mps_dispatch.h>
#include <ATen/ops/normal_mps_dispatch.h>
#include <ATen/ops/permute_mps_dispatch.h>
#include <ATen/ops/pixel_shuffle_mps_dispatch.h>
#include <ATen/ops/pixel_unshuffle_mps_dispatch.h>
#include <ATen/ops/polar_mps_dispatch.h>
#include <ATen/ops/polygamma_mps_dispatch.h>
#include <ATen/ops/pow_mps_dispatch.h>
#include <ATen/ops/prod_mps_dispatch.h>
#include <ATen/ops/random_mps_dispatch.h>
#include <ATen/ops/randperm_mps_dispatch.h>
#include <ATen/ops/range_mps_dispatch.h>
#include <ATen/ops/reciprocal_mps_dispatch.h>
#include <ATen/ops/reflection_pad1d_mps_dispatch.h>
#include <ATen/ops/reflection_pad1d_backward_mps_dispatch.h>
#include <ATen/ops/reflection_pad2d_mps_dispatch.h>
#include <ATen/ops/reflection_pad2d_backward_mps_dispatch.h>
#include <ATen/ops/reflection_pad3d_mps_dispatch.h>
#include <ATen/ops/reflection_pad3d_backward_mps_dispatch.h>
#include <ATen/ops/relu_mps_dispatch.h>
#include <ATen/ops/remainder_mps_dispatch.h>
#include <ATen/ops/renorm_mps_dispatch.h>
#include <ATen/ops/repeat_mps_dispatch.h>
#include <ATen/ops/repeat_interleave_mps_dispatch.h>
#include <ATen/ops/replication_pad1d_mps_dispatch.h>
#include <ATen/ops/replication_pad1d_backward_mps_dispatch.h>
#include <ATen/ops/replication_pad2d_mps_dispatch.h>
#include <ATen/ops/replication_pad2d_backward_mps_dispatch.h>
#include <ATen/ops/replication_pad3d_mps_dispatch.h>
#include <ATen/ops/replication_pad3d_backward_mps_dispatch.h>
#include <ATen/ops/resize_mps_dispatch.h>
#include <ATen/ops/roll_mps_dispatch.h>
#include <ATen/ops/round_mps_dispatch.h>
#include <ATen/ops/rshift_mps_dispatch.h>
#include <ATen/ops/rsqrt_mps_dispatch.h>
#include <ATen/ops/scatter_mps_dispatch.h>
#include <ATen/ops/scatter_add_mps_dispatch.h>
#include <ATen/ops/scatter_reduce_mps_dispatch.h>
#include <ATen/ops/searchsorted_mps_dispatch.h>
#include <ATen/ops/set_mps_dispatch.h>
#include <ATen/ops/sgn_mps_dispatch.h>
#include <ATen/ops/sigmoid_mps_dispatch.h>
#include <ATen/ops/sigmoid_backward_mps_dispatch.h>
#include <ATen/ops/sign_mps_dispatch.h>
#include <ATen/ops/signbit_mps_dispatch.h>
#include <ATen/ops/silu_mps_dispatch.h>
#include <ATen/ops/silu_backward_mps_dispatch.h>
#include <ATen/ops/sin_mps_dispatch.h>
#include <ATen/ops/sinh_mps_dispatch.h>
#include <ATen/ops/smooth_l1_loss_mps_dispatch.h>
#include <ATen/ops/smooth_l1_loss_backward_mps_dispatch.h>
#include <ATen/ops/softplus_mps_dispatch.h>
#include <ATen/ops/softplus_backward_mps_dispatch.h>
#include <ATen/ops/softshrink_mps_dispatch.h>
#include <ATen/ops/softshrink_backward_mps_dispatch.h>
#include <ATen/ops/sort_mps_dispatch.h>
#include <ATen/ops/special_i1_mps_dispatch.h>
#include <ATen/ops/sqrt_mps_dispatch.h>
#include <ATen/ops/std_mps_dispatch.h>
#include <ATen/ops/std_mean_mps_dispatch.h>
#include <ATen/ops/sub_mps_dispatch.h>
#include <ATen/ops/sum_mps_dispatch.h>
#include <ATen/ops/tan_mps_dispatch.h>
#include <ATen/ops/tanh_mps_dispatch.h>
#include <ATen/ops/tanh_backward_mps_dispatch.h>
#include <ATen/ops/threshold_mps_dispatch.h>
#include <ATen/ops/threshold_backward_mps_dispatch.h>
#include <ATen/ops/topk_mps_dispatch.h>
#include <ATen/ops/trace_mps_dispatch.h>
#include <ATen/ops/triangular_solve_mps_dispatch.h>
#include <ATen/ops/tril_mps_dispatch.h>
#include <ATen/ops/tril_indices_mps_dispatch.h>
#include <ATen/ops/triu_mps_dispatch.h>
#include <ATen/ops/triu_indices_mps_dispatch.h>
#include <ATen/ops/trunc_mps_dispatch.h>
#include <ATen/ops/unfold_mps_dispatch.h>
#include <ATen/ops/unfold_backward_mps_dispatch.h>
#include <ATen/ops/uniform_mps_dispatch.h>
#include <ATen/ops/unique_consecutive_mps_dispatch.h>
#include <ATen/ops/unique_dim_consecutive_mps_dispatch.h>
#include <ATen/ops/upsample_bicubic2d_mps_dispatch.h>
#include <ATen/ops/upsample_bicubic2d_backward_mps_dispatch.h>
#include <ATen/ops/upsample_bilinear2d_mps_dispatch.h>
#include <ATen/ops/upsample_bilinear2d_backward_mps_dispatch.h>
#include <ATen/ops/upsample_linear1d_mps_dispatch.h>
#include <ATen/ops/upsample_linear1d_backward_mps_dispatch.h>
#include <ATen/ops/upsample_nearest1d_mps_dispatch.h>
#include <ATen/ops/upsample_nearest1d_backward_mps_dispatch.h>
#include <ATen/ops/upsample_nearest2d_mps_dispatch.h>
#include <ATen/ops/upsample_nearest2d_backward_mps_dispatch.h>
#include <ATen/ops/var_mps_dispatch.h>
#include <ATen/ops/var_mean_mps_dispatch.h>
#include <ATen/ops/view_mps_dispatch.h>
#include <ATen/ops/view_as_complex_mps_dispatch.h>
#include <ATen/ops/view_as_real_mps_dispatch.h>
#include <ATen/ops/where_mps_dispatch.h>
#include <ATen/ops/xlogy_mps_dispatch.h>
#include <ATen/ops/zero_mps_dispatch.h>



