NMDASynapse.h

Go to the documentation of this file.
00001 
00005 #ifndef _NMDASYNAPSE_H_
00006 #define _NMDASYNAPSE_H_
00007 
00008 #include "GenericDynamicSpikingSynapse.h"
00009 #include "GenericStaticSpikingSynapse.h"
00010 
00011 #include "GenericNMDASynapse.h"
00012 
00013 #include "ExponentialDecaySpikeResponse.h"
00014 #include "AlphaFunctionSpikeResponse.h"
00015 #include "DoubleExponentialSpikeResponse.h"
00016 
00018 // NEEDS TO BE TESTED
00020 
00023 // Dynamic Synapses
00026 
00027 // Double Exponential Response
00029 
00030 class DynamicNMDADoubleExpSynapse :
00031       public GenericDynamicSpikingSynapse < GenericNMDASynapse < DoubleExponentialSpikeResponse > >
00032 {
00033     SIMOBJECT(DynamicNMDADoubleExpSynapse, AdvancePhase::SpikeDriven)
00034 
00035 public:
00036     DynamicNMDADoubleExpSynapse(
00037         const float W       = 1e-9,
00038         const float tau1    = 2e-3,
00039         const float tau2    = 150e-3,
00040         const float delay   = 2e-4,
00041         const float Erev    = 0e-3,
00042         const float U       = 0.2,
00043         const float D       = 0.1,
00044         const float F       = 0.4,
00045         const float u0      = 0.2,
00046         const float r0      = 1,
00047         const float f0      = -1,
00048         const float Mg_conc = 1e-3
00049     )
00050     {
00051         this->W = W;
00052         this->Mg_conc = Mg_conc;
00053         this->delay = delay;
00054         this->tau1 = tau1;
00055         this->tau2 = tau2;
00056         this->Erev = Erev;
00057 
00058         this->U  = U;
00059         this->D  = D;
00060         this->F  = F;
00061         this->u0 = u0;
00062         this->r0 = r0;
00063         this->f0 = f0;
00064     };
00065 };
00066 
00067 
00068 // Exponential Response
00070 
00071 class DynamicNMDAExpSynapse :
00072       public GenericDynamicSpikingSynapse < GenericNMDASynapse < ExponentialDecaySpikeResponse > >
00073 {
00074     SIMOBJECT(DynamicNMDAExpSynapse, AdvancePhase::SpikeDriven)
00075 
00076 public:
00077     DynamicNMDAExpSynapse(
00078         const float W       = 1e-9,
00079         const float tau     = 150e-3,
00080         const float delay   = 2e-4,
00081         const float Erev    = 0e-3,
00082         const float U       = 0.2,
00083         const float D       = 0.1,
00084         const float F       = 0.4,
00085         const float u0      = 0.2,
00086         const float r0      = 1,
00087         const float f0      = -1,
00088         const float Mg_conc = 1e-3
00089     )
00090     {
00091         this->W = W;
00092         this->Mg_conc = Mg_conc;
00093         this->delay = delay;
00094 
00095         this->tau = tau;
00096         this->Erev = Erev;
00097 
00098         this->U  = U;
00099         this->D  = D;
00100         this->F  = F;
00101         this->u0 = u0;
00102         this->r0 = r0;
00103         this->f0 = f0;
00104     };
00105 };
00106 
00107 
00108 // Alpha Response
00110 
00111 class DynamicNMDAAlphaSynapse :
00112       public GenericDynamicSpikingSynapse < GenericNMDASynapse < AlphaFunctionSpikeResponse > >
00113 {
00114     SIMOBJECT(DynamicNMDAAlphaSynapse, AdvancePhase::SpikeDriven)
00115 
00116 public:
00117     DynamicNMDAAlphaSynapse(
00118         const float W       = 1e-9,
00119         const float tau     = 150e-3,
00120         const float delay   = 2e-4,
00121         const float Erev    = 0e-3,
00122         const float U       = 0.2,
00123         const float D       = 0.1,
00124         const float F       = 0.4,
00125         const float u0      = 0.2,
00126         const float r0      = 1,
00127         const float f0      = -1,
00128         const float Mg_conc = 1e-3
00129     )
00130     {
00131         this->W = W;
00132         this->Mg_conc = Mg_conc;
00133         this->delay = delay;
00134 
00135         this->tau = tau;
00136         this->Erev = Erev;
00137 
00138         this->U  = U;
00139         this->D  = D;
00140         this->F  = F;
00141         this->u0 = u0;
00142         this->r0 = r0;
00143         this->f0 = f0;
00144     };
00145 };
00146 
00147 
00148 
00151 // Static Synapses
00154 
00155 // Double Exponential Response
00157 
00158 class StaticNMDADoubleExpSynapse :
00159       public GenericStaticSpikingSynapse < GenericNMDASynapse < DoubleExponentialSpikeResponse > >
00160 {
00161     SIMOBJECT(StaticNMDADoubleExpSynapse, AdvancePhase::SpikeDriven)
00162 
00163 public:
00164     StaticNMDADoubleExpSynapse(
00165         const float W       = 1e-9,
00166         const float tau1    = 2e-3,
00167         const float tau2    = 150e-3,
00168         const float delay   = 2e-4,
00169         const float Erev    = 0e-3,
00170         const float Mg_conc = 1e-3
00171     )
00172     {
00173         this->W = W;
00174         this->delay = delay;
00175         this->tau1 = tau1;
00176         this->tau2 = tau2;
00177         this->Erev = Erev;
00178     };
00179 };
00180 
00181 
00182 // Exponential Response
00184 
00185 class StaticNMDAExpSynapse :
00186       public GenericStaticSpikingSynapse < GenericNMDASynapse < ExponentialDecaySpikeResponse > >
00187 {
00188     SIMOBJECT(StaticNMDAExpSynapse, AdvancePhase::SpikeDriven )
00189 
00190 public:
00191     StaticNMDAExpSynapse(
00192         const float W       = 1e-9,
00193         const float tau     = 150e-3,
00194         const float delay   = 2e-4,
00195         const float Erev    = 0e-3,
00196         const float Mg_conc = 1e-3
00197     )
00198     {
00199         this->W = W;
00200         this->delay = delay;
00201         this->tau = tau;
00202         this->Erev = Erev;
00203     };
00204 };
00205 
00206 
00207 // Alpha Response
00209 
00210 class StaticNMDAAlphaSynapse :
00211       public GenericStaticSpikingSynapse < GenericNMDASynapse < AlphaFunctionSpikeResponse > >
00212 {
00213     SIMOBJECT(StaticNMDAAlphaSynapse, AdvancePhase::SpikeDriven )
00214 
00215 public:
00216     StaticNMDAAlphaSynapse(
00217         const float W       = 1e-9,
00218         const float tau     = 150e-3,
00219         const float delay   = 2e-4,
00220         const float Erev    = 0e-3,
00221         const float Mg_conc = 1e-3
00222     )
00223     {
00224         this->W = W;
00225         this->delay = delay;
00226         this->tau = tau;
00227         this->Erev = Erev;
00228     };
00229 };
00230 
00231 #endif //_NMDASYNAPSE_H_

Generated on Wed Jul 9 16:34:39 2008 for PCSIM by  doxygen 1.5.5