00001 00004 #ifndef _STATICSPIKINGSYNAPSE_H_ 00005 #define _STATICSPIKINGSYNAPSE_H_ 00006 00007 #include "ExponentialDecaySpikeResponse.h" 00008 #include "AlphaFunctionSpikeResponse.h" 00009 #include "DoubleExponentialSpikeResponse.h" 00010 #include "GenericCurrentBasedSpikingSynapse.h" 00011 #include "GenericConductanceBasedSpikingSynapse.h" 00012 #include "GenericStaticSpikingSynapse.h" 00013 #include "SquarePulseSpikeResponse.h" 00014 00015 class StaticSpikingSynapse : public GenericStaticSpikingSynapse< GenericCurrentBasedSpikingSynapse< ExponentialDecaySpikeResponse > > 00016 { 00017 SIMOBJECT( StaticSpikingSynapse, AdvancePhase::SpikeDriven ) 00018 00019 public: 00020 StaticSpikingSynapse( 00021 const float W=1e-9, 00022 const float tau=3e-3, 00023 const float delay=2e-4 00024 ) 00025 { 00026 this->W = W; 00027 this->tau = tau; 00028 this->delay = delay; 00029 }; 00030 }; 00031 00032 class StaticCurrExpSynapse : public GenericStaticSpikingSynapse< GenericCurrentBasedSpikingSynapse< ExponentialDecaySpikeResponse > > 00033 { 00034 00035 SIMOBJECT( StaticCurrExpSynapse, AdvancePhase::SpikeDriven ) 00036 00037 public: 00038 StaticCurrExpSynapse( 00039 const float W=1e-9, 00040 const float tau=3e-3, 00041 const float delay=2e-4 00042 ) 00043 { 00044 this->W = W; 00045 this->tau = tau; 00046 this->delay = delay; 00047 }; 00048 }; 00049 00050 class StaticCurrAlphaSynapse : public GenericStaticSpikingSynapse< GenericCurrentBasedSpikingSynapse< AlphaFunctionSpikeResponse > > 00051 { 00052 00053 SIMOBJECT( StaticCurrAlphaSynapse, AdvancePhase::SpikeDriven ) 00054 00055 public: 00056 StaticCurrAlphaSynapse( 00057 const float W=1e-9, 00058 const float tau=3e-3, 00059 const float delay=2e-4 00060 ) 00061 { 00062 this->W = W; 00063 this->tau = tau; 00064 this->delay = delay; 00065 }; 00066 }; 00067 00068 class StaticCurrDoubleExpSynapse : public GenericStaticSpikingSynapse< GenericCurrentBasedSpikingSynapse< DoubleExponentialSpikeResponse > > 00069 { 00070 00071 SIMOBJECT( StaticCurrDoubleExpSynapse, AdvancePhase::SpikeDriven ) 00072 00073 public: 00074 StaticCurrDoubleExpSynapse( 00075 const float W=1e-9, 00076 const float tau1=1e-3, 00077 const float tau2=3e-3, 00078 const float delay=2e-4 00079 ) 00080 { 00081 this->W = W; 00082 this->tau1 = tau1; 00083 this->tau2 = tau2; 00084 this->delay = delay; 00085 }; 00086 }; 00087 00088 class StaticCondExpSynapse : public GenericStaticSpikingSynapse< GenericConductanceBasedSpikingSynapse< ExponentialDecaySpikeResponse > > 00089 { 00090 SIMOBJECT( StaticCondExpSynapse, AdvancePhase::SpikeDriven ) 00091 public: 00092 StaticCondExpSynapse( 00093 const float W=1e-9, 00094 const float Erev=0.0e-3, 00095 const float tau=3e-3, 00096 const float delay=2e-4 00097 ) 00098 { 00099 this->W = W; 00100 this->Erev = Erev; 00101 this->tau = tau; 00102 this->delay = delay; 00103 }; 00104 }; 00105 00106 00107 class StaticCondAlphaSynapse : public GenericStaticSpikingSynapse< GenericConductanceBasedSpikingSynapse< AlphaFunctionSpikeResponse > > 00108 { 00109 SIMOBJECT( StaticCondAlphaSynapse, AdvancePhase::SpikeDriven ) 00110 public: 00111 StaticCondAlphaSynapse( 00112 const float W=1e-9, 00113 const float Erev=0.0e-3, 00114 const float tau=3e-3, 00115 const float delay=2e-4 00116 ) 00117 { 00118 this->W = W; 00119 this->Erev = Erev; 00120 this->tau = tau; 00121 this->delay = delay; 00122 }; 00123 }; 00124 00125 00126 class StaticCondDoubleExpSynapse : public GenericStaticSpikingSynapse< GenericConductanceBasedSpikingSynapse< DoubleExponentialSpikeResponse > > 00127 { 00128 SIMOBJECT( StaticCondDoubleExpSynapse, AdvancePhase::SpikeDriven ) 00129 public: 00130 StaticCondDoubleExpSynapse( 00131 const float W=1e-9, 00132 const float Erev=0.0e-3, 00133 const float tau1=1e-3, 00134 const float tau2=3e-3, 00135 const float delay=2e-4 00136 ) 00137 { 00138 this->W = W; 00139 this->Erev = Erev; 00140 this->tau1 = tau1; 00141 this->tau2 = tau2; 00142 this->delay = delay; 00143 }; 00144 }; 00145 00146 00147 class StaticCurrSquarePulseSynapse : public GenericStaticSpikingSynapse< GenericCurrentBasedSpikingSynapse< SquarePulseSpikeResponse > > 00148 { 00149 00150 SIMOBJECT( StaticCurrSquarePulseSynapse, AdvancePhase::SpikeDriven ) 00151 public: 00152 StaticCurrSquarePulseSynapse( 00153 const float W=1e-9, 00154 const float A = 1, 00155 const float tau=5e-4, 00156 const float delay=2e-4 00157 ) 00158 { 00159 this->W = W; 00160 this->A = A; 00161 this->tau = tau; 00162 this->delay = delay; 00163 }; 00164 }; 00165 00166 #endif