PetaVision  Alpha
GapLayer.hpp
1 /*
2  * GapLayer.hpp
3  * can be used to implement gap junctions
4  *
5  * Created on: May 11, 2011
6  * Author: garkenyon
7  */
8 
9 #ifndef GAPLAYER_HPP_
10 #define GAPLAYER_HPP_
11 
12 #include "CloneVLayer.hpp"
13 
14 namespace PV {
15 
16 // CloneLayer can be used to implement gap junctions between spiking neurons
17 class GapLayer : public CloneVLayer {
18  public:
19  GapLayer(const char *name, HyPerCol *hc);
20  virtual ~GapLayer();
21 
22  virtual Response::Status
23  communicateInitInfo(std::shared_ptr<CommunicateInitInfoMessage const> message) override;
24  virtual Response::Status allocateDataStructures() override;
25 
26  virtual Response::Status updateState(double timef, double dt) override;
27 
28  protected:
29  GapLayer();
30  int initialize(const char *name, HyPerCol *hc);
31  virtual int ioParamsFillGroup(enum ParamsIOFlag ioFlag) override;
32  virtual void ioParam_ampSpikelet(enum ParamsIOFlag ioFlag);
33 
34  /* static */ void updateState(
35  double timef,
36  double dt,
37  const PVLayerLoc *loc,
38  float *A,
39  float *V,
40  float *checkActive);
41  virtual int setActivity() override;
42 
43  private:
44  int initialize_base();
45 
46  // Handled in CloneVLayer
47  float ampSpikelet;
48 
49 }; // class GapLayer
50 
51 } // namespace PV
52 
53 #endif /* GAPLAYER_HPP_ */
virtual int ioParamsFillGroup(enum ParamsIOFlag ioFlag) override
Definition: GapLayer.cpp:34