#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