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