00001 #ifndef FACETSHWSYNAPSE_H_ 00002 #define FACETSHWSYNAPSE_H_ 00003 00004 #include "ExponentialDecaySpikeResponse.h" 00005 #include "DoubleExponentialSpikeResponse.h" 00006 #include "GenericConductanceBasedSpikingSynapse.h" 00007 #include "GenericFacetsHWSynapse.h" 00008 00009 00010 class FacetsHWDepressionSynapse : 00011 public GenericFacetsHWDepressionSynapse< 00012 GenericConductanceBasedSpikingSynapse< 00013 DoubleExponentialSpikeResponse > > 00014 { 00015 SIMOBJECT( FacetsHWDepressionSynapse, AdvancePhase::SpikeDriven ) 00016 00017 public: 00018 FacetsHWDepressionSynapse( 00019 const float W = 1e-9, 00020 const float tau1 = 3e-3, 00021 const float tau2 = 10e-3, 00022 const float delay = 2e-4, 00023 const float Erev = 0e-3, 00024 const float inact0 = 0.0, 00025 const float inact_tau = 10e-3, 00026 const float inact_step = 1.0, 00027 const float max_dep = 1.0 00028 ) 00029 { 00030 this->W = W; 00031 this->tau1 = tau1; 00032 this->tau2 = tau2; 00033 this->delay = delay; 00034 this->Erev = Erev; 00035 this->inact0 = inact0; 00036 this->inact_tau = inact_tau; 00037 this->inact_step = inact_step; 00038 this->max_dep = max_dep; 00039 }; 00040 }; 00041 00042 00043 class FacetsHWFacilitationSynapse : 00044 public GenericFacetsHWFacilitationSynapse< 00045 GenericConductanceBasedSpikingSynapse< 00046 DoubleExponentialSpikeResponse > > 00047 { 00048 SIMOBJECT( FacetsHWFacilitationSynapse, AdvancePhase::SpikeDriven ) 00049 00050 public: 00051 FacetsHWFacilitationSynapse( 00052 const float W = 1e-9, 00053 const float tau1 = 3e-3, 00054 const float tau2 = 10e-3, 00055 const float delay = 2e-4, 00056 const float Erev = 0e-3, 00057 const float act0 = 0.0, 00058 const float act_tau = 10e-3, 00059 const float act_step = 1.0, 00060 const float norm = 0.0, 00061 const float max_fac = 1.0 00062 ) 00063 { 00064 this->W = W; 00065 this->tau1 = tau1; 00066 this->tau2 = tau2; 00067 this->delay = delay; 00068 this->Erev = Erev; 00069 00070 this->act0 = act0; 00071 this->act_tau = act_tau; 00072 this->act_step = act_step; 00073 this->norm = norm; 00074 this->max_fac = max_fac; 00075 }; 00076 }; 00077 00078 00079 00080 00081 00082 00083 00084 00085 class FacetsHWDepressionExpSynapse : 00086 public GenericFacetsHWDepressionSynapse< 00087 GenericConductanceBasedSpikingSynapse< 00088 ExponentialDecaySpikeResponse > > 00089 { 00090 SIMOBJECT( FacetsHWDepressionExpSynapse, AdvancePhase::SpikeDriven ) 00091 00092 public: 00093 FacetsHWDepressionExpSynapse( 00094 const float W = 1e-9, 00095 const float tau = 10e-3, 00096 const float delay = 2e-4, 00097 const float Erev = 0e-3, 00098 const float inact0 = 0.0, 00099 const float inact_tau = 10e-3, 00100 const float inact_step = 1.0, 00101 const float max_dep = 1.0 00102 ) 00103 { 00104 this->W = W; 00105 this->tau = tau; 00106 this->delay = delay; 00107 this->Erev = Erev; 00108 this->inact0 = inact0; 00109 this->inact_tau = inact_tau; 00110 this->inact_step = inact_step; 00111 this->max_dep = max_dep; 00112 }; 00113 }; 00114 00115 00116 class FacetsHWFacilitationExpSynapse : 00117 public GenericFacetsHWFacilitationSynapse< 00118 GenericConductanceBasedSpikingSynapse< 00119 ExponentialDecaySpikeResponse > > 00120 { 00121 SIMOBJECT( FacetsHWFacilitationExpSynapse, AdvancePhase::SpikeDriven ) 00122 00123 public: 00124 FacetsHWFacilitationExpSynapse( 00125 const float W = 1e-9, 00126 const float tau = 10e-3, 00127 const float delay = 2e-4, 00128 const float Erev = 0e-3, 00129 const float act0 = 0.0, 00130 const float act_tau = 10e-3, 00131 const float act_step = 1.0, 00132 const float norm = 0.0, 00133 const float max_fac = 1.0 00134 ) 00135 { 00136 this->W = W; 00137 this->tau = tau; 00138 this->delay = delay; 00139 this->Erev = Erev; 00140 00141 this->act0 = act0; 00142 this->act_tau = act_tau; 00143 this->act_step = act_step; 00144 this->norm = norm; 00145 this->max_fac = max_fac; 00146 }; 00147 }; 00148 00149 #endif // FACETSHWSYNAPSE_H_