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[],