NEST main@caf0ae8
 
Loading...
Searching...
No Matches
nest::inhomogeneous_poisson_generator Class Reference

#include <inhomogeneous_poisson_generator.h>

Inheritance diagram for nest::inhomogeneous_poisson_generator:
[legend]
Collaboration diagram for nest::inhomogeneous_poisson_generator:
[legend]

Classes

struct  Buffers_
 
struct  Parameters_
 
struct  Variables_
 

Public Member Functions

 inhomogeneous_poisson_generator ()
 
 inhomogeneous_poisson_generator (const inhomogeneous_poisson_generator &)
 
size_t send_test_event (Node &, size_t, synindex, bool) override
 Send an event to the receiving_node passed as an argument.
 
void get_status (Dictionary &) const override
 Export properties of the node by setting entries in the status dictionary.
 
void set_status (const Dictionary &) override
 Change properties of the node according to the entries in the dictionary.
 
StimulationDevice::Type get_type () const override
 
void set_data_from_stimulation_backend (std::vector< double > &input_param) override
 
virtual void event_hook (DSSpikeEvent &)
 Import sets of overloaded virtual functions.
 
virtual void event_hook (DSCurrentEvent &)
 Import sets of overloaded virtual functions.
 
- Public Member Functions inherited from nest::StimulationDevice
 StimulationDevice ()
 
 StimulationDevice (StimulationDevice const &)
 
 ~StimulationDevice () override=default
 
bool is_active (const Time &) const override
 Determine whether device is active.
 
void get_status (Dictionary &d) const override
 Export properties of the node by setting entries in the status dictionary.
 
void set_status (const Dictionary &) override
 Change properties of the node according to the entries in the dictionary.
 
bool has_proxies () const override
 Returns true if the node has proxies on remote threads.
 
std::string get_element_type () const override
 Return the element type of the node.
 
void pre_run_hook () override
 Re-calculate dependent parameters of the node.
 
void enforce_single_syn_type (synindex)
 Throws IllegalConnection if synapse id differs from initial synapse id.
 
const std::string & get_label () const
 
void update (Time const &, const long, const long) override
 Advance the state of the node in time through the given interval.
 
virtual void init_buffers ()
 Reset buffers.
 
virtual void init_state ()
 Reset dynamic state to that of model.
 
virtual void pre_run_hook ()
 Set internal variables before calls to SimulationManager::run()
 
virtual void pre_run_hook ()=0
 Re-calculate dependent parameters of the node.
 
- Public Member Functions inherited from nest::DeviceNode
 DeviceNode ()
 
 DeviceNode (DeviceNode const &dn)
 
void set_local_device_id (const size_t ldid) override
 Sets the local device id.
 
size_t get_local_device_id () const override
 Gets the local device id.
 
- Public Member Functions inherited from nest::Node
 Node ()
 
 Node (Node const &)
 
virtual ~Node ()
 
virtual Node * clone () const
 This function creates a new object by calling the derived class' copy constructor and returning its pointer.
 
virtual bool supports_urbanczik_archiving () const
 Returns true if the node supports the Urbanczik-Senn plasticity rule.
 
virtual bool local_receiver () const
 Returns true if the node only receives events from nodes/devices on the same thread.
 
virtual bool one_node_per_process () const
 Returns true if the node exists only once per process, but does not have proxies on remote threads.
 
virtual bool is_off_grid () const
 Returns true if the node sends/receives off-grid events.
 
virtual bool is_proxy () const
 Returns true if the node is a proxy node.
 
std::string get_name () const
 Return class name.
 
size_t get_node_id () const
 Return global Network ID.
 
int get_model_id () const
 Return model ID of the node.
 
bool is_frozen () const
 Returns true if node is frozen, i.e., shall not be updated.
 
bool node_uses_wfr () const
 Returns true if the node uses the waveform relaxation method.
 
void set_node_uses_wfr (const bool)
 Sets node_uses_wfr_ member variable (to be able to set it to "true" for any class derived from Node)
 
void init ()
 Initialize node prior to first simulation after node has been created.
 
virtual void calibrate_time (const TimeConverter &)
 Re-calculate time-based properties of the node.
 
virtual void post_run_cleanup ()
 Cleanup node after Run.
 
virtual void finalize ()
 Finalize node.
 
virtual bool wfr_update (Time const &, const long, const long)
 Advance the state of the node in time through the given interval (see Node::update() for more details).
 
virtual size_t handles_test_event (SpikeEvent &, size_t receptor_type)
 Check if the node can handle a particular event and receptor type.
 
virtual size_t handles_test_event (WeightRecorderEvent &, size_t receptor_type)
 
virtual size_t handles_test_event (RateEvent &, size_t receptor_type)
 
virtual size_t handles_test_event (DataLoggingRequest &, size_t receptor_type)
 
virtual size_t handles_test_event (CurrentEvent &, size_t receptor_type)
 
virtual size_t handles_test_event (ConductanceEvent &, size_t receptor_type)
 
virtual size_t handles_test_event (DoubleDataEvent &, size_t receptor_type)
 
virtual size_t handles_test_event (DSSpikeEvent &, size_t receptor_type)
 
virtual size_t handles_test_event (DSCurrentEvent &, size_t receptor_type)
 
virtual size_t handles_test_event (GapJunctionEvent &, size_t receptor_type)
 
virtual size_t handles_test_event (InstantaneousRateConnectionEvent &, size_t receptor_type)
 
virtual size_t handles_test_event (DiffusionConnectionEvent &, size_t receptor_type)
 
virtual size_t handles_test_event (DelayedRateConnectionEvent &, size_t receptor_type)
 
virtual size_t handles_test_event (LearningSignalConnectionEvent &, size_t receptor_type)
 
virtual size_t handles_test_event (SICEvent &, size_t receptor_type)
 
virtual void sends_secondary_event (GapJunctionEvent &ge)
 Required to check, if source neuron may send a SecondaryEvent.
 
virtual void sends_secondary_event (InstantaneousRateConnectionEvent &re)
 Required to check, if source neuron may send a SecondaryEvent.
 
virtual void sends_secondary_event (DiffusionConnectionEvent &de)
 Required to check, if source neuron may send a SecondaryEvent.
 
virtual void sends_secondary_event (DelayedRateConnectionEvent &re)
 Required to check, if source neuron may send a SecondaryEvent.
 
virtual void sends_secondary_event (LearningSignalConnectionEvent &re)
 Required to check if source node may send a LearningSignalConnectionEvent.
 
virtual void sends_secondary_event (SICEvent &sic)
 Required to check if source node may send a SICEvent.
 
virtual void register_stdp_connection (double, double)
 Register a STDP connection.
 
virtual void register_eprop_connection ()
 Registers an eprop connection.
 
virtual void initialize_update_history ()
 Initializes the update history.
 
virtual long get_shift () const
 Retrieves the temporal shift of the signal.
 
virtual 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)
 Registers the current update in the update history and deregisters the previous update.
 
virtual void erase_used_eprop_history ()
 Erases used e-prop history for bsshslm_2020 models.
 
virtual void erase_used_eprop_history (const long t_spike, const long t_spike_previous)
 Erases used e-prop history based on inter-spike interval.
 
virtual bool is_eprop_recurrent_node () const
 Checks if the node is part of the recurrent network and thus not a readout neuron.
 
virtual void handle (SpikeEvent &e)
 Handle incoming spike events.
 
virtual void handle (WeightRecorderEvent &e)
 Handle incoming weight recording events.
 
virtual void handle (RateEvent &e)
 Handler for rate events.
 
virtual void handle (DataLoggingRequest &e)
 Handler for universal data logging request.
 
virtual void handle (DataLoggingReply &e)
 Handler for universal data logging request.
 
virtual void handle (CurrentEvent &e)
 Handler for current events.
 
virtual void handle (ConductanceEvent &e)
 Handler for conductance events.
 
virtual void handle (DoubleDataEvent &e)
 Handler for DoubleData events.
 
virtual void handle (GapJunctionEvent &e)
 Handler for gap junction events.
 
virtual void handle (InstantaneousRateConnectionEvent &e)
 Handler for rate neuron events.
 
virtual void handle (DiffusionConnectionEvent &e)
 Handler for rate neuron events.
 
virtual void handle (DelayedRateConnectionEvent &e)
 Handler for delay rate neuron events.
 
virtual void handle (LearningSignalConnectionEvent &e)
 Handler for learning signal connection events.
 
virtual void handle (SICEvent &e)
 Handler for slow inward current events (SICEvents).
 
virtual double get_Ca_minus () const
 Return the Ca_minus value at time Ca_t which corresponds to the time of the last update in Calcium concentration which is performed each time a Node spikes.
 
virtual double get_synaptic_elements (std::string) const
 Get the number of synaptic element for the current Node at Ca_t which corresponds to the time of the last spike.
 
virtual int get_synaptic_elements_vacant (std::string) const
 Get the number of vacant synaptic element for the current Node Return 0 if not overridden.
 
virtual int get_synaptic_elements_connected (std::string) const
 Get the number of connected synaptic element for the current Node.
 
virtual std::map< std::string, double > get_synaptic_elements () const
 Get the number of all synaptic elements for the current Node at time t.
 
virtual void update_synaptic_elements (double)
 Triggers the update of all SynapticElements stored in the synaptic_element_map_.
 
virtual void decay_synaptic_elements_vacant ()
 Is used to reduce the number of synaptic elements in the node through time.
 
virtual void connect_synaptic_element (std::string, int)
 Is used to update the number of connected synaptic elements (SynapticElement::z_connected_) when a synapse is formed or deleted.
 
virtual double get_K_value (double t)
 return the Kminus value at t (in ms).
 
virtual double get_LTD_value (double t)
 
virtual void get_K_values (double t, double &Kminus, double &nearest_neighbor_Kminus, double &Kminus_triplet)
 write the Kminus, nearest_neighbor_Kminus, and Kminus_triplet values at t (in ms) to the provided locations.
 
virtual void get_history (double t1, double t2, std::deque< histentry >::iterator *start, std::deque< histentry >::iterator *finish)
 return the spike history for (t1,t2].
 
virtual void get_LTP_history (double t1, double t2, std::deque< histentry_extended >::iterator *start, std::deque< histentry_extended >::iterator *finish)
 
virtual void get_urbanczik_history (double t1, double t2, std::deque< histentry_extended >::iterator *start, std::deque< histentry_extended >::iterator *finish, int)
 
virtual double get_C_m (int comp)
 
virtual double get_g_L (int comp)
 
virtual double get_tau_L (int comp)
 
virtual double get_tau_s (int comp)
 
virtual double get_tau_syn_ex (int comp)
 
virtual double get_tau_syn_in (int comp)
 
virtual void compute_gradient (const long t_spike, const long t_spike_previous, double &z_previous_buffer, double &z_bar, double &e_bar, double &e_bar_reg, double &epsilon, double &weight, const CommonSynapseProperties &cp, WeightOptimizer *optimizer, bool is_flush_event, bool previous_was_flush_event, double &sum_grad, long &remaining_steps_until_cutoff, long &decay_steps)
 Compute gradient change for eprop synapses.
 
virtual double compute_gradient (std::vector< long > &presyn_isis, const long t_previous_update, const long t_previous_trigger_spike, const double kappa, const bool average_gradient)
 Compute gradient change for eprop synapses.
 
void set_thread (size_t)
 Store the number of the thread to which the node is assigned.
 
size_t get_thread () const
 Retrieve the number of the thread to which the node is assigned.
 
void set_vp (size_t)
 Store the number of the virtual process to which the node is assigned.
 
size_t get_vp () const
 Retrieve the number of the virtual process to which the node is assigned.
 
void set_model_id (int)
 Set the model id.
 
void set_initialized ()
 Execute post-initialization actions in node models.
 
virtual SignalType sends_signal () const
 
virtual SignalType receives_signal () const
 
Dictionary get_status_base ()
 Return a dictionary with the node's properties.
 
void set_status_base (const Dictionary &)
 Set status dictionary of a node.
 
bool is_model_prototype () const
 Returns true if node is model prototype.
 
void set_thread_lid (const size_t)
 set thread local index
 
size_t get_thread_lid () const
 get thread local index
 
void set_tmp_nc_index (size_t index)
 Set index in node collection; required by ThirdOutBuilder.
 
size_t get_tmp_nc_index ()
 Return and invalidate index in node collection; required by ThirdOutBuilder.
 
- Public Member Functions inherited from nest::Device
 Device ()
 
 Device (const Device &n)
 
virtual ~Device ()
 
long get_t_min_ () const
 Return lower limit in steps.
 
long get_t_max_ () const
 Return upper limit in steps.
 
Time const & get_origin () const
 
Time const & get_start () const
 
Time const & get_stop () const
 

Private Member Functions

void init_state_ () override
 Configure state variables depending on runtime information.
 
void init_buffers_ () override
 Configure persistent internal data structures.
 
void pre_run_hook () override
 Re-calculate dependent parameters of the node.
 
void update (Time const &, const long, const long) override
 Advance the state of the node in time through the given interval.
 
void event_hook (DSSpikeEvent &) override
 Modify Event object parameters during event delivery.
 

Private Attributes

Parameters_ P_
 
Buffers_ B_
 
Variables_ V_
 

Additional Inherited Members

- Public Types inherited from nest::StimulationDevice
enum  Type { CURRENT_GENERATOR , SPIKE_GENERATOR , DOUBLE_DATA_GENERATOR , DELAYED_RATE_CONNECTION_GENERATOR }
 Device type. More...
 
- Public Attributes inherited from nest::Node
DeprecationWarning deprecation_warning
 Member of DeprecationWarning class to be used by models if parameters are deprecated.
 
- Protected Member Functions inherited from nest::StimulationDevice
void set_initialized_ () final
 
- Protected Member Functions inherited from nest::Node
Model & get_model_ () const
 
void set_frozen_ (bool frozen)
 Mark node as frozen.
 
template<typename ConcreteNode >
const ConcreteNode & downcast (const Node &)
 Auxiliary function to downcast a Node to a concrete class derived from Node.
 
- Protected Attributes inherited from nest::StimulationDevice
struct nest::StimulationDevice::Parameters_ P_
 
- Protected Attributes inherited from nest::DeviceNode
size_t local_device_id_
 

Constructor & Destructor Documentation

◆ inhomogeneous_poisson_generator() [1/2]

nest::inhomogeneous_poisson_generator::inhomogeneous_poisson_generator ( )

◆ inhomogeneous_poisson_generator() [2/2]

nest::inhomogeneous_poisson_generator::inhomogeneous_poisson_generator ( const inhomogeneous_poisson_generator &  n)

Member Function Documentation

◆ event_hook() [1/3]

void nest::Node::event_hook ( DSCurrentEvent &  e)
virtual

Import sets of overloaded virtual functions.

See also
Technical Issues / Virtual Functions: Overriding, Overloading, and Hiding

Reimplemented from nest::Node.

◆ event_hook() [2/3]

void nest::Node::event_hook ( DSSpikeEvent &  e)
virtual

Import sets of overloaded virtual functions.

See also
Technical Issues / Virtual Functions: Overriding, Overloading, and Hiding

Reimplemented from nest::Node.

◆ event_hook() [3/3]

void nest::inhomogeneous_poisson_generator::event_hook ( DSSpikeEvent &  e)
overrideprivatevirtual

Modify Event object parameters during event delivery.

Some Nodes want to perform a function on an event for each of their targets. An example is the poisson_generator which needs to draw a random number for each target. The DSSpikeEvent, DirectSendingSpikeEvent, calls sender->event_hook(thread, *this) in its operator() function instead of calling target->handle(). The default implementation of Node::event_hook() just calls target->handle(DSSpikeEvent&). Any reimplementation must also execute this call. Otherwise the event will not be delivered. If needed, target->handle(DSSpikeEvent) may be called more than once.

Reimplemented from nest::Node.

References B_, nest::Node::get_thread(), nest::get_vp_specific_rng(), nest::inhomogeneous_poisson_generator::Variables_::h_, nest::inhomogeneous_poisson_generator::Variables_::poisson_dist_, nest::inhomogeneous_poisson_generator::Buffers_::rate_, and V_.

Here is the call graph for this function:

◆ get_status()

void nest::inhomogeneous_poisson_generator::get_status ( Dictionary &  ) const
inlineoverridevirtual

Export properties of the node by setting entries in the status dictionary.

Parameters
dDictionary.

Implements nest::Node.

References nest::inhomogeneous_poisson_generator::Parameters_::get(), nest::StimulationDevice::get_status(), and P_.

Here is the call graph for this function:

◆ get_type()

StimulationDevice::Type nest::inhomogeneous_poisson_generator::get_type ( ) const
inlineoverridevirtual

◆ init_buffers_()

void nest::inhomogeneous_poisson_generator::init_buffers_ ( )
overrideprivatevirtual

Configure persistent internal data structures.

Let node configure persistent internal data structures, such as input buffers or ODE solvers, to runtime information prior to first simulation.

Reimplemented from nest::Node.

References B_, nest::inhomogeneous_poisson_generator::Buffers_::idx_, nest::StimulationDevice::init_buffers(), and nest::inhomogeneous_poisson_generator::Buffers_::rate_.

Here is the call graph for this function:

◆ init_state_()

void nest::inhomogeneous_poisson_generator::init_state_ ( )
overrideprivatevirtual

Configure state variables depending on runtime information.

Overload this method if the node needs to adapt state variables prior to first simulation to runtime information, e.g., the number of incoming connections.

Reimplemented from nest::Node.

References nest::StimulationDevice::init_state().

Here is the call graph for this function:

◆ pre_run_hook()

void nest::inhomogeneous_poisson_generator::pre_run_hook ( )
overrideprivatevirtual

Re-calculate dependent parameters of the node.

This function is called each time a simulation is begun/resumed. It must re-calculate all internal Variables of the node required for spike handling or updating the node.

Implements nest::Node.

References nest::Time::get_ms(), nest::Time::get_resolution(), nest::inhomogeneous_poisson_generator::Variables_::h_, nest::StimulationDevice::pre_run_hook(), and V_.

Here is the call graph for this function:

◆ send_test_event()

size_t nest::inhomogeneous_poisson_generator::send_test_event ( Node &  receiving_node,
size_t  receptor_type,
synindex  syn_id,
bool  dummy_target 
)
inlineoverridevirtual

Send an event to the receiving_node passed as an argument.

Default implementation of check_connection just throws IllegalConnection.

This is required during the connection handshaking to test, if the receiving_node can handle the event type and receptor_type sent by the source node.

If dummy_target is true, this indicates that receiving_node is derived from ConnTestDummyNodeBase and used in the first call to send_test_event(). This can be ignored in most cases, but Nodes sending DS*Events to their own event hooks and then *Events to their proper targets must send DS*Events when called with the dummy target, and *Events when called with the real target, see #478.

Reimplemented from nest::Node.

References nest::StimulationDevice::enforce_single_syn_type().

Here is the call graph for this function:

◆ set_data_from_stimulation_backend()

void nest::inhomogeneous_poisson_generator::set_data_from_stimulation_backend ( std::vector< double > &  input_param)
overridevirtual

Reimplemented from nest::StimulationDevice.

References B_, P_, nest::names::rate_times(), nest::inhomogeneous_poisson_generator::Parameters_::rate_times_, nest::names::rate_values(), nest::inhomogeneous_poisson_generator::Parameters_::rate_values_, and nest::inhomogeneous_poisson_generator::Parameters_::set().

Here is the call graph for this function:

◆ set_status()

void nest::inhomogeneous_poisson_generator::set_status ( const Dictionary &  )
inlineoverridevirtual

Change properties of the node according to the entries in the dictionary.

Parameters
dDictionary with named parameter settings.

Implements nest::Node.

References B_, P_, nest::inhomogeneous_poisson_generator::Parameters_::set(), and nest::StimulationDevice::set_status().

Here is the call graph for this function:

◆ update()

void nest::inhomogeneous_poisson_generator::update ( Time const &  ,
const long  ,
const long   
)
overrideprivatevirtual

Advance the state of the node in time through the given interval.

This method advances the state of the node through the interval (origin+from, origin+to], which is at most min_delay long.

  • Precondition: State of the node corresponds to the time origin+from.
  • Postcondition: State of the node corresponds to the time origin+to.

Each step between from and to corresponds to one simulation timestep (nest.resolution).

If events are emitted, they have time stamps in the interval T+from+1 .. T+to.

Parameters
originnetwork time at beginning of time slice
frominitial step inside time slice
topost-final step inside time slice

Implements nest::Node.

References B_, nest::KernelManager::event_delivery_manager, nest::inhomogeneous_poisson_generator::Buffers_::idx_, nest::StimulationDevice::is_active(), nest::kernel(), P_, nest::inhomogeneous_poisson_generator::Buffers_::rate_, nest::inhomogeneous_poisson_generator::Parameters_::rate_times_, nest::inhomogeneous_poisson_generator::Parameters_::rate_values_, and nest::EventDeliveryManager::send().

Here is the call graph for this function:

Member Data Documentation

◆ B_

Buffers_ nest::inhomogeneous_poisson_generator::B_
private

◆ P_

Parameters_ nest::inhomogeneous_poisson_generator::P_
private

◆ V_

Variables_ nest::inhomogeneous_poisson_generator::V_
private

Referenced by event_hook(), and pre_run_hook().


The documentation for this class was generated from the following files: