#pragma once #include // Forward declarations of core ATen types used in dispatch functions namespace c10 { template class optional; template class List; template class IListRef; class Stream; class Scalar; class SymInt; class SymIntList; struct Storage; struct TensorOptions; template class ArrayRef; template class OptionalArrayRef; } // namespace c10 namespace at { class Tensor; class OptionalTensorRef; struct Dimname; struct Generator; using TensorList = c10::ArrayRef; using ITensorListRef = c10::IListRef; using IOptTensorListRef = c10::IListRef; using DimnameList = c10::ArrayRef; using IntArrayRef = c10::ArrayRef; using OptionalIntArrayRef = c10::OptionalArrayRef; using OptionalSymIntArrayRef = c10::OptionalArrayRef; using c10::Stream; using c10::Storage; using c10::QScheme; using c10::Scalar; using c10::SymInt; using c10::SymIntList; using c10::TensorOptions; } // namespace at