23#ifndef IAF_COND_EXP_SFA_RR_H
24#define IAF_COND_EXP_SFA_RR_H
32#include <gsl/gsl_errno.h>
33#include <gsl/gsl_matrix.h>
34#include <gsl/gsl_odeiv.h>
57extern "C" int iaf_cond_exp_sfa_rr_dynamics(
double,
const double*,
double*,
void* );
145void register_iaf_cond_exp_sfa_rr(
const std::string& name );
147class iaf_cond_exp_sfa_rr :
public ArchivingNode
151 iaf_cond_exp_sfa_rr();
152 iaf_cond_exp_sfa_rr(
const iaf_cond_exp_sfa_rr& );
153 ~iaf_cond_exp_sfa_rr()
override;
161 using Node::handles_test_event;
163 size_t send_test_event( Node&,
size_t, synindex,
bool )
override;
165 void handle( SpikeEvent& )
override;
166 void handle( CurrentEvent& )
override;
167 void handle( DataLoggingRequest& )
override;
169 size_t handles_test_event( SpikeEvent&,
size_t )
override;
170 size_t handles_test_event( CurrentEvent&,
size_t )
override;
171 size_t handles_test_event( DataLoggingRequest&,
size_t )
override;
173 void get_status(
Dictionary& )
const override;
174 void set_status(
const Dictionary& )
override;
177 void init_buffers_()
override;
178 void pre_run_hook()
override;
179 void update( Time
const&,
const long,
const long )
override;
186 friend int iaf_cond_exp_sfa_rr_dynamics(
double,
const double*,
double*,
void* );
189 friend class RecordablesMap< iaf_cond_exp_sfa_rr >;
190 friend class UniversalDataLogger< iaf_cond_exp_sfa_rr >;
246 double y_[ STATE_VEC_SIZE ];
249 State_(
const Parameters_& );
250 State_(
const State_& );
252 State_& operator=(
const State_& );
255 void set(
const Dictionary&,
const Parameters_&, Node* );
266 Buffers_( iaf_cond_exp_sfa_rr& );
268 Buffers_(
const Buffers_&, iaf_cond_exp_sfa_rr& );
271 UniversalDataLogger< iaf_cond_exp_sfa_rr > logger_;
274 RingBuffer spike_exc_;
275 RingBuffer spike_inh_;
276 RingBuffer currents_;
280 gsl_odeiv_control* c_;
281 gsl_odeiv_evolve* e_;
282 gsl_odeiv_system sys_;
288 double IntegrationStep_;
307 int RefractoryCounts_;
313 template < State_::StateVecElems elem >
317 return S_.y_[ elem ];
328 static RecordablesMap< iaf_cond_exp_sfa_rr > recordablesMap_;
333iaf_cond_exp_sfa_rr::send_test_event( Node& target,
size_t receptor_type,
synindex,
bool )
336 e.set_sender( *
this );
337 return target.handles_test_event( e, receptor_type );
341iaf_cond_exp_sfa_rr::handles_test_event( SpikeEvent&,
size_t receptor_type )
343 if ( receptor_type != 0 )
345 throw UnknownReceptorType( receptor_type, get_name() );
351iaf_cond_exp_sfa_rr::handles_test_event( CurrentEvent&,
size_t receptor_type )
353 if ( receptor_type != 0 )
355 throw UnknownReceptorType( receptor_type, get_name() );
361iaf_cond_exp_sfa_rr::handles_test_event( DataLoggingRequest& dlr,
size_t receptor_type )
363 if ( receptor_type != 0 )
365 throw UnknownReceptorType( receptor_type, get_name() );
367 return B_.logger_.connect_logging_device( dlr, recordablesMap_ );
372iaf_cond_exp_sfa_rr::get_status(
Dictionary& d )
const
382iaf_cond_exp_sfa_rr::set_status(
const Dictionary& d )
384 Parameters_ ptmp = P_;
387 stmp.set( d, ptmp,
this );
Dictionary class for interface to Python and C++ API.
Definition dictionary.h:213
void get_status(Dictionary &d) const override
Export properties of the node by setting entries in the status dictionary.
Definition archiving_node.cpp:220
void set_status(const Dictionary &d) override
Change properties of the node according to the entries in the dictionary.
Definition archiving_node.cpp:236
const std::string E_rr("E_rr")
const std::string E_sfa("E_sfa")
const std::string tau_rr("tau_rr")
const std::string E_L("E_L")
const std::string I_e("I_e")
const std::string recordables("recordables")
const std::string C_m("C_m")
const std::string q_rr("q_rr")
const std::string E_in("E_in")
const std::string q_sfa("q_sfa")
const std::string target("target")
const std::string E_ex("E_ex")
const std::string tau_sfa("tau_sfa")
const std::string g_L("g_L")
Namespace for the NEST simulation kernel.
Definition beta_normalization_factor.h:33
size_t synindex
For enumerations of synapse types.
Definition nest_types.h:115
const double e
Definition numerics.cpp:32