Implementation of the simple spiking neuron model introduced by Izhikevich .
The dynamics are given by:
dv/dt = 0.04*v^2 + 5*v + 140 - u + I
du/dt = a*(b*v - u)
if v >= V_th:
v is set to c
u is incremented by d
v jumps on each spike arrival by the weight of the spike.
As published in  the numerics differs from the standard forward Euler technique
in two ways:
1) the new value of u is calulated based on the new value of v rather than the
2) the variable v is updated using a time step half the size of that used to update
This model offers both forms of integration they can be selected using the
boolean parameter consistent_integration. To reproduce some results published on
the basis of this model it is necessary to use the published form of the dynamics.
In this case consistent_integration must be set to false. For all other purposes
it is recommended to use the standard technique for forward Euler integration. In
this case consistent_integration must be set to true (default).
The following parameters can be set in the status dictionary.
V_m double - Membrane potential in mV
U_m double - Membrane potential recovery variable
V_th double - Spike threshold in mV.
I_e double - Constant input current in pA. (R=1)
V_min double - Absolute lower value for the membrane potential.
a double - describes time scale of recovery variable
b double - sensitivity of recovery variable
c double - after-spike reset value of V_m
d double - after-spike reset value of U_m
consistent_integration bool - use standard integration technique
Hanuschkin Morrison Kunkel