15 const std::vector<std::reference_wrapper<const NeuronGroupInternal>> &groups);
21 bool isInSynWUMParamHeterogeneous(
size_t childIndex,
size_t paramIndex)
const;
24 bool isInSynWUMDerivedParamHeterogeneous(
size_t childIndex,
size_t paramIndex)
const;
27 bool isOutSynWUMParamHeterogeneous(
size_t childIndex,
size_t paramIndex)
const;
30 bool isOutSynWUMDerivedParamHeterogeneous(
size_t childIndex,
size_t paramIndex)
const;
39 boost::uuids::detail::sha1::digest_type getHashDigest()
const;
45 generateRunnerBase(backend, definitionsInternal, definitionsInternalFunc, definitionsInternalVar,
46 runnerVarDecl, runnerMergedStructAlloc, name);
55 std::string getVarIndex(
unsigned int batchSize,
VarAccessDuplication varDuplication,
const std::string &index)
const;
56 std::string getReadVarIndex(
bool delay,
unsigned int batchSize,
VarAccessDuplication varDuplication,
const std::string &index)
const;
57 std::string getWriteVarIndex(
bool delay,
unsigned int batchSize,
VarAccessDuplication varDuplication,
const std::string &index)
const;
62 static const std::string
name;
69 void generateWUVar(
const BackendBase &backend,
const std::string &fieldPrefixStem,
70 const std::vector<std::vector<SynapseGroupInternal*>> &sortedSyn,
77 bool isInSynWUMParamReferenced(
size_t childIndex,
size_t paramIndex)
const;
80 bool isInSynWUMDerivedParamReferenced(
size_t childIndex,
size_t paramIndex)
const;
83 bool isOutSynWUMParamReferenced(
size_t childIndex,
size_t paramIndex)
const;
86 bool isOutSynWUMDerivedParamReferenced(
size_t childIndex,
size_t paramIndex)
const;
88 void addNeuronModelSubstitutions(
Substitutions &substitution,
const std::string &sourceSuffix =
"",
const std::string &destSuffix =
"")
const;
91 const std::string &fieldPrefixStem,
const std::string &precision,
const std::string &sourceSuffix,
92 bool useLocalNeuronVars,
unsigned int batchSize,
93 const std::vector<SynapseGroupInternal*> &archetypeSyn,
103 std::vector<std::vector<SynapseGroupInternal *>> m_SortedInSynWithPostCode;
104 std::vector<std::vector<SynapseGroupInternal *>> m_SortedOutSynWithPreCode;
static const std::string name
Definition: neuronUpdateGroupMerged.h:62
std::vector< Var > VarVec
Definition: models.h:115
#define GENN_EXPORT
Definition: gennExport.h:13
const std::vector< SynapseGroupInternal * > & getSortedArchetypeOutSynWithPreCode() const
Get sorted vectors of outgoing synapse groups with presynaptic code belonging to archetype group...
Definition: neuronUpdateGroupMerged.h:36
Definition: modelSpecMerged.h:31
Helper class for generating code - automatically inserts brackets, indents etc.
Definition: backendBase.h:30
Definition: synapseGroupInternal.h:9
Definition: codeStream.h:21
Definition: substitutions.h:21
Base class for all weight update models.
Definition: weightUpdateModels.h:46
Definition: backendBase.h:176
GENN_EXPORT void generateNeuronUpdate(const filesystem::path &outputPath, const ModelSpecMerged &modelMerged, const BackendBase &backend, const std::string &suffix="")
Definition: generateModules.cc:177
void generateRunner(const BackendBase &backend, CodeStream &definitionsInternal, CodeStream &definitionsInternalFunc, CodeStream &definitionsInternalVar, CodeStream &runnerVarDecl, CodeStream &runnerMergedStructAlloc) const
Definition: neuronUpdateGroupMerged.h:41
Definition: groupMerged.h:583
Definition: neuronUpdateGroupMerged.h:11
const std::vector< SynapseGroupInternal * > & getSortedArchetypeInSynWithPostCode() const
Get sorted vectors of incoming synapse groups with postsynaptic code belonging to archetype group...
Definition: neuronUpdateGroupMerged.h:33
VarAccessDuplication
Flags defining how variables should be duplicated across multiple batches.
Definition: varAccess.h:28
std::function< void(CodeStream &, const T &, Substitutions &)> GroupHandler
Definition: backendBase.h:187