#pragma once #include std::vector selective_scan_fwd(const at::Tensor &u, const at::Tensor &delta, const at::Tensor &A, const at::Tensor &B, const at::Tensor &C, const c10::optional &D_, const c10::optional &z_, const c10::optional &delta_bias_, bool delta_softplus); std::vector selective_scan_bwd(const at::Tensor &u, const at::Tensor &delta, const at::Tensor &A, const at::Tensor &B, const at::Tensor &C, const c10::optional &D_, const c10::optional &z_, const c10::optional &delta_bias_, const at::Tensor &dout, const c10::optional &x_, const c10::optional &out_, c10::optional dz_, bool delta_softplus, bool recompute_out_z);