Main Page | Modules | Namespace List | Class Hierarchy | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

Teem::Neuron Class Reference
[Neurons and synapses]

#include <Neuron.h>

Inheritance diagram for Teem::Neuron:

Teem::FiringRateOutputNeuron Teem::InputNeuron Teem::SigmoidNeuron Teem::SRMNeuron Teem::CurrentInputNeuron Teem::FiringRateInputNeuron Teem::SigmoidInputNeuron Teem::SimpleSpikeInputNeuron List of all members.

Detailed Description

Neuron and Synapse are interfaces to a generic NN implementation.

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.

Public Types

typedef std::set< Synapse * > SynapseSet
 Set of synapses.

Public Member Functions

 Neuron ()
virtual ~Neuron ()
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 &param, 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.

Public Attributes

SynapseSet incoming
 incoming synapses
SynapseSet outgoing
 outgoing synapses
TagSet tags
 tags for this neuron

Protected Attributes

bool lastSpike
 True if neuron emitted a spike last time-step.
double lastCurrent
 Current transmitted by neuron last time-step.

The documentation for this class was generated from the following files:
Generated on Mon Oct 24 17:38:27 2005 for Teem by  doxygen 1.4.2