8 #ifndef HYPERLCALAYER_HPP_ 9 #define HYPERLCALAYER_HPP_ 11 #include "ANNLayer.hpp" 12 #include "probes/AdaptiveTimeScaleProbe.hpp" 21 virtual int requireChannel(
int channelNeeded,
int *numChannelsResult)
override;
25 int initialize(
const char *name,
HyPerCol *hc);
26 virtual Response::Status
27 communicateInitInfo(std::shared_ptr<CommunicateInitInfoMessage const> message)
override;
28 virtual Response::Status allocateDataStructures()
override;
56 virtual Response::Status updateState(
double time,
double dt)
override;
59 virtual Response::Status updateStateGpu(
double time,
double dt)
override;
62 virtual float getChannelTimeConst(
enum ChannelType channel_type)
override {
63 return timeConstantTau;
67 virtual int allocateUpdateKernel()
override;
74 int initialize_base();
78 float timeConstantTau;
80 char *mAdaptiveTimeScaleProbeName =
nullptr;
82 std::vector<double> mDeltaTimes;
85 PVCuda::CudaBuffer *d_dtAdapt;
86 PVCuda::CudaBuffer *d_verticesV;
87 PVCuda::CudaBuffer *d_verticesA;
88 PVCuda::CudaBuffer *d_slopes;
virtual void ioParam_adaptiveTimeScaleProbe(enum ParamsIOFlag ioFlag)
adaptiveTimeScaleProbe: If using adaptive timesteps, the name of the AdaptiveTimeScaleProbe that will...
virtual double getDeltaUpdateTime() override
virtual int ioParamsFillGroup(enum ParamsIOFlag ioFlag) override
virtual void ioParam_selfInteract(enum ParamsIOFlag ioFlag)
timeConstantTau: the self-interaction coefficient s for the LCA dynamics, which models the equation d...
virtual void ioParam_timeConstantTau(enum ParamsIOFlag ioFlag)
timeConstantTau: the time constant tau for the LCA dynamics, which models the equation dV/dt = 1/tau*...