Hi Maxime,
I don’t quite understand what you mean by “the computation of the inihibition occurs before the inhibition”.
A typical update loop for a NEST model (here simplified from iaf_psc_alpha) looks like this, where y3_ is the membrane potential:
S_.y3_ = V_.P30_ * ( S_.y0_ + P_.I_e_ ) + V_.P31_ex_ * S_.dI_ex_ + V_.P32_ex_ * S_.I_ex_ + V_.P31_in_ * S_.dI_in_
+ V_.P32_in_ * S_.I_in_ + V_.expm1_tau_m_ * S_.y3_ + S_.y3_;
S_.I_ex_ = V_.P21_ex_ * S_.dI_ex_ + V_.P22_ex_ * S_.I_ex_;
S_.dI_ex_ *= V_.P11_ex_;
S_.dI_ex_ += V_.EPSCInitialValue_ * input[ Buffers_::SYN_EX ];
S_.I_in_ = V_.P21_in_ * S_.dI_in_ + V_.P22_in_ * S_.I_in_;
S_.dI_in_ *= V_.P11_in_;
S_.dI_in_ += V_.IPSCInitialValue_ * input[ Buffers_::SYN_IN ];
if ( S_.y3_ >= P_.Theta_ )
{
S_.y3_ = P_.V_reset_;
kernel().event_delivery_manager.send( *this,
SpikeEvent(), lag );
}
// set new input current
S_.y0_ = input[ Buffers_::I0 ];
The first line updates the membrane potential based on the differential equation for the membrane potential, using the values of the
membrane potential and the state variables for the excitatory and inhibitory synapses from the previous time step.
The second block then updates the state variables for the excitatory synapses according to the ODEs and then adds the new input arriving
during the time step. This input by definition always arrives at the end of the time step, since spikes are emitted at the end of time steps. The thirds block does the same for inhibitory synapses.
The fourth block checks for threshold crossings, resetting and emitting a spike if necessary.
The final block updates current input for the next time step. This could also have been placed before the threshold check.
For mathematical details on the update and the order of update lines, see
Rotter, S., & Diesmann, M. (1999). Exact digital simulation of time-invariant linear systems with applications to neuronal modeling.
Biol Cybern, 81, 381–402.
Best,
Hans Ekkehard
--
Prof. Dr. Hans Ekkehard Plesser
Departmend Head
Department of Data Science
Faculty of Science and Technology
Norwegian University of Life Sciences
PO Box 5003, 1432 Aas, Norway
Phone +47 6723 1560
Email hans.ekkehard.plesser@nmbu.no
Home http://arken.nmbu.no/~plesser