Computes a single euler-integration step of a feed-forward exponential LIF neuron-model without recurrence, adapted from http://www.scholarpedia.org/article/Adaptive_exponential_integrate-and-fire_model. It takes as input the input current as generated by an arbitrary torch module or function. More specifically it implements one integration step of the following ODE

\begin{split}\begin{align*} \dot{v} &= 1/\tau_{\text{mem}} \left(v_{\text{leak}} - v + i + \Delta_T exp\left({{v - v_{\text{th}}} \over {\Delta_T}}\right)\right) \\ \dot{i} &= -1/\tau_{\text{syn}} i \\ \dot{a} &= 1/\tau_{\text{ada}} \left( a_{current} (V - v_{\text{leak}}) - a \right) \end{align*}\end{split}

together with the jump condition

$z = \Theta(v - v_{\text{th}})$

and transition equations

$i = i + i_{\text{in}}$

where $$i_{\text{in}}$$ is meant to be the result of applying an arbitrary pytorch module (such as a convolution) to input spikes.

Parameters:

p (LIFAdExParameters): Parameters of the LIFEx neuron model. dt (float): Time step to use.

Examples:
>>> batch_size = 16