/*--------------------------------------------------------------------------
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