Inheritance diagram for Teem::Neuron:
See subclass for various implementation, like sigmoidal NN or SRM spiking NN. The synapse can convey a current (you can call it firing rate or anything, it's a continuous real value) and a spike train (that can be ignored by implementation.
The time-step is implemented that way.
1) All the synapses are updated using the "update" function. The implementation should be based on the state of presynaptic neuron. The default is simply to foward value provided by presynaptic neuron.
2) All the neuron are updated using the "update" function. The implementation should be based on the values provided by incoming synapses (synapse may alter value given by pre-synaptic neurons). The content of lastSpike and lastCurrent variable should not be altered, since it reflects the state of the last time-step (which should be kept until ALL neurons are updated).
3) The state of all the neuron is committed (using "commit") to the output value. Output should be written to the lastSpike and lastCurrent variables.
Decomposition into step 2 and 3 is necessary so that all neuron updates based on the state of the _previous_ time-step. It is up to the sub- class to implement the caching scheme, since it can be optimized depending on the implementation.
NOTE: the synapse should normally not apply its weight on the value it returns. It is up to the post-synaptic neuron to take into account the weight of the synapse.
|typedef std::set< Synapse * >||SynapseSet|
|Set of synapses. |
Public Member Functions
|virtual void||finalize ()|
|Called when the network is totally constructed but before it is run. |
|virtual bool||getSpike () const|
|Return true is neuron is emitting a spike (that is a spike has been generated last time-step. |
|virtual double||getCurrent () const|
|Return the current emitted by this neuron (that is the one computed last time-step. |
|virtual void||setParams (const std::map< std::string, double > params)|
|Set parameters. |
|virtual void||setParams (const std::string ¶m, double value)|
|Set parameters. Should be overriden by subclasses to handle more parameters. |
|virtual void||update (double dt=1.0)=0|
|Update status of the neuron according to incoming synapse.. |
|virtual void||commit ()=0|
|Commit state to lastSpike and lastCurrent. |
|incoming synapses |
|outgoing synapses |
|tags for this neuron |
|True if neuron emitted a spike last time-step. |
|Current transmitted by neuron last time-step. |