1#pragma once
2#include <c10/core/QScheme.h>
3
4// Forward declarations of core ATen types used in dispatch functions
5namespace c10 {
6
7template<typename T>
8class optional;
9template<typename T>
10class List;
11template<typename T>
12class IListRef;
13class Stream;
14class Scalar;
15class SymInt;
16class SymIntList;
17struct Storage;
18struct TensorOptions;
19template <typename T>
20class ArrayRef;
21template <typename T>
22class OptionalArrayRef;
23
24} // namespace c10
25
26namespace at {
27
28class Tensor;
29class OptionalTensorRef;
30struct Dimname;
31struct Generator;
32using TensorList = c10::ArrayRef<Tensor>;
33using ITensorListRef = c10::IListRef<Tensor>;
34using IOptTensorListRef = c10::IListRef<OptionalTensorRef>;
35using DimnameList = c10::ArrayRef<Dimname>;
36using IntArrayRef = c10::ArrayRef<int64_t>;
37using OptionalIntArrayRef = c10::OptionalArrayRef<int64_t>;
38using OptionalSymIntArrayRef = c10::OptionalArrayRef<c10::SymInt>;
39
40using c10::Stream;
41using c10::Storage;
42using c10::QScheme;
43using c10::Scalar;
44using c10::SymInt;
45using c10::SymIntList;
46using c10::TensorOptions;
47
48} // namespace at
49