23#ifndef PP_POP_PSC_BETA_H
24#define PP_POP_PSC_BETA_H
159void register_gif_pop_psc_exp(
const std::string& name );
161class gif_pop_psc_exp :
public Node
166 gif_pop_psc_exp(
const gif_pop_psc_exp& );
174 using Node::handles_test_event;
176 size_t send_test_event( Node&,
size_t, synindex,
bool )
override;
178 void handle( SpikeEvent& )
override;
179 void handle( CurrentEvent& )
override;
180 void handle( DataLoggingRequest& )
override;
182 size_t handles_test_event( SpikeEvent&,
size_t )
override;
183 size_t handles_test_event( CurrentEvent&,
size_t )
override;
184 size_t handles_test_event( DataLoggingRequest&,
size_t )
override;
186 void get_status(
Dictionary& )
const override;
187 void set_status(
const Dictionary& )
override;
190 void init_buffers_()
override;
191 void pre_run_hook()
override;
193 void update( Time
const&,
const long,
const long )
override;
195 double escrate(
const double );
196 long draw_poisson(
const double n_expect_ );
197 long draw_binomial(
const double n_expect_ );
198 double adaptation_kernel(
const int k );
199 int get_history_size();
202 friend class RecordablesMap< gif_pop_psc_exp >;
203 friend class UniversalDataLogger< gif_pop_psc_exp >;
250 std::vector< double > tau_sfa_;
253 std::vector< double > q_sfa_;
283 void get(
Dictionary&,
const Parameters_& )
const;
284 void set(
const Dictionary&,
const Parameters_&, Node* );
294 Buffers_( gif_pop_psc_exp& );
295 Buffers_(
const Buffers_&, gif_pop_psc_exp& );
298 RingBuffer ex_spikes_;
299 RingBuffer in_spikes_;
300 RingBuffer currents_;
303 UniversalDataLogger< gif_pop_psc_exp > logger_;
321 std::vector< double > Q30_;
322 std::vector< double > Q30K_;
323 std::vector< double > theta_;
324 std::vector< double > theta_tld_;
337 std::vector< double > m_;
338 std::vector< double > n_;
339 std::vector< double > u_;
340 std::vector< double > v_;
341 std::vector< double > lambda_;
342 std::vector< double > g_;
358 get_n_events_()
const
367 return S_.theta_hat_;
379 get_I_syn_ex_()
const
384 get_I_syn_in_()
const
405 static RecordablesMap< gif_pop_psc_exp > recordablesMap_;
409gif_pop_psc_exp::send_test_event( Node& target,
size_t receptor_type,
synindex,
bool )
412 e.set_sender( *
this );
414 return target.handles_test_event( e, receptor_type );
418gif_pop_psc_exp::handles_test_event( SpikeEvent&,
size_t receptor_type )
420 if ( receptor_type != 0 )
422 throw UnknownReceptorType( receptor_type, get_name() );
428gif_pop_psc_exp::handles_test_event( CurrentEvent&,
size_t receptor_type )
430 if ( receptor_type != 0 )
432 throw UnknownReceptorType( receptor_type, get_name() );
438gif_pop_psc_exp::handles_test_event( DataLoggingRequest& dlr,
size_t receptor_type )
440 if ( receptor_type != 0 )
442 throw UnknownReceptorType( receptor_type, get_name() );
444 return B_.logger_.connect_logging_device( dlr, recordablesMap_ );
448gif_pop_psc_exp::get_status(
Dictionary& d )
const
461gif_pop_psc_exp::set_status(
const Dictionary& d )
463 Parameters_ ptmp = P_;
466 stmp.set( d, ptmp,
this );
Dictionary class for interface to Python and C++ API.
Definition dictionary.h:213
const std::string recordables("recordables")
const std::string target("target")
Namespace for the NEST simulation kernel.
Definition beta_normalization_factor.h:33
RandomDistribution< std::poisson_distribution< unsigned long > > poisson_distribution
Definition random_generators.h:60
RandomDistribution< std::binomial_distribution< unsigned long > > binomial_distribution
Definition random_generators.h:56
BaseRandomGenerator * RngPtr
Definition random_generators.h:50
size_t synindex
For enumerations of synapse types.
Definition nest_types.h:115
const double e
Definition numerics.cpp:32
Declarations for base class Node.