|
| PostsynapticUpdateGroupMerged (size_t index, const std::string &precision, const std::string &timePrecision, const BackendBase &backend, const std::vector< std::reference_wrapper< const SynapseGroupInternal >> &groups) |
|
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 | generateSynapseUpdate (const BackendBase &backend, CodeStream &os, const ModelSpecMerged &modelMerged, Substitutions &popSubs) const |
|
bool | isWUParamHeterogeneous (size_t paramIndex) const |
| Should the weight update model parameter be implemented heterogeneously? More...
|
|
bool | isWUDerivedParamHeterogeneous (size_t paramIndex) const |
| Should the weight update model derived parameter be implemented heterogeneously? More...
|
|
bool | isWUGlobalVarHeterogeneous (size_t varIndex) const |
| Should the GLOBALG weight update model variable be implemented heterogeneously? More...
|
|
bool | isWUVarInitParamHeterogeneous (size_t varIndex, size_t paramIndex) const |
| Should the weight update model variable initialization parameter be implemented heterogeneously? More...
|
|
bool | isWUVarInitDerivedParamHeterogeneous (size_t varIndex, size_t paramIndex) const |
| Should the weight update model variable initialization derived parameter be implemented heterogeneously? More...
|
|
bool | isSparseConnectivityInitParamHeterogeneous (size_t paramIndex) const |
| Should the sparse connectivity initialization parameter be implemented heterogeneously? More...
|
|
bool | isSparseConnectivityInitDerivedParamHeterogeneous (size_t paramIndex) const |
| Should the sparse connectivity initialization parameter be implemented heterogeneously? More...
|
|
bool | isToeplitzConnectivityInitParamHeterogeneous (size_t paramIndex) const |
| Should the Toeplitz connectivity initialization parameter be implemented heterogeneously? More...
|
|
bool | isToeplitzConnectivityInitDerivedParamHeterogeneous (size_t paramIndex) const |
| Should the Toeplitz connectivity initialization parameter be implemented heterogeneously? More...
|
|
bool | isSrcNeuronParamHeterogeneous (size_t paramIndex) const |
| Is presynaptic neuron parameter heterogeneous? More...
|
|
bool | isSrcNeuronDerivedParamHeterogeneous (size_t paramIndex) const |
| Is presynaptic neuron derived parameter heterogeneous? More...
|
|
bool | isTrgNeuronParamHeterogeneous (size_t paramIndex) const |
| Is postsynaptic neuron parameter heterogeneous? More...
|
|
bool | isTrgNeuronDerivedParamHeterogeneous (size_t paramIndex) const |
| Is postsynaptic neuron derived parameter heterogeneous? More...
|
|
bool | isKernelSizeHeterogeneous (size_t dimensionIndex) const |
| Is kernel size heterogeneous in this dimension? More...
|
|
std::string | getKernelSize (size_t dimensionIndex) const |
| Get expression for kernel size in dimension (may be literal or group->kernelSizeXXX) More...
|
|
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. More...
|
|
std::string | getPreSlot (unsigned int batchSize) const |
|
std::string | getPostSlot (unsigned int batchSize) const |
|
std::string | getPreVarIndex (unsigned int batchSize, VarAccessDuplication varDuplication, const std::string &index) const |
|
std::string | getPostVarIndex (unsigned int batchSize, VarAccessDuplication varDuplication, const std::string &index) const |
|
std::string | getPreWUVarIndex (unsigned int batchSize, VarAccessDuplication varDuplication, const std::string &index) const |
|
std::string | getPostWUVarIndex (unsigned int batchSize, VarAccessDuplication varDuplication, const std::string &index) const |
|
std::string | getPostDenDelayIndex (unsigned int batchSize, const std::string &index, const std::string &offset) const |
|
std::string | getPreVarIndex (bool delay, unsigned int batchSize, VarAccessDuplication varDuplication, const std::string &index) const |
|
std::string | getPostVarIndex (bool delay, unsigned int batchSize, VarAccessDuplication varDuplication, const std::string &index) const |
|
std::string | getPrePrevSpikeTimeIndex (bool delay, unsigned int batchSize, VarAccessDuplication varDuplication, const std::string &index) const |
|
std::string | getPostPrevSpikeTimeIndex (bool delay, unsigned int batchSize, VarAccessDuplication varDuplication, const std::string &index) const |
|
std::string | getPostISynIndex (unsigned int batchSize, const std::string &index) const |
|
std::string | getPreISynIndex (unsigned int batchSize, const std::string &index) const |
|
std::string | getSynVarIndex (unsigned int batchSize, VarAccessDuplication varDuplication, const std::string &index) const |
|
std::string | getKernelVarIndex (unsigned int batchSize, 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...
|
|
|
enum | FieldType |
|
typedef SynapseGroupInternal | GroupInternal |
|
typedef std::function< std::string(const SynapseGroupInternal &, size_t)> | GetFieldValueFunc |
|
typedef std::tuple< std::string, std::string, GetFieldValueFunc, FieldType > | Field |
|
enum | Role {
Role::PresynapticUpdate,
Role::PostsynapticUpdate,
Role::SynapseDynamics,
Role::Init,
Role::SparseInit,
Role::ConnectivityInit
} |
|
| SynapseGroupMergedBase (size_t index, const std::string &precision, const std::string &timePrecision, const BackendBase &backend, Role role, const std::string &archetypeCode, const std::vector< std::reference_wrapper< const SynapseGroupInternal >> &groups) |
|
boost::uuids::detail::sha1::digest_type | getHashDigest (Role role) const |
|
const std::string & | getArchetypeCode () const |
|
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 |
|