GeNN  4.9.0
GPU enhanced Neuronal Networks (GeNN)
WeightUpdateModels::Base Class Reference

Base class for all weight update models. More...

#include <weightUpdateModels.h>

Inheritance diagram for WeightUpdateModels::Base:
Models::Base Snippet::Base WeightUpdateModels::PiecewiseSTDP WeightUpdateModels::StaticGraded WeightUpdateModels::StaticPulse WeightUpdateModels::StaticPulseDendriticDelay

Public Member Functions

virtual std::string getSimCode () const
 Gets simulation code run when 'true' spikes are received. More...
 
virtual std::string getEventCode () const
 Gets code run when events (all the instances where event threshold condition is met) are received. More...
 
virtual std::string getLearnPostCode () const
 Gets code to include in the learnSynapsesPost kernel/function. More...
 
virtual std::string getSynapseDynamicsCode () const
 Gets code for synapse dynamics which are independent of spike detection. More...
 
virtual std::string getEventThresholdConditionCode () const
 Gets codes to test for events. More...
 
virtual std::string getSimSupportCode () const
 Gets support code to be made available within the synapse kernel/function. More...
 
virtual std::string getLearnPostSupportCode () const
 Gets support code to be made available within learnSynapsesPost kernel/function. More...
 
virtual std::string getSynapseDynamicsSuppportCode () const
 Gets support code to be made available within the synapse dynamics kernel/function. More...
 
virtual std::string getPreSpikeCode () const
 
virtual std::string getPostSpikeCode () const
 
virtual std::string getPreDynamicsCode () const
 Gets code to be run after presynaptic neuron update. More...
 
virtual std::string getPostDynamicsCode () const
 Gets code to be run after postsynaptic neuron update. More...
 
virtual VarVec getPreVars () const
 
virtual VarVec getPostVars () const
 
virtual bool isPreSpikeTimeRequired () const
 Whether presynaptic spike times are needed or not. More...
 
virtual bool isPostSpikeTimeRequired () const
 Whether postsynaptic spike times are needed or not. More...
 
virtual bool isPreSpikeEventTimeRequired () const
 Whether presynaptic spike-like-event times are needed or not. More...
 
virtual bool isPrevPreSpikeTimeRequired () const
 Whether PREVIOUS presynaptic spike times are needed or not. More...
 
virtual bool isPrevPostSpikeTimeRequired () const
 Whether PREVIOUS postsynaptic spike times are needed or not. More...
 
virtual bool isPrevPreSpikeEventTimeRequired () const
 Whether PREVIOUS presynaptic spike-like-event times are needed or not. More...
 
size_t getPreVarIndex (const std::string &varName) const
 Find the index of a named presynaptic variable. More...
 
size_t getPostVarIndex (const std::string &varName) const
 Find the index of a named postsynaptic variable. More...
 
boost::uuids::detail::sha1::digest_type getHashDigest () const
 Update hash from model. More...
 
void validate () const
 Validate names of parameters etc. More...
 
- Public Member Functions inherited from Models::Base
virtual VarVec getVars () const
 Gets names and types (as strings) of model variables. More...
 
size_t getVarIndex (const std::string &varName) const
 Find the index of a named variable. More...
 
- Public Member Functions inherited from Snippet::Base
virtual ~Base ()
 
virtual StringVec getParamNames () const
 Gets names of of (independent) model parameters. More...
 
virtual DerivedParamVec getDerivedParams () const
 
virtual EGPVec getExtraGlobalParams () const
 
size_t getExtraGlobalParamIndex (const std::string &paramName) const
 Find the index of a named extra global parameter. More...
 

Additional Inherited Members

- Public Types inherited from Models::Base
typedef std::vector< VarVarVec
 
typedef std::vector< VarRefVarRefVec
 
typedef std::vector< EGPRefEGPRefVec
 
- Public Types inherited from Snippet::Base
typedef std::vector< std::string > StringVec
 
typedef std::vector< EGPEGPVec
 
typedef std::vector< ParamValParamValVec
 
typedef std::vector< DerivedParamDerivedParamVec
 
- Protected Member Functions inherited from Models::Base
void updateHash (boost::uuids::detail::sha1 &hash) const
 
void validate () const
 Validate names of parameters etc. More...
 
- Protected Member Functions inherited from Snippet::Base
void updateHash (boost::uuids::detail::sha1 &hash) const
 
void validate () const
 Validate names of parameters etc. More...
 
- Static Protected Member Functions inherited from Snippet::Base
template<typename T >
static size_t getNamedVecIndex (const std::string &name, const std::vector< T > &vec)
 

Detailed Description

Base class for all weight update models.

Member Function Documentation

◆ getEventCode()

virtual std::string WeightUpdateModels::Base::getEventCode ( ) const
inlinevirtual

Gets code run when events (all the instances where event threshold condition is met) are received.

Reimplemented in WeightUpdateModels::StaticGraded.

◆ getEventThresholdConditionCode()

virtual std::string WeightUpdateModels::Base::getEventThresholdConditionCode ( ) const
inlinevirtual

Gets codes to test for events.

Reimplemented in WeightUpdateModels::StaticGraded.

◆ getHashDigest()

boost::uuids::detail::sha1::digest_type WeightUpdateModels::Base::getHashDigest ( ) const

Update hash from model.

◆ getLearnPostCode()

virtual std::string WeightUpdateModels::Base::getLearnPostCode ( ) const
inlinevirtual

Gets code to include in the learnSynapsesPost kernel/function.

For examples when modelling STDP, this is where the effect of postsynaptic spikes which occur after presynaptic spikes are applied.

Reimplemented in WeightUpdateModels::PiecewiseSTDP.

◆ getLearnPostSupportCode()

virtual std::string WeightUpdateModels::Base::getLearnPostSupportCode ( ) const
inlinevirtual

Gets support code to be made available within learnSynapsesPost kernel/function.

Preprocessor defines are also allowed if appropriately safeguarded against multiple definition by using ifndef; functions should be declared as "__host__ __device__" to be available for both GPU and CPU versions.

◆ getPostDynamicsCode()

virtual std::string WeightUpdateModels::Base::getPostDynamicsCode ( ) const
inlinevirtual

Gets code to be run after postsynaptic neuron update.

This is typically for the code to update postsynaptic variables. Presynaptic and synapse variables are not accesible from within this code

◆ getPostSpikeCode()

virtual std::string WeightUpdateModels::Base::getPostSpikeCode ( ) const
inlinevirtual

Gets code to be run once per spiking postsynaptic neuron before learn post code is run on synapses

This is typically for the code to update postsynaptic variables. Presynaptic and synapse variables are not accesible from within this code

◆ getPostVarIndex()

size_t WeightUpdateModels::Base::getPostVarIndex ( const std::string &  varName) const
inline

Find the index of a named postsynaptic variable.

◆ getPostVars()

virtual VarVec WeightUpdateModels::Base::getPostVars ( ) const
inlinevirtual

Gets names and types (as strings) of state variables that are common across all synapses going to the same postsynaptic neuron

◆ getPreDynamicsCode()

virtual std::string WeightUpdateModels::Base::getPreDynamicsCode ( ) const
inlinevirtual

Gets code to be run after presynaptic neuron update.

This is typically for the code to update presynaptic variables. Postsynaptic and synapse variables are not accesible from within this code

◆ getPreSpikeCode()

virtual std::string WeightUpdateModels::Base::getPreSpikeCode ( ) const
inlinevirtual

Gets code to be run once per spiking presynaptic neuron before sim code is run on synapses

This is typically for the code to update presynaptic variables. Postsynaptic and synapse variables are not accesible from within this code

◆ getPreVarIndex()

size_t WeightUpdateModels::Base::getPreVarIndex ( const std::string &  varName) const
inline

Find the index of a named presynaptic variable.

◆ getPreVars()

virtual VarVec WeightUpdateModels::Base::getPreVars ( ) const
inlinevirtual

Gets names and types (as strings) of state variables that are common across all synapses coming from the same presynaptic neuron

◆ getSimCode()

virtual std::string WeightUpdateModels::Base::getSimCode ( ) const
inlinevirtual

Gets simulation code run when 'true' spikes are received.

Reimplemented in WeightUpdateModels::PiecewiseSTDP, WeightUpdateModels::StaticPulseDendriticDelay, and WeightUpdateModels::StaticPulse.

◆ getSimSupportCode()

virtual std::string WeightUpdateModels::Base::getSimSupportCode ( ) const
inlinevirtual

Gets support code to be made available within the synapse kernel/function.

This is intended to contain user defined device functions that are used in the weight update code. Preprocessor defines are also allowed if appropriately safeguarded against multiple definition by using ifndef; functions should be declared as "__host__ __device__" to be available for both GPU and CPU versions; note that this support code is available to sim, event threshold and event code

◆ getSynapseDynamicsCode()

virtual std::string WeightUpdateModels::Base::getSynapseDynamicsCode ( ) const
inlinevirtual

Gets code for synapse dynamics which are independent of spike detection.

◆ getSynapseDynamicsSuppportCode()

virtual std::string WeightUpdateModels::Base::getSynapseDynamicsSuppportCode ( ) const
inlinevirtual

Gets support code to be made available within the synapse dynamics kernel/function.

Preprocessor defines are also allowed if appropriately safeguarded against multiple definition by using ifndef; functions should be declared as "__host__ __device__" to be available for both GPU and CPU versions.

◆ isPostSpikeTimeRequired()

virtual bool WeightUpdateModels::Base::isPostSpikeTimeRequired ( ) const
inlinevirtual

Whether postsynaptic spike times are needed or not.

Reimplemented in WeightUpdateModels::PiecewiseSTDP.

◆ isPreSpikeEventTimeRequired()

virtual bool WeightUpdateModels::Base::isPreSpikeEventTimeRequired ( ) const
inlinevirtual

Whether presynaptic spike-like-event times are needed or not.

◆ isPreSpikeTimeRequired()

virtual bool WeightUpdateModels::Base::isPreSpikeTimeRequired ( ) const
inlinevirtual

Whether presynaptic spike times are needed or not.

Reimplemented in WeightUpdateModels::PiecewiseSTDP.

◆ isPrevPostSpikeTimeRequired()

virtual bool WeightUpdateModels::Base::isPrevPostSpikeTimeRequired ( ) const
inlinevirtual

Whether PREVIOUS postsynaptic spike times are needed or not.

◆ isPrevPreSpikeEventTimeRequired()

virtual bool WeightUpdateModels::Base::isPrevPreSpikeEventTimeRequired ( ) const
inlinevirtual

Whether PREVIOUS presynaptic spike-like-event times are needed or not.

◆ isPrevPreSpikeTimeRequired()

virtual bool WeightUpdateModels::Base::isPrevPreSpikeTimeRequired ( ) const
inlinevirtual

Whether PREVIOUS presynaptic spike times are needed or not.

◆ validate()

void WeightUpdateModels::Base::validate ( ) const

Validate names of parameters etc.


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