// Ternary and higher-order pointwise operations #pragma once #include namespace c10 { class Scalar; } namespace at { struct TensorIterator; struct TensorIteratorBase; namespace native { using pointwise_fn = void (*)(TensorIterator&, const Scalar& scalar); using structured_pointwise_fn = void (*)(TensorIteratorBase&, const Scalar& scalar); using pointwise_fn_double = void (*)(TensorIterator&, const Scalar&, double); DECLARE_DISPATCH(structured_pointwise_fn, addcmul_stub); DECLARE_DISPATCH(structured_pointwise_fn, addcdiv_stub); DECLARE_DISPATCH(pointwise_fn_double, smooth_l1_backward_stub); DECLARE_DISPATCH(pointwise_fn_double, huber_backward_stub); DECLARE_DISPATCH(pointwise_fn, mse_backward_stub); } // namespace native } // namespace at