#include void author_state_cuda(torch::Tensor v, torch::Tensor g, torch::Tensor ref, torch::Tensor requests, torch::Tensor spikes, torch::Tensor counts, double gd, double c0, double cg, double cv, double threshold, double reset, double seed_volt, int64_t refractory_steps); void author_fill_edges_cuda(torch::Tensor indptr, torch::Tensor sources, torch::Tensor offsets, torch::Tensor output); void author_arrivals_cuda(torch::Tensor edges, torch::Tensor starts, torch::Tensor targets, torch::Tensor weights, torch::Tensor g, torch::Tensor ref); void author_external_cuda(torch::Tensor external, torch::Tensor g, torch::Tensor ref); PYBIND11_MODULE(TORCH_EXTENSION_NAME, m) { m.def("state_step", &author_state_cuda, "Author NumPy-ordered integration/threshold/reset"); m.def("fill_edges", &author_fill_edges_cuda, "Expand only active-source canonical CSR edges"); m.def("apply_arrivals", &author_arrivals_cuda, "Sequential per-target arrival additions"); m.def("apply_external", &author_external_cuda, "Post-anatomical external arrival additions"); }