void iaf_psc_delta_canon::handle( SpikeEvent& e ) { assert( e.get_delay_steps() > 0 ); /* We need to compute the absolute time stamp of the delivery time of the spike, since spikes might spend longer than min_delay_ in the queue. The time is computed according to Time Memo, Rule 3. */ const long Tdeliver = e.get_stamp().get_steps() + e.get_delay_steps() - 1; B_.events_.add_spike( e.get_rel_delivery_steps( kernel().simulation_manager.get_slice_origin() ), Tdeliver, e.get_offset(), e.get_weight() * e.get_multiplicity() ); }
void iaf_psc_alpha_multisynapse::handle( SpikeEvent& e ) { assert( e.get_delay_steps() > 0 ); B_.spikes_[ e.get_rport() - 1 ].add_value( e.get_rel_delivery_steps( kernel().simulation_manager.get_slice_origin() ), e.get_weight() * e.get_multiplicity() ); }
void nest::amat2_psc_exp::handle( SpikeEvent& e ) { assert( e.get_delay_steps() > 0 ); if ( e.get_weight() >= 0.0 ) { B_.spikes_ex_.add_value( e.get_rel_delivery_steps( kernel().simulation_manager.get_slice_origin() ), e.get_weight() * e.get_multiplicity() ); } else { B_.spikes_in_.add_value( e.get_rel_delivery_steps( kernel().simulation_manager.get_slice_origin() ), e.get_weight() * e.get_multiplicity() ); } }
void nest::iaf_cond_alpha::handle( SpikeEvent& e ) { assert( e.get_delay_steps() > 0 ); if ( e.get_weight() > 0.0 ) { B_.spike_exc_.add_value( e.get_rel_delivery_steps( kernel().simulation_manager.get_slice_origin() ), e.get_weight() * e.get_multiplicity() ); } else { B_.spike_inh_.add_value( e.get_rel_delivery_steps( kernel().simulation_manager.get_slice_origin() ), -e.get_weight() * e.get_multiplicity() ); } // ensure conductance is positive }
void iaf_psc_alpha::handle( SpikeEvent& e ) { assert( e.get_delay_steps() > 0 ); const double s = e.get_weight() * e.get_multiplicity(); if ( e.get_weight() > 0.0 ) { B_.ex_spikes_.add_value( e.get_rel_delivery_steps( kernel().simulation_manager.get_slice_origin() ), s ); } else { B_.in_spikes_.add_value( e.get_rel_delivery_steps( kernel().simulation_manager.get_slice_origin() ), s ); } }