00001 #ifndef STATICANALOGSYNAPSE_H_ 00002 #define STATICANALOGSYNAPSE_H_ 00003 00004 #include "CurrentBasedAnalogSynapse.h" 00005 #include "ConductanceBasedAnalogSynapse.h" 00006 00007 template<class base> 00008 class GenericStaticAnalogSynapse : public base 00009 { 00010 00011 public: 00012 00013 virtual ~GenericStaticAnalogSynapse() {}; 00014 00016 float W; 00017 00018 virtual int advance(AdvanceInfo const &ai) 00019 { 00020 base::psr *= W; 00021 return base::advance(ai); 00022 }; 00023 00024 }; 00025 00026 class StaticAnalogSynapse : public GenericStaticAnalogSynapse< CurrentBasedAnalogSynapse > 00027 { 00028 00029 SIMOBJECT( StaticAnalogSynapse, AdvancePhase::One ) 00030 00031 public: 00032 00033 StaticAnalogSynapse( 00034 float W=1, 00035 float delay=0 00036 ) 00037 { 00038 this->W = W; 00039 this->delay = delay; 00040 }; 00041 00042 }; 00043 00044 class CbStaticAnalogSynapse : public GenericStaticAnalogSynapse< ConductanceBasedAnalogSynapse > 00045 { 00046 00047 SIMOBJECT( CbStaticAnalogSynapse, AdvancePhase::One ) 00048 00049 public: 00050 00051 CbStaticAnalogSynapse( 00052 float W=1, 00053 float delay=0, 00054 float Erev=0 00055 ) 00056 { 00057 this->W = W; 00058 this->delay = delay; 00059 this->Erev = Erev; 00060 }; 00061 00062 00063 }; 00064 00065 #endif /*STATICANALOGSYNAPSE_H_*/