| #define TORCH_ASSERT_ONLY_METHOD_OPERATORS | |
| // ${generated_comment} | |
| #include "torch/csrc/Device.h" | |
| #include "torch/csrc/DynamicTypes.h" | |
| #include "torch/csrc/Exceptions.h" | |
| #include "torch/csrc/autograd/python_special_functions.h" | |
| #include "torch/csrc/autograd/python_return_types.h" | |
| #include "torch/csrc/autograd/python_variable.h" | |
| #include "torch/csrc/autograd/utils/wrap_outputs.h" | |
| #include "torch/csrc/autograd/utils/python_arg_parsing.h" | |
| #include "torch/csrc/autograd/generated/variable_factories.h" | |
| #include "torch/csrc/utils/out_types.h" | |
| #include "torch/csrc/utils/pycfunction_helpers.h" | |
| #include "torch/csrc/utils/python_arg_parser.h" | |
| #include "torch/csrc/utils/structseq.h" | |
| #include "torch/csrc/utils/cuda_lazy_init.h" | |
| #ifndef AT_PER_OPERATOR_HEADERS | |
| #include <ATen/Functions.h> | |
| #else | |
| $ops_headers | |
| #endif | |
| using at::Tensor; | |
| using at::Device; | |
| using at::Layout; | |
| using at::Scalar; | |
| using at::ScalarType; | |
| using at::Backend; | |
| using at::OptionalDeviceGuard; | |
| using at::DeviceGuard; | |
| using at::TensorOptions; | |
| using at::IntArrayRef; | |
| using at::Generator; | |
| using at::TensorList; | |
| using at::Dimname; | |
| using at::DimnameList; | |
| using torch::utils::check_out_type_matches; | |
| using namespace torch::autograd::utils; | |
| namespace torch { namespace autograd { | |
| // generated forward declarations start here | |
| ${py_forwards} | |
| static PyMethodDef special_functions[] = { | |
| ${py_method_defs} | |
| {NULL} | |
| }; | |
| static PyObject* THPSpecialVariableFunctionsModule = NULL; | |
| void initSpecialFunctions(PyObject* module) { | |
| static struct PyModuleDef def = { | |
| PyModuleDef_HEAD_INIT, | |
| "torch._C._special", | |
| NULL, | |
| -1, | |
| special_functions | |
| }; | |
| PyObject* special = PyModule_Create(&def); | |
| THPSpecialVariableFunctionsModule = special; | |
| if (!special) { | |
| throw python_error(); | |
| } | |
| // steals a reference to special | |
| if (PyModule_AddObject(module, "_special", special) != 0) { | |
| throw python_error(); | |
| } | |
| } | |
| // generated methods start here | |
| ${py_methods} | |
| }} // namespace torch::autograd |