21 "Name",
"SimpleSynHandler",
22 "Author",
"Upi Bhalla",
24 "The SimpleSynHandler handles simple synapses without plasticity. "
25 "It uses a priority queue to manage them."
30 "Sets up field Elements for synapse",
37 static Finfo* synHandlerFinfos[] = {
46 sizeof( synHandlerFinfos ) /
sizeof (
Finfo* ),
49 sizeof( doc ) /
sizeof(
string )
66 for ( vector< Synapse >::iterator
68 i->setHandler(
this );
81 for (
unsigned int i = prevSize; i < v; ++i )
95 cout <<
"Warning: SimpleSynHandler::getSynapse: index: " << i <<
96 " is out of range: " <<
synapses_.size() << endl;
101 unsigned int index,
double time,
double weight )
116 double activation = 0.0;
124 activation +=
events_.top().weight / p->
dt;
127 if ( activation != 0.0 )
140 unsigned int newSynIndex =
synapses_.size();
142 synapses_[newSynIndex].setHandler(
this );
void setNumSynapses(unsigned int num)
static DestFinfo dummy("dummy","This Finfo is a dummy. If you are reading this you have used an invalid index", 0)
void dropSynapse(unsigned int droppedSynNumber)
unsigned int getNumSynapses() const
double getTopSpike(unsigned int index) const
SimpleSynHandler & operator=(const SimpleSynHandler &other)
static const Cinfo * initCinfo()
Synapse * getSynapse(unsigned int i)
priority_queue< SynEvent, vector< SynEvent >, CompareSynEvent > events_
static const Cinfo * initCinfo()
void addSpike(unsigned int index, double time, double weight)
vector< Synapse > synapses_
void vProcess(const Eref &e, ProcPtr p)
void vSetNumSynapses(unsigned int num)
void vReinit(const Eref &e, ProcPtr p)
unsigned int vGetNumSynapses() const
unsigned int addSynapse()
Adds a new synapse, returns its index.
static SrcFinfo1< double > * activationOut()
static const Cinfo * initCinfo()
Synapse * vGetSynapse(unsigned int i)
static const Cinfo * synHandlerCinfo