/*-------------------------------------------------------------------------- Author: Thomas Nowotny Institute: Institute for Nonlinear Dynamics University of California San Diego La Jolla, CA 92093-0402 email to: tnowotny@ucsd.edu initial version: 2005-08-17 --------------------------------------------------------------------------*/ // This is the base class for all types of plastic synapses with smooth // changes in their maximal conductance. This class is abstract due to // a lacking stdp function #ifndef CN_ABSYNAPSE_SMSTDP_H #define CN_ABSYNAPSE_SMSTDP_H #include "CN_synapse.h" #include "CN_neuron.h" #define SMSTDPIVARNO 3 double SMSTDP_INIVARS[SMSTDPIVARNO]= { 0.0, // 0 - S: internal variable 1.0, // 1 - gsyn 0.0 // 2 - gsyn change rate }; class absynapse_smSTDP: public synapse { private: double tpre, tpost, dt; public: absynapse_smSTDP(neuron *, neuron *, int, int, int); ~absynapse_smSTDP(); virtual double gsyn(double *); virtual double gsyn(); virtual void set_gsyn(double, double *); virtual void set_gsyn(double); virtual double Isyn(double *); virtual void calc_dg(double *); virtual double stdp_fn(double) = 0; virtual void derivative(double *, double *); }; #endif