#include // Broadcasting utilities for working with TensorBase namespace at { namespace internal { TORCH_API TensorBase expand_slow_path(const TensorBase &self, IntArrayRef size); } // namespace internal inline c10::MaybeOwned expand_size(const TensorBase &self, IntArrayRef size) { if (size.equals(self.sizes())) { return c10::MaybeOwned::borrowed(self); } return c10::MaybeOwned::owned( at::internal::expand_slow_path(self, size)); } c10::MaybeOwned expand_size(TensorBase &&self, IntArrayRef size) = delete; inline c10::MaybeOwned expand_inplace(const TensorBase &tensor, const TensorBase &to_expand) { return expand_size(to_expand, tensor.sizes()); } c10::MaybeOwned expand_inplace(const TensorBase &tensor, TensorBase &&to_expand) = delete; } // namespace at