12 #include "../columns/Random.hpp" 13 #include "HyPerLayer.hpp" 16 #define NUM_LIF_EVENTS 4 19 #define EV_LIF_GSYN_IB 2 21 #define pvconductance_t float 51 friend int test_kernels(
int argc,
char *argv[]);
52 friend int test_LIF(
int argc,
char *argv[]);
55 LIF(
const char *name,
HyPerCol *hc,
int num_channels);
58 virtual Response::Status
59 communicateInitInfo(std::shared_ptr<CommunicateInitInfoMessage const> message)
override;
60 virtual Response::Status allocateDataStructures()
override;
61 virtual Response::Status registerData(
Checkpointer *checkpointer)
override;
63 virtual Response::Status updateState(
double time,
double dt)
override;
64 virtual int setActivity()
override;
66 float *getVth() {
return Vth; }
67 virtual pvconductance_t *getConductance(ChannelType ch) {
68 return ch < this->numChannels ? G_E + ch * getNumNeurons() : NULL;
71 virtual float getChannelTimeConst(
enum ChannelType channel_type)
override;
73 virtual LIF_params *getLIFParams() {
return &lParams; };
75 virtual bool activityIsSpiking()
override {
return true; }
83 pvconductance_t *G_IB;
90 int initialize(
const char *name,
HyPerCol *hc,
const char *kernel_name);
91 virtual int ioParamsFillGroup(
enum ParamsIOFlag ioFlag)
override;
92 virtual void ioParam_Vrest(
enum ParamsIOFlag ioFlag);
93 virtual void ioParam_Vexc(
enum ParamsIOFlag ioFlag);
94 virtual void ioParam_Vinh(
enum ParamsIOFlag ioFlag);
95 virtual void ioParam_VinhB(
enum ParamsIOFlag ioFlag);
96 virtual void ioParam_VthRest(
enum ParamsIOFlag ioFlag);
97 virtual void ioParam_tau(
enum ParamsIOFlag ioFlag);
98 virtual void ioParam_tauE(
enum ParamsIOFlag ioFlag);
99 virtual void ioParam_tauI(
enum ParamsIOFlag ioFlag);
100 virtual void ioParam_tauIB(
enum ParamsIOFlag ioFlag);
101 virtual void ioParam_tauVth(
enum ParamsIOFlag ioFlag);
102 virtual void ioParam_deltaVth(
enum ParamsIOFlag ioFlag);
103 virtual void ioParam_deltaGIB(
enum ParamsIOFlag ioFlag);
104 virtual void ioParam_noiseAmpE(
enum ParamsIOFlag ioFlag);
105 virtual void ioParam_noiseAmpI(
enum ParamsIOFlag ioFlag);
106 virtual void ioParam_noiseAmpIB(
enum ParamsIOFlag ioFlag);
107 virtual void ioParam_noiseFreqE(
enum ParamsIOFlag ioFlag);
108 virtual void ioParam_noiseFreqI(
enum ParamsIOFlag ioFlag);
109 virtual void ioParam_noiseFreqIB(
enum ParamsIOFlag ioFlag);
110 virtual void ioParam_method(
enum ParamsIOFlag ioFlag);
111 virtual void allocateBuffers()
override;
112 virtual void allocateConductances(
int num_channels);
113 virtual Response::Status readStateFromCheckpoint(
Checkpointer *checkpointer)
override;
114 virtual void readVthFromCheckpoint(
Checkpointer *checkpointer);
115 virtual void readG_EFromCheckpoint(
Checkpointer *checkpointer);
116 virtual void readG_IFromCheckpoint(
Checkpointer *checkpointer);
117 virtual void readG_IBFromCheckpoint(
Checkpointer *checkpointer);
118 virtual void readRandStateFromCheckpoint(
Checkpointer *checkpointer);
121 int initialize_base();
122 int findPostSynaptic(
134 int nConnectedNeurons[],