DAModulatedStdpSynapse.h

Go to the documentation of this file.
00001 #ifndef DAMODULATEDSTDPSYNAPSE_H_
00002 #define DAMODULATEDSTDPSYNAPSE_H_
00003 
00004 #include "GenericDAModulatedSTDPSynapse.h"
00005 #include "GenericFroemkeDanStdpSynapse.h"
00006 #include "GenericEachPairStdpSynapse.h"
00007 #include "GenericStaticSpikingSynapse.h"
00008 #include "GenericCurrentBasedSpikingSynapse.h"
00009 #include "ExponentialDecaySpikeResponse.h"
00010 #include "SquarePulseSpikeResponse.h"
00011 
00012 class DAModulatedStaticStdpSynapse : public GenericDAModulatedSTDPSynapse<
00013             GenericFroemkeDanStdpSynapse<
00014             GenericEachPairStdpSynapse<
00015             GenericStaticSpikingSynapse<
00016             GenericCurrentBasedSpikingSynapse<
00017             ExponentialDecaySpikeResponse
00018             >
00019             >
00020             >
00021             >
00022     > {
00023         SIMOBJECT( DAModulatedStaticStdpSynapse, AdvancePhase::SpikeDriven )
00024     public:    
00025     
00026     DAModulatedStaticStdpSynapse(       
00027         const float Winit = 1e-9,
00028         const float tau = 3e-3,
00029         const float delay = 1e-3,
00030         const bool  useFroemkeDanSTDP = true,
00031         const float tauspost = 50e-3,
00032         const float tauspre = 50e-3,
00033         const float taupos = 50e-3,
00034         const float tauneg = 50e-3,
00035         const float STDPgap=2e-3, 
00036         const bool  activeDASTDP = true,
00037         const float Wex = 10e-9,
00038         const float Aneg = -0.2e-9,
00039         const float Apos =  0.2e-9,
00040         const float mupos = 0.0,
00041         const float muneg = 0.0,
00042         const float back_delay = 0.0,
00043         const float DAStdpRate = 1,
00044         const float DATraceDelay = 0.0, 
00045         FiniteSpikeResponse const * daTraceResponse = NULL)
00046     {
00047         this->Winit = Winit;
00048         this->tau = tau;
00049         this->delay = delay;
00050         this->useFroemkeDanSTDP = useFroemkeDanSTDP;
00051         this->tauspost = tauspost;
00052         this->tauspre = tauspre;
00053         this->taupos = taupos;
00054         this->tauneg = tauneg;
00055         this->STDPgap = STDPgap;
00056         this->activeDASTDP = activeDASTDP;
00057         this->activeSTDP = 1;
00058         this->Wex = Wex;
00059         this->Aneg = Aneg;
00060         this->Apos = Apos;
00061         this->mupos = mupos;
00062         this->muneg = muneg;
00063         this->back_delay = back_delay;
00064         this->DAStdpRate = DAStdpRate;
00065         this->DATraceDelay = DATraceDelay;
00066         bool created = false;
00067         if (daTraceResponse == NULL) {
00068             created = true;
00069                 daTraceResponse = new ExponentialDecaySpikeResponse( 1.0 );
00070         }
00071         this->da_trace_response = dynamic_cast<FiniteSpikeResponse *>(daTraceResponse->create());
00072         if (created)
00073                 delete daTraceResponse;
00074     };
00075 };
00076 
00077 class DAModulatedDynamicStdpSynapse : public GenericDAModulatedSTDPSynapse<
00078             GenericFroemkeDanStdpSynapse<
00079             GenericEachPairStdpSynapse<
00080             GenericDynamicSpikingSynapse<
00081             GenericCurrentBasedSpikingSynapse<
00082             ExponentialDecaySpikeResponse
00083             >
00084             >
00085             >
00086             >
00087     > {
00088         SIMOBJECT( DAModulatedDynamicStdpSynapse, AdvancePhase::SpikeDriven )
00089     public:    
00090     
00091     DAModulatedDynamicStdpSynapse(      
00092         const float Winit = 1e-9,
00093         const float tau = 3e-3,
00094         const float delay = 1e-3,
00095         const float U     = 0.2,
00096         const float D     = 0.1,
00097         const float F     = 0.4,
00098         const float u0    = 0.2,
00099         const float r0    = 1.0,
00100         const float f0    =-1.0,
00101         const bool  useFroemkeDanSTDP = true,
00102         const float tauspost = 50e-3,
00103         const float tauspre = 50e-3,
00104         const float taupos = 50e-3,
00105         const float tauneg = 50e-3,
00106         const float STDPgap=2e-3, 
00107         const bool  activeDASTDP = true,
00108         const float Wex = 10e-9,
00109         const float Aneg = -0.2e-9,
00110         const float Apos =  0.2e-9,
00111         const float mupos = 0.0,
00112         const float muneg = 0.0,
00113         const float back_delay = 0.0,
00114         const float DAStdpRate = 1,
00115         const float DATraceDelay = 0.0, 
00116         FiniteSpikeResponse const * daTraceResponse = NULL)
00117     {
00118         this->Winit = Winit;
00119         this->tau = tau;
00120         this->delay = delay;
00121         this->U = U;
00122         this->D = D;
00123         this->F = F;
00124         this->u0 = u0;
00125         this->r0 = r0;
00126         this->f0 = f0;
00127         this->useFroemkeDanSTDP = useFroemkeDanSTDP;
00128         this->tauspost = tauspost;
00129         this->tauspre = tauspre;
00130         this->taupos = taupos;
00131         this->tauneg = tauneg;
00132         this->STDPgap = STDPgap;
00133         this->activeDASTDP = activeDASTDP;
00134         this->activeSTDP = 1;
00135         this->Wex = Wex;
00136         this->Aneg = Aneg;
00137         this->Apos = Apos;
00138         this->mupos = mupos;
00139         this->muneg = muneg;
00140         this->back_delay = back_delay;
00141         this->DAStdpRate = DAStdpRate;
00142         this->DATraceDelay = DATraceDelay;
00143         bool created = false;
00144         if (daTraceResponse == NULL) {
00145             created = true;
00146                 daTraceResponse = new ExponentialDecaySpikeResponse( 1.0 );
00147         }
00148         this->da_trace_response = dynamic_cast<FiniteSpikeResponse *>(daTraceResponse->create());
00149         if (created)
00150                 delete daTraceResponse;
00151     };
00152 };
00153 
00154 class DAModStdpDynamicCurrExpSynapse : public GenericDAModulatedSTDPSynapse<
00155             GenericFroemkeDanStdpSynapse<
00156             GenericEachPairStdpSynapse<
00157             GenericDynamicSpikingSynapse<
00158             GenericCurrentBasedSpikingSynapse<
00159             ExponentialDecaySpikeResponse
00160             >
00161             >
00162             >
00163             >
00164     > {
00165         SIMOBJECT( DAModStdpDynamicCurrExpSynapse, AdvancePhase::SpikeDriven )
00166     public:    
00167     
00168     DAModStdpDynamicCurrExpSynapse(     
00169         const float Winit = 1e-9,
00170         const float tau = 3e-3,
00171         const float delay = 1e-3,
00172         const float U     = 0.2,
00173         const float D     = 0.1,
00174         const float F     = 0.4,
00175         const float u0    = 0.2,
00176         const float r0    = 1.0,
00177         const float f0    =-1.0,
00178         const bool  useFroemkeDanSTDP = true,
00179         const float tauspost = 50e-3,
00180         const float tauspre = 50e-3,
00181         const float taupos = 50e-3,
00182         const float tauneg = 50e-3,
00183         const float STDPgap=2e-3, 
00184         const bool  activeDASTDP = true,
00185         const float Wex = 10e-9,
00186         const float Aneg = -0.2e-9,
00187         const float Apos =  0.2e-9,
00188         const float mupos = 0.0,
00189         const float muneg = 0.0,
00190         const float back_delay = 0.0,
00191         const float DAStdpRate = 1,
00192         const float DATraceDelay = 0.0, 
00193         FiniteSpikeResponse const * daTraceResponse = NULL)
00194     {
00195         this->Winit = Winit;
00196         this->tau = tau;
00197         this->delay = delay;
00198         this->U = U;
00199         this->D = D;
00200         this->F = F;
00201         this->u0 = u0;
00202         this->r0 = r0;
00203         this->f0 = f0;
00204         this->useFroemkeDanSTDP = useFroemkeDanSTDP;
00205         this->tauspost = tauspost;
00206         this->tauspre = tauspre;
00207         this->taupos = taupos;
00208         this->tauneg = tauneg;
00209         this->STDPgap = STDPgap;
00210         this->activeDASTDP = activeDASTDP;
00211         this->activeSTDP = 1;
00212         this->Wex = Wex;
00213         this->Aneg = Aneg;
00214         this->Apos = Apos;
00215         this->mupos = mupos;
00216         this->muneg = muneg;
00217         this->back_delay = back_delay;
00218         this->DAStdpRate = DAStdpRate;
00219         this->DATraceDelay = DATraceDelay;
00220         bool created = false;
00221         if (daTraceResponse == NULL) {
00222             created = true;
00223                 daTraceResponse = new ExponentialDecaySpikeResponse( 1.0 );
00224         }
00225         this->da_trace_response = dynamic_cast<FiniteSpikeResponse *>(daTraceResponse->create());
00226         if (created)
00227                 delete daTraceResponse;
00228     };
00229 };
00230 
00231 
00232 
00233 class DAModStdpSquarePulseSynapse : public GenericDAModulatedSTDPSynapse< 
00234                                                                                                         GenericFroemkeDanStdpSynapse< 
00235                                                                                                                 GenericEachPairStdpSynapse< 
00236                                                                                                                         GenericStaticSpikingSynapse< 
00237                                                                                                                                 GenericCurrentBasedSpikingSynapse< 
00238                                                                                                                                         SquarePulseSpikeResponse 
00239                                                                                                                                 > 
00240                                                                                                                         > 
00241                                                                                                                 > 
00242                                                                                                         > 
00243                                                                                                 > 
00244 {
00245         SIMOBJECT( DAModStdpSquarePulseSynapse, AdvancePhase::SpikeDriven )
00246 public:
00247     
00248 
00249     DAModStdpSquarePulseSynapse(        
00250         const float Winit = 1e-9,
00251         const float A = 1,        
00252         const float tau = 1e-3,
00253         const float delay = 1e-3,
00254         const bool  useFroemkeDanSTDP = true,
00255         const float tauspost = 50e-3,
00256         const float tauspre = 50e-3,
00257         const float taupos = 50e-3,
00258         const float tauneg = 50e-3,
00259         const float STDPgap=2e-3,
00260         const bool  activeDASTDP = true,
00261         const float Wex = 10e-9,
00262         const float Aneg = -0.2e-9,
00263         const float Apos =  0.2e-9,
00264         const float mupos = 0.0,
00265         const float muneg = 0.0,
00266         const float back_delay = 0.0,
00267         const float DAStdpRate = 1.0,         
00268         const float DATraceDelay = 0.0, 
00269         FiniteSpikeResponse const * daTraceResponse = NULL
00270         )    
00271     {
00272         this->Winit = Winit;
00273         this->A = A;
00274         this->tau = tau;
00275         this->delay = delay;
00276         this->useFroemkeDanSTDP = useFroemkeDanSTDP;
00277         this->tauspost = tauspost;
00278         this->tauspre = tauspre;
00279         this->taupos = taupos;
00280         this->tauneg = tauneg;
00281         this->STDPgap = STDPgap;
00282         this->activeDASTDP = activeDASTDP;
00283         this->activeSTDP = 1;
00284         this->Wex = Wex;
00285         this->Aneg = Aneg;
00286         this->Apos = Apos;
00287         this->mupos = mupos;
00288         this->muneg = muneg;
00289         this->back_delay = back_delay;          
00290                 this->DAStdpRate = DAStdpRate;
00291                 this->DATraceDelay = DATraceDelay;
00292                 bool created = false;
00293                 if (daTraceResponse == NULL) {
00294             created = true;
00295                 daTraceResponse = new ExponentialDecaySpikeResponse( 1.0 );
00296         }
00297         this->da_trace_response = dynamic_cast<FiniteSpikeResponse *>(daTraceResponse->create());
00298         if (created)
00299                 delete daTraceResponse;         
00300     };
00301 };
00302 
00303 
00304 class DAModStdpStaticCondExpSynapse : public GenericDAModulatedSTDPSynapse<
00305             GenericFroemkeDanStdpSynapse<
00306             GenericEachPairStdpSynapse<
00307             GenericStaticSpikingSynapse<
00308             GenericConductanceBasedSpikingSynapse<
00309             ExponentialDecaySpikeResponse
00310             >
00311             >
00312             >
00313             >
00314     > {
00315         SIMOBJECT( DAModStdpStaticCondExpSynapse, AdvancePhase::SpikeDriven )
00316     public:
00317     
00318     DAModStdpStaticCondExpSynapse(
00319         const float Winit = 1e-9,
00320         const float Erev=0e-3,
00321         const float tau = 3e-3,
00322         const float delay = 1e-3,         
00323         const bool  useFroemkeDanSTDP = true,
00324         const float tauspost = 50e-3,
00325         const float tauspre = 50e-3,
00326         const float taupos = 50e-3,
00327         const float tauneg = 50e-3,
00328         const float STDPgap=2e-3, 
00329         const bool  activeDASTDP = true,
00330         const float Wex = 10e-9,
00331         const float Aneg = -0.2e-9,
00332         const float Apos =  0.2e-9,
00333         const float mupos = 0.0,
00334         const float muneg = 0.0,
00335         const float back_delay = 0.0,
00336         const float DAStdpRate = 1.0, 
00337         const float DATraceDelay = 0.0,
00338         FiniteSpikeResponse const * daTraceResponse = NULL 
00339         )    
00340     {
00341         this->Winit = Winit;
00342         this->Erev = Erev;
00343         this->tau = tau;
00344         this->delay = delay;
00345         this->useFroemkeDanSTDP = useFroemkeDanSTDP;
00346         this->tauspost = tauspost;
00347         this->tauspre = tauspre;
00348         this->taupos = taupos;
00349         this->tauneg = tauneg;
00350         this->STDPgap = STDPgap;
00351         this->activeDASTDP = activeDASTDP;
00352         this->activeSTDP = 1;
00353         this->Wex = Wex;
00354         this->Aneg = Aneg;
00355         this->Apos = Apos;
00356         this->mupos = mupos;
00357         this->muneg = muneg;
00358         this->back_delay = back_delay;          
00359                 this->DAStdpRate = DAStdpRate;
00360                 this->DATraceDelay = DATraceDelay;
00361                 bool created = false;
00362                 if (daTraceResponse == NULL) {
00363             created = true;
00364                 daTraceResponse = new ExponentialDecaySpikeResponse( 1.0 );
00365         }
00366         this->da_trace_response = dynamic_cast<FiniteSpikeResponse *>(daTraceResponse->create());
00367         if (created)
00368                 delete daTraceResponse;         
00369     };
00370 };
00371 
00372 
00373 class DAModStdpDynamicCondExpSynapse : public GenericDAModulatedSTDPSynapse<
00374             GenericFroemkeDanStdpSynapse<
00375             GenericEachPairStdpSynapse<
00376             GenericDynamicSpikingSynapse<
00377             GenericConductanceBasedSpikingSynapse<
00378             ExponentialDecaySpikeResponse
00379             >
00380             >
00381             >
00382             >
00383     > {
00384         SIMOBJECT( DAModStdpDynamicCondExpSynapse, AdvancePhase::SpikeDriven )
00385         
00386     public:    
00387     DAModStdpDynamicCondExpSynapse(
00388         const float Winit = 1e-9,
00389         const float Erev=0e-3,
00390         const float tau = 3e-3,
00391         const float delay = 1e-3,
00392         const float U     = 0.2,
00393         const float D     = 0.1,
00394         const float F     = 0.4,
00395         const float u0    = 0.2,
00396         const float r0    = 1.0,
00397         const float f0    =-1.0,         
00398         const bool  useFroemkeDanSTDP = true,
00399         const float tauspost = 50e-3,
00400         const float tauspre = 50e-3,
00401         const float taupos = 50e-3,
00402         const float tauneg = 50e-3,
00403         const float STDPgap=2e-3, 
00404         const bool  activeDASTDP = true,
00405         const float Wex = 10e-9,
00406         const float Aneg = -0.2e-9,
00407         const float Apos =  0.2e-9,
00408         const float mupos = 0.0,
00409         const float muneg = 0.0,
00410         const float back_delay = 0.0,
00411         const float DAStdpRate = 1.0, 
00412         const float DATraceDelay = 0.0,
00413         FiniteSpikeResponse const * daTraceResponse = NULL 
00414         )    
00415     {
00416         this->Winit = Winit;
00417         this->Erev = Erev;
00418         this->tau = tau;
00419         this->delay = delay;
00420         this->U = U;
00421         this->D = D;
00422         this->F = F;
00423         this->u0 = u0;
00424         this->r0 = r0;
00425         this->f0 = f0;        
00426         this->useFroemkeDanSTDP = useFroemkeDanSTDP;
00427         this->tauspost = tauspost;
00428         this->tauspre = tauspre;
00429         this->taupos = taupos;
00430         this->tauneg = tauneg;
00431         this->STDPgap = STDPgap;
00432         this->activeDASTDP = activeDASTDP;
00433         this->activeSTDP = 1;
00434         this->Wex = Wex;
00435         this->Aneg = Aneg;
00436         this->Apos = Apos;
00437         this->mupos = mupos;
00438         this->muneg = muneg;
00439         this->back_delay = back_delay;          
00440                 this->DAStdpRate = DAStdpRate;
00441                 this->DATraceDelay = DATraceDelay;
00442                 bool created = false;
00443                 if (daTraceResponse == NULL) {
00444             created = true;
00445                 daTraceResponse = new ExponentialDecaySpikeResponse( 1.0 );
00446         }
00447         this->da_trace_response = dynamic_cast<FiniteSpikeResponse *>(daTraceResponse->create());
00448         if (created)
00449                 delete daTraceResponse;         
00450     };
00451 };
00452 
00453 
00454 
00455 
00456 #endif /*DAMODULATEDSTDPSYNAPSE_H_*/

Generated on Wed Jul 9 16:34:38 2008 for PCSIM by  doxygen 1.5.5