//--------------------------------------------------------------------------
// 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
//
//--------------------------------------------------------------------------
#ifndef CN_VDPOLNEURON_H
#define CN_VDPOLNEURON_H
#include "CN_neuron.h"
#include <cmath>
// parameters of the HH neuron, they are identical for all neurons used
// (and therefore made global to save memory)
#define VDPOL_IVARNO 2
#define VDPOL_PNO 3
double stdVDPOL_p[VDPOL_PNO]= {
1.0, // 0 - eta
0.1, // 1 - omega^2
0.0 // 2 - noise level
};
double *VDPOL_p= stdVDPOL_p;
const char *VDPOL_p_text[VDPOL_PNO]= {
"0 - eta",
"1 - omega^2",
"2 - noise level"
};
double VDPOL_INIVARS[VDPOL_IVARNO]= {
0.1, // 0 - amplitude
0.0 // 1 - internal var
};
const char *VDPOL_INIVARSTEXT[VDPOL_IVARNO]= {
"0 - amplitude",
"1 - internal var"
};
// VDPOL neuron class itself
class VdPolneuron: public neuron
{
private:
double Isyn;
public:
VdPolneuron(int, double *);
VdPolneuron(int, vector<int>, double *);
~VdPolneuron() { }
inline virtual double E(double *);
virtual void derivative(double *, double *);
virtual void noise(double *, double *);
};
#endif