Skip to content

Commit a4b2d81

Browse files
committed
Renamed eprop models to include _bsshslm_2020; compiles, examples and tests not adapted yet
1 parent 5e4ecf7 commit a4b2d81

15 files changed

+286
-288
lines changed

build_support/generate_modelsmodule.py

+2-4
Original file line numberDiff line numberDiff line change
@@ -110,8 +110,7 @@ def get_models_from_file(model_file):
110110
"public Node": "node",
111111
"public ClopathArchivingNode": "clopath",
112112
"public UrbanczikArchivingNode": "urbanczik",
113-
"public EpropArchivingNode": "eprop",
114-
"public eprop_synapse": "eprop_connection",
113+
"public EpropArchivingNode": "neuron",
115114
"typedef binary_neuron": "binary",
116115
"typedef rate_": "rate",
117116
}
@@ -230,8 +229,7 @@ def generate_modelsmodule():
230229
1. the copyright header.
231230
2. a list of generic NEST includes
232231
3. the list of includes for the models to build into NEST
233-
4. if required template specialization for eprop_synapse
234-
5. the list of model registration lines for the models to build
232+
4. the list of model registration lines for the models to build
235233
into NEST
236234
237235
The code is enriched by structured C++ comments as to make

models/eprop_iaf_psc_delta.cpp renamed to models/eprop_iaf_bsshslm_2020.cpp

+31-31
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* eprop_iaf_psc_delta.cpp
2+
* eprop_iaf_bsshslm_2020.cpp
33
*
44
* This file is part of NEST.
55
*
@@ -21,7 +21,7 @@
2121
*/
2222

2323
// nest models
24-
#include "eprop_iaf_psc_delta.h"
24+
#include "eprop_iaf_bsshslm_2020.h"
2525

2626
// C++
2727
#include <limits>
@@ -43,31 +43,31 @@ namespace nest
4343
{
4444

4545
void
46-
register_eprop_iaf_psc_delta( const std::string& name )
46+
register_eprop_iaf_bsshslm_2020( const std::string& name )
4747
{
48-
register_node_model< eprop_iaf_psc_delta >( name );
48+
register_node_model< eprop_iaf_bsshslm_2020 >( name );
4949
}
5050

5151
/* ----------------------------------------------------------------
5252
* Recordables map
5353
* ---------------------------------------------------------------- */
5454

55-
RecordablesMap< eprop_iaf_psc_delta > eprop_iaf_psc_delta::recordablesMap_;
55+
RecordablesMap< eprop_iaf_bsshslm_2020 > eprop_iaf_bsshslm_2020::recordablesMap_;
5656

5757
template <>
5858
void
59-
RecordablesMap< eprop_iaf_psc_delta >::create()
59+
RecordablesMap< eprop_iaf_bsshslm_2020 >::create()
6060
{
61-
insert_( names::learning_signal, &eprop_iaf_psc_delta::get_learning_signal_ );
62-
insert_( names::surrogate_gradient, &eprop_iaf_psc_delta::get_surrogate_gradient_ );
63-
insert_( names::V_m, &eprop_iaf_psc_delta::get_v_m_ );
61+
insert_( names::learning_signal, &eprop_iaf_bsshslm_2020::get_learning_signal_ );
62+
insert_( names::surrogate_gradient, &eprop_iaf_bsshslm_2020::get_surrogate_gradient_ );
63+
insert_( names::V_m, &eprop_iaf_bsshslm_2020::get_v_m_ );
6464
}
6565

6666
/* ----------------------------------------------------------------
6767
* Default constructors for parameters, state, and buffers
6868
* ---------------------------------------------------------------- */
6969

70-
eprop_iaf_psc_delta::Parameters_::Parameters_()
70+
eprop_iaf_bsshslm_2020::Parameters_::Parameters_()
7171
: C_m_( 250.0 )
7272
, c_reg_( 0.0 )
7373
, E_L_( -70.0 )
@@ -83,7 +83,7 @@ eprop_iaf_psc_delta::Parameters_::Parameters_()
8383
{
8484
}
8585

86-
eprop_iaf_psc_delta::State_::State_()
86+
eprop_iaf_bsshslm_2020::State_::State_()
8787
: learning_signal_( 0.0 )
8888
, r_( 0 )
8989
, surrogate_gradient_( 0.0 )
@@ -94,12 +94,12 @@ eprop_iaf_psc_delta::State_::State_()
9494
{
9595
}
9696

97-
eprop_iaf_psc_delta::Buffers_::Buffers_( eprop_iaf_psc_delta& n )
97+
eprop_iaf_bsshslm_2020::Buffers_::Buffers_( eprop_iaf_bsshslm_2020& n )
9898
: logger_( n )
9999
{
100100
}
101101

102-
eprop_iaf_psc_delta::Buffers_::Buffers_( const Buffers_&, eprop_iaf_psc_delta& n )
102+
eprop_iaf_bsshslm_2020::Buffers_::Buffers_( const Buffers_&, eprop_iaf_bsshslm_2020& n )
103103
: logger_( n )
104104
{
105105
}
@@ -109,7 +109,7 @@ eprop_iaf_psc_delta::Buffers_::Buffers_( const Buffers_&, eprop_iaf_psc_delta& n
109109
* ---------------------------------------------------------------- */
110110

111111
void
112-
eprop_iaf_psc_delta::Parameters_::get( DictionaryDatum& d ) const
112+
eprop_iaf_bsshslm_2020::Parameters_::get( DictionaryDatum& d ) const
113113
{
114114
def< double >( d, names::C_m, C_m_ );
115115
def< double >( d, names::c_reg, c_reg_ );
@@ -126,7 +126,7 @@ eprop_iaf_psc_delta::Parameters_::get( DictionaryDatum& d ) const
126126
}
127127

128128
double
129-
eprop_iaf_psc_delta::Parameters_::set( const DictionaryDatum& d, Node* node )
129+
eprop_iaf_bsshslm_2020::Parameters_::set( const DictionaryDatum& d, Node* node )
130130
{
131131
// if leak potential is changed, adjust all variables defined relative to it
132132
const double ELold = E_L_;
@@ -209,15 +209,15 @@ eprop_iaf_psc_delta::Parameters_::set( const DictionaryDatum& d, Node* node )
209209
}
210210

211211
void
212-
eprop_iaf_psc_delta::State_::get( DictionaryDatum& d, const Parameters_& p ) const
212+
eprop_iaf_bsshslm_2020::State_::get( DictionaryDatum& d, const Parameters_& p ) const
213213
{
214214
def< double >( d, names::V_m, v_m_ + p.E_L_ );
215215
def< double >( d, names::surrogate_gradient, surrogate_gradient_ );
216216
def< double >( d, names::learning_signal, learning_signal_ );
217217
}
218218

219219
void
220-
eprop_iaf_psc_delta::State_::set( const DictionaryDatum& d, const Parameters_& p, double delta_EL, Node* node )
220+
eprop_iaf_bsshslm_2020::State_::set( const DictionaryDatum& d, const Parameters_& p, double delta_EL, Node* node )
221221
{
222222
v_m_ -= updateValueParam< double >( d, names::V_m, v_m_, node ) ? p.E_L_ : delta_EL;
223223
}
@@ -226,7 +226,7 @@ eprop_iaf_psc_delta::State_::set( const DictionaryDatum& d, const Parameters_& p
226226
* Default and copy constructor for node
227227
* ---------------------------------------------------------------- */
228228

229-
eprop_iaf_psc_delta::eprop_iaf_psc_delta()
229+
eprop_iaf_bsshslm_2020::eprop_iaf_bsshslm_2020()
230230
: EpropArchivingNodeRecurrent()
231231
, P_()
232232
, S_()
@@ -235,7 +235,7 @@ eprop_iaf_psc_delta::eprop_iaf_psc_delta()
235235
recordablesMap_.create();
236236
}
237237

238-
eprop_iaf_psc_delta::eprop_iaf_psc_delta( const eprop_iaf_psc_delta& n )
238+
eprop_iaf_bsshslm_2020::eprop_iaf_bsshslm_2020( const eprop_iaf_bsshslm_2020& n )
239239
: EpropArchivingNodeRecurrent( n )
240240
, P_( n.P_ )
241241
, S_( n.S_ )
@@ -248,23 +248,23 @@ eprop_iaf_psc_delta::eprop_iaf_psc_delta( const eprop_iaf_psc_delta& n )
248248
* ---------------------------------------------------------------- */
249249

250250
void
251-
eprop_iaf_psc_delta::init_buffers_()
251+
eprop_iaf_bsshslm_2020::init_buffers_()
252252
{
253253
B_.spikes_.clear(); // includes resize
254254
B_.currents_.clear(); // includes resize
255255
B_.logger_.reset(); // includes resize
256256
}
257257

258258
void
259-
eprop_iaf_psc_delta::pre_run_hook()
259+
eprop_iaf_bsshslm_2020::pre_run_hook()
260260
{
261261
B_.logger_.init(); // ensures initialization in case multimeter connected after Simulate
262262

263263
V_.RefractoryCounts_ = Time( Time::ms( P_.t_ref_ ) ).get_steps();
264264

265265
if ( P_.surrogate_gradient_function_ == "piecewise_linear" )
266266
{
267-
compute_surrogate_gradient = &eprop_iaf_psc_delta::compute_piecewise_linear_derivative;
267+
compute_surrogate_gradient = &eprop_iaf_bsshslm_2020::compute_piecewise_linear_derivative;
268268
}
269269

270270
// calculate the entries of the propagator matrix for the evolution of the state vector
@@ -287,13 +287,13 @@ eprop_iaf_psc_delta::pre_run_hook()
287287
}
288288

289289
long
290-
eprop_iaf_psc_delta::get_shift() const
290+
eprop_iaf_bsshslm_2020::get_shift() const
291291
{
292292
return offset_gen_ + delay_in_rec_;
293293
}
294294

295295
bool
296-
eprop_iaf_psc_delta::is_eprop_recurrent_node() const
296+
eprop_iaf_bsshslm_2020::is_eprop_recurrent_node() const
297297
{
298298
return true;
299299
}
@@ -303,7 +303,7 @@ eprop_iaf_psc_delta::is_eprop_recurrent_node() const
303303
* ---------------------------------------------------------------- */
304304

305305
void
306-
eprop_iaf_psc_delta::update( Time const& origin, const long from, const long to )
306+
eprop_iaf_bsshslm_2020::update( Time const& origin, const long from, const long to )
307307
{
308308
const long update_interval = kernel().simulation_manager.get_eprop_update_interval().get_steps();
309309
const bool with_reset = kernel().simulation_manager.get_eprop_reset_neurons_on_update();
@@ -379,7 +379,7 @@ eprop_iaf_psc_delta::update( Time const& origin, const long from, const long to
379379
* ---------------------------------------------------------------- */
380380

381381
double
382-
eprop_iaf_psc_delta::compute_piecewise_linear_derivative()
382+
eprop_iaf_bsshslm_2020::compute_piecewise_linear_derivative()
383383
{
384384
if ( S_.r_ > 0 )
385385
{
@@ -394,7 +394,7 @@ eprop_iaf_psc_delta::compute_piecewise_linear_derivative()
394394
* ---------------------------------------------------------------- */
395395

396396
void
397-
eprop_iaf_psc_delta::handle( SpikeEvent& e )
397+
eprop_iaf_bsshslm_2020::handle( SpikeEvent& e )
398398
{
399399
assert( e.get_delay_steps() > 0 );
400400

@@ -403,7 +403,7 @@ eprop_iaf_psc_delta::handle( SpikeEvent& e )
403403
}
404404

405405
void
406-
eprop_iaf_psc_delta::handle( CurrentEvent& e )
406+
eprop_iaf_bsshslm_2020::handle( CurrentEvent& e )
407407
{
408408
assert( e.get_delay_steps() > 0 );
409409

@@ -412,7 +412,7 @@ eprop_iaf_psc_delta::handle( CurrentEvent& e )
412412
}
413413

414414
void
415-
eprop_iaf_psc_delta::handle( LearningSignalConnectionEvent& e )
415+
eprop_iaf_bsshslm_2020::handle( LearningSignalConnectionEvent& e )
416416
{
417417
for ( auto it_event = e.begin(); it_event != e.end(); )
418418
{
@@ -426,13 +426,13 @@ eprop_iaf_psc_delta::handle( LearningSignalConnectionEvent& e )
426426
}
427427

428428
void
429-
eprop_iaf_psc_delta::handle( DataLoggingRequest& e )
429+
eprop_iaf_bsshslm_2020::handle( DataLoggingRequest& e )
430430
{
431431
B_.logger_.handle( e );
432432
}
433433

434434
double
435-
eprop_iaf_psc_delta::compute_gradient( std::vector< long >& presyn_isis,
435+
eprop_iaf_bsshslm_2020::compute_gradient( std::vector< long >& presyn_isis,
436436
const long t_previous_update,
437437
const long t_previous_trigger_spike,
438438
const double kappa,

0 commit comments

Comments
 (0)