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
00020
00023
00026
00027
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
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
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
00154
00155
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
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
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_