From: Nabeelah A. <nab...@uq...> - 2009-07-23 02:02:36
|
#ifndef _GENERICMEANFIRERATESYNAPSE_H_ #define _GENERICMEANFIRERATESYNAPSE_H_ #include "SimObject.h" #include "GenericStaticSpikingSynapse.h" #include "GenericCurrentBasedSpikingSynapse.h" #include "ExponentialDecaySpikeResponse.h" template<class BaseSyn> class GenericMeanFireRateSynapse : public BaseSyn { public: // The learning rate of the synapse. double learningRate; // The desired firing rate of the postsynaptic neuron (in Hertz). double desiredFiringRate; // The connection type. // Inhibitory if connType == -1 // Excitatory if connType == 1 int connType; GenericMeanFireRateSynapse(double learningRate = 0.1, double desiredFiringRate = 3): learningRate(learningRate), desiredFiringRate(desiredFiringRate) { /* Need to redefine constructor for any classes created * using this template. */ }; virtual ~GenericMeanFireRateSynapse() { /* NOOP */ }; virtual int spikeHit( spikeport_t port, SpikeEvent const& spike ) { int retval = BaseSyn::spikeHit(port, spike); return retval; }; virtual int reset( double dt ) { int retval = BaseSyn::reset(dt); // Determine whether this is an inhibitory or excitatory synapse. if (BaseSyn::W > 0) { connType = 1; } else if (BaseSyn::W < 0) { connType = -1; } return retval; }; }; #endif /* _GENERICMEANFIRERATESYNAPSE_H_ */ |