21 #include <sharedLibraryModel.h> 22 #include <genn/genn/modelSpecInternal.h> 23 #include <genn/genn/weightUpdateModels.h> 29 using SharedLibraryModel<T>::getSymbol;
36 :
public InitSparseConnectivitySnippet::Base {
41 "const scalar u = $(gennrand_uniform);\n" 42 "x += (1.0 - x) * (1.0 - pow(u, 1.0 / (scalar)($(rowLength) - c)));\n" 43 "const unsigned int postIdx = (unsigned int)(x * $(num_post));\n" 44 "if(postIdx != $(id_pre)){\n" 45 "if(postIdx < $(num_post)) {\n" 46 " $(addSynapse, postIdx);\n" 49 " $(addSynapse, $(num_post) - 1);\n" 52 "if(c >= $(rowLength)) {\n" 55 SET_ROW_BUILD_STATE_VARS({{
"x",
"scalar", 0.0}, {
"c",
"unsigned int", 0}});
57 SET_PARAM_NAMES({
"rowLength"});
59 SET_CALC_MAX_ROW_LENGTH_FUNC([](
unsigned int,
unsigned int,
60 const std::vector<double> &pars) {
61 return (
unsigned int)pars[0];
68 :
public InitSparseConnectivitySnippet::Base {
73 "const scalar u = $(gennrand_uniform);\n" 74 "x += (1.0 - x) * (1.0 - pow(u, 1.0 / (scalar)($(rowLength) - c)));\n" 75 "const unsigned int postIdx = (unsigned int)(x * $(num_post));\n" 76 "if(postIdx < $(num_post)) {\n" 77 " $(addSynapse, postIdx);\n" 80 " $(addSynapse, $(num_post) - 1);\n" 83 "if(c >= $(rowLength)) {\n" 86 SET_ROW_BUILD_STATE_VARS({{
"x",
"scalar", 0.0}, {
"c",
"unsigned int", 0}});
88 SET_PARAM_NAMES({
"rowLength"});
90 SET_CALC_MAX_ROW_LENGTH_FUNC([](
unsigned int,
unsigned int,
91 const std::vector<double> &pars) {
92 return (
unsigned int)pars[0];
141 {
"g",
"scalar", VarAccess::READ_WRITE}
154 SET_PRE_VARS({{
"preTrace",
"scalar"}});
155 SET_POST_VARS({{
"postTrace",
"scalar"}});
158 "$(addToInSyn, $(g));\n" 159 "scalar dt = $(t) - $(sT_post);\n" 161 "const scalar update = $(Aminus) * $(postTrace) * exp(-dt / " 163 "$(g) = fmin($(Wmax), fmax($(Wmin), $(g) - (($(Wmax) - $(Wmin)) * " 168 "scalar dt = $(t) - $(sT_pre);\n" 170 "const scalar update = $(Aplus) * $(preTrace) * exp(-dt / " 172 "$(g) = fmin($(Wmax), fmax($(Wmin), $(g) + (($(Wmax) - $(Wmin)) * " 177 "const scalar dt = $(t) - $(sT_pre);\n" 178 "$(preTrace) = $(preTrace) * exp(-dt / $(tauPlus)) + 1.0;\n")
180 "const scalar dt = $(t) - $(sT_post);\n" 181 "$(postTrace) = $(postTrace) * exp(-dt / $(tauMinus)) + 1.0;\n");
183 SET_NEEDS_PRE_SPIKE_TIME(
true);
184 SET_NEEDS_POST_SPIKE_TIME(
true);
193 SET_PRE_VARS({{
"preTrace",
"scalar"}});
194 SET_POST_VARS({{
"postTrace",
"scalar"}});
207 "$(addToInSyn, $(g));\n" 208 "scalar dt = $(t) - $(sT_post);\n" 210 "const scalar update = $(Aminus) * $(postTrace) * exp(-dt / " 212 "$(g) -= ($(g) - $(Wmin)) * update;\n" 216 "scalar dt = $(t) - $(sT_pre);\n" 218 "const scalar update = $(Aplus) * $(preTrace) * exp(-dt / " 220 "$(g) += ($(Wmax) - $(g)) * update;\n" 224 "const scalar dt = $(t) - $(sT_pre);\n" 225 "$(preTrace) = $(preTrace) * exp(-dt / $(tauPlus)) + 1.0;\n")
227 "const scalar dt = $(t) - $(sT_post);\n" 228 "$(postTrace) = $(postTrace) * exp(-dt / $(tauMinus)) + 1.0;\n");
230 SET_NEEDS_PRE_SPIKE_TIME(
true);
231 SET_NEEDS_POST_SPIKE_TIME(
true);
Definition: genn_models.hpp:188
Definition: genn_models.hpp:27
IMPLEMENT_SNIPPET(FixedNumberPostWithReplacementNoAutapse)
Definition: genn_models.hpp:67
Definition: genn_models.hpp:35
Definition: genn_models.hpp:25
Definition: genn_models.hpp:138