11 #include "HyPerLayer.hpp" 14 #define NUM_ANN_EVENTS 3 15 #define EV_ANN_ACTIVITY 2 32 float getVThresh()
const {
return VThresh; }
33 float getAMax()
const {
return AMax; }
34 float getAMin()
const {
return AMin; }
35 float getAShift()
const {
return AShift; }
36 float getVWidth()
const {
return VWidth; }
48 if (n >= 0 && n < numVertices) {
61 if (n >= 0 && n < numVertices) {
68 float getSlopeNegInf()
const {
return slopeNegInf; }
69 float getSlopePosInf()
const {
return slopePosInf; }
71 virtual bool activityIsSpiking()
override {
return false; }
75 int initialize(
const char *name,
HyPerCol *hc);
76 virtual Response::Status updateState(
double time,
double dt)
override;
77 virtual int setActivity()
override;
187 virtual int resetGSynBuffers(
double timef,
double dt)
override;
190 bool verticesListInParams =
193 float *verticesV =
nullptr;
194 float *verticesA =
nullptr;
195 float *slopes =
nullptr;
197 float slopeNegInf = 1.0f;
198 float slopePosInf = 1.0f;
200 float VThresh = -FLT_MAX;
201 float AMax = FLT_MAX;
202 float AMin = -FLT_MAX;
207 float VWidth = (float)0;
212 int initialize_base();
virtual void ioParam_verticesV(enum ParamsIOFlag ioFlag)
verticesV: An array of membrane potentials at points where the transfer function jumps or changes slo...
bool layerListsVerticesInParams() const
virtual void ioParam_AShift(enum ParamsIOFlag ioFlag)
AShift: Only read if verticesV is absent. When membrane potential V is above the threshold VThresh...
virtual void ioParam_slopeNegInf(enum ParamsIOFlag ioFlag)
slopeNegInf: The slope of the transfer function when x is less than the first element of verticesV...
virtual void ioParam_verticesA(enum ParamsIOFlag ioFlag)
verticesA: An array of activities of points where the transfer function jumps or changes slope...
float getVertexV(int n) const
virtual void ioParam_AMin(enum ParamsIOFlag ioFlag)
AMin: Only read if verticesV is absent. When membrane potential V is below the threshold VThresh...
int getNumVertices() const
virtual void ioParam_AMax(enum ParamsIOFlag ioFlag)
AMax: Only read if verticesV is absent. Activity that would otherwise be greater than AMax is truncat...
virtual void ioParam_slopePosInf(enum ParamsIOFlag ioFlag)
slopePosInf: The slope of the transfer function when x is greater than the last element of verticesV...
virtual void ioParam_VWidth(enum ParamsIOFlag ioFlag)
VWidth: Only read if verticesV is absent. When the membrane potential is between VThresh and VThresh+...
virtual void ioParam_VThresh(enum ParamsIOFlag ioFlag)
VThresh: Only read if verticesV is absent. The threshold value for the membrane potential. Below this value, the output activity will be AMin. Above, it will obey the transfer function as specified by AMax, VWidth, and AShift. Default is -infinity.
virtual int setVertices()
virtual int checkVertices() const
float getVertexA(int n) const
virtual int ioParamsFillGroup(enum ParamsIOFlag ioFlag) override