16 const std::vector<std::reference_wrapper<const CustomUpdateInternal>> &groups);
21 bool isParamHeterogeneous(
size_t index)
const;
22 bool isDerivedParamHeterogeneous(
size_t index)
const;
24 boost::uuids::detail::sha1::digest_type getHashDigest()
const;
30 generateRunnerBase(backend, definitionsInternal, definitionsInternalFunc, definitionsInternalVar,
31 runnerVarDecl, runnerMergedStructAlloc, name);
37 std::string getVarRefIndex(
bool delay,
VarAccessDuplication varDuplication,
const std::string &index)
const;
42 static const std::string
name;
54 bool isParamHeterogeneous(
size_t index)
const;
55 bool isDerivedParamHeterogeneous(
size_t index)
const;
57 boost::uuids::detail::sha1::digest_type getHashDigest()
const;
82 const std::vector<std::reference_wrapper<const CustomUpdateWUInternal>> &groups);
98 const std::vector<std::reference_wrapper<const CustomUpdateWUInternal>> &groups)
110 generateRunnerBase(backend, definitionsInternal, definitionsInternalFunc, definitionsInternalVar,
111 runnerVarDecl, runnerMergedStructAlloc, name);
129 const std::vector<std::reference_wrapper<const CustomUpdateWUInternal>> &groups)
141 generateRunnerBase(backend, definitionsInternal, definitionsInternalFunc, definitionsInternalVar,
142 runnerVarDecl, runnerMergedStructAlloc, name);
Definition: customUpdateGroupMerged.h:12
void genKernelIndex(const G *group, std::ostream &os, const CodeGenerator::Substitutions &subs, K getKernelSizeFn)
Definition: codeGenUtils.h:180
#define GENN_EXPORT
Definition: gennExport.h:13
void generateRunner(const BackendBase &backend, CodeStream &definitionsInternal, CodeStream &definitionsInternalFunc, CodeStream &definitionsInternalVar, CodeStream &runnerVarDecl, CodeStream &runnerMergedStructAlloc) const
Definition: customUpdateGroupMerged.h:26
bool isKernelSizeHeterogeneous(size_t dimensionIndex) const
Is kernel size heterogeneous in this dimension?
Definition: customUpdateGroupMerged.h:63
Definition: modelSpecMerged.h:31
Helper class for generating code - automatically inserts brackets, indents etc.
Definition: backendBase.h:30
void generateRunner(const BackendBase &backend, CodeStream &definitionsInternal, CodeStream &definitionsInternalFunc, CodeStream &definitionsInternalVar, CodeStream &runnerVarDecl, CodeStream &runnerMergedStructAlloc) const
Definition: customUpdateGroupMerged.h:137
void generateRunner(const BackendBase &backend, CodeStream &definitionsInternal, CodeStream &definitionsInternalFunc, CodeStream &definitionsInternalVar, CodeStream &runnerVarDecl, CodeStream &runnerMergedStructAlloc) const
Definition: customUpdateGroupMerged.h:106
Definition: groupMerged.h:33
Definition: codeStream.h:21
const SynapseGroupInternal * getSynapseGroup() const
Definition: customUpdate.h:278
Definition: substitutions.h:21
Definition: customUpdateGroupMerged.h:48
CustomUpdateTransposeWUGroupMerged(size_t index, const std::string &precision, const std::string &timePrecision, const BackendBase &backend, const std::vector< std::reference_wrapper< const CustomUpdateWUInternal >> &groups)
Definition: customUpdateGroupMerged.h:128
const std::vector< unsigned int > & getKernelSize() const
Definition: synapseGroup.h:130
static const std::string name
Definition: customUpdateGroupMerged.h:42
Definition: backendBase.h:176
GENN_EXPORT void generateCustomUpdate(const filesystem::path &outputPath, const ModelSpecMerged &modelMerged, const BackendBase &backend, const std::string &suffix="")
Definition: generateModules.cc:206
bool isKernelSizeHeterogeneous(const G *group, size_t dimensionIndex, K getKernelSizeFn)
Definition: codeGenUtils.h:152
Definition: customUpdateInternal.h:41
static const std::string name
Definition: customUpdateGroupMerged.h:150
CustomUpdateWUGroupMerged(size_t index, const std::string &precision, const std::string &timePrecision, const BackendBase &backend, const std::vector< std::reference_wrapper< const CustomUpdateWUInternal >> &groups)
Definition: customUpdateGroupMerged.h:97
std::string getKernelSize(const G *group, size_t dimensionIndex, K getKernelSizeFn)
Definition: codeGenUtils.h:167
Definition: customUpdateGroupMerged.h:125
std::string getKernelSize(size_t dimensionIndex) const
Get expression for kernel size in dimension (may be literal or group->kernelSizeXXX) ...
Definition: customUpdateGroupMerged.h:69
VarAccessDuplication
Flags defining how variables should be duplicated across multiple batches.
Definition: varAccess.h:28
static const std::string name
Definition: customUpdateGroupMerged.h:119
Definition: customUpdateGroupMerged.h:94
void genKernelIndex(std::ostream &os, const CodeGenerator::Substitutions &subs) const
Generate an index into a kernel based on the id_kernel_XXX variables in subs.
Definition: customUpdateGroupMerged.h:75