23#ifndef EPROP_IAF_ADAPT_BSSHSLM_2020_H
24#define EPROP_IAF_ADAPT_BSSHSLM_2020_H
320 void update(
Time const&,
const long,
const long )
override;
322 double compute_gradient( std::vector< long >&,
const long,
const long,
const double,
const bool )
override;
540 e.set_sender( *
this );
541 return target.handles_test_event( e, receptor_type );
547 if ( receptor_type != 0 )
558 if ( receptor_type != 0 )
569 if ( receptor_type != 0 )
580 if ( receptor_type != 0 )
606 const double delta_EL = ptmp.
set( d,
this );
607 stmp.
set( d, ptmp, delta_EL,
this );
Dictionary class for interface to Python and C++ API.
Definition dictionary.h:213
Event for electrical currents.
Definition event.h:569
Request data to be logged/logged data to be sent.
Definition event.h:636
Class implementing an intermediate archiving node model for recurrent node models supporting e-prop p...
Definition eprop_archiving_node_recurrent.h:43
void set_status(const Dictionary &d) override
Change properties of the node according to the entries in the dictionary.
Definition eprop_archiving_node_recurrent.h:286
void get_status(Dictionary &d) const override
Export properties of the node by setting entries in the status dictionary.
Definition eprop_archiving_node_recurrent.h:273
const long delay_in_rec_
Transmission delay from input to recurrent neurons.
Definition eprop_archiving_node.h:171
const long offset_gen_
Offset since generator signals start from time step 1.
Definition eprop_archiving_node.h:168
Event for learning signal connections.
Definition secondary_event.h:384
Base class for all NEST network objects.
Definition node.h:99
std::string get_name() const
Return class name.
Definition node.cpp:105
Map names of recordables to data access functions.
Definition recordables_map.h:61
Buffer Layout.
Definition ring_buffer.h:83
Event for spike information.
Definition event.h:418
Definition nest_time.h:135
Exception to be thrown if the specified receptor type does not exist in the node.
Definition exceptions.h:417
Class implementing an adaptive LIF neuron model for e-prop plasticity.
Definition eprop_iaf_adapt_bsshslm_2020.h:289
double compute_gradient(std::vector< long > &, const long, const long, const double, const bool) override
Compute gradient change for eprop synapses.
Definition eprop_iaf_adapt_bsshslm_2020.cpp:431
void set_status(const Dictionary &) override
Change properties of the node according to the entries in the dictionary.
Definition eprop_iaf_adapt_bsshslm_2020.h:598
bool is_eprop_recurrent_node() const override
Checks if the node is part of the recurrent network and thus not a readout neuron.
Definition eprop_iaf_adapt_bsshslm_2020.h:531
void get_status(Dictionary &) const override
Export properties of the node by setting entries in the status dictionary.
Definition eprop_iaf_adapt_bsshslm_2020.h:589
friend class UniversalDataLogger< eprop_iaf_adapt_bsshslm_2020 >
Logger for universal data supporting the data logging request / reply mechanism. Populated with a rec...
Definition eprop_iaf_adapt_bsshslm_2020.h:331
long get_shift() const override
Retrieves the temporal shift of the signal.
Definition eprop_iaf_adapt_bsshslm_2020.h:525
double get_adaptation_() const
Get the current value of the adaptation.
Definition eprop_iaf_adapt_bsshslm_2020.h:501
Buffers_ B_
Structure of buffers.
Definition eprop_iaf_adapt_bsshslm_2020.h:518
void pre_run_hook() override
Re-calculate dependent parameters of the node.
Definition eprop_iaf_adapt_bsshslm_2020.cpp:285
eprop_iaf_adapt_bsshslm_2020()
Default constructor.
Definition eprop_iaf_adapt_bsshslm_2020.cpp:255
size_t send_test_event(Node &, size_t, synindex, bool) override
Send an event to the receiving_node passed as an argument.
Definition eprop_iaf_adapt_bsshslm_2020.h:537
double get_v_th_adapt_() const
Get the current value of the adapting threshold.
Definition eprop_iaf_adapt_bsshslm_2020.h:494
void init_buffers_() override
Configure persistent internal data structures.
Definition eprop_iaf_adapt_bsshslm_2020.cpp:277
Variables_ V_
Structure of internal variables.
Definition eprop_iaf_adapt_bsshslm_2020.h:515
Parameters_ P_
Structure of parameters.
Definition eprop_iaf_adapt_bsshslm_2020.h:509
double get_v_m_() const
Get the current value of the membrane voltage.
Definition eprop_iaf_adapt_bsshslm_2020.h:473
void handle(SpikeEvent &) override
Handle incoming spike events.
Definition eprop_iaf_adapt_bsshslm_2020.cpp:393
size_t handles_test_event(SpikeEvent &, size_t) override
Check if the node can handle a particular event and receptor type.
Definition eprop_iaf_adapt_bsshslm_2020.h:545
static RecordablesMap< eprop_iaf_adapt_bsshslm_2020 > recordablesMap_
Map storing a static set of recordables.
Definition eprop_iaf_adapt_bsshslm_2020.h:521
double get_learning_signal_() const
Get the current value of the learning signal.
Definition eprop_iaf_adapt_bsshslm_2020.h:487
State_ S_
Structure of state variables.
Definition eprop_iaf_adapt_bsshslm_2020.h:512
double get_surrogate_gradient_() const
Get the current value of the surrogate gradient.
Definition eprop_iaf_adapt_bsshslm_2020.h:480
void update(Time const &, const long, const long) override
Advance the state of the node in time through the given interval.
Definition eprop_iaf_adapt_bsshslm_2020.cpp:308
virtual size_t handles_test_event(SpikeEvent &, size_t receptor_type)
Check if the node can handle a particular event and receptor type.
Definition node.cpp:271
virtual void handle(SpikeEvent &e)
Handle incoming spike events.
Definition node.cpp:265
const std::string recordables("recordables")
Namespace for the NEST simulation kernel.
Definition beta_normalization_factor.h:33
void register_eprop_iaf_adapt_bsshslm_2020(const std::string &name)
Definition eprop_iaf_adapt_bsshslm_2020.cpp:44
size_t synindex
For enumerations of synapse types.
Definition nest_types.h:115
Structure of buffers.
Definition eprop_iaf_adapt_bsshslm_2020.h:434
UniversalDataLogger< eprop_iaf_adapt_bsshslm_2020 > logger_
Logger for universal data.
Definition eprop_iaf_adapt_bsshslm_2020.h:448
RingBuffer currents_
Buffer for incoming currents.
Definition eprop_iaf_adapt_bsshslm_2020.h:445
RingBuffer spikes_
Buffer for incoming spikes.
Definition eprop_iaf_adapt_bsshslm_2020.h:442
Structure of parameters.
Definition eprop_iaf_adapt_bsshslm_2020.h:335
double I_e_
Constant external input current (pA).
Definition eprop_iaf_adapt_bsshslm_2020.h:355
std::string surrogate_gradient_function_
Surrogate gradient / pseudo-derivative function of the membrane voltage ["piecewise_linear",...
Definition eprop_iaf_adapt_bsshslm_2020.h:362
double adapt_tau_
Time constant of the threshold adaptation (ms).
Definition eprop_iaf_adapt_bsshslm_2020.h:340
double surrogate_gradient_width_
Width scaling of surrogate gradient / pseudo-derivative of membrane voltage.
Definition eprop_iaf_adapt_bsshslm_2020.h:368
double t_ref_
Duration of the refractory period (ms).
Definition eprop_iaf_adapt_bsshslm_2020.h:371
double C_m_
Capacitance of the membrane (pF).
Definition eprop_iaf_adapt_bsshslm_2020.h:343
Parameters_()
Default constructor.
Definition eprop_iaf_adapt_bsshslm_2020.cpp:71
double set(const Dictionary &, Node *)
Set the parameters and throw errors in case of invalid values.
Definition eprop_iaf_adapt_bsshslm_2020.cpp:138
double V_min_
Absolute lower bound of the membrane voltage relative to the leak membrane potential (mV).
Definition eprop_iaf_adapt_bsshslm_2020.h:377
double surrogate_gradient_height_
Height scaling of surrogate gradient / pseudo-derivative of membrane voltage.
Definition eprop_iaf_adapt_bsshslm_2020.h:365
double E_L_
Leak / resting membrane potential (mV).
Definition eprop_iaf_adapt_bsshslm_2020.h:349
double adapt_beta_
Prefactor of the threshold adaptation.
Definition eprop_iaf_adapt_bsshslm_2020.h:337
double V_th_
Spike threshold voltage relative to the leak membrane potential (mV).
Definition eprop_iaf_adapt_bsshslm_2020.h:380
void get(Dictionary &) const
Get the parameters and their values.
Definition eprop_iaf_adapt_bsshslm_2020.cpp:118
bool regular_spike_arrival_
If True, the input spikes arrive at the beginning of the time step, if False at the end (determines P...
Definition eprop_iaf_adapt_bsshslm_2020.h:358
double tau_m_
Time constant of the membrane (ms).
Definition eprop_iaf_adapt_bsshslm_2020.h:374
double c_reg_
Coefficient of firing rate regularization.
Definition eprop_iaf_adapt_bsshslm_2020.h:346
double f_target_
Target firing rate of rate regularization (spikes/s).
Definition eprop_iaf_adapt_bsshslm_2020.h:352
Structure of state variables.
Definition eprop_iaf_adapt_bsshslm_2020.h:394
double v_th_adapt_
Adapting spike threshold voltage.
Definition eprop_iaf_adapt_bsshslm_2020.h:399
double z_in_
Binary input spike state variable - 1.0 if the neuron has spiked in the previous time step and 0....
Definition eprop_iaf_adapt_bsshslm_2020.h:420
double z_
Binary spike state variable - 1.0 if the neuron has spiked in the previous time step and 0....
Definition eprop_iaf_adapt_bsshslm_2020.h:417
double v_m_
Membrane voltage relative to the leak membrane potential (mV).
Definition eprop_iaf_adapt_bsshslm_2020.h:414
double surrogate_gradient_
Surrogate gradient / pseudo-derivative of the membrane voltage.
Definition eprop_iaf_adapt_bsshslm_2020.h:408
void set(const Dictionary &, const Parameters_ &, double, Node *)
Set the state variables.
Definition eprop_iaf_adapt_bsshslm_2020.cpp:234
void get(Dictionary &, const Parameters_ &) const
Get the state variables and their values.
Definition eprop_iaf_adapt_bsshslm_2020.cpp:224
int r_
Number of remaining refractory steps.
Definition eprop_iaf_adapt_bsshslm_2020.h:405
double adapt_
Adaptation variable.
Definition eprop_iaf_adapt_bsshslm_2020.h:396
double learning_signal_
Learning signal. Sum of weighted error signals coming from the readout neurons.
Definition eprop_iaf_adapt_bsshslm_2020.h:402
State_()
Default constructor.
Definition eprop_iaf_adapt_bsshslm_2020.cpp:90
double i_in_
Input current (pA).
Definition eprop_iaf_adapt_bsshslm_2020.h:411
Structure of internal variables.
Definition eprop_iaf_adapt_bsshslm_2020.h:453
double P_z_in_
Propagator matrix entry for evolving the incoming spike state variables (mathematical symbol "zeta" i...
Definition eprop_iaf_adapt_bsshslm_2020.h:459
double P_v_m_
Propagator matrix entry for evolving the membrane voltage (mathematical symbol "alpha" in user docume...
Definition eprop_iaf_adapt_bsshslm_2020.h:455
double P_adapt_
Propagator matrix entry for evolving the adaptation (mathematical symbol "rho" in user documentation)...
Definition eprop_iaf_adapt_bsshslm_2020.h:465
int RefractoryCounts_
Total refractory steps.
Definition eprop_iaf_adapt_bsshslm_2020.h:468
double P_i_in_
Propagator matrix entry for evolving the incoming currents.
Definition eprop_iaf_adapt_bsshslm_2020.h:462