pytorch/tools/autograd/templates/python_linalg_functions.cpp
Nikita Shulga 82e353fffc [BE] Use nested namespaces in autograd/templates (#110618)
As PyTorch can now use C++17 language features
Pull Request resolved: https://github.com/pytorch/pytorch/pull/110618
Approved by: https://github.com/soulitzer
2023-10-05 22:05:57 +00:00

69 lines
1.6 KiB
C++

#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_linalg_functions.h"
#include "torch/csrc/autograd/generated/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/utils/pycfunction_helpers.h"
#include "torch/csrc/utils/python_arg_parser.h"
#include "torch/csrc/utils/structseq.h"
#ifndef AT_PER_OPERATOR_HEADERS
#include <ATen/Functions.h>
#else
$ops_headers
#endif
using at::Tensor;
using at::Scalar;
using at::ScalarType;
using at::MemoryFormat;
using at::Generator;
using at::IntArrayRef;
using at::TensorList;
using namespace torch::autograd::utils;
namespace torch::autograd {
// generated forward declarations start here
${py_forwards}
static PyMethodDef linalg_functions[] = {
${py_method_defs}
{NULL}
};
static PyObject* THPLinalgVariableFunctionsModule = NULL;
void initLinalgFunctions(PyObject* module) {
static struct PyModuleDef def = {
PyModuleDef_HEAD_INIT,
"torch._C._linalg",
NULL,
-1,
linalg_functions
};
PyObject* linalg = PyModule_Create(&def);
THPLinalgVariableFunctionsModule = linalg;
if (!linalg) {
throw python_error();
}
// steals a reference to linalg
if (PyModule_AddObject(module, "_linalg", linalg) != 0) {
throw python_error();
}
}
// generated methods start here
${py_methods}
} // namespace torch::autograd