PetaVision  Alpha
PV::HyPerLCALayer Class Reference
Inheritance diagram for PV::HyPerLCALayer:
PV::ANNLayer PV::HyPerLayer PV::BaseLayer PV::BaseObject PV::CheckpointerDataInterface PV::Observer PV::MomentumLCALayer

ANNLayer Parameters

List of parameters used by the ANNLayer class

virtual void ioParam_verticesV (enum ParamsIOFlag ioFlag)
 verticesV: An array of membrane potentials at points where the transfer function jumps or changes slope. There must be the same number of elements in verticesV as verticesA, and the sequence of values must be nondecreasing. If this parameter is absent, layerListsVerticesInParams() returns false and the vertices are computed internally from VThresh, AMin, AMax, AShift, and VWidth. If the parameter is present, layerListsVerticesInParams() returns true.
 
virtual void ioParam_verticesA (enum ParamsIOFlag ioFlag)
 verticesA: An array of activities of points where the transfer function jumps or changes slope. There must be the same number of elements in verticesA as verticesV. Only read if verticesV is present; otherwise it is computed internally from VThresh, AMin, AMax, AShift, and VWidth.
 
virtual void ioParam_slopeNegInf (enum ParamsIOFlag ioFlag)
 slopeNegInf: The slope of the transfer function when x is less than the first element of verticesV. Thus, if V < Vfirst, the corresponding value of A is A = Afirst - slopeNegInf * (Vfirst - V) Only read if verticesV is present; otherwise it is computed internally from VThresh, AMin, AMax, AShift, and VWidth.
 
virtual void ioParam_slopePosInf (enum ParamsIOFlag ioFlag)
 slopePosInf: The slope of the transfer function when x is greater than the last element of verticesV. Thus, if V > Vlast, the corresponding value of A is A = Alast + slopePosInf * (V - Vlast) Only read if verticesV is present; otherwise it is computed internally from VThresh, AMin, AMax, AShift, and VWidth.
 
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 void ioParam_AMin (enum ParamsIOFlag ioFlag)
 AMin: Only read if verticesV is absent. When membrane potential V is below the threshold VThresh, activity takes the value AMin. Default is the value of VThresh.
 
virtual void ioParam_AMax (enum ParamsIOFlag ioFlag)
 AMax: Only read if verticesV is absent. Activity that would otherwise be greater than AMax is truncated to AMax. Default is +infinity.
 
virtual void ioParam_AShift (enum ParamsIOFlag ioFlag)
 AShift: Only read if verticesV is absent. When membrane potential V is above the threshold VThresh, activity is V-AShift (but see VWidth for making a gradual transition at VThresh). Default is zero.
 
virtual void ioParam_VWidth (enum ParamsIOFlag ioFlag)
 VWidth: Only read if verticesV is absent. When the membrane potential is between VThresh and VThresh+VWidth, the activity changes linearly between A=AMin when V=VThresh and A=VThresh+VWidth-AShift when V=VThresh+VWidth. Default is zero.
 

HyPerLayer Parameters

List of parameters needed from the HyPerLayer class

virtual void ioParam_dataType (enum ParamsIOFlag ioFlag)
 
virtual void ioParam_updateGpu (enum ParamsIOFlag ioFlag)
 updateGpu: When compiled using CUDA or OpenCL GPU acceleration, this flag tells whether this layer's updateState method should use the GPU. If PetaVision was compiled without GPU acceleration, it is an error to set this flag to true.
 
virtual void ioParam_nxScale (enum ParamsIOFlag ioFlag)
 nxScale: Defines the relationship between the x column size and the layer size. More...
 
virtual void ioParam_nyScale (enum ParamsIOFlag ioFlag)
 nyScale: Defines the relationship between the y column size and the layer size. More...
 
virtual void ioParam_nf (enum ParamsIOFlag ioFlag)
 nf: Defines how many features this layer has
 
virtual void ioParam_phase (enum ParamsIOFlag ioFlag)
 phase: Defines the ordering in which each layer is updated
 
virtual void ioParam_mirrorBCflag (enum ParamsIOFlag ioFlag)
 mirrorBCflag: If set to true, the margin will mirror the data
 
virtual void ioParam_valueBC (enum ParamsIOFlag ioFlag)
 valueBC: If mirrorBC is set to true, Uses the specified value for the margin area
 
virtual void ioParam_initializeFromCheckpointFlag (enum ParamsIOFlag ioFlag)
 initializeFromCheckpointFlag: If set to true, initialize using checkpoint direcgtory set in HyPerCol. More...
 
virtual void ioParam_InitVType (enum ParamsIOFlag ioFlag)
 initVType: Specifies how to initialize the V buffer. More...
 
virtual void ioParam_triggerFlag (enum ParamsIOFlag ioFlag)
 triggerFlag: (Deprecated) Specifies if this layer is being triggered More...
 
virtual void ioParam_triggerLayerName (enum ParamsIOFlag ioFlag)
 triggerLayerName: Specifies the name of the layer that this layer triggers off of. If set to NULL or the empty string, the layer does not trigger but updates its state on every timestep.
 
virtual void ioParam_triggerOffset (enum ParamsIOFlag ioFlag)
 triggerOffset: If triggerLayer is set, triggers <triggerOffset> timesteps before target trigger More...
 
virtual void ioParam_triggerBehavior (enum ParamsIOFlag ioFlag)
 triggerBehavior: If triggerLayerName is set, this parameter specifies how the trigger is handled. More...
 
virtual void ioParam_triggerResetLayerName (enum ParamsIOFlag ioFlag)
 triggerResetLayerName: If triggerLayerName is set, this parameter specifies the layer to use for updating the state when the trigger happens. If set to NULL or the empty string, use triggerLayerName.
 
virtual void ioParam_writeStep (enum ParamsIOFlag ioFlag)
 writeStep: Specifies how often to output a pvp file for this layer More...
 
virtual void ioParam_initialWriteTime (enum ParamsIOFlag ioFlag)
 initialWriteTime: Specifies the first timestep to start outputing pvp files
 
virtual void ioParam_sparseLayer (enum ParamsIOFlag ioFlag)
 sparseLayer: Specifies if the layer should be considered sparese for optimization and output
 
virtual void ioParam_writeSparseValues (enum ParamsIOFlag ioFlag)
 writeSparseValues: No longer used.
 

HyPerConn Parameters

List of parameters needed from the HyPerLCALayer class

virtual void ioParam_timeConstantTau (enum ParamsIOFlag ioFlag)
 timeConstantTau: the time constant tau for the LCA dynamics, which models the equation dV/dt = 1/tau*(-V+s*A+GSyn)
 
virtual void ioParam_selfInteract (enum ParamsIOFlag ioFlag)
 timeConstantTau: the self-interaction coefficient s for the LCA dynamics, which models the equation dV/dt = 1/tau*(-V+s*A+GSyn)
 
virtual void ioParam_adaptiveTimeScaleProbe (enum ParamsIOFlag ioFlag)
 adaptiveTimeScaleProbe: If using adaptive timesteps, the name of the AdaptiveTimeScaleProbe that will compute the dt values.
 

Public Member Functions

 HyPerLCALayer (const char *name, HyPerCol *hc)
 
virtual bool activityIsSpiking () override
 
virtual double addGpuTimers ()
 
void addRecvConn (BaseConnection *conn)
 
Response::Status callUpdateState (double simTime, double dt)
 
void clearProgressFlags ()
 
void copyAllActivityFromDevice ()
 
void copyAllGSynFromDevice ()
 
void copyAllGSynToDevice ()
 
void copyAllVFromDevice ()
 
float * getActivity ()
 
float getAMax () const
 
float getAMin () const
 
float getAShift () const
 
float * getChannel (ChannelType ch)
 
PVLayergetCLayer ()
 
bool getDataStructuresAllocatedFlag () const
 
PVDataType getDataType ()
 
virtual double getDeltaTriggerTime ()
 
virtual double getDeltaUpdateTime () override
 
std::string const & getDescription () const
 
char const * getDescription_c () const
 
PVCuda::CudaBuffer * getDeviceActiveIndices ()
 
PVCuda::CudaBuffer * getDeviceActivity ()
 
PVCuda::CudaBuffer * getDeviceDatastore ()
 
PVCuda::CudaBuffer * getDeviceGSyn ()
 
PVCuda::CudaBuffer * getDeviceNumActive ()
 
PVCuda::CudaBuffer * getDeviceV ()
 
bool getInitialValuesSetFlag () const
 
bool getInitInfoCommunicatedFlag () const
 
double getLastUpdateTime ()
 
const float * getLayerData (int delay=0)
 
PVLayerLoc const * getLayerLoc () const
 
MPIBlock const * getMPIBlock ()
 
char const * getName () const
 
double getNextUpdateTime ()
 
int getNumChannels ()
 
int getNumDelayLevels ()
 
int getNumExtended ()
 
int getNumExtendedAllBatches ()
 
int getNumGlobalExtended ()
 
int getNumGlobalNeurons ()
 
int getNumNeurons ()
 
int getNumNeuronsAllBatches ()
 
int getNumProbes ()
 
int getNumVertices () const
 
std::string const & getObjectType () const
 
int getPhase ()
 
LayerProbegetProbe (int n)
 
PublishergetPublisher ()
 
float getSlopeNegInf () const
 
float getSlopePosInf () const
 
bool getSparseFlag ()
 
virtual double getTimeScale (int batchIdx)
 
bool getUpdatedDeviceActivityFlag ()
 
bool getUpdatedDeviceDatastoreFlag ()
 
bool getUpdatedDeviceGSynFlag ()
 
float * getV ()
 
float getValueBC ()
 
float getVertexA (int n) const
 
float getVertexV (int n) const
 
float getVThresh () const
 
float getVWidth () const
 
int getXScale ()
 
int getYScale ()
 
int increaseDelayLevels (int neededDelay)
 
virtual int insertProbe (LayerProbe *probe)
 
void ioParams (enum ParamsIOFlag ioFlag, bool printHeader, bool printFooter)
 
bool isExchangeFinished (int delay=0)
 
bool isExtended ()
 
bool isUsingGPU () const
 
bool layerListsVerticesInParams () const
 
char const * lookupKeyword () const
 
int mirrorInteriorToBorder (PVLayerCube *cube, PVLayerCube *borderCube)
 
virtual int mirrorToEast (PVLayerCube *dest, PVLayerCube *src)
 
virtual int mirrorToNorth (PVLayerCube *dest, PVLayerCube *src)
 
virtual int mirrorToNorthEast (PVLayerCube *dest, PVLayerCube *src)
 
virtual int mirrorToNorthWest (PVLayerCube *dest, PVLayerCube *src)
 
virtual int mirrorToSouth (PVLayerCube *dest, PVLayerCube *src)
 
virtual int mirrorToSouthEast (PVLayerCube *dest, PVLayerCube *src)
 
virtual int mirrorToSouthWest (PVLayerCube *dest, PVLayerCube *src)
 
virtual int mirrorToWest (PVLayerCube *dest, PVLayerCube *src)
 
virtual bool needUpdate (double simTime, double dt)
 
Response::Status outputProbeParams ()
 
virtual Response::Status outputState (double timef)
 
virtual int publish (Communicator *comm, double simTime)
 
void readParams ()
 
virtual int recvAllSynapticInput ()
 
virtual int requireChannel (int channelNeeded, int *numChannelsResult) override
 
virtual int requireMarginWidth (int marginWidthNeeded, int *marginWidthResult, char axis)
 
int resetBuffer (float *buf, int numItems)
 
virtual Response::Status respond (std::shared_ptr< BaseMessage const > message) override
 
Response::Status respondLayerAdvanceDataStore (std::shared_ptr< LayerAdvanceDataStoreMessage const > message)
 
Response::Status respondLayerCheckNotANumber (std::shared_ptr< LayerCheckNotANumberMessage const > message)
 
Response::Status respondLayerClearProgressFlags (std::shared_ptr< LayerClearProgressFlagsMessage const > message)
 
Response::Status respondLayerCopyFromGpu (std::shared_ptr< LayerCopyFromGpuMessage const > message)
 
Response::Status respondLayerOutputState (std::shared_ptr< LayerOutputStateMessage const > message)
 
Response::Status respondLayerProbeWriteParams (std::shared_ptr< LayerProbeWriteParamsMessage const > message)
 
Response::Status respondLayerPublish (std::shared_ptr< LayerPublishMessage const > message)
 
Response::Status respondLayerRecvSynapticInput (std::shared_ptr< LayerRecvSynapticInputMessage const > message)
 
Response::Status respondLayerSetMaxPhase (std::shared_ptr< LayerSetMaxPhaseMessage const > message)
 
Response::Status respondLayerUpdateState (std::shared_ptr< LayerUpdateStateMessage const > message)
 
Response::Status respondLayerWriteParams (std::shared_ptr< LayerWriteParamsMessage const > message)
 
void setAllocDeviceActiveIndices ()
 
void setAllocDeviceActivity ()
 
void setAllocDeviceDatastore ()
 
void setAllocDeviceGSyn ()
 
void setAllocDeviceV ()
 
void setUpdatedDeviceActivityFlag (bool in)
 
void setUpdatedDeviceDatastoreFlag (bool in)
 
void setUpdatedDeviceGSynFlag (bool in)
 
virtual void syncGpu ()
 
void synchronizeMarginWidth (HyPerLayer *layer)
 
void updateActiveIndices ()
 
virtual void updateAllActiveIndices ()
 
bool useMirrorBCs ()
 
virtual int waitOnPublish (Communicator *comm)
 
virtual int writeActivity (double timed)
 
virtual int writeActivitySparse (double timed)
 
void writeParams ()
 

Static Public Member Functions

static bool localDimensionsEqual (PVLayerLoc const *loc1, PVLayerLoc const *loc2)
 

Data Fields

PVLayerclayer
 

Protected Member Functions

void addPublisher ()
 
virtual void allocateActivity ()
 
template<typename T >
void allocateBuffer (T **buf, int bufsize, const char *bufname)
 
virtual void allocateBuffers ()
 
virtual int allocateClayerBuffers ()
 
virtual Response::Status allocateDataStructures () override
 
virtual int allocateDeviceBuffers ()
 
void allocateExtendedBuffer (float **buf, const char *bufname)
 
virtual void allocateGSyn ()
 
virtual void allocatePrevActivity ()
 
void allocateRestrictedBuffer (float **buf, const char *bufname)
 
virtual int allocateUpdateKernel () override
 
virtual void allocateV ()
 
void calcNumExtended ()
 
void checkpointPvpActivityFloat (Checkpointer *checkpointer, char const *bufferName, float *pvpBuffer, bool extended)
 
void checkpointRandState (Checkpointer *checkpointer, char const *bufferName, Random *randState, bool extendedFlag)
 
virtual int checkVertices () const
 
virtual Response::Status cleanup ()
 
virtual Response::Status communicateInitInfo (std::shared_ptr< CommunicateInitInfoMessage const > message) override
 
virtual Response::Status copyInitialStateToGPU () override
 
double * deltaTimes ()
 
template<typename T >
int freeBuffer (T **buf)
 
void freeChannels ()
 
int freeClayer ()
 
int freeExtendedBuffer (float **buf)
 
int freeRestrictedBuffer (float **buf)
 
virtual float getChannelTimeConst (enum ChannelType channel_type) override
 
virtual int initClayer ()
 
int initialize (const char *name, HyPerCol *hc)
 
virtual void initializeActivity ()
 
virtual Response::Status initializeState () override
 
virtual void initializeV ()
 
virtual int ioParamsFillGroup (enum ParamsIOFlag ioFlag) override
 
bool isAllInputReady ()
 
virtual bool needReset (double timed, double dt)
 
int openOutputStateFile (Checkpointer *checkpointer)
 
virtual Response::Status prepareCheckpointWrite ()
 
virtual Response::Status processCheckpointRead () override
 
virtual void readActivityFromCheckpoint (Checkpointer *checkpointer)
 
virtual void readDelaysFromCheckpoint (Checkpointer *checkpointer)
 
virtual Response::Status readStateFromCheckpoint (Checkpointer *checkpointer) override
 
virtual void readVFromCheckpoint (Checkpointer *checkpointer)
 
virtual Response::Status registerData (Checkpointer *checkpointer) override
 
virtual int resetGSynBuffers (double timef, double dt) override
 
virtual void resetStateOnTrigger ()
 
Response::Status respondAllocateData (std::shared_ptr< AllocateDataMessage const > message)
 
Response::Status respondCleanup (std::shared_ptr< CleanupMessage const > message)
 
Response::Status respondCommunicateInitInfo (std::shared_ptr< CommunicateInitInfoMessage const > message)
 
Response::Status respondCopyInitialStateToGPU (std::shared_ptr< CopyInitialStateToGPUMessage const > message)
 
Response::Status respondInitializeState (std::shared_ptr< InitializeStateMessage const > message)
 
Response::Status respondPrepareCheckpointWrite (std::shared_ptr< PrepareCheckpointWriteMessage const > message)
 
Response::Status respondProcessCheckpointRead (std::shared_ptr< ProcessCheckpointReadMessage const > message)
 
Response::Status respondReadStateFromCheckpoint (std::shared_ptr< ReadStateFromCheckpointMessage< Checkpointer > const > message)
 
Response::Status respondRegisterData (std::shared_ptr< RegisterDataMessage< Checkpointer > const > message)
 
Response::Status respondSetCudaDevice (std::shared_ptr< SetCudaDeviceMessage const > message)
 
virtual int runUpdateKernel ()
 
virtual int setActivity () override
 
virtual Response::Status setCudaDevice (std::shared_ptr< SetCudaDeviceMessage const > message)
 
void setDataStructuresAllocatedFlag ()
 
void setDescription ()
 
void setInitialValuesSetFlag ()
 
void setInitInfoCommunicatedFlag ()
 
int setLayerLoc (PVLayerLoc *layerLoc, float nxScale, float nyScale, int nf, int numBatches)
 
virtual Response::Status setMaxPhase (int *maxPhase)
 
int setName (char const *name)
 
virtual void setObjectType ()
 
int setParent (HyPerCol *hc)
 
void setSlopes ()
 
virtual int setVertices ()
 
void updateNBands (int numCalls)
 
virtual Response::Status updateState (double time, double dt) override
 
virtual Response::Status updateStateGpu (double time, double dt) override
 

Static Protected Member Functions

static int equalizeMargins (HyPerLayer *layer1, HyPerLayer *layer2)
 

Protected Attributes

bool allocDeviceActiveIndices
 
bool allocDeviceActivity
 
bool allocDeviceDatastore
 
bool allocDeviceGSyn
 
bool allocDeviceV
 
float AMax = FLT_MAX
 
float AMin = -FLT_MAX
 
float AShift
 
PVCuda::CudaBuffer * d_ActiveIndices
 
PVCuda::CudaBuffer * d_Activity
 
PVCuda::CudaBuffer * d_Datastore
 
PVCuda::CudaBuffer * d_dtAdapt
 
PVCuda::CudaBuffer * d_GSyn
 
PVCuda::CudaBuffer * d_numActive
 
PVCuda::CudaBuffer * d_slopes
 
PVCuda::CudaBuffer * d_V
 
PVCuda::CudaBuffer * d_verticesA
 
PVCuda::CudaBuffer * d_verticesV
 
PVDataType dataType
 
char * dataTypeString
 
std::string description
 
PVCuda::CudaTimer * gpu_recvsyn_timer
 
PVCuda::CudaTimer * gpu_update_timer
 
float ** GSyn
 
bool initializeFromCheckpointFlag = true
 
double initialWriteTime
 
char * initVTypeString = nullptr
 
Timerio_timer
 
PVCuda::CudaKernel * krUpdate
 
AdaptiveTimeScaleProbemAdaptiveTimeScaleProbe = nullptr
 
char * mAdaptiveTimeScaleProbeName = nullptr
 
int * marginIndices
 
PVCuda::CudaDevice * mCudaDevice = nullptr
 
bool mDataStructuresAllocatedFlag = false
 
std::vector< double > mDeltaTimes
 
bool mHasReceived = false
 
bool mHasUpdated = false
 
bool mInitialValuesSetFlag = false
 
bool mInitInfoCommunicatedFlag = false
 
BaseInitVmInitVObject = nullptr
 
bool mirrorBCflag
 
double mLastTriggerTime
 
double mLastUpdateTime
 
bool mNeedToPublish = true
 
std::string mObjectType
 
CheckpointableFileStreammOutputStateStream = nullptr
 
bool mRecvGpu
 
bool mUpdateGpu
 
bool mUsingGPUFlag = false
 
char * name = nullptr
 
int numChannels
 
int numDelayLevels
 
int numFeatures
 
int numMargin
 
int numProbes
 
int numSynchronizedMarginWidthLayers
 
int numVertices = 0
 
float nxScale
 
float nyScale
 
HyPerColparent = nullptr
 
int phase
 
LayerProbe ** probes
 
Timerpublish_timer
 
Publisherpublisher = nullptr
 
std::vector< BaseConnection * > recvConns
 
Timerrecvsyn_timer
 
unsigned int rngSeedBase
 
bool selfInteract
 
float slopeNegInf = 1.0f
 
float slopePosInf = 1.0f
 
float * slopes = nullptr
 
bool sparseLayer
 
HyPerLayer ** synchronizedMarginWidthLayers
 
float ** thread_gSyn
 
float timeConstantTau
 
Timertimescale_timer
 
char * triggerBehavior
 
TriggerBehaviorType triggerBehaviorType
 
bool triggerFlag
 
HyPerLayertriggerLayer
 
char * triggerLayerName
 
double triggerOffset
 
HyPerLayertriggerResetLayer
 
char * triggerResetLayerName
 
Timerupdate_timer
 
bool updatedDeviceActivity
 
bool updatedDeviceDatastore
 
bool updatedDeviceGSyn
 
float valueBC
 
float * verticesA = nullptr
 
bool verticesListInParams
 
float * verticesV = nullptr
 
float VThresh = -FLT_MAX
 
float VWidth = (float)0
 
int writeActivityCalls
 
int writeActivitySparseCalls
 
double writeStep
 
double writeTime
 
int xmargin
 
int ymargin
 

Private Member Functions

int initialize_base ()
 

Detailed Description

Definition at line 16 of file HyPerLCALayer.hpp.

Member Function Documentation

void PV::HyPerLayer::addRecvConn ( BaseConnection conn)
inherited

Adds the given connection to the vector of connections to receive input from. The connection's post-synaptic layer must be the layer for which this member function is called.

Definition at line 1235 of file HyPerLayer.cpp.

int PV::HyPerLayer::allocateDeviceBuffers ( )
protectedvirtualinherited

Allocate GPU buffers. This must be called after PVLayer data have been allocated.

Definition at line 1090 of file HyPerLayer.cpp.

void PV::HyPerLayer::allocateExtendedBuffer ( float **  buf,
const char *  bufname 
)
protectedinherited

Allocates an extended buffer (that is, buffer's length is getNumExtendedAllBatches()).

Definition at line 329 of file HyPerLayer.cpp.

void PV::HyPerLayer::allocateRestrictedBuffer ( float **  buf,
const char *  bufname 
)
protectedinherited

Allocates a restricted buffer (that is, buffer's length is getNumNeuronsAllBatches()).

Definition at line 325 of file HyPerLayer.cpp.

int PV::ANNLayer::checkVertices ( ) const
protectedvirtualinherited

ANNLayer::initialize() calls this function to perform sanity checking on the vertices. Returns PV_SUCCESS or PV_FAILURE to indicate whether the vertices are acceptable. For ANNLayer::checkVertices(), fails if the sequence of V vertices ever decreases. If the sequence of A vertices ever decreases, outputs a warning but does not fail.

Reimplemented in PV::ANNErrorLayer.

Definition at line 386 of file ANNLayer.cpp.

int PV::HyPerLayer::freeExtendedBuffer ( float **  buf)
protectedinherited

Frees a buffer created by allocateRestrictedBuffer(). Note that there is no checking whether the buffer was created by allocateExtendedBuffer(), or any other allocateBuffer()-related method.

Definition at line 256 of file HyPerLayer.cpp.

int PV::HyPerLayer::freeRestrictedBuffer ( float **  buf)
protectedinherited

Frees a buffer created by allocateRestrictedBuffer(). Note that there is no checking whether the buffer was created by allocateRestrictedBuffer(), or any other allocateBuffer()-related method.

Definition at line 254 of file HyPerLayer.cpp.

bool PV::BaseObject::getDataStructuresAllocatedFlag ( ) const
inlineinherited

Get-method for mDataStructuresAllocatedFlag, which is false on initialization and then becomes true once setDataStructuresAllocatedFlag() is called.

Definition at line 102 of file BaseObject.hpp.

double PV::HyPerLayer::getDeltaTriggerTime ( )
virtualinherited

A function to return the interval between triggering times. A negative value means that the layer never triggers (either there is no triggerLayer or the triggerLayer never updates).

Definition at line 1686 of file HyPerLayer.cpp.

double PV::HyPerLCALayer::getDeltaUpdateTime ( )
overridevirtual

A function to return the interval between times when updateState is needed.

Reimplemented from PV::HyPerLayer.

Definition at line 234 of file HyPerLCALayer.cpp.

bool PV::BaseObject::getInitialValuesSetFlag ( ) const
inlineinherited

Get-method for mInitialValuesSetFlag, which is false on initialization and then becomes true once setInitialValuesSetFlag() is called.

Definition at line 108 of file BaseObject.hpp.

bool PV::BaseObject::getInitInfoCommunicatedFlag ( ) const
inlineinherited

Get-method for mInitInfoCommunicatedFlag, which is false on initialization and then becomes true once setInitInfoCommunicatedFlag() is called.

Definition at line 95 of file BaseObject.hpp.

const float * PV::HyPerLayer::getLayerData ( int  delay = 0)
inherited

Returns the activity data for the layer. This data is in the extended space (with margins).

Definition at line 1573 of file HyPerLayer.cpp.

int PV::ANNLayer::getNumVertices ( ) const
inlineinherited

Returns the number of points in verticesV and verticesA.

Definition at line 41 of file ANNLayer.hpp.

float PV::ANNLayer::getVertexA ( int  n) const
inlineinherited

Returns the V-coordinate of the the nth vertex (zero-indexed). If n is out of bounds, returns NaN.

Definition at line 60 of file ANNLayer.hpp.

float PV::ANNLayer::getVertexV ( int  n) const
inlineinherited

Returns the V-coordinate of the the nth vertex (zero-indexed). If n is out of bounds, returns NaN.

Definition at line 47 of file ANNLayer.hpp.

void PV::HyPerLayer::ioParam_initializeFromCheckpointFlag ( enum ParamsIOFlag  ioFlag)
protectedvirtualinherited

initializeFromCheckpointFlag: If set to true, initialize using checkpoint direcgtory set in HyPerCol.

Checkpoint read directory must be set in HyPerCol to initialize from checkpoint.

Definition at line 671 of file HyPerLayer.cpp.

void PV::HyPerLayer::ioParam_InitVType ( enum ParamsIOFlag  ioFlag)
protectedvirtualinherited

initVType: Specifies how to initialize the V buffer.

Possible choices include

Further parameters are needed depending on initialization type.

Reimplemented in PV::InputLayer, PV::Retina, PV::InputRegionLayer, and PV::CloneVLayer.

Definition at line 681 of file HyPerLayer.cpp.

void PV::HyPerLayer::ioParam_nxScale ( enum ParamsIOFlag  ioFlag)
protectedvirtualinherited

nxScale: Defines the relationship between the x column size and the layer size.

Must be 2^n or 1/2^n

Definition at line 639 of file HyPerLayer.cpp.

void PV::HyPerLayer::ioParam_nyScale ( enum ParamsIOFlag  ioFlag)
protectedvirtualinherited

nyScale: Defines the relationship between the y column size and the layer size.

Must be 2^n or 1/2^n

Definition at line 643 of file HyPerLayer.cpp.

void PV::HyPerLayer::ioParam_triggerBehavior ( enum ParamsIOFlag  ioFlag)
protectedvirtualinherited

triggerBehavior: If triggerLayerName is set, this parameter specifies how the trigger is handled.

The possible values of triggerBehavior are:

  • "updateOnlyOnTrigger": updateState is called (computing activity buffer from GSyn) only on triggering timesteps. On other timesteps the layer's state remains unchanged.
  • "resetStateOnTrigger": On timesteps where the trigger occurs, the membrane potential is copied from the layer specified in triggerResetLayerName and setActivity is called. On nontriggering timesteps, updateState is called. For backward compatibility, this parameter defaults to updateOnlyOnTrigger.

Definition at line 774 of file HyPerLayer.cpp.

void PV::HyPerLayer::ioParam_triggerFlag ( enum ParamsIOFlag  ioFlag)
protectedvirtualinherited

triggerFlag: (Deprecated) Specifies if this layer is being triggered

Defaults to false. This flag is deprecated. To turn triggering off, set triggerLayer to NULL or the empty string. It is an error to set this flag to false and triggerLayer to a nonempty string.

Definition at line 724 of file HyPerLayer.cpp.

void PV::HyPerLayer::ioParam_triggerOffset ( enum ParamsIOFlag  ioFlag)
protectedvirtualinherited

triggerOffset: If triggerLayer is set, triggers <triggerOffset> timesteps before target trigger

Defaults to 0

Definition at line 761 of file HyPerLayer.cpp.

void PV::HyPerLayer::ioParam_writeStep ( enum ParamsIOFlag  ioFlag)
protectedvirtualinherited

writeStep: Specifies how often to output a pvp file for this layer

Defaults to every timestep. -1 specifies not to write at all.

Definition at line 825 of file HyPerLayer.cpp.

void PV::BaseObject::ioParams ( enum ParamsIOFlag  ioFlag,
bool  printHeader,
bool  printFooter 
)
inherited

Method for reading or writing the params from group in the parent HyPerCol's parameters. The group from params is selected using the name of the connection.

If ioFlag is set to write, the printHeader and printFooter flags control whether a header and footer for the parameter group is produces. These flags are set to true for layers, connections, and probes; and set to false for weight initializers and normalizers. If ioFlag is set to read, the printHeader and printFooter flags are ignored.

Note that ioParams is not virtual. To add parameters in a derived class, override ioParamFillGroup.

Definition at line 74 of file BaseObject.cpp.

int PV::HyPerLCALayer::ioParamsFillGroup ( enum ParamsIOFlag  ioFlag)
overrideprotectedvirtual

The function that calls all ioParam functions

Reimplemented from PV::ANNLayer.

Reimplemented in PV::MomentumLCALayer.

Definition at line 75 of file HyPerLCALayer.cpp.

bool PV::HyPerLayer::isAllInputReady ( )
protectedinherited

Returns true if each layer that delivers input to this layer has finished its MPI exchange for its delay; false if any of them has not.

Definition at line 1923 of file HyPerLayer.cpp.

bool PV::HyPerLayer::isExchangeFinished ( int  delay = 0)
inherited

Returns true if the MPI exchange for the specified delay has finished; false if it is still in process.

Definition at line 1921 of file HyPerLayer.cpp.

bool PV::BaseObject::isUsingGPU ( ) const
inlineinherited

Returns true if the object requires the GPU; false otherwise. HyPerCol will not initialize the GPU unless one of the objects in its hierarchy returns true

Definition at line 116 of file BaseObject.hpp.

bool PV::ANNLayer::layerListsVerticesInParams ( ) const
inlineinherited

Returns true if the params file specifies the transfer function using verticesV, verticesA, slopeNegInf, and slopePosInf. Returns false otherwise, in which case the above parameters are computed internally from VThresh, AMin, AMax, AShift, and VWidth.

Definition at line 30 of file ANNLayer.hpp.

char const * PV::BaseObject::lookupKeyword ( ) const
inherited

Look up the keyword of the params group with the same name as the object.

Definition at line 42 of file BaseObject.cpp.

bool PV::HyPerLayer::needReset ( double  timed,
double  dt 
)
protectedvirtualinherited

Returns true if the trigger behavior is resetStateOnTrigger and the layer was triggered.

Definition at line 1718 of file HyPerLayer.cpp.

bool PV::HyPerLayer::needUpdate ( double  simTime,
double  dt 
)
virtualinherited

A virtual function to determine if callUpdateState method needs to be called Default behavior is dependent on the triggering method. If there is no triggering, always returns true. If there is triggering and the trigger behavior is updateOnlyOnTrigger, returns true only when there is a triggering event. If there is triggering and the trigger behavior is resetStateOnTrigger, returns true only when there is not a trigger event.

Parameters
timeThe current timestep of the run
dtThe current non-adaptive dt of the run
Returns
Returns if the update needs to happen

Reimplemented in PV::InputRegionLayer, PV::FilenameParsingGroundTruthLayer, and PV::ConstantLayer.

Definition at line 1695 of file HyPerLayer.cpp.

void PV::BaseObject::readParams ( )
inlineinherited

A method that reads the parameters for the group whose name matches the name of the object. It, along with writeParams(), is a wrapper around ioParams, so that readParams and writeParams automatically run through the same parameters in the same order.

Definition at line 62 of file BaseObject.hpp.

void PV::HyPerLayer::resetStateOnTrigger ( )
protectedvirtualinherited

Called instead of updateState when triggerBehavior is "resetStateOnTrigger" and a triggering event occurs. Copies the membrane potential V from triggerResetLayer and then calls setActivity to update A.

Definition at line 1769 of file HyPerLayer.cpp.

void PV::BaseObject::setDataStructuresAllocatedFlag ( )
inlineprotectedinherited

This method sets mDataStructuresAllocatedFlag to true.

Definition at line 175 of file BaseObject.hpp.

void PV::BaseObject::setInitialValuesSetFlag ( )
inlineprotectedinherited

This method sets the flag returned by getInitialValuesSetFlag to true.

Definition at line 180 of file BaseObject.hpp.

void PV::BaseObject::setInitInfoCommunicatedFlag ( )
inlineprotectedinherited

This method sets mInitInfoCommunicatedFlag to true.

Definition at line 170 of file BaseObject.hpp.

void PV::ANNLayer::setSlopes ( )
protectedinherited

ANNLayer::initialize() calls this function to compute the slopes between vertices.

Definition at line 359 of file ANNLayer.cpp.

int PV::ANNLayer::setVertices ( )
protectedvirtualinherited

If the params file does not specify verticesV and verticesA explicitly, ANNLayer::initialize() calls this function to compute the vertices.

Reimplemented in PV::ANNErrorLayer.

Definition at line 214 of file ANNLayer.cpp.

void PV::BaseObject::writeParams ( )
inlineinherited

A method that writes the parameters for the group whose name matches the name of the object. It, along with readParams(), is a wrapper around ioParams, so that readParams and writeParams automatically run through the same parameters in the same order.

Definition at line 69 of file BaseObject.hpp.

Field Documentation

float PV::ANNLayer::AShift
protectedinherited
Initial value:
=
(float)0

Definition at line 203 of file ANNLayer.hpp.

bool PV::ANNLayer::verticesListInParams
protectedinherited
Initial value:
=
false

Definition at line 190 of file ANNLayer.hpp.


The documentation for this class was generated from the following files: