23#ifndef EPROP_ARCHIVING_NODE_H
24#define EPROP_ARCHIVING_NODE_H
51template <
typename HistEntryT >
71 const long t_current_update,
72 const bool is_flush_event,
73 const bool previous_was_flush_event )
override;
84 const long time_step )
const;
92 std::vector< HistEntryEpropUpdate >::iterator
get_update_history(
const long time_step );
100 typename std::vector< HistEntryT >::iterator
get_eprop_history(
const long time_step );
Base class implementing archiving for node models supporting e-prop plasticity.
Definition eprop_archiving_node.h:53
std::vector< HistEntryT > eprop_history_
History of dynamic variables needed for e-prop plasticity.
Definition eprop_archiving_node.h:162
double eprop_isi_trace_cutoff_
Time interval from the previous spike until the cutoff of e-prop update computation between two spike...
Definition eprop_archiving_node.h:156
std::vector< HistEntryT >::iterator get_eprop_history(const long time_step)
Retrieves the eprop history entry for a specified time step.
Definition eprop_archiving_node_impl.h:157
EpropArchivingNode()
Constructs a new EpropArchivingNode object.
Definition eprop_archiving_node_impl.h:35
void write_update_to_history(const long t_previous_update, const long t_current_update, const bool is_flush_event, const bool previous_was_flush_event) override
Registers the current update in the update history and deregisters the previous update.
Definition eprop_archiving_node_impl.h:81
std::vector< HistEntryEpropUpdate > update_history_
History of updates still needed by at least one synapse.
Definition eprop_archiving_node.h:159
virtual long model_dependent_history_shift_() const =0
Returns the correct shift for history depending on whether it is a normal or a bsshslm_2020 model.
const long delay_rec_out_
Transmission delay from recurrent to output neurons.
Definition eprop_archiving_node.h:174
double get_eprop_history_duration() const
Retrieves eprop history size.
Definition eprop_archiving_node_impl.h:282
void register_eprop_connection() override
Registers an eprop connection.
Definition eprop_archiving_node_impl.h:56
std::vector< HistEntryEpropUpdate >::iterator get_update_history(const long time_step)
Retrieves the update history entry for a specific time step.
Definition eprop_archiving_node_impl.h:150
void erase_used_eprop_history() override
Erases the used eprop history for bsshslm_2020 models.
Definition eprop_archiving_node_impl.h:164
const long delay_out_rec_
Transmission delay from output neurons to recurrent neurons.
Definition eprop_archiving_node.h:180
void initialize_update_history() override
Initializes the update history.
Definition eprop_archiving_node_impl.h:63
const long delay_in_rec_
Transmission delay from input to recurrent neurons.
Definition eprop_archiving_node.h:171
const long delay_out_norm_
Transmission delay between output neurons for normalization.
Definition eprop_archiving_node.h:177
size_t eprop_indegree_
Number of incoming eprop synapses.
Definition eprop_archiving_node.h:153
long get_eprop_isi_trace_cutoff() const
Retrieves the eprop ISI trace cutoff.
Definition eprop_archiving_node.h:139
void require_eprop_history_entry(const typename std::vector< HistEntryT >::iterator eprop_hist_it, const long time_step) const
Requires that an e-prop history iterator points to the expected time step.
Definition eprop_archiving_node_impl.h:127
const long offset_gen_
Offset since generator signals start from time step 1.
Definition eprop_archiving_node.h:168
Class implementing a flush event mechanism for neuron models.
Definition flush_event_mechanism.h:43
Class implementing an ignore-and-fire mechanism for neuron models.
Definition ignore_and_spike_mechanism.h:40
Base class for all NEST network objects.
Definition node.h:99
Definition nest_time.h:135
long get_steps() const
Definition nest_time.h:504
Namespace for the NEST simulation kernel.
Definition beta_normalization_factor.h:33
Declarations for base class Node.
Definition nest_time.h:255