// DON'T include this except from Binary*.cu files. It should not leak into // headers. #pragma once #define TORCH_ASSERT_NO_OPERATORS #include #include #include #include #include #include #include #include #include #include #include namespace at { namespace native { namespace binary_internal { template struct DivFunctor { __device__ scalar_t operator()(scalar_t a, scalar_t b) const { return a / b; } }; template struct MulFunctor { __device__ T operator()(T a, T b) const { return a * b; } }; // Workaround for the error: '*' in boolean context, suggest '&&' instead // [-Werror=int-in-bool-context] template <> struct MulFunctor { __device__ bool operator()(bool a, bool b) const { return a && b; } }; void div_true_kernel_cuda(TensorIteratorBase& iter); void div_trunc_kernel_cuda(TensorIteratorBase& iter); } // namespace binary_internal } // namespace native } // namespace at