![]() |
GeNN
4.9.0
GPU enhanced Neuronal Networks (GeNN)
|
#include <customUpdateGroupMerged.h>
Public Member Functions | |
CustomUpdateGroupMerged (size_t index, const std::string &precision, const std::string &, const BackendBase &backend, const std::vector< std::reference_wrapper< const CustomUpdateInternal >> &groups) | |
bool | isParamHeterogeneous (size_t index) const |
bool | isDerivedParamHeterogeneous (size_t index) const |
boost::uuids::detail::sha1::digest_type | getHashDigest () const |
void | generateRunner (const BackendBase &backend, CodeStream &definitionsInternal, CodeStream &definitionsInternalFunc, CodeStream &definitionsInternalVar, CodeStream &runnerVarDecl, CodeStream &runnerMergedStructAlloc) const |
void | generateCustomUpdate (const BackendBase &backend, CodeStream &os, const ModelSpecMerged &modelMerged, Substitutions &popSubs) const |
std::string | getVarIndex (VarAccessDuplication varDuplication, const std::string &index) const |
std::string | getVarRefIndex (bool delay, VarAccessDuplication varDuplication, const std::string &index) const |
![]() | |
GroupMerged (size_t index, const std::string &precision, const std::vector< std::reference_wrapper< const GroupInternal >> groups) | |
size_t | getIndex () const |
const GroupInternal & | getArchetype () const |
Get 'archetype' neuron group - it's properties represent those of all other merged neuron groups. More... | |
const std::string & | getMemorySpace () const |
Get name of memory space assigned to group. More... | |
const std::vector< std::reference_wrapper< const GroupInternal > > & | getGroups () const |
Gets access to underlying vector of neuron groups which have been merged. More... | |
const std::vector< Field > & | getFields () const |
Get group fields. More... | |
std::vector< Field > | getSortedFields (const BackendBase &backend) const |
Get group fields, sorted into order they will appear in struct. More... | |
void | generateStruct (CodeStream &os, const BackendBase &backend, const std::string &name, bool host=false) const |
Generate declaration of struct to hold this merged group. More... | |
void | generateStructFieldArgumentDefinitions (CodeStream &os, const BackendBase &backend) const |
size_t | getStructArraySize (const BackendBase &backend) const |
void | assignMemorySpaces (const BackendBase &backend, BackendBase::MemorySpaces &memorySpaces) |
Assign memory spaces to group. More... | |
Static Public Attributes | |
static const std::string | name = "CustomUpdate" |
Additional Inherited Members | |
![]() | |
enum | FieldType |
typedef CustomUpdateInternal | GroupInternal |
typedef std::function< std::string(const CustomUpdateInternal &, size_t)> | GetFieldValueFunc |
typedef std::tuple< std::string, std::string, GetFieldValueFunc, FieldType > | Field |
![]() | |
bool | isParamReferenced (const std::vector< std::string > &codeStrings, const std::string ¶mName) const |
Helper to test whether parameter is referenced in vector of codestrings. More... | |
bool | isParamValueHeterogeneous (size_t index, P getParamValuesFn) const |
Helper to test whether parameter values are heterogeneous within merged group. More... | |
void | addField (const std::string &type, const std::string &name, GetFieldValueFunc getFieldValue, FieldType fieldType=FieldType::Standard) |
void | addScalarField (const std::string &name, GetFieldValueFunc getFieldValue, FieldType fieldType=FieldType::Standard) |
void | addPointerField (const std::string &type, const std::string &name, const std::string &prefix) |
void | addVars (const Models::Base::VarVec &vars, const std::string &arrayPrefix) |
void | addVarReferences (const Models::Base::VarRefVec &varReferences, const std::string &arrayPrefix, V getVarRefFn) |
void | addEGPs (const Snippet::Base::EGPVec &egps, const std::string &arrayPrefix, const std::string &varName="") |
void | addEGPReferences (const Models::Base::EGPRefVec &egpRefs, const std::string &arrayPrefix, E getEGPRefFn) |
void | addHeterogeneousParams (const Snippet::Base::StringVec ¶mNames, const std::string &suffix, P getParamValues, H isHeterogeneous) |
void | addHeterogeneousDerivedParams (const Snippet::Base::DerivedParamVec &derivedParams, const std::string &suffix, D getDerivedParamValues, H isHeterogeneous) |
void | addHeterogeneousVarInitParams (const Models::Base::VarVec &vars, V getVarInitialisers, H isHeterogeneous) |
void | addHeterogeneousVarInitDerivedParams (const Models::Base::VarVec &vars, V getVarInitialisers, H isHeterogeneous) |
void | updateHash (H getHashableFn, boost::uuids::detail::sha1 &hash) const |
Helper to update hash with the hash of calling getHashableFn on each group. More... | |
void | updateParamHash (R isParamReferencedFn, V getValueFn, boost::uuids::detail::sha1 &hash) const |
void | updateVarInitParamHash (V getVarInitialisers, R isParamReferencedFn, boost::uuids::detail::sha1 &hash) const |
void | updateVarInitDerivedParamHash (V getVarInitialisers, R isDerivedParamReferencedFn, boost::uuids::detail::sha1 &hash) const |
void | generateRunnerBase (const BackendBase &backend, CodeStream &definitionsInternal, CodeStream &definitionsInternalFunc, CodeStream &definitionsInternalVar, CodeStream &runnerVarDecl, CodeStream &runnerMergedStructAlloc, const std::string &name, bool host=false) const |
CustomUpdateGroupMerged::CustomUpdateGroupMerged | ( | size_t | index, |
const std::string & | precision, | ||
const std::string & | , | ||
const BackendBase & | backend, | ||
const std::vector< std::reference_wrapper< const CustomUpdateInternal >> & | groups | ||
) |
void CustomUpdateGroupMerged::generateCustomUpdate | ( | const BackendBase & | backend, |
CodeStream & | os, | ||
const ModelSpecMerged & | modelMerged, | ||
Substitutions & | popSubs | ||
) | const |
|
inline |
boost::uuids::detail::sha1::digest_type CustomUpdateGroupMerged::getHashDigest | ( | ) | const |
std::string CustomUpdateGroupMerged::getVarIndex | ( | VarAccessDuplication | varDuplication, |
const std::string & | index | ||
) | const |
std::string CustomUpdateGroupMerged::getVarRefIndex | ( | bool | delay, |
VarAccessDuplication | varDuplication, | ||
const std::string & | index | ||
) | const |
bool CustomUpdateGroupMerged::isDerivedParamHeterogeneous | ( | size_t | index | ) | const |
bool CustomUpdateGroupMerged::isParamHeterogeneous | ( | size_t | index | ) | const |
|
static |