Auryn simulator  v0.8.1-206-gb56e451
Plastic Spiking Neural Network Simulator
STDPConnection.h
Go to the documentation of this file.
1 /*
2 * Copyright 2014-2018 Friedemann Zenke
3 *
4 * This file is part of Auryn, a simulation package for plastic
5 * spiking neural networks.
6 *
7 * Auryn is free software: you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation, either version 3 of the License, or
10 * (at your option) any later version.
11 *
12 * Auryn is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License
18 * along with Auryn. If not, see <http://www.gnu.org/licenses/>.
19 */
20 
21 #ifndef STDPCONNECTION_H_
22 #define STDPCONNECTION_H_
23 
24 #include "auryn_definitions.h"
25 #include "AurynVector.h"
26 #include "DuplexConnection.h"
27 #include "Trace.h"
28 #include "LinearTrace.h"
29 #include "SpikeDelay.h"
30 
31 
32 namespace auryn {
33 
34 
41 {
42 
43 private:
44  void init(AurynFloat eta, AurynFloat tau_pre, AurynFloat tau_post, AurynFloat maxweight);
45 
46 protected:
47 
49 
52 
53  void propagate_forward();
54  void propagate_backward();
55 
58 
59 public:
64 
65  STDPConnection(SpikingGroup * source, NeuronGroup * destination,
66  TransmitterType transmitter=GLUT);
67 
68  STDPConnection(SpikingGroup * source, NeuronGroup * destination,
69  const char * filename,
70  AurynFloat eta=1,
71  AurynFloat tau_pre=20e-3,
72  AurynFloat tau_post=20e-3,
73  AurynFloat maxweight=1. ,
74  TransmitterType transmitter=GLUT);
75 
76  STDPConnection(SpikingGroup * source, NeuronGroup * destination,
77  AurynWeight weight, AurynFloat sparseness=0.05,
78  AurynFloat eta=1,
79  AurynFloat tau_pre=20e-3,
80  AurynFloat tau_post=20e-3,
81  AurynFloat maxweight=1. ,
82  TransmitterType transmitter=GLUT,
83  string name = "STDPConnection" );
84 
85 
86  virtual ~STDPConnection();
87  virtual void finalize();
88  void free();
89 
90  virtual void propagate();
91  virtual void evolve();
92 
93 };
94 
95 }
96 
97 #endif /*STDPCONNECTION_H_*/
virtual void evolve()
Evolve method to update internal connection state. Called by System run method.
Definition: STDPConnection.cpp:178
STDPConnection(SpikingGroup *source, NeuronGroup *destination, TransmitterType transmitter=GLUT)
Definition: STDPConnection.cpp:54
Standard Glutamatergic (excitatory) transmission.
Definition: auryn_definitions.h:139
AurynFloat B
Definition: STDPConnection.h:61
Trace * tr_post
Definition: STDPConnection.h:51
AurynWeight on_pre(NeuronID post)
Definition: STDPConnection.cpp:100
virtual void propagate()
Internally used propagate method.
Definition: STDPConnection.cpp:172
virtual void finalize()
Finalizes connection after random or manual initialization of the weights.
Definition: STDPConnection.cpp:46
Abstract base class of all objects producing spikes.
Definition: SpikingGroup.h:67
AurynFloat A
Definition: STDPConnection.h:60
double AurynDouble
Higher precision floating point datatype.
Definition: auryn_definitions.h:158
AurynFloat AurynWeight
Unit of synaptic weights.
Definition: auryn_definitions.h:159
void propagate_forward()
Definition: STDPConnection.cpp:114
Abstract base class of synaptic traces.
Definition: Trace.h:36
Trace * tr_pre
Definition: STDPConnection.h:50
Definition: ABSConnection.h:38
Double STDP All-to-All Connection.
Definition: STDPConnection.h:40
bool stdp_active
Definition: STDPConnection.h:63
void free()
Definition: STDPConnection.cpp:50
AurynDouble hom_fudge
Definition: STDPConnection.h:48
TransmitterType
Specifies the different transmitter types that Auryn knows.
Definition: auryn_definitions.h:138
float AurynFloat
Low precision floating point datatype.
Definition: auryn_definitions.h:157
Abstract base class for all neuron groups.
Definition: NeuronGroup.h:45
Duplex connection is the base class of most plastic connections.
Definition: DuplexConnection.h:54
AurynWeight on_post(NeuronID pre)
Definition: STDPConnection.cpp:107
unsigned int NeuronID
NeuronID is an unsigned integeger type used to index neurons in Auryn.
Definition: auryn_definitions.h:151
virtual ~STDPConnection()
Definition: STDPConnection.cpp:93
void propagate_backward()
Definition: STDPConnection.cpp:142