diff --git a/documentation/5/_downloads/1eed1518b8928bc24e721527ef1f9970/mnist_mb_classifier.ipynb b/documentation/5/_downloads/1eed1518b8928bc24e721527ef1f9970/mnist_mb_classifier.ipynb index 2928dc2d7..a61527000 100644 --- a/documentation/5/_downloads/1eed1518b8928bc24e721527ef1f9970/mnist_mb_classifier.ipynb +++ b/documentation/5/_downloads/1eed1518b8928bc24e721527ef1f9970/mnist_mb_classifier.ipynb @@ -35,7 +35,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.8.12" + "version": "3.8.0" } }, "nbformat": 4, diff --git a/documentation/5/_downloads/26866b29b5e6aaf47b3ba4c4dbee6718/userproject_jupyter.zip b/documentation/5/_downloads/26866b29b5e6aaf47b3ba4c4dbee6718/userproject_jupyter.zip index 6664f33ff..6d4cf95b6 100644 Binary files a/documentation/5/_downloads/26866b29b5e6aaf47b3ba4c4dbee6718/userproject_jupyter.zip and b/documentation/5/_downloads/26866b29b5e6aaf47b3ba4c4dbee6718/userproject_jupyter.zip differ diff --git a/documentation/5/_downloads/3e0a0a579abc8e5181823f00a5779b71/userproject_python.zip b/documentation/5/_downloads/3e0a0a579abc8e5181823f00a5779b71/userproject_python.zip index 851c38301..cacf56dfa 100644 Binary files a/documentation/5/_downloads/3e0a0a579abc8e5181823f00a5779b71/userproject_python.zip and b/documentation/5/_downloads/3e0a0a579abc8e5181823f00a5779b71/userproject_python.zip differ diff --git a/documentation/5/_downloads/64c7fcd62013f68609d54d02d741b663/potjans_microcircuit.ipynb b/documentation/5/_downloads/64c7fcd62013f68609d54d02d741b663/potjans_microcircuit.ipynb index 2ae0ae9fc..008f11e6a 100644 --- a/documentation/5/_downloads/64c7fcd62013f68609d54d02d741b663/potjans_microcircuit.ipynb +++ b/documentation/5/_downloads/64c7fcd62013f68609d54d02d741b663/potjans_microcircuit.ipynb @@ -35,7 +35,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.8.12" + "version": "3.8.0" } }, "nbformat": 4, diff --git a/documentation/5/_downloads/f57116a727438d4e47eb66f1b799aa48/superspike_demo.ipynb b/documentation/5/_downloads/f57116a727438d4e47eb66f1b799aa48/superspike_demo.ipynb index 8263a6d20..1ff964dcb 100644 --- a/documentation/5/_downloads/f57116a727438d4e47eb66f1b799aa48/superspike_demo.ipynb +++ b/documentation/5/_downloads/f57116a727438d4e47eb66f1b799aa48/superspike_demo.ipynb @@ -35,7 +35,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.8.12" + "version": "3.8.0" } }, "nbformat": 4, diff --git a/documentation/5/_sources/sg_execution_times.rst.txt b/documentation/5/_sources/sg_execution_times.rst.txt index a0875a4e2..4957555dd 100644 --- a/documentation/5/_sources/sg_execution_times.rst.txt +++ b/documentation/5/_sources/sg_execution_times.rst.txt @@ -32,12 +32,12 @@ Computation times * - Example - Time - Mem (MB) - * - :ref:`sphx_glr_userproject_mnist_mb_classifier.py` (``..\userproject\mnist_mb_classifier.py``) + * - :ref:`sphx_glr_userproject_mnist_mb_classifier.py` (``../userproject/mnist_mb_classifier.py``) - 00:00.000 - 0.0 - * - :ref:`sphx_glr_userproject_potjans_microcircuit.py` (``..\userproject\potjans_microcircuit.py``) + * - :ref:`sphx_glr_userproject_potjans_microcircuit_pygenn.py` (``../userproject/potjans_microcircuit_pygenn.py``) - 00:00.000 - 0.0 - * - :ref:`sphx_glr_userproject_superspike_demo.py` (``..\userproject\superspike_demo.py``) + * - :ref:`sphx_glr_userproject_superspike_demo.py` (``../userproject/superspike_demo.py``) - 00:00.000 - 0.0 diff --git a/documentation/5/_sources/source/pygenn.rst.txt b/documentation/5/_sources/source/pygenn.rst.txt index a1937c5ce..6875f8b1b 100644 --- a/documentation/5/_sources/source/pygenn.rst.txt +++ b/documentation/5/_sources/source/pygenn.rst.txt @@ -73,6 +73,30 @@ pygenn.init\_var\_snippets module :undoc-members: :show-inheritance: +pygenn.libgenn\_cuda\_backend\_dynamic module +--------------------------------------------- + +.. automodule:: pygenn.libgenn_cuda_backend_dynamic + :members: + :undoc-members: + :show-inheritance: + +pygenn.libgenn\_dynamic module +------------------------------ + +.. automodule:: pygenn.libgenn_dynamic + :members: + :undoc-members: + :show-inheritance: + +pygenn.libgenn\_single\_threaded\_cpu\_backend\_dynamic module +-------------------------------------------------------------- + +.. automodule:: pygenn.libgenn_single_threaded_cpu_backend_dynamic + :members: + :undoc-members: + :show-inheritance: + pygenn.model\_preprocessor module --------------------------------- diff --git a/documentation/5/_sources/userproject/mnist_mb_classifier.rst.txt b/documentation/5/_sources/userproject/mnist_mb_classifier.rst.txt index 1705ea0ba..b5e4e8cc6 100644 --- a/documentation/5/_sources/userproject/mnist_mb_classifier.rst.txt +++ b/documentation/5/_sources/userproject/mnist_mb_classifier.rst.txt @@ -2,7 +2,7 @@ .. DO NOT EDIT. .. THIS FILE WAS AUTOMATICALLY GENERATED BY SPHINX-GALLERY. .. TO MAKE CHANGES, EDIT THE SOURCE PYTHON FILE: -.. "userproject\mnist_mb_classifier.py" +.. "userproject/mnist_mb_classifier.py" .. LINE NUMBERS ARE GIVEN BELOW. .. only:: html diff --git a/documentation/5/_sources/userproject/potjans_microcircuit.rst.txt b/documentation/5/_sources/userproject/potjans_microcircuit.rst.txt index cd828a02f..4a0be75c8 100644 --- a/documentation/5/_sources/userproject/potjans_microcircuit.rst.txt +++ b/documentation/5/_sources/userproject/potjans_microcircuit.rst.txt @@ -2,7 +2,7 @@ .. DO NOT EDIT. .. THIS FILE WAS AUTOMATICALLY GENERATED BY SPHINX-GALLERY. .. TO MAKE CHANGES, EDIT THE SOURCE PYTHON FILE: -.. "userproject\potjans_microcircuit.py" +.. "userproject/potjans_microcircuit.py" .. LINE NUMBERS ARE GIVEN BELOW. .. only:: html diff --git a/documentation/5/_sources/userproject/superspike_demo.rst.txt b/documentation/5/_sources/userproject/superspike_demo.rst.txt index 4f260b334..816c74a21 100644 --- a/documentation/5/_sources/userproject/superspike_demo.rst.txt +++ b/documentation/5/_sources/userproject/superspike_demo.rst.txt @@ -2,7 +2,7 @@ .. DO NOT EDIT. .. THIS FILE WAS AUTOMATICALLY GENERATED BY SPHINX-GALLERY. .. TO MAKE CHANGES, EDIT THE SOURCE PYTHON FILE: -.. "userproject\superspike_demo.py" +.. "userproject/superspike_demo.py" .. LINE NUMBERS ARE GIVEN BELOW. .. only:: html diff --git a/documentation/5/bibliography.html b/documentation/5/bibliography.html index 996da7dd8..cd0bee059 100644 --- a/documentation/5/bibliography.html +++ b/documentation/5/bibliography.html @@ -3,7 +3,7 @@ - + Bibliography — PyGeNN documentation diff --git a/documentation/5/building_networks.html b/documentation/5/building_networks.html index 4117457b4..e9ea6181b 100644 --- a/documentation/5/building_networks.html +++ b/documentation/5/building_networks.html @@ -3,7 +3,7 @@ - + Building networks — PyGeNN documentation diff --git a/documentation/5/custom_models.html b/documentation/5/custom_models.html index d0a1ee5ff..63313bbd3 100644 --- a/documentation/5/custom_models.html +++ b/documentation/5/custom_models.html @@ -3,7 +3,7 @@ - + Custom models — PyGeNN documentation diff --git a/documentation/5/index.html b/documentation/5/index.html index 30531fc08..0cb5a5b38 100644 --- a/documentation/5/index.html +++ b/documentation/5/index.html @@ -3,7 +3,7 @@ - + PyGeNN documentation — PyGeNN documentation diff --git a/documentation/5/searchindex.js b/documentation/5/searchindex.js index 0f700e8a5..1f3df6e6a 100644 --- a/documentation/5/searchindex.js +++ b/documentation/5/searchindex.js @@ -1 +1 @@ -Search.setIndex({"docnames": ["bibliography", "building_networks", "custom_models", "index", "sg_execution_times", "simulating_networks", "source/modules", "source/pygenn", "upgrading", "userproject/index", "userproject/mnist_mb_classifier", "userproject/potjans_microcircuit", "userproject/sg_execution_times", "userproject/superspike_demo"], "filenames": ["bibliography.rst", "building_networks.rst", "custom_models.rst", "index.rst", "sg_execution_times.rst", "simulating_networks.rst", "source\\modules.rst", "source\\pygenn.rst", "upgrading.rst", "userproject\\index.rst", "userproject\\mnist_mb_classifier.rst", "userproject\\potjans_microcircuit.rst", "userproject\\sg_execution_times.rst", "userproject\\superspike_demo.rst"], "titles": ["Bibliography", "Building networks", "Custom models", "PyGeNN documentation", "Computation times", "Simulating networks", "pygenn", "pygenn package", "Upgrading from GeNN 4", "User projects", "MNIST classification using an insect-inspired mushroom body model", "PyGeNN implementation of local cortical microcircuit model", "Computation times", "PyGeNN implementation of SuperSpike"], "terms": {"morrison2008": [0, 2, 7], "morrison": 0, "A": [0, 1, 2], "diesmann": [0, 11], "m": [0, 1, 5, 7, 11, 13], "gerstner": 0, "w": [0, 2, 13], "2008": 0, "phenomenolog": 0, "model": [0, 3, 4, 5, 7, 8, 9, 12, 13], "synapt": [0, 1, 2, 7, 10, 11, 13], "plastic": 0, "base": [0, 1, 2, 5, 7, 13], "spike": [0, 1, 3, 10, 11, 13], "time": [0, 1, 2, 5, 7, 8, 10, 11, 13], "biolog": 0, "cybernet": 0, "98": [0, 7], "459": 0, "478": 0, "http": [0, 2], "doi": 0, "org": 0, "10": [0, 1, 5, 7, 10, 11, 13], "1007": 0, "s00422": 0, "008": [0, 11], "0233": [0, 10], "1": [0, 1, 2, 3, 5, 7, 10, 11, 13], "potjans2014": [0, 11], "potjan": [0, 11], "t": [0, 2, 5, 7, 8, 10, 11, 13], "c": [0, 1, 2, 3, 7, 10, 11, 13], "2014": 0, "The": [0, 2, 3, 5, 7, 8, 11], "cell": [0, 10, 11], "type": [0, 1, 2, 6, 11, 13], "specif": [0, 11], "cortic": [0, 4, 9, 12], "microcircuit": [0, 4, 9, 12], "relat": 0, "structur": [0, 1, 2, 8, 13], "activ": [0, 2, 11], "full": [0, 2, 7, 10, 11, 13], "scale": [0, 10, 11], "network": [0, 2, 3, 7, 10, 11, 13], "cerebr": 0, "cortex": 0, "24": 0, "3": [0, 1, 4, 7, 10, 11, 12, 13], "785": 0, "806": 0, "1093": 0, "cercor": 0, "bhs358": 0, "zenke2018": [0, 13], "zenk": [0, 13], "f": [0, 10, 11, 13], "ganguli": [0, 13], "": [0, 1, 2, 5, 7, 10, 11, 13], "2018": 0, "superspik": [0, 4, 9, 12], "supervis": [0, 10], "learn": [0, 1, 2, 3, 7, 10, 13], "multilay": 0, "neural": [0, 3], "comput": [0, 2, 7, 13], "30": [0, 2], "6": [0, 1, 7, 11], "1514": 0, "1541": 0, "1162": 0, "neco_a_01086": 0, "knight2018": [0, 2, 7], "knight": [0, 3], "j": 0, "nowotni": [0, 3], "gpu": [0, 1, 2, 3, 5, 7, 8, 10], "outperform": 0, "current": [0, 3, 5, 7, 10, 11], "hpc": 0, "neuromorph": 0, "solut": 0, "term": [0, 1, 2, 7], "speed": 0, "energi": 0, "when": [0, 1, 2, 5, 7, 8, 10], "simul": [0, 2, 3, 7, 10, 11], "highli": 0, "connect": [0, 7, 8, 10, 11], "frontier": 0, "neurosci": 0, "12": [0, 7], "decemb": 0, "19": 0, "3389": 0, "fnin": 0, "00941": 0, "i": [1, 2, 3, 5, 7, 8, 9, 10, 11, 13], "defin": [1, 2, 7, 10], "follow": [1, 2, 5, 7, 10, 11, 13], "gennmodel": [1, 2, 5, 6, 7, 8, 10, 11, 13], "must": [1, 2, 7], "creat": [1, 2, 7, 10, 11, 13], "name": [1, 2, 5, 7], "default": [1, 2, 5, 7, 10, 11, 13], "precis": [1, 2, 7, 11], "see": [1, 2, 7, 11], "ref": 1, "floatprecis": 1, "float": [1, 2, 7, 10, 11, 13], "yourmodelnam": 1, "By": [1, 2, 5, 7], "us": [0, 1, 2, 3, 4, 5, 7, 8, 9, 11, 12, 13], "hardwar": [1, 2, 3, 8], "acceler": [0, 1, 3], "code": [1, 2, 3, 5, 7, 8, 9, 10, 11, 13], "gener": [1, 3, 5, 7, 9, 10, 11, 13], "backend": [1, 5, 7], "avail": 1, "howev": [1, 2, 5, 7], "thi": [1, 2, 3, 5, 7, 8, 10, 11, 13], "can": [1, 2, 5, 7, 8, 10, 11, 13], "overriden": 1, "keyword": [1, 2, 5, 7], "argument": [1, 2, 5, 7], "For": [1, 2, 5, 7], "exampl": [1, 2, 4, 5, 7, 9, 10, 11, 12, 13], "singl": [1, 2, 5, 7, 8], "thread": [1, 2, 5, 7, 11], "cpu": [1, 2, 5, 7], "could": [1, 2, 5, 7], "manual": [1, 7], "select": 1, "single_threaded_cpu": 1, "addition": [1, 2, 5, 7], "ani": [1, 2, 5, 7], "prefer": [1, 7], "expos": [1, 2, 7], "configur": [1, 2, 7], "here": [1, 2, 7], "cuda": [1, 5], "allow": [1, 2, 7, 10, 11], "you": [1, 2, 3, 5, 7, 8], "which": [1, 2, 3, 5, 7], "devic": [1, 2, 5, 7, 10, 11], "via": [1, 2, 5, 7], "manual_device_id": [1, 7], "ar": [1, 2, 3, 5, 7, 8, 11, 13], "homogen": [1, 2], "across": [1, 2, 5, 7], "an": [1, 2, 4, 5, 7, 9, 12], "entir": 1, "dynam": [1, 13], "todo": [1, 13], "initialis": [1, 7, 8, 13], "mani": [1, 2, 10, 11], "wai": [1, 2, 7, 8], "fill": 1, "them": [1, 2, 5, 7], "constant": [1, 2, 7, 10], "valu": [1, 2, 7, 10, 11], "ini": 1, "0": [1, 2, 4, 5, 7, 10, 11, 12, 13], "0529324": 1, "copi": [1, 2, 5, 7, 10], "sequenc": [1, 2, 7], "from": [1, 2, 3, 4, 5, 7, 10, 11, 12, 13], "python": [1, 3, 5, 7, 9, 10, 11, 13], "np": [1, 2, 5, 10, 11, 13], "arang": [1, 5, 11], "400": [1, 13], "snippet": [1, 3, 7, 8], "function": [1, 2, 5, 7, 8, 11, 13], "pygenn": [1, 2, 4, 5, 8, 9, 10, 12], "init_var": [1, 6, 7, 11, 13], "param": [1, 2, 7, 10, 13], "initvarsnippetbas": [1, 7], "str": [1, 2, 7, 13], "init": [1, 7, 8, 11, 13], "either": [1, 7], "string": [1, 2, 3, 7, 8], "referenc": [1, 2, 7, 8], "built": [1, 2, 5, 7], "snipept": [1, 7], "init_var_snippet": [1, 6], "instanc": [1, 7], "return": [1, 2, 7, 10, 11, 13], "create_var_init_snippet": [1, 2, 6, 7], "dict": [1, 7], "int": [1, 2, 7, 8, 10, 11, 13], "sampl": [1, 2, 7], "normal": [1, 2, 7, 11], "distribut": [1, 2, 7, 10, 11], "mean": [1, 2, 7, 11, 13], "standard": [1, 2, 7, 10, 11], "deviat": [1, 2, 7, 11], "sd": [1, 2, 7, 11, 13], "dictionari": [1, 5, 7, 11], "same": [1, 2, 5, 7, 8], "As": [1, 2, 5, 7], "well": [1, 2, 5, 7], "variou": [1, 2], "have": [1, 2, 5, 7, 8, 13], "belong": 1, "other": [1, 2, 7, 8], "postsynapt": [1, 5, 8, 11], "attach": [1, 2, 7], "call": [1, 2, 3, 5, 7], "r": [1, 2, 7, 13], "assign": [1, 2, 7], "syntax": 1, "neuron_var_ref": [1, 2, 7], "create_var_ref": [1, 6, 7, 13], "ng": 1, "v": [1, 2, 5, 7, 10, 11, 13], "current_source_var_ref": 1, "custom_update_var_ref": 1, "cu": 1, "postsynaptic_model_var_ref": 1, "create_psm_var_ref": [1, 6, 7], "sg": [1, 7], "wu_pre_var_ref": 1, "create_wu_pre_var_ref": [1, 6, 7], "pre": 1, "wu_post_var_ref": 1, "create_wu_post_var_ref": [1, 6, 7], "post": [1, 2, 7], "where": [1, 2, 5, 7, 8], "neurongroup": [1, 5, 6, 7], "add_neuron_popul": [1, 7, 10, 11, 13], "currentsourc": [1, 2, 6, 7], "add_current_sourc": [1, 7, 10, 11], "customupd": [1, 6, 7], "add_custom_upd": [1, 7, 13], "synapsegroup": [1, 2, 5, 6, 7, 8], "add_synapse_popul": [1, 7, 8, 10, 11, 13], "while": [1, 2, 5, 7, 11, 13], "interchang": 1, "long": [1, 2, 10], "all": [1, 2, 4, 5, 7, 8, 9, 11, 13], "delai": [1, 2, 5, 7, 8, 11], "size": [1, 2, 7, 10, 13], "per": [1, 2, 5, 7, 11, 13], "weight": [1, 5, 7, 8, 10, 11, 13], "slightli": 1, "differ": [1, 2, 5, 7, 11], "wu_var_ref": 1, "create_wu_var_ref": [1, 6, 7, 13], "g": [1, 2, 5, 7, 10, 11], "cu_wu_var_ref": 1, "customupdatewu": [1, 6, 7], "oper": [1, 2, 5, 7, 8], "anoth": [1, 7], "group": [1, 5, 7, 8], "state": [1, 2, 5, 7, 8, 10], "updatebasehash": [], "These": [1, 2, 7], "also": [1, 2, 5, 7], "addit": 1, "featur": [1, 2, 8], "thei": [1, 2, 5, 7, 8], "link": 1, "transpos": [1, 7, 13], "wu_transpose_var_ref": 1, "back_sg": 1, "tranpos": [1, 13], "dimens": 1, "e": [1, 2, 5, 7, 11, 13], "its": [1, 7], "_postsynaptic_": 1, "ha": [1, 2, 5, 7], "number": [1, 3, 5, 7, 8, 10, 11, 13], "_presynaptic_": [1, 2, 7], "vice": 1, "versa": 1, "after": [1, 2, 5, 7, 10], "run": [1, 2, 5, 7], "made": [1, 5, 8], "forward": [1, 2, 7], "appli": [1, 2, 5, 11], "_": [1, 2, 5, 7, 11], "onli": [1, 2, 7, 8, 10], "possibl": [1, 2, 7, 8], "synapsematrixtyp": [1, 2, 6, 7, 8], "dens": [1, 7, 8, 10, 13], "onc": [1, 2, 5, 7, 10], "how": [1, 2, 7, 10, 11], "your": [1, 2, 5, 7], "go": [1, 10, 11, 13], "need": [1, 2, 5, 7, 8], "alloc": [1, 5, 7], "memori": [1, 2, 5, 7, 10], "both": [1, 5], "host": [1, 5], "altern": 1, "varloc": [1, 5, 6, 7, 11], "2": [0, 1, 2, 7, 10, 11, 13], "host_devic": [1, 7], "host_device_zero_copi": [1, 7], "7": [1, 7, 11], "note": [1, 3, 7, 11, 13], "zero": [1, 2, 5, 7, 13], "support": [1, 2, 3, 7, 8], "newer": 1, "embed": 1, "system": [1, 5], "jetson": 1, "tx1": 1, "physic": 1, "seper": [1, 8], "between": [1, 2, 5, 7, 11, 13], "thu": [1, 5], "share": [1, 2, 5, 7], "contain": [1, 2, 3, 7], "ad": [1, 2, 7], "pop_nam": [1, 7, 11], "num_neuron": [1, 2, 7, 11], "var": [1, 2, 5, 7, 10, 13], "add": [1, 2, 7, 8, 11, 13], "genn": [1, 2, 3, 5, 7, 9, 13], "uniqu": [1, 7, 11], "neuronmodelbas": [1, 7], "neuron_model": [1, 6], "create_neuron_model": [1, 2, 6, 7, 10, 13], "varinit": [1, 7], "ndarrai": [1, 7], "initi": [1, 2, 5, 7, 10, 13], "izhikevich": [1, 7], "set": [1, 2, 5, 7, 8, 10, 11], "tonic": [1, 7], "pop": [1, 5, 7, 10, 11], "02": [1, 2, 7], "b": [1, 5, 7], "65": [1, 7, 11], "d": [1, 7, 11, 13], "u": [1, 7, 9, 11, 13], "20": [1, 7, 10], "two": [1, 2, 7], "Their": 1, "behaviour": [1, 2, 3], "describ": [1, 2, 3, 5, 7, 8], "what": [1, 2, 3, 7], "kind": 1, "occur": [1, 2, 7], "each": [1, 2, 5, 7, 10, 13], "output": [1, 2, 7, 10, 11, 13], "deliv": [1, 2, 7, 10], "presynapt": [1, 2, 7, 13], "typic": [1, 2, 7], "init_weight_upd": [1, 6, 7, 8, 10, 11, 13], "pre_var": [1, 2, 5, 7, 13], "post_var": [1, 2, 5, 7, 13], "pre_var_ref": [1, 2, 7, 13], "post_var_ref": [1, 2, 7, 13], "weight_update_model": [1, 6], "weightupdatemodelbas": [1, 7], "create_weight_update_model": [1, 2, 6, 7, 10, 13], "varrefer": [1, 7], "static": [1, 7], "puls": [1, 7], "weight_init": [1, 7], "staticpulseconstantweight": [1, 7, 8, 10], "input": [1, 10, 11, 13], "translat": [1, 2], "init_postsynapt": [1, 6, 7, 8, 10, 11, 13], "var_ref": [1, 2, 7, 13], "postsynapticmodelbas": [1, 7], "postsynaptic_models_model": [1, 7], "create_postsynaptic_model": [1, 2, 6, 7, 13], "conduct": [1, 7], "exponenti": [1, 2, 7, 13], "shape": [1, 2, 7, 10], "postsynaptic_init": [1, 7], "expcond": [1, 7], "tau": [1, 2, 5, 7, 10, 11, 13], "80": [1, 7, 10, 13], "pop1": [1, 7], "init_sparse_connect": [1, 6, 7, 10, 11], "spars": [1, 5, 7, 8, 10, 11, 13], "initsparseconnectivitysnippetbas": [1, 7], "init_sparse_connectivity_snippet": [1, 6], "create_sparse_connect_init_snippet": [1, 2, 6, 7], "pair": [1, 2, 7], "probabl": [1, 7, 11], "fixedprob": [1, 7], "prob": [1, 7], "init_toeplitz_connect": [1, 6, 7], "init_toeplitz_connect_snippet": [1, 7], "toeplitz": [1, 7, 8], "init_toeplitz_connectivity_snippet": [1, 6], "inittoeplitzconnectivitysnippetbas": [1, 7], "create_toeplitz_connect_init_snippet": [1, 2, 6, 7], "2d": [1, 7], "convolut": [1, 2, 7], "kernel": [1, 2, 5, 7, 11, 13], "64": [1, 2, 7], "62": [1, 7], "conv_kh": [1, 7], "conv_kw": [1, 7], "conv_ih": [1, 7], "conv_iw": [1, 7], "conv_ic": [1, 7], "conv_oh": [1, 7], "conv_ow": [1, 7], "conv_oc": [1, 7], "conv2d": [1, 7], "should": [1, 2, 7, 10], "4096": [1, 7], "3844": [1, 7], "final": [1, 2, 7], "compon": 1, "place": [1, 5, 7], "matrix_typ": [1, 7, 11], "target": [1, 2, 7, 8, 11, 13], "weight_update_init": [1, 7], "connectivity_init": [1, 7], "none": [1, 2, 7, 10, 11, 13], "sparseconnectivityinit": [1, 7], "toeplitzconnectivityinit": [1, 7], "bitmask": [1, 2, 7], "procedur": [1, 2, 7, 8, 11], "procedural_kernelg": [1, 7, 8], "init_toeplitz_connectivity_connect": [1, 7], "src_pop": [1, 7, 11], "target_pop": [1, 7], "syn": [1, 2, 7], "expcurr": [1, 7, 10, 11, 13], "5": [1, 7, 8, 10, 11, 13], "cs_name": [1, 7], "current_source_model": [1, 6], "currentsourcemodelbas": [1, 7], "create_current_source_model": [1, 2, 6, 7, 10], "inject": [1, 2, 7, 10], "gaussian": [1, 7], "nois": [1, 2, 7, 13], "gaussiannois": [1, 7], "previou": [1, 2, 5, 7, 13], "section": 1, "automat": [1, 2, 7, 11], "everi": [1, 2, 7, 11, 13], "timestep": [1, 2, 5, 7, 10, 11, 13], "process": [1, 5, 8], "would": [1, 2, 5, 7], "benefit": 1, "trigger": [1, 2, 7], "occasion": 1, "classifi": 1, "reset": [1, 2, 7, 10, 13], "stimuli": 1, "been": 1, "present": [1, 10], "gradient": [1, 2, 7, 13], "optim": [1, 7], "accumul": [1, 2, 7], "over": [1, 2, 5], "sever": [1, 2, 7, 8], "similar": [1, 8], "preced": 1, "provid": [1, 2, 5, 7], "effici": [1, 2], "calcul": [1, 2, 7, 11, 13], "associ": [1, 2, 5, 7], "cu_nam": [1, 7], "group_nam": [1, 7], "custom_update_model": [1, 6], "egp_ref": [1, 7], "includ": [1, 2, 3, 7, 11], "execut": [1, 2, 4, 7, 12], "simultan": [1, 7], "customupdatemodelbas": [1, 7], "create_custom_update_model": [1, 2, 6, 7, 13], "wuvarrefer": [1, 7], "access": [1, 2, 5, 7], "egprefer": [1, 7], "create_egp_ref": [1, 6, 7], "like": [1, 3, 5, 8], "user": [1, 2, 3, 5, 8], "rather": [1, 2, 7, 8, 10, 11, 13], "than": [1, 2, 7, 10, 11, 13], "add_custom_connectivity_upd": [1, 7], "syn_group": [1, 7], "custom_conn_update_model": [1, 7], "arg": [7, 10, 11, 13], "new": [2, 7, 8], "perform": [1, 2, 7], "within": [2, 7, 13], "object": [5, 7], "customconnetivityupdatemodel": [], "class": [1, 2, 5, 7], "customconnectivityupdatemodel": [], "deriv": [2, 5, 7, 13], "genn_wrapp": [], "genn_model": [2, 7], "create_custom_connectivity_update_model": [1, 2, 6, 7], "customconnectivityupdatemodelbas": [1, 7], "One": [2, 5, 7], "main": [2, 7], "thing": [2, 8], "make": [2, 3, 5, 7, 13], "snn": [0, 2], "build": [2, 3, 5, 7, 8, 10, 11, 13], "easili": [2, 3, 7], "customis": [2, 3], "languag": [2, 3, 8], "implement": [1, 2, 4, 7, 8, 9, 12], "we": [2, 5, 7, 8, 10], "essenti": [2, 13], "c99": [2, 8], "en": 2, "cpprefer": 2, "com": 2, "No": 2, "preprocessor": 2, "enough": 2, "printf": 2, "debug": [2, 7], "messag": 2, "much": [2, 5], "more": [1, 2, 8, 11], "strstr": 2, "etc": [2, 13], "typedefin": 2, "cannot": [2, 3, 5], "some": [1, 2, 7], "esoter": 2, "octal": 2, "integ": [2, 5], "hexadecim": 2, "point": [2, 5, 7, 11, 13], "liter": 2, "aren": 2, "address": [2, 8], "isn": [2, 8], "On": [2, 5], "local": [2, 4, 7, 8, 9, 12], "assum": [2, 8], "store": [2, 8], "regist": [2, 8], "limit": [2, 8], "deal": [2, 8], "extra": [2, 7, 8], "global": [2, 7, 8], "paramet": [2, 7, 8, 10, 11, 13], "arrai": [2, 7, 8, 13], "longer": [2, 8], "do": [2, 5, 7, 8], "stuff": [2, 8], "const": [2, 7, 8, 10, 13], "egpsubset": [2, 8], "egp": [2, 7, 8], "offset": [2, 8, 11], "instead": [2, 8], "overload": [2, 7], "so": [2, 5, 7, 8, 13], "sin": 2, "0f": 2, "resolv": 2, "doubl": 2, "version": [2, 8], "without": 2, "suffix": 2, "treat": 2, "scalar": [2, 7, 10, 13], "alwai": 2, "0d": 2, "lp64": 2, "data": [1, 2, 5, 10, 11, 13], "platform": [2, 5], "32": [2, 7, 13], "bit": 2, "librari": [2, 7], "co": 2, "tan": 2, "aco": 2, "asin": 2, "atan": 2, "atan2": 2, "cosh": 2, "sinh": 2, "tanh": 2, "acosh": 2, "asinh": 2, "atanh": 2, "exp": [2, 7, 10, 13], "expm1": 2, "exp2": 2, "pow": [2, 13], "scalbn": 2, "log": [2, 11, 13], "log1p": 2, "log2": 2, "log10": 2, "ldexp": 2, "ilogb": 2, "sqrt": [2, 11, 13], "cbrt": 2, "hypot": 2, "ceil": [2, 7], "floor": 2, "fmod": 2, "round": [2, 10, 11], "rint": 2, "trunc": 2, "nearbyint": 2, "nextaft": 2, "remaind": 2, "fab": [2, 13], "fdim": 2, "fmax": [2, 7, 10, 13], "fmin": [2, 7, 10, 13], "erf": 2, "erfc": 2, "tgamma": 2, "lgamma": 2, "copysign": 2, "fma": 2, "min": [2, 11, 13], "max": [2, 7, 10, 11, 13], "ab": [2, 11], "form": [2, 8], "probabilist": 2, "mechan": [2, 7], "In": [1, 2, 5, 8, 11], "gennrand_uniform": [2, 7], "drawn": 2, "uniformli": [2, 7], "interv": 2, "gennrand_norm": [2, 7], "gennrand_exponenti": 2, "lambda": [2, 7, 13], "gennrand_log_norm": 2, "std": 2, "specifi": [2, 7], "gennrand_gamma": 2, "alpha": [2, 13], "gamma": [2, 7], "gennrand_binomi": 2, "n": [2, 7, 10, 11], "p": [0, 2, 7, 11], "binomi": [2, 7], "pass": [2, 8], "part": [2, 7], "numer": [1, 2, 7], "popul": [2, 5, 7, 10, 11, 13], "being": [2, 7], "enhanc": 2, "friendli": [2, 5], "decai": 2, "one": [2, 7], "bwlo": 2, "derived_param": [2, 7, 13], "exptc": [2, 13], "par": [2, 7, 13], "dt": [2, 7, 10, 11, 13], "class_nam": [2, 7], "var_init_cod": [2, 7], "extra_global_param": [2, 5, 7, 13], "refer": [2, 3, 7, 8], "mai": [1, 2, 7], "read": [2, 7], "repres": [2, 7], "step": [2, 5, 7, 10], "And": [2, 7], "id": [2, 7, 11, 13], "index": [2, 3, 7, 11, 13], "start": [2, 7, 13], "id_pr": [2, 7], "id_post": [2, 7], "num_pr": [2, 7], "num_post": [2, 7], "write": [2, 7, 8, 11], "tupl": [2, 7], "resolvedtyp": [2, 7], "option": [2, 7, 8], "callabl": [2, 7], "paramss": [2, 7], "statement": [2, 7], "requir": [2, 5, 7, 8, 13], "want": [2, 5, 7, 8, 10], "redraw": [2, 7], "neg": [2, 7], "ensur": [2, 7], "remain": [2, 7], "causal": [2, 7], "normal_positive_model": [2, 7], "normal_posit": [2, 7], "fly": 2, "row_build_cod": [2, 7], "col_build_cod": [2, 7], "calc_max_row_len_func": [2, 7], "calc_max_col_len_func": [2, 7], "calc_kernel_size_func": [2, 7], "id_post_begin": [2, 7], "multipl": [1, 2, 7], "first": [2, 5, 7, 11, 13], "addsynaps": [2, 7], "x": [2, 5, 7], "row": [2, 7, 8, 13], "column": [2, 7], "maximum": [2, 7, 11], "length": [2, 7], "matrix": [2, 5, 7], "param_nam": [2, 7], "fix": [2, 7, 11, 13], "replac": [2, 7, 8], "scipi": [2, 7, 11], "stat": [2, 7, 11], "import": [2, 5, 7, 10, 11, 13], "binom": [2, 7], "fixed_number_post": [2, 7], "num": [2, 7, 10, 11, 13], "unsign": [2, 7, 13], "idpost": [2, 7], "ppf": [2, 7, 11], "9999": [2, 7, 11], "detail": [1, 2, 7], "our": [2, 7], "paper": [2, 7, 11], "short": [2, 7], "end": [2, 7, 10, 11, 13], "up": [2, 3, 7], "text": [2, 7], "frac": [2, 7], "therefor": [2, 7], "look": [2, 3, 5, 7], "invers": [2, 7], "cummul": [2, 7], "cdf": [2, 7], "chanc": [2, 7], "bound": [2, 7], "correct": [2, 7, 10], "draw": [2, 7], "diagonal_build_cod": [2, 7], "helper": [11, 13], "inittoeplitzconnectivitysnippet": [], "list": [2, 7, 11], "member": [1, 7], "second": [11, 13], "inherit": [], "derivedparamfunc": [], "diagon": [2, 7, 8], "calcmaxlengthfunc": [], "calckernelsizefunc": [], "extend": [2, 5, 7], "abov": [2, 5, 7, 8], "sim_cod": [2, 7, 10, 13], "threshold_condition_cod": [2, 7, 10, 13], "reset_cod": [2, 7, 10, 13], "additional_input_var": [2, 7, 13], "auto_refractory_requir": [2, 7], "fals": [2, 7, 10, 11, 13], "isyn": [2, 7, 10, 13], "total": [2, 4, 7, 11, 12], "incom": [2, 7], "varaccess": [1, 2, 6, 7], "modifi": [2, 7], "threshold": [2, 7], "condit": [2, 7], "express": [2, 7, 13], "test": [2, 7, 10], "whether": [1, 2, 7], "emit": [2, 5, 7], "bool": [2, 7], "doe": [2, 7, 8], "auto": [2, 7, 10], "refractori": [2, 7], "logic": [2, 7], "leaki": [2, 7], "integr": [2, 7, 10, 13], "dv": [2, 7], "i_": [2, 7], "rm": [2, 7], "solv": [2, 7], "euler": [2, 7], "method": [2, 5, 7], "leaky_integrator_model": [2, 7], "leaky_integr": [2, 7], "read_writ": [2, 7], "receiv": [2, 7], "linear": [2, 7], "sum": [2, 7, 10, 13], "come": [2, 7], "through": [2, 7, 11, 13], "combin": [2, 7], "non": [2, 7], "linearli": [2, 7], "product": [2, 7], "isyn2": [2, 7], "driven": [2, 7], "pre_": [2, 7], "post_": [2, 7], "pre_neuron_var_ref": [2, 7, 13], "post_neuron_var_ref": [2, 7, 13], "pre_spike_syn_cod": [2, 7, 10, 13], "pre_event_syn_cod": [2, 7], "post_event_syn_cod": [2, 7], "post_spike_syn_cod": [2, 7, 10], "synapse_dynamics_cod": [2, 7, 13], "pre_spike_cod": [2, 7, 13], "post_spike_cod": [2, 7], "pre_dynamics_cod": [2, 7, 13], "post_dynamics_cod": [2, 7, 13], "assumpt": [2, 7], "addtopost": [2, 7, 13], "inc": [2, 7], "amount": [2, 7], "dendrit": [2, 7, 11], "insert": [2, 7], "addtopostdelai": [2, 7], "again": [2, 7], "heterogen": [2, 7], "weightupdatemodel": [2, 7], "staticpulsedendriticdelai": [2, 7, 11], "simpl": [2, 3, 7], "max_dendritic_delay_timestep": [2, 7, 11], "properti": [2, 5, 7], "effect": [2, 7], "revers": [2, 7, 11], "direct": [2, 7], "addtopr": [2, 7], "v_post": [2, 7], "_outgoing_": [2, 7], "pre_target_var": [2, 7], "unlik": [2, 7], "action": [2, 7, 10, 11, 13], "modul": [2, 3, 6], "directli": [2, 5, 7, 8], "indic": [2, 5, 7, 11, 13], "varaccessmod": [2, 6, 7], "pre_event_threshold_condition_cod": [2, 7], "post_event_threshold_condition_cod": [2, 7], "stdp": [2, 7, 10], "rule": [2, 7, 10, 13], "nearest": [2, 7], "neighbour": [2, 7], "depend": [2, 7], "delta": [2, 7], "w_": [2, 7], "ij": [2, 7], "begin": [2, 7], "case": [2, 7], "a_": [2, 7], "left": [2, 7], "tau_": [2, 7], "right": [2, 7], "leq0": [2, 7], "fulli": [1, 2, 7], "manner": [2, 7], "stdp_additive_model": [2, 7], "stdp_addit": [2, 7], "tauplu": [2, 7], "tauminu": [2, 7], "aplu": [2, 7], "aminu": [2, 7], "wmin": [2, 7, 10, 13], "wmax": [2, 7, 10, 13], "st_post": [2, 7, 10], "newweight": [2, 7, 10], "st_pre": [2, 7, 10], "cost": [2, 7], "tend": [2, 7], "grow": [2, 7], "o": [2, 7], "basi": [2, 7], "good": [2, 7], "idea": [2, 7], "pre_var_name_typ": [2, 7], "post_var_name_typ": [2, 7], "_trace_": [2, 7], "stdp_additive_2_model": [2, 7], "create_custom_weight_update_class": [2, 7], "stdp_additive_2": [2, 7], "pretrac": [2, 7], "posttrac": [2, 7], "tauplusdecai": [2, 7], "tauminusdecai": [2, 7], "previous": [2, 5, 7], "intern": [2, 7], "continu": [2, 7], "od": [2, 7], "computation": [2, 7], "veri": [1, 2, 5, 7], "costli": [2, 7], "becaus": [2, 5, 7], "larg": [2, 7], "discuss": [2, 5, 7], "context": [2, 7], "rate": [2, 7, 11, 13], "contin": [2, 7], "definit": [2, 7], "v_pre": [2, 7], "evalu": [2, 7], "involv": [2, 7], "respect": [2, 7, 8], "voltag": [2, 7], "greater": [2, 7], "end_toggle_cod": [], "whenev": [2, 7], "true": [2, 5, 7, 10, 11, 13], "add_cpp_python_text": [], "set_event_cod": [], "macro": [], "event_cod": [], "staticgrad": 7, "set_needs_pre_spike_event_tim": [], "set_needs_prev_pre_spike_event_tim": [], "is_pre_spike_event_time_requir": [], "is_prev_pre_spike_event_time_requir": [], "set_pr": [], "prev_set_pr": [], "equat": 2, "injectcurr": [2, 7, 10], "goe": [2, 7], "post_target_var": [2, 7, 13], "injection_cod": [2, 7, 10], "target_var": [2, 7], "uniform_noise_model": [2, 7], "uniform_nois": [2, 7], "magnitud": [2, 7, 10], "demand": 2, "update_cod": [2, 7, 13], "extra_global_param_ref": [2, 7], "customupdatevaraccess": [1, 2, 6, 7], "launch": [2, 5, 7], "reset_model": [2, 7], "read_onli": [2, 7], "sort": [2, 7, 8, 13], "If": [2, 3, 5, 7, 13], "read_only_dupl": [2, 7], "mode": [2, 7], "duplic": [1, 2, 7], "reduce_batch_sum": [2, 7], "reduce_batch_max": [2, 7], "reduc": [2, 7, 8, 13], "scenario": [2, 7], "reduce_model": [2, 7], "gradient_batch_reduc": [2, 7], "reducedgradi": [2, 7], "reduce_sum": [2, 7], "reduce_max": [2, 7], "similarli": [2, 5, 7], "reduce_neuron_sum": [2, 7], "reduce_neuron_max": [2, 7], "neuron_reduc": [2, 7], "row_update_cod": [2, 7], "host_update_cod": [2, 7], "design": [2, 7], "issu": [2, 7], "regard": [2, 7], "accompani": [2, 7], "push": [2, 7, 10], "pull": [2, 7], "illustr": [2, 7], "abil": [2, 7], "remove_diagonal_model": [2, 7], "remove_diagon": [2, 7], "for_each_synaps": [2, 7, 8], "remove_synaps": [2, 7], "break": [2, 7, 13], "back": [2, 7], "add_diagonal_model": [2, 7], "add_diagon": [2, 7], "add_synaps": [2, 7], "lot": [2, 7], "_might_": [2, 7], "detect": [2, 7], "shuffl": [2, 7], "around": [2, 7], "accordingli": [2, 7], "fine": [2, 7], "know": [2, 7], "hook": [2, 7], "abl": [2, 7], "common": [2, 5, 7], "determin": [2, 7, 10, 11], "element": [2, 5, 7], "get": [2, 7, 11, 13], "befor": [2, 5, 7], "postind": [2, 7], "pushpostindtodevic": [2, 7], "softwar": 3, "packag": [3, 6], "nvidia": 3, "api": [3, 5], "neuron": [3, 5, 10, 11, 13], "synaps": [3, 5, 8, 10, 11, 13], "genncod": 3, "under": [3, 11, 13], "construct": [2, 3, 5, 7], "find": 3, "pleas": [1, 2, 3, 7], "contact": 3, "project": [3, 10, 11], "develop": [3, 9, 11, 13], "upgrad": 3, "4": [3, 7, 11], "custom": [3, 7, 10, 13], "bibliographi": 3, "maintain": [3, 8], "dr": 3, "jame": 3, "prof": 3, "thoma": 3, "partial": [3, 13], "epsrc": 3, "grant": 3, "ep": 3, "v052241": 3, "unlock": 3, "machin": [1, 3], "research": 3, "p006094": 3, "brain": 3, "board": 3, "j019690": 3, "green": 3, "search": [3, 7], "page": 3, "00": [4, 12], "000": [4, 12], "file": [4, 7, 12, 13], "galleri": [4, 9, 10, 11, 13], "mem": [4, 12], "mb": [4, 12], "mnist": [4, 9, 12], "classif": [4, 9, 12], "insect": [4, 9, 12], "inspir": [4, 9, 12], "mushroom": [4, 9, 12], "bodi": [4, 9, 12], "userproject": [4, 12], "mnist_mb_classifi": [4, 10, 12], "py": [4, 10, 11, 12, 13], "potjans_microcircuit": [4, 11, 12], "superspike_demo": [4, 12, 13], "customconnectivityupd": [6, 7], "parallelismhint": [6, 7], "plogsever": [6, 7], "synapsematrixconnect": [6, 7], "synapsematrixweight": [6, 7], "varaccessdim": [6, 7], "varaccessmodeattribut": [6, 7], "create_psm_egp_ref": [6, 7], "create_wu_egp_ref": [6, 7], "get_var_access_dim": [6, 7], "submodul": 6, "cuda_backend": 6, "custom_connectivity_update_model": [1, 6], "postsynaptic_model": 6, "runtim": [5, 6], "single_threaded_cpu_backend": 6, "pybind11_object": 7, "currentsourcemixin": 7, "get_var_loc": 7, "self": 7, "_genn": 7, "arg0": 7, "set_param_dynam": [5, 7, 13], "set_var_loc": 7, "arg1": 7, "var_initialis": 7, "customconnectivityupdatemixin": 7, "get_post_var_loc": 7, "get_pre_var_loc": 7, "post_var_initialis": 7, "post_var_refer": 7, "pre_var_initialis": 7, "pre_var_refer": 7, "set_post_var_loc": 7, "set_pre_var_loc": 7, "synapse_group": 7, "update_group_nam": 7, "var_refer": 7, "customupdatebas": 7, "customupdatemixin": 7, "read_only_shar": 7, "read_only_shared_neuron": 7, "33": 7, "84": 7, "76": 7, "52": 7, "44": 7, "customupdatewumixin": 7, "model_nam": 7, "time_precis": 7, "genn_log_level": 7, "warn": 7, "code_gen_log_level": 7, "transpiler_log_level": 7, "runtime_log_level": 7, "backend_log_level": 7, "preference_kwarg": 7, "modelspecintern": 7, "help": [7, 10, 11, 13], "sourc": [7, 9, 10, 11, 13], "backend_nam": 7, "path_to_model": 7, "always_rebuild": 7, "never_rebuild": 7, "path": 7, "directori": 7, "rebuilt": 7, "even": 7, "doesn": [7, 11], "appear": 7, "never": 7, "ever": 7, "prevent": 7, "overwrit": 7, "custom_upd": [7, 13], "free_device_mem_byt": 7, "get_custom_update_tim": [7, 13], "get_custom_update_transpose_tim": [7, 13], "init_sparse_tim": [7, 11, 13], "init_tim": [7, 11, 13], "load": [5, 7, 10, 11, 13], "num_recording_timestep": [5, 7, 10, 11, 13], "neuron_update_tim": [7, 11, 13], "postsynaptic_update_tim": 7, "presynaptic_update_tim": [7, 11, 13], "pull_recording_buffers_from_devic": [5, 7, 10, 11, 13], "record": [7, 10, 11, 13], "buffer": 7, "step_tim": [5, 7, 10, 11, 13], "synapse_dynamics_tim": [7, 13], "unload": 7, "neurongroupmixin": 7, "num_delay_slot": 7, "prev_spike_time_loc": 7, "prev_spike_time_requir": 7, "recording_zero_copy_en": 7, "spike_event_recording_en": [5, 7], "spike_recording_en": [5, 7, 10, 11, 13], "spike_time_loc": 7, "spike_time_requir": 7, "word_packed_bitmask": 7, "fatal": 7, "error": [5, 7, 13], "info": 7, "verbos": 7, "synapsegroupmixin": 7, "axonal_delay_step": [7, 8], "back_prop_delay_step": 7, "dendritic_delay_loc": 7, "get_ps_var_loc": 7, "get_wu_post_var_loc": 7, "get_wu_pre_var_loc": 7, "get_wu_var_loc": 7, "kernel_s": 7, "max_connect": 7, "max_source_connect": 7, "narrow_sparse_ind_en": 7, "num_threads_per_spik": [7, 11], "output_loc": 7, "parallelism_hint": 7, "ps_initialis": 7, "set_ps_param_dynam": 7, "set_ps_var_loc": 7, "set_wu_param_dynam": 7, "set_wu_post_var_loc": 7, "set_wu_pre_var_loc": 7, "set_wu_var_loc": 7, "sparse_connectivity_initialis": 7, "sparse_connectivity_loc": 7, "toeplitz_connectivity_initialis": 7, "wu_initialis": 7, "8": [7, 11], "16": 7, "dense_proceduralg": [1, 7, 8], "66": 7, "129": 7, "136": 7, "264": 7, "68": 7, "272": 7, "individu": 7, "256": [7, 13], "128": 7, "97": 7, "zero_copi": 7, "kwarg": 7, "var_nam": [7, 10], "transpose_sg": 7, "transpose_var_nam": 7, "backendbas": 7, "blocksizeselect": 7, "occup": 7, "deviceselect": 7, "most_memori": 7, "preferencesbas": 7, "block_size_select_method": 7, "constant_cache_overhead": 7, "device_select_method": 7, "enable_nccl_reduct": 7, "generate_line_info": 7, "manual_block_s": 7, "show_ptx_info": 7, "statebas": 7, "nccl_generate_unique_id": 7, "nccl_init_commun": 7, "nccl_unique_id": 7, "create_backend": 7, "arg2": 7, "arg3": 7, "dc": [7, 11], "poissonexp": [7, 11], "fixednumberpostwithreplac": 7, "fixednumberprewithreplac": [7, 10], "fixednumbertotalwithreplac": [7, 11], "fixedprobabilitynoautaps": 7, "onetoon": 7, "uninitialis": 7, "avgpoolconv2d": 7, "normalclip": [7, 11, 13], "normalclippeddelai": [7, 11], "uniform": 7, "izhikevichvari": 7, "lif": [7, 10, 11], "poisson": [7, 13], "poissonnew": 7, "rulkovmap": 7, "spikesourc": 7, "spikesourcearrai": [7, 13], "traubmil": 7, "traubmilesalt": 7, "traubmilesfast": 7, "traubmilesnstep": 7, "deltacurr": [7, 10, 13], "arraybas": [5, 7], "host_view": 7, "pull_from_devic": [5, 7, 10, 13], "pull_slice_1d_from_devic": 7, "push_slice_1d_to_devic": 7, "push_to_devic": [5, 7, 10, 13], "allocate_arrai": 7, "get_arrai": 7, "get_delay_point": 7, "get_recorded_post_spike_ev": 7, "numpi": [7, 10, 11, 13], "float64": 7, "int32": 7, "get_recorded_pre_spike_ev": 7, "get_recorded_spik": 7, "initialize_spars": 7, "set_dynamic_param_valu": [5, 7, 13], "numericvalu": 7, "piecewisestdp": 7, "staticpuls": [7, 8, 10], "aim": 8, "backward": 8, "compat": 8, "strive": 8, "most": 8, "updat": [5, 8, 11, 13], "wa": [5, 8], "underli": 8, "compil": 8, "wherea": [5, 8], "pars": 8, "subset": 8, "variabl": [8, 10, 13], "old": 8, "xx": 8, "necessari": [8, 11], "order": [5, 8, 11, 13], "streamlin": 8, "achiev": 8, "area": 8, "psm": 8, "becom": 8, "cumbersom": 8, "wors": 8, "now": 8, "take": 8, "To": [5, 8], "improv": 8, "axon": 8, "were": 8, "realli": 8, "ugli": 8, "confus": 8, "just": [5, 8], "let": 8, "whatev": 8, "loop": [2, 5, 7, 8, 11, 13], "outsid": 8, "reus": 8, "globalg": 8, "individualg": 8, "almost": [5, 8], "Then": 8, "ve": 8, "renam": 8, "obviou": 8, "variant": 8, "chose": 8, "unusu": 8, "pointer": 8, "await": 8, "pr": 8, "settabl": 8, "remov": 8, "implicit": 8, "refernec": 8, "below": 9, "download": [9, 10, 11, 13], "userproject_python": 9, "zip": [9, 13], "jupyt": [9, 10, 11, 13], "notebook": [9, 10, 11, 13], "userproject_jupyt": 9, "sphinx": [9, 10, 11, 13], "digit": 10, "usag": [10, 11, 13], "h": [10, 11, 13], "plot": [10, 11, 13], "save": [5, 10, 11, 13], "train": [1, 10, 13], "argpars": [10, 11, 13], "argumentpars": [10, 11, 13], "tqdm": 10, "factor": [10, 11], "convert": [10, 13], "normalis": 10, "imag": 10, "pixel": 10, "na": [10, 11], "input_scal": 10, "stimul": 10, "mbon": 10, "mbon_stimulus_curr": 10, "match": [10, 11], "num_pn": 10, "784": 10, "kenyon": 10, "capac": 10, "num_kc": 10, "20000": 10, "num_mbon": 10, "present_time_m": 10, "lif_param": [10, 11], "taum": [10, 11], "vrest": [10, 11, 13], "60": [10, 13], "vreset": [10, 11], "vthresh": [10, 11, 13], "50": [10, 11, 13], "ioffset": [10, 11], "taurefrac": [10, 11, 13], "pn": 10, "pn_param": 10, "100": [5, 10, 11], "pn_kc_weight": 10, "pn_kc_tau_syn": 10, "pn_kc_fan_in": 10, "kc": 10, "ggn": 10, "inhibit": 10, "200": [10, 13], "ggn_param": 10, "kc_mbon_tau_syn": 10, "kc_mbon_param": 10, "15": 10, "rho": 10, "01": 10, "eta": 10, "00002": 10, "cs_model": 10, "minim": 10, "fire": [10, 11], "if_model": 10, "IF": 10, "symmetr": 10, "symmetric_stdp": 10, "cli": [10, 13], "def": [10, 11, 13], "get_pars": [10, 11, 13], "parser": [10, 11, 13], "add_argu": [10, 11, 13], "store_tru": [10, 11, 13], "__name__": [10, 11, 13], "__main__": [10, 11, 13], "parse_arg": [10, 11, 13], "reshap": [10, 13], "test_imag": 10, "els": [10, 11, 13], "train_imag": 10, "astyp": 10, "float32": [10, 11], "axi": [10, 13], "newaxi": 10, "label": 10, "test_label": 10, "train_label": 10, "mnist_mb": 10, "lif_init": [10, 11], "refractim": [10, 11, 13], "if_init": 10, "turn": [10, 13], "pn_input": 10, "mbon_input": 10, "pn_kc_connect": 10, "pn_kc": 10, "pn_kc_ind": 10, "npy": [5, 10], "set_sparse_connect": [7, 10], "kc_ggn": 10, "ggn_kc": 10, "kc_mbon_weight_upd": 10, "kc_mbon_g": 10, "kc_mbon": 10, "present_timestep": 10, "reset_spike_tim": 10, "spike_tim": [5, 10, 11], "view": [7, 10, 13], "finfo": [10, 11], "reset_out_post": 10, "out_post": 10, "reset_neuron": 10, "var_init": 10, "var_val": 10, "item": [10, 11], "num_correct": 10, "rang": [10, 13], "count": [10, 13], "mbon_spike_tim": 10, "mbon_spike_id": 10, "spike_recording_data": [5, 7, 10, 11, 13], "len": [10, 11, 13], "argmin": 10, "print": [10, 11, 13], "pull_connectivity_from_devic": [7, 10], "weigh": 10, "kc_mbon_g_view": 10, "vstack": [10, 13], "get_sparse_pre_ind": [7, 10], "get_sparse_post_ind": [7, 10], "plot_weight_distribut": 10, "matplotlib": [10, 11, 13], "pyplot": [10, 11, 13], "plt": [10, 11, 13], "fig": [10, 11, 13], "subplot": [10, 11, 13], "figsiz": 10, "hist": 10, "bin": 10, "axvlin": 10, "averag": [10, 13], "linestyl": 10, "set_xlabel": [10, 11, 13], "set_ylabel": [10, 11, 13], "show": [10, 11, 13], "ipynb": [10, 11, 13], "reimplement": [11, 13], "tobia": 11, "marku": 11, "It": [11, 13], "spontan": 11, "asynchron": [5, 11], "irregular": 11, "agreement": 11, "vivo": 11, "awak": 11, "anim": 11, "low": 11, "layer": 11, "excitatori": 11, "durat": 11, "neuron_scal": 11, "connectivity_scal": 11, "profil": [11, 13], "1000": [11, 13], "norm": 11, "perf_count": 11, "layer_nam": 11, "23": 11, "population_nam": 11, "dt_m": 11, "background": 11, "background_r": 11, "rel": 11, "inhibitori": 11, "except": [7, 11], "l4e": 11, "l2": 11, "3e": 11, "mean_w": 11, "87": 11, "8e": 11, "external_w": 11, "801": 11, "paragraph": 11, "parameter": 11, "caption": 11, "supplementari": 11, "layer_23_4_w": 11, "rel_w": 11, "mention": 11, "chosen": [5, 11], "origin": 11, "layer_23_4_relw": 11, "05": [11, 13], "20683": 11, "5834": 11, "21915": 11, "5479": 11, "4850": 11, "1065": 11, "14395": 11, "2948": 11, "given": [7, 11], "connection_probabilti": 11, "23e": 11, "1009": 11, "23i": 11, "1689": 11, "4e": 11, "0437": 11, "4i": 11, "0818": 11, "5e": 11, "0323": 11, "5i": 11, "6e": 11, "0076": 11, "6i": 11, "1346": 11, "1371": 11, "0316": 11, "0515": 11, "0755": 11, "0042": 11, "0077": 11, "0059": 11, "0497": 11, "135": 11, "0067": 11, "0003": 11, "0453": 11, "0691": 11, "0029": 11, "0794": 11, "1597": 11, "0033": 11, "1057": 11, "1004": 11, "0622": 11, "0505": 11, "0057": 11, "0831": 11, "3726": 11, "0204": 11, "0548": 11, "0269": 11, "0257": 11, "0022": 11, "06": 11, "3158": 11, "0086": 11, "0156": 11, "0066": 11, "0211": 11, "0166": 11, "0572": 11, "0197": 11, "0396": 11, "2252": 11, "0364": 11, "001": [11, 13], "0034": 11, "0005": 11, "0277": 11, "0658": 11, "1443": 11, "degre": 11, "extern": 11, "num_external_input": 11, "1600": 11, "1500": 11, "2100": 11, "1900": 11, "2000": 11, "2900": 11, "somewhat": 11, "realiz": 11, "mean_firing_r": 11, "971": 11, "868": 11, "746": 11, "396": 11, "142": 11, "9": [11, 13], "078": 11, "991": 11, "523": 11, "mean_delai": 11, "75": 11, "delay_sd": 11, "375": 11, "get_scaled_num_neuron": 11, "get_full_num_input": 11, "src_layer": 11, "trg_layer": 11, "trg_pop": 11, "num_src": 11, "num_trg": 11, "connection_prob": 11, "get_mean_weight": 11, "get_scaled_num_connect": 11, "num_input": [11, 13], "assert": 11, "multipli": [2, 7, 11], "get_full_mean_input_curr": 11, "mean_input_curr": 11, "entri": [11, 13], "creation": 11, "fuse_postsynaptic_model": 11, "default_narrow_sparse_ind_en": 11, "timing_en": [11, 13], "kernel_profil": [11, 13], "default_var_loc": 11, "default_sparse_connectivity_loc": 11, "58": 11, "poisson_init": 11, "exp_curr_init": 11, "quantil": 11, "normal_quantile_cdf": 11, "max_delai": 11, "fm": 11, "slot": 11, "seem": 11, "ineffici": [5, 11], "aggress": 11, "merg": 11, "max_dendritic_delay_slot": 11, "total_neuron": 11, "neuron_popul": 11, "ext_input_r": 11, "ext_weight": 11, "ext_input_curr": 11, "25": 11, "poisson_param": 11, "tausyn": 11, "pop_siz": 11, "neuron_pop": 11, "_poisson": 11, "enabl": [0, 1, 5, 11], "tpopul": 11, "total_synaps": 11, "num_sub_row": 11, "procedural_connect": 11, "trg_name": 11, "src_name": 11, "mean_weight": 11, "weight_sd": 11, "num_connect": 11, "tconnect": 11, "numconnect": 11, "meanweight": 11, "weightsd": 11, "meandelai": 11, "delaysd": 11, "connector": 11, "connect_param": 11, "d_dist": 11, "synapse_nam": 11, "hack": 11, "cast": 11, "w_dist": 11, "static_synapse_init": 11, "syn_pop": 11, "span": 11, "duration_timestep": 11, "ten_percent_timestep": 11, "sim_start_tim": 11, "advanc": 11, "sim_end_tim": 11, "tsimul": 11, "tinit": 11, "tspars": 11, "tneuron": 11, "tsynaps": 11, "save_data": [11, 13], "csv": [11, 13], "savetxt": [11, 13], "_spike": 11, "column_stack": [11, 13], "delimit": [11, 13], "fmt": [11, 13], "header": [11, 13], "figur": 11, "ax": [11, 13], "yuck": 11, "re": [5, 11, 13], "ordered_neuron_popul": 11, "start_id": 11, "bar_i": 11, "spike_id": [5, 11], "actor": 11, "scatter": [11, 13], "edgecolor": [11, 13], "bar": 11, "colour": 11, "barh": 11, "align": 11, "center": 11, "color": 11, "get_facecolor": 11, "ecolor": 11, "black": 11, "po": 11, "firingr": 11, "hz": 11, "set_ytick": 11, "set_yticklabel": 11, "friedemann": 13, "surya": 13, "transform": [5, 13], "radcliff": 13, "camera": 13, "oxford": 13, "trial": 13, "record_tri": 13, "target_fil": 13, "num_trial": 13, "filenam": 13, "ra": 13, "600": 13, "timestep_m": 13, "num_output": 13, "num_hidden": 13, "tau_rise_m": 13, "tau_decay_m": 13, "tau_rms_m": 13, "30000": 13, "tau_avg_err_m": 13, "10000": 13, "r0": 13, "epsilon": 13, "1e": 13, "tau_decay_": 13, "tau_rise_": 13, "tau_avg_err_": 13, "scale_tr_err_flt": 13, "auryn": 13, "unit": 13, "volt": 13, "1000x": 13, "w_min": 13, "w_max": 13, "w0": 13, "experi": 13, "input_freq_hz": 13, "update_time_m": 13, "500": 13, "trial_m": 13, "1890": 13, "update_timestep": 13, "trial_timestep": 13, "calc_t_peak": 13, "tau_ris": 13, "tau_decai": 13, "write_spike_fil": 13, "r_max_prop_model": 13, "r_max_prop": 13, "updatetim": 13, "taurm": 13, "upsilon": 13, "updatetimestep": 13, "exprm": 13, "superspike_model": 13, "tauris": 13, "taudecai": 13, "beta": 13, "z": 13, "ztilda": 13, "sigmaprim": 13, "errtilda": 13, "filter": 13, "trace": 13, "oneplushi": 13, "elig": 13, "feedback_model": 13, "feedback": 13, "hidden_neuron_model": 13, "hidden": 13, "taumem": 13, "isynfeedback": 13, "rmembran": 13, "membran": 13, "potenti": 13, "output_neuron_model": 13, "tauavgerr": 13, "errris": 13, "avgsqrerr": 13, "errdecai": 13, "startspik": 13, "endspik": 13, "spiketim": 13, "normfactor": 13, "trisemult": 13, "tdecaymult": 13, "tpeak": 13, "mulavgerr": 13, "spred": 13, "sreal": 13, "mismatch": 13, "temp": 13, "narg": 13, "target_spik": 13, "loadtxt": 13, "dtype": 13, "neuron_id": 13, "format": [5, 7, 13], "millisecond": 13, "target_neuron_end_tim": 13, "cumsum": 13, "bincount": 13, "minlength": 13, "target_neuron_start_tim": 13, "concaten": 13, "frozen": 13, "input_isi_m": 13, "input_spike_tim": 13, "random": 13, "vector": 13, "reach": 13, "otherwis": 13, "stack": 13, "input_spikes_per_neuron": 13, "togeth": 13, "input_spik": 13, "input_neuron_end_tim": 13, "input_neuron_start_tim": 13, "input_init_var": 13, "hidden_param": 13, "hidden_init_var": 13, "output_param": 13, "output_init_var": 13, "superspike_param": 13, "superspike_pre_init_var": 13, "superspike_post_init_var": 13, "input_hidden_weight_dist_param": 13, "input_hidden_init_var": 13, "hidden_output_weight_dist_param": 13, "hidden_output_init_var": 13, "r_max_prop_param": 13, "descript": 13, "generatelineinfo": 13, "set_init_valu": [5, 7, 13], "any_record": 13, "input_hidden": 13, "inputhidden": 13, "hidden_output": 13, "hiddenoutput": 13, "output_hidden": 13, "outputhidden": 13, "input_hidden_transpos": 13, "calculatetranspos": 13, "input_hidden_optimiser_var_ref": 13, "input_hidden_optimis": 13, "gradientlearn": 13, "hidden_output_optimiser_var_ref": 13, "hidden_output_optimis": 13, "output_avg_sqr_err_var": 13, "current_r0": 13, "hidden_spik": 13, "output_spik": 13, "displai": 13, "perid": 13, "squar": [2, 7, 13], "time_": 13, "mean_error": 13, "0e": 13, "upload": 13, "repeat": 13, "input_spikes_": 13, "hidden_spikes_": 13, "output_spikes_": 13, "append": 13, "sharex": 13, "col": 13, "sharei": 13, "enumer": 13, "start_time_": 13, "890": 13, "lazi": 5, "hasn": 5, "chang": 5, "instantan": 5, "report": 5, "simplest": 5, "synchronis": 5, "event": 5, "natur": 5, "dedic": 5, "collect": 5, "transfer": 5, "spike_event_recording_data": 5, "wish": 5, "real": 5, "often": [1, 5], "interact": 5, "batch": [1, 5], "encapsul": 5, "model_preprocessor": [5, 6], "variablebas": [5, 7], "own": 5, "valid": 7, "convers": [], "variable_typ": 7, "set_arrai": 7, "view_shap": 7, "extraglobalparamet": [5, 7], "variable_nam": 7, "init_valu": 7, "hold": [5, 7], "inform": 7, "about": 7, "set_valu": 7, "synapsevari": 7, "current_valu": [5, 7], "current_view": [5, 7], "delay_group": 7, "valinit_valuesu": 7, "get_snippet": 7, "snippet_base_class": 7, "built_in_snippet_modul": 7, "check": 7, "nativ": 7, "model_famili": 7, "snippetbas": 7, "rais": 7, "attributeerror": 7, "exist": 7, "someth": 7, "get_var_init": 7, "var_spac": 7, "initials": 7, "map": 7, "prepare_egp": 7, "prepare_param_v": 7, "prepare_var": 7, "var_typ": 7, "matric": 5, "extract": 5, "locat": 5, "content": 5, "noth": 5, "recommend": 5, "leav": 5, "work": 5, "transparantli": 5, "behav": 5, "psm_extra_global_param": 5, "groupmixin": [5, 7], "increas": 5, "parameterm": 5, "hard": 1, "high": 1, "cach": 1, "genn_group": 6, "namespac": [], "autom": [], "load_init_egp": 7, "get_var_valu": 7, "parent": 7, "pull_extra_global_param_from_devic": 7, "egp_nam": 7, "pull_var_from_devic": 7, "push_extra_global_param_to_devic": 7, "push_var_to_devic": 7, "post_spike_event_recording_data": 7, "pre_spike_event_recording_data": 7, "pull_in_syn_from_devic": 7, "pull_psm_extra_global_param_from_devic": 7, "wrapper": 7, "push_connectivity_to_devic": 7, "push_in_syn_to_devic": 7, "push_psm_extra_global_param_to_devic": 7, "pre_indic": 7, "post_indic": 7, "rag": 7, "weight_update_var_s": 7, "simplifi": [], "done": [], "interest": [], "attribut": [], "gm": [], "_parameters_truncated_": [], "empti": [], "simulation_length": [], "population_s": [], "raw": [], "v_view": [], "pull_state_from_devic": [], "create_cksf_class": [], "cks_func": [], "create_cmlf_class": [], "cml_func": [], "three": [], "var_name_typ": [], "create_dpf_class": [], "dp_func": [], "decay_cod": [], "apply_input_cod": [], "learn_post_cod": [], "event_threshold_condition_cod": [], "init_connect": [], "init_sparse_connect_snippet": [], "customconnectivityupdatemodelbaseupdatemodelbas": [1, 7], "turner2022": [0, 2, 7], "turner": 0, "subramanian": 0, "2022": 0, "mlgenn": 0, "infer": 0, "engin": 0, "024002": 0, "1088": 0, "2634": 0, "4386": 0, "ac5ac5": 0, "independ": [2, 7], "id_diag": [2, 7], "id_kern_0": [2, 7], "id_kern_1": [2, 7], "id_kern_n": [2, 7], "dimension": [2, 7], "insid": [2, 7], "convolv": [2, 7], "kern_dim": [2, 7], "pop_dim": [2, 7], "simple_conv2d_model": [2, 7], "pynn": [2, 7], "simple_conv2d": [2, 7], "kern_siz": [2, 7], "kernrow": [2, 7], "kerncol": [2, 7], "prerow": [2, 7], "precol": [2, 7], "haven": [2, 7], "gone": [2, 7], "off": [2, 7], "edg": [2, 7], "postrow": [2, 7], "postcol": [2, 7], "batch_siz": 1, "finalis": [], "fuse_pre_post_weight_update_model": [], "recording_in_us": [], "seed": [], "type_context": [], "pre_event_cod": [2, 7], "smaller": 1, "occupi": 1, "scenerio": 1, "sweep": 1, "overcom": 1, "rune": 1, "speak": 1, "512": 1, "control": 1, "dense_procedur": 1, "simpli": 1}, "objects": {"": [[7, 0, 0, "-", "pygenn"]], "pygenn": [[7, 1, 1, "", "CurrentSource"], [7, 1, 1, "", "CustomConnectivityUpdate"], [7, 1, 1, "", "CustomUpdate"], [7, 1, 1, "", "CustomUpdateVarAccess"], [7, 1, 1, "", "CustomUpdateWU"], [7, 1, 1, "", "GeNNModel"], [7, 1, 1, "", "NeuronGroup"], [7, 1, 1, "", "ParallelismHint"], [7, 1, 1, "", "PlogSeverity"], [7, 1, 1, "", "SynapseGroup"], [7, 1, 1, "", "SynapseMatrixConnectivity"], [7, 1, 1, "", "SynapseMatrixType"], [7, 1, 1, "", "SynapseMatrixWeight"], [7, 1, 1, "", "VarAccess"], [7, 1, 1, "", "VarAccessDim"], [7, 1, 1, "", "VarAccessMode"], [7, 1, 1, "", "VarAccessModeAttribute"], [7, 1, 1, "", "VarLocation"], [7, 5, 1, "", "create_current_source_model"], [7, 5, 1, "", "create_custom_connectivity_update_model"], [7, 5, 1, "", "create_custom_update_model"], [7, 5, 1, "", "create_egp_ref"], [7, 5, 1, "", "create_neuron_model"], [7, 5, 1, "", "create_postsynaptic_model"], [7, 5, 1, "", "create_psm_egp_ref"], [7, 5, 1, "", "create_psm_var_ref"], [7, 5, 1, "", "create_sparse_connect_init_snippet"], [7, 5, 1, "", "create_toeplitz_connect_init_snippet"], [7, 5, 1, "", "create_var_init_snippet"], [7, 5, 1, "", "create_var_ref"], [7, 5, 1, "", "create_weight_update_model"], [7, 5, 1, "", "create_wu_egp_ref"], [7, 5, 1, "", "create_wu_post_var_ref"], [7, 5, 1, "", "create_wu_pre_var_ref"], [7, 5, 1, "", "create_wu_var_ref"], [7, 0, 0, "-", "cuda_backend"], [7, 0, 0, "-", "current_source_models"], [7, 0, 0, "-", "custom_connectivity_update_models"], [7, 0, 0, "-", "custom_update_models"], [7, 0, 0, "-", "genn_groups"], [7, 5, 1, "", "get_var_access_dim"], [7, 5, 1, "", "init_postsynaptic"], [7, 5, 1, "", "init_sparse_connectivity"], [7, 0, 0, "-", "init_sparse_connectivity_snippets"], [7, 5, 1, "", "init_toeplitz_connectivity"], [7, 0, 0, "-", "init_toeplitz_connectivity_snippets"], [7, 5, 1, "", "init_var"], [7, 0, 0, "-", "init_var_snippets"], [7, 5, 1, "", "init_weight_update"], [7, 0, 0, "-", "model_preprocessor"], [7, 0, 0, "-", "neuron_models"], [7, 0, 0, "-", "postsynaptic_models"], [7, 0, 0, "-", "runtime"], [7, 0, 0, "-", "single_threaded_cpu_backend"], [7, 0, 0, "-", "types"], [7, 0, 0, "-", "weight_update_models"]], "pygenn.CurrentSource": [[7, 2, 1, "", "get_var_location"], [7, 3, 1, "", "model"], [7, 3, 1, "", "name"], [7, 3, 1, "", "params"], [7, 2, 1, "", "set_param_dynamic"], [7, 2, 1, "", "set_var_location"], [7, 3, 1, "", "var_initialisers"]], "pygenn.CustomConnectivityUpdate": [[7, 2, 1, "", "get_post_var_location"], [7, 2, 1, "", "get_pre_var_location"], [7, 2, 1, "", "get_var_location"], [7, 3, 1, "", "model"], [7, 3, 1, "", "name"], [7, 3, 1, "", "params"], [7, 3, 1, "", "post_var_initialisers"], [7, 3, 1, "", "post_var_references"], [7, 3, 1, "", "pre_var_initialisers"], [7, 3, 1, "", "pre_var_references"], [7, 2, 1, "", "set_param_dynamic"], [7, 2, 1, "", "set_post_var_location"], [7, 2, 1, "", "set_pre_var_location"], [7, 2, 1, "", "set_var_location"], [7, 3, 1, "", "synapse_group"], [7, 3, 1, "", "update_group_name"], [7, 3, 1, "", "var_initialisers"], [7, 3, 1, "", "var_references"]], "pygenn.CustomUpdate": [[7, 3, 1, "", "num_neurons"], [7, 3, 1, "", "var_references"]], "pygenn.CustomUpdateVarAccess": [[7, 4, 1, "", "READ_ONLY"], [7, 4, 1, "", "READ_ONLY_SHARED"], [7, 4, 1, "", "READ_ONLY_SHARED_NEURON"], [7, 4, 1, "", "READ_WRITE"], [7, 4, 1, "", "REDUCE_BATCH_MAX"], [7, 4, 1, "", "REDUCE_BATCH_SUM"], [7, 4, 1, "", "REDUCE_NEURON_MAX"], [7, 4, 1, "", "REDUCE_NEURON_SUM"], [7, 3, 1, "", "name"], [7, 3, 1, "", "value"]], "pygenn.CustomUpdateWU": [[7, 3, 1, "", "synapse_group"], [7, 3, 1, "", "var_references"]], "pygenn.GeNNModel": [[7, 2, 1, "", "add_current_source"], [7, 2, 1, "", "add_custom_connectivity_update"], [7, 2, 1, "", "add_custom_update"], [7, 2, 1, "", "add_neuron_population"], [7, 2, 1, "", "add_synapse_population"], [7, 3, 1, "", "backend_name"], [7, 2, 1, "", "build"], [7, 2, 1, "", "custom_update"], [7, 3, 1, "", "dT"], [7, 3, 1, "", "free_device_mem_bytes"], [7, 2, 1, "", "get_custom_update_time"], [7, 2, 1, "", "get_custom_update_transpose_time"], [7, 3, 1, "", "init_sparse_time"], [7, 3, 1, "", "init_time"], [7, 2, 1, "", "load"], [7, 3, 1, "", "neuron_update_time"], [7, 3, 1, "", "postsynaptic_update_time"], [7, 3, 1, "", "presynaptic_update_time"], [7, 2, 1, "", "pull_recording_buffers_from_device"], [7, 2, 1, "", "step_time"], [7, 3, 1, "", "synapse_dynamics_time"], [7, 3, 1, "", "t"], [7, 3, 1, "", "timestep"], [7, 2, 1, "", "unload"]], "pygenn.NeuronGroup": [[7, 2, 1, "", "get_var_location"], [7, 3, 1, "", "model"], [7, 3, 1, "", "name"], [7, 3, 1, "", "num_delay_slots"], [7, 3, 1, "", "num_neurons"], [7, 3, 1, "", "params"], [7, 3, 1, "", "prev_spike_time_location"], [7, 3, 1, "", "prev_spike_time_required"], [7, 3, 1, "", "recording_zero_copy_enabled"], [7, 2, 1, "", "set_param_dynamic"], [7, 2, 1, "", "set_var_location"], [7, 3, 1, "", "spike_event_recording_enabled"], [7, 3, 1, "", "spike_recording_enabled"], [7, 3, 1, "", "spike_time_location"], [7, 3, 1, "", "spike_time_required"], [7, 3, 1, "", "var_initialisers"]], "pygenn.ParallelismHint": [[7, 4, 1, "", "POSTSYNAPTIC"], [7, 4, 1, "", "PRESYNAPTIC"], [7, 4, 1, "", "WORD_PACKED_BITMASK"], [7, 3, 1, "", "name"], [7, 3, 1, "", "value"]], "pygenn.PlogSeverity": [[7, 4, 1, "", "DEBUG"], [7, 4, 1, "", "ERROR"], [7, 4, 1, "", "FATAL"], [7, 4, 1, "", "INFO"], [7, 4, 1, "", "NONE"], [7, 4, 1, "", "VERBOSE"], [7, 4, 1, "", "WARNING"], [7, 3, 1, "", "name"], [7, 3, 1, "", "value"]], "pygenn.SynapseGroup": [[7, 3, 1, "", "axonal_delay_steps"], [7, 3, 1, "", "back_prop_delay_steps"], [7, 3, 1, "", "dendritic_delay_location"], [7, 2, 1, "", "get_ps_var_location"], [7, 2, 1, "", "get_wu_post_var_location"], [7, 2, 1, "", "get_wu_pre_var_location"], [7, 2, 1, "", "get_wu_var_location"], [7, 3, 1, "", "kernel_size"], [7, 3, 1, "", "matrix_type"], [7, 3, 1, "", "max_connections"], [7, 3, 1, "", "max_dendritic_delay_timesteps"], [7, 3, 1, "", "max_source_connections"], [7, 3, 1, "", "name"], [7, 3, 1, "", "narrow_sparse_ind_enabled"], [7, 3, 1, "", "num_threads_per_spike"], [7, 3, 1, "", "output_location"], [7, 3, 1, "", "parallelism_hint"], [7, 3, 1, "", "post_target_var"], [7, 3, 1, "", "pre_target_var"], [7, 3, 1, "", "ps_initialiser"], [7, 2, 1, "", "set_ps_param_dynamic"], [7, 2, 1, "", "set_ps_var_location"], [7, 2, 1, "", "set_wu_param_dynamic"], [7, 2, 1, "", "set_wu_post_var_location"], [7, 2, 1, "", "set_wu_pre_var_location"], [7, 2, 1, "", "set_wu_var_location"], [7, 3, 1, "", "sparse_connectivity_initialiser"], [7, 3, 1, "", "sparse_connectivity_location"], [7, 3, 1, "", "toeplitz_connectivity_initialiser"], [7, 3, 1, "", "wu_initialiser"]], "pygenn.SynapseMatrixConnectivity": [[7, 4, 1, "", "BITMASK"], [7, 4, 1, "", "DENSE"], [7, 4, 1, "", "PROCEDURAL"], [7, 4, 1, "", "SPARSE"], [7, 4, 1, "", "TOEPLITZ"], [7, 3, 1, "", "name"], [7, 3, 1, "", "value"]], "pygenn.SynapseMatrixType": [[7, 4, 1, "", "BITMASK"], [7, 4, 1, "", "DENSE"], [7, 4, 1, "", "DENSE_PROCEDURALG"], [7, 4, 1, "", "PROCEDURAL"], [7, 4, 1, "", "PROCEDURAL_KERNELG"], [7, 4, 1, "", "SPARSE"], [7, 4, 1, "", "TOEPLITZ"], [7, 3, 1, "", "name"], [7, 3, 1, "", "value"]], "pygenn.SynapseMatrixWeight": [[7, 4, 1, "", "INDIVIDUAL"], [7, 4, 1, "", "KERNEL"], [7, 4, 1, "", "PROCEDURAL"], [7, 3, 1, "", "name"], [7, 3, 1, "", "value"]], "pygenn.VarAccess": [[7, 4, 1, "", "READ_ONLY"], [7, 4, 1, "", "READ_ONLY_DUPLICATE"], [7, 4, 1, "", "READ_ONLY_SHARED_NEURON"], [7, 4, 1, "", "READ_WRITE"], [7, 3, 1, "", "name"], [7, 3, 1, "", "value"]], "pygenn.VarAccessDim": [[7, 4, 1, "", "BATCH"], [7, 4, 1, "", "ELEMENT"], [7, 3, 1, "", "name"], [7, 3, 1, "", "value"]], "pygenn.VarAccessMode": [[7, 4, 1, "", "READ_ONLY"], [7, 4, 1, "", "READ_WRITE"], [7, 4, 1, "", "REDUCE_MAX"], [7, 4, 1, "", "REDUCE_SUM"], [7, 3, 1, "", "name"], [7, 3, 1, "", "value"]], "pygenn.VarAccessModeAttribute": [[7, 4, 1, "", "MAX"], [7, 4, 1, "", "READ_ONLY"], [7, 4, 1, "", "READ_WRITE"], [7, 4, 1, "", "REDUCE"], [7, 4, 1, "", "SUM"], [7, 3, 1, "", "name"], [7, 3, 1, "", "value"]], "pygenn.VarLocation": [[7, 4, 1, "", "DEVICE"], [7, 4, 1, "", "HOST"], [7, 4, 1, "", "HOST_DEVICE"], [7, 4, 1, "", "HOST_DEVICE_ZERO_COPY"], [7, 4, 1, "", "ZERO_COPY"], [7, 3, 1, "", "name"], [7, 3, 1, "", "value"]], "pygenn.cuda_backend": [[7, 1, 1, "", "Backend"], [7, 1, 1, "", "BlockSizeSelect"], [7, 1, 1, "", "DeviceSelect"], [7, 1, 1, "", "Preferences"], [7, 1, 1, "", "Runtime"], [7, 5, 1, "", "create_backend"]], "pygenn.cuda_backend.BlockSizeSelect": [[7, 4, 1, "", "MANUAL"], [7, 4, 1, "", "OCCUPANCY"], [7, 3, 1, "", "name"], [7, 3, 1, "", "value"]], "pygenn.cuda_backend.DeviceSelect": [[7, 4, 1, "", "MANUAL"], [7, 4, 1, "", "MOST_MEMORY"], [7, 4, 1, "", "OPTIMAL"], [7, 3, 1, "", "name"], [7, 3, 1, "", "value"]], "pygenn.cuda_backend.Preferences": [[7, 3, 1, "", "block_size_select_method"], [7, 3, 1, "", "constant_cache_overhead"], [7, 3, 1, "", "device_select_method"], [7, 3, 1, "", "enable_nccl_reductions"], [7, 3, 1, "", "generate_line_info"], [7, 3, 1, "", "manual_block_sizes"], [7, 3, 1, "", "manual_device_id"], [7, 3, 1, "", "show_ptx_info"]], "pygenn.cuda_backend.Runtime": [[7, 2, 1, "", "nccl_generate_unique_id"], [7, 2, 1, "", "nccl_init_communicator"], [7, 3, 1, "", "nccl_unique_id"]], "pygenn.current_source_models": [[7, 5, 1, "", "DC"], [7, 5, 1, "", "GaussianNoise"], [7, 5, 1, "", "PoissonExp"]], "pygenn.custom_update_models": [[7, 5, 1, "", "Transpose"]], "pygenn.genn_groups": [[7, 1, 1, "", "CurrentSourceMixin"], [7, 1, 1, "", "CustomConnectivityUpdateMixin"], [7, 1, 1, "", "CustomUpdateMixin"], [7, 1, 1, "", "CustomUpdateWUMixin"], [7, 1, 1, "", "GroupMixin"], [7, 1, 1, "", "NeuronGroupMixin"], [7, 1, 1, "", "SynapseGroupMixin"]], "pygenn.genn_groups.CurrentSourceMixin": [[7, 2, 1, "", "load"], [7, 2, 1, "", "load_init_egps"], [7, 2, 1, "", "unload"]], "pygenn.genn_groups.CustomConnectivityUpdateMixin": [[7, 2, 1, "", "get_var_values"], [7, 2, 1, "", "load"], [7, 2, 1, "", "load_init_egps"], [7, 2, 1, "", "unload"]], "pygenn.genn_groups.CustomUpdateMixin": [[7, 2, 1, "", "load"], [7, 2, 1, "", "load_init_egps"], [7, 2, 1, "", "unload"]], "pygenn.genn_groups.CustomUpdateWUMixin": [[7, 2, 1, "", "get_var_values"], [7, 2, 1, "", "load"], [7, 2, 1, "", "load_init_egps"], [7, 2, 1, "", "unload"]], "pygenn.genn_groups.GroupMixin": [[7, 2, 1, "", "pull_extra_global_param_from_device"], [7, 2, 1, "", "pull_var_from_device"], [7, 2, 1, "", "push_extra_global_param_to_device"], [7, 2, 1, "", "push_var_to_device"], [7, 2, 1, "", "set_dynamic_param_value"]], "pygenn.genn_groups.NeuronGroupMixin": [[7, 2, 1, "", "load"], [7, 2, 1, "", "load_init_egps"], [7, 3, 1, "", "spike_recording_data"], [7, 2, 1, "", "unload"]], "pygenn.genn_groups.SynapseGroupMixin": [[7, 2, 1, "", "get_sparse_post_inds"], [7, 2, 1, "", "get_sparse_pre_inds"], [7, 2, 1, "", "get_var_values"], [7, 2, 1, "", "load"], [7, 2, 1, "", "load_init_egps"], [7, 3, 1, "", "post_spike_event_recording_data"], [7, 3, 1, "", "pre_spike_event_recording_data"], [7, 2, 1, "", "pull_connectivity_from_device"], [7, 2, 1, "", "pull_in_syn_from_device"], [7, 2, 1, "", "pull_psm_extra_global_param_from_device"], [7, 2, 1, "", "push_connectivity_to_device"], [7, 2, 1, "", "push_in_syn_to_device"], [7, 2, 1, "", "push_psm_extra_global_param_to_device"], [7, 2, 1, "", "set_sparse_connections"], [7, 3, 1, "", "synapse_group"], [7, 2, 1, "", "unload"], [7, 3, 1, "", "weight_update_var_size"]], "pygenn.init_sparse_connectivity_snippets": [[7, 5, 1, "", "Conv2D"], [7, 5, 1, "", "FixedNumberPostWithReplacement"], [7, 5, 1, "", "FixedNumberPreWithReplacement"], [7, 5, 1, "", "FixedNumberTotalWithReplacement"], [7, 5, 1, "", "FixedProbability"], [7, 5, 1, "", "FixedProbabilityNoAutapse"], [7, 5, 1, "", "OneToOne"], [7, 5, 1, "", "Uninitialised"]], "pygenn.init_toeplitz_connectivity_snippets": [[7, 5, 1, "", "AvgPoolConv2D"], [7, 5, 1, "", "Conv2D"], [7, 5, 1, "", "Uninitialised"]], "pygenn.init_var_snippets": [[7, 5, 1, "", "Binomial"], [7, 5, 1, "", "Constant"], [7, 5, 1, "", "Exponential"], [7, 5, 1, "", "Gamma"], [7, 5, 1, "", "Kernel"], [7, 5, 1, "", "Normal"], [7, 5, 1, "", "NormalClipped"], [7, 5, 1, "", "NormalClippedDelay"], [7, 5, 1, "", "Uniform"], [7, 5, 1, "", "Uninitialised"]], "pygenn.model_preprocessor": [[7, 1, 1, "", "Array"], [7, 1, 1, "", "ArrayBase"], [7, 1, 1, "", "ExtraGlobalParameter"], [7, 1, 1, "", "SynapseVariable"], [7, 1, 1, "", "Variable"], [7, 1, 1, "", "VariableBase"], [7, 5, 1, "", "get_snippet"], [7, 5, 1, "", "get_var_init"], [7, 5, 1, "", "prepare_egps"], [7, 5, 1, "", "prepare_param_vals"], [7, 5, 1, "", "prepare_vars"]], "pygenn.model_preprocessor.Array": [[7, 3, 1, "", "view"]], "pygenn.model_preprocessor.ArrayBase": [[7, 2, 1, "", "pull_from_device"], [7, 2, 1, "", "push_to_device"], [7, 2, 1, "", "set_array"]], "pygenn.model_preprocessor.ExtraGlobalParameter": [[7, 2, 1, "", "set_init_values"], [7, 2, 1, "", "set_values"], [7, 3, 1, "", "values"], [7, 3, 1, "", "view"]], "pygenn.model_preprocessor.SynapseVariable": [[7, 3, 1, "", "current_values"], [7, 3, 1, "", "current_view"], [7, 3, 1, "", "values"], [7, 3, 1, "", "view"]], "pygenn.model_preprocessor.Variable": [[7, 3, 1, "", "current_values"], [7, 3, 1, "", "current_view"], [7, 3, 1, "", "values"], [7, 3, 1, "", "view"]], "pygenn.model_preprocessor.VariableBase": [[7, 2, 1, "", "set_array"], [7, 2, 1, "", "set_init_values"], [7, 2, 1, "", "set_values"]], "pygenn.neuron_models": [[7, 5, 1, "", "Izhikevich"], [7, 5, 1, "", "IzhikevichVariable"], [7, 5, 1, "", "LIF"], [7, 5, 1, "", "Poisson"], [7, 5, 1, "", "PoissonNew"], [7, 5, 1, "", "RulkovMap"], [7, 5, 1, "", "SpikeSource"], [7, 5, 1, "", "SpikeSourceArray"], [7, 5, 1, "", "TraubMiles"], [7, 5, 1, "", "TraubMilesAlt"], [7, 5, 1, "", "TraubMilesFast"], [7, 5, 1, "", "TraubMilesNStep"]], "pygenn.postsynaptic_models": [[7, 5, 1, "", "DeltaCurr"], [7, 5, 1, "", "ExpCond"], [7, 5, 1, "", "ExpCurr"]], "pygenn.runtime": [[7, 1, 1, "", "ArrayBase"], [7, 1, 1, "", "Runtime"], [7, 1, 1, "", "StateBase"]], "pygenn.runtime.ArrayBase": [[7, 3, 1, "", "host_view"], [7, 2, 1, "", "pull_from_device"], [7, 2, 1, "", "pull_slice_1d_from_device"], [7, 2, 1, "", "push_slice_1d_to_device"], [7, 2, 1, "", "push_to_device"]], "pygenn.runtime.Runtime": [[7, 2, 1, "", "allocate"], [7, 2, 1, "", "allocate_array"], [7, 2, 1, "", "custom_update"], [7, 2, 1, "", "get_array"], [7, 2, 1, "", "get_custom_update_time"], [7, 2, 1, "", "get_custom_update_transpose_time"], [7, 2, 1, "", "get_delay_pointer"], [7, 2, 1, "", "get_recorded_post_spike_events"], [7, 2, 1, "", "get_recorded_pre_spike_events"], [7, 2, 1, "", "get_recorded_spikes"], [7, 3, 1, "", "init_sparse_time"], [7, 3, 1, "", "init_time"], [7, 2, 1, "", "initialize"], [7, 2, 1, "", "initialize_sparse"], [7, 3, 1, "", "neuron_update_time"], [7, 3, 1, "", "postsynaptic_update_time"], [7, 3, 1, "", "presynaptic_update_time"], [7, 2, 1, "", "pull_recording_buffers_from_device"], [7, 2, 1, "", "set_dynamic_param_value"], [7, 3, 1, "", "state"], [7, 2, 1, "", "step_time"], [7, 3, 1, "", "synapse_dynamics_time"], [7, 3, 1, "", "time"], [7, 3, 1, "", "timestep"]], "pygenn.single_threaded_cpu_backend": [[7, 1, 1, "", "Backend"], [7, 1, 1, "", "Preferences"], [7, 5, 1, "", "create_backend"]], "pygenn.weight_update_models": [[7, 5, 1, "", "PiecewiseSTDP"], [7, 5, 1, "", "StaticGraded"], [7, 5, 1, "", "StaticPulse"], [7, 5, 1, "", "StaticPulseConstantWeight"], [7, 5, 1, "", "StaticPulseDendriticDelay"]]}, "objtypes": {"0": "py:module", "1": "py:class", "2": "py:method", "3": "py:property", "4": "py:attribute", "5": "py:function"}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "class", "Python class"], "2": ["py", "method", "Python method"], "3": ["py", "property", "Python property"], "4": ["py", "attribute", "Python attribute"], "5": ["py", "function", "Python function"]}, "titleterms": {"bibliographi": 0, "build": 1, "network": [1, 5], "The": 1, "model": [1, 2, 10, 11], "popul": 1, "paramet": [1, 5], "extra": [1, 5], "global": [1, 5], "refer": 1, "variabl": [1, 2, 5, 7], "locat": 1, "neuron": [1, 2, 7], "synaps": [1, 2, 7], "current": [1, 2], "sourc": [1, 2], "custom": [1, 2], "updat": [1, 2, 7], "connect": [1, 2], "genncod": [2, 8], "random": 2, "number": 2, "gener": 2, "type": 7, "initialis": 2, "snippet": 2, "spars": 2, "toeplitz": 2, "addit": [2, 7], "input": [2, 7], "weight": 2, "pre": [2, 7], "postsynapt": [2, 7], "dynam": [2, 5, 7], "spike": [2, 5, 7], "like": [2, 7], "event": [2, 7], "batch": [2, 7], "reduct": [2, 7], "parallel": [2, 7], "iter": [2, 7], "remov": [2, 7], "creation": [2, 7], "host": [2, 7], "pygenn": [3, 6, 7, 11, 13], "document": 3, "indic": 3, "tabl": 3, "comput": [4, 12], "time": [4, 12], "simul": 5, "record": 5, "packag": 7, "submodul": 7, "cuda_backend": 7, "modul": 7, "current_source_model": 7, "custom_connectivity_update_model": 7, "custom_update_model": 7, "init_sparse_connectivity_snippet": 7, "init_toeplitz_connectivity_snippet": 7, "init_var_snippet": 7, "neuron_model": 7, "postsynaptic_model": 7, "runtim": 7, "single_threaded_cpu_backend": 7, "weight_update_model": 7, "upgrad": 8, "from": 8, "genn": 8, "4": 8, "syntax": 8, "chang": 8, "user": 9, "project": 9, "mnist": 10, "classif": 10, "us": 10, "an": 10, "insect": 10, "inspir": 10, "mushroom": 10, "bodi": 10, "name": [10, 11, 13], "argument": [10, 11, 13], "implement": [11, 13], "local": 11, "cortic": 11, "microcircuit": 11, "superspik": 13, "model_preprocessor": 7, "valu": 5, "view": 5, "push": 5, "pull": 5, "g": [], "genn_group": 7, "genn_model": []}, "envversion": {"sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx": 58}, "alltitles": {"PyGeNN documentation": [[3, "pygenn-documentation"]], "Indices and tables": [[3, "indices-and-tables"]], "Computation times": [[4, "computation-times"], [12, "computation-times"]], "pygenn": [[6, "pygenn"]], "Upgrading from GeNN 4": [[8, "upgrading-from-genn-4"]], "GeNNCode": [[8, "genncode"], [2, "genncode"]], "Syntax changes": [[8, "syntax-changes"]], "User projects": [[9, "user-projects"]], "MNIST classification using an insect-inspired mushroom body model": [[10, "mnist-classification-using-an-insect-inspired-mushroom-body-model"]], "Named Arguments": [[10, "named-arguments"], [11, "named-arguments"], [13, "named-arguments"]], "PyGeNN implementation of local cortical microcircuit model": [[11, "pygenn-implementation-of-local-cortical-microcircuit-model"]], "PyGeNN implementation of SuperSpike": [[13, "pygenn-implementation-of-superspike"]], "Simulating networks": [[5, "simulating-networks"]], "Spike recording": [[5, "spike-recording"]], "Variables": [[5, "variables"], [1, "variables"]], "Pushing and pulling": [[5, "pushing-and-pulling"]], "Values and views": [[5, "values-and-views"]], "Extra global parameters": [[5, "extra-global-parameters"], [1, "extra-global-parameters"]], "Dynamic parameters": [[5, "dynamic-parameters"]], "Bibliography": [[0, "bibliography"]], "pygenn package": [[7, "module-pygenn"]], "Parallel synapse iteration and removal": [[7, "parallel-synapse-iteration-and-removal"], [2, "parallel-synapse-iteration-and-removal"]], "Parallel synapse creation": [[7, "parallel-synapse-creation"], [2, "parallel-synapse-creation"]], "Host updates": [[7, "host-updates"], [2, "host-updates"]], "Batch reduction": [[7, "batch-reduction"], [2, "batch-reduction"]], "Neuron reduction": [[7, "neuron-reduction"], [2, "neuron-reduction"]], "Additional input variables": [[7, "additional-input-variables"], [2, "additional-input-variables"]], "Pre and postsynaptic dynamics": [[7, "pre-and-postsynaptic-dynamics"], [2, "pre-and-postsynaptic-dynamics"]], "Synapse dynamics": [[7, "synapse-dynamics"], [2, "synapse-dynamics"]], "Spike-like events": [[7, "spike-like-events"], [2, "spike-like-events"]], "Submodules": [[7, "submodules"]], "pygenn.cuda_backend module": [[7, "module-pygenn.cuda_backend"]], "pygenn.current_source_models module": [[7, "module-pygenn.current_source_models"]], "pygenn.custom_connectivity_update_models module": [[7, "module-pygenn.custom_connectivity_update_models"]], "pygenn.custom_update_models module": [[7, "module-pygenn.custom_update_models"]], "pygenn.genn_groups module": [[7, "module-pygenn.genn_groups"]], "pygenn.init_sparse_connectivity_snippets module": [[7, "module-pygenn.init_sparse_connectivity_snippets"]], "pygenn.init_toeplitz_connectivity_snippets module": [[7, "module-pygenn.init_toeplitz_connectivity_snippets"]], "pygenn.init_var_snippets module": [[7, "module-pygenn.init_var_snippets"]], "pygenn.model_preprocessor module": [[7, "module-pygenn.model_preprocessor"]], "pygenn.neuron_models module": [[7, "module-pygenn.neuron_models"]], "pygenn.postsynaptic_models module": [[7, "module-pygenn.postsynaptic_models"]], "pygenn.runtime module": [[7, "module-pygenn.runtime"]], "pygenn.single_threaded_cpu_backend module": [[7, "module-pygenn.single_threaded_cpu_backend"]], "pygenn.types module": [[7, "module-pygenn.types"]], "pygenn.weight_update_models module": [[7, "module-pygenn.weight_update_models"]], "Custom models": [[2, "custom-models"]], "Random number generation": [[2, "random-number-generation"]], "Initialisation snippets": [[2, "initialisation-snippets"]], "Variable initialisation": [[2, "variable-initialisation"]], "Sparse connectivity initialisation": [[2, "sparse-connectivity-initialisation"]], "Toeplitz connectivity initialisation": [[2, "toeplitz-connectivity-initialisation"]], "Models": [[2, "models"]], "Neuron models": [[2, "neuron-models"]], "Weight update models": [[2, "weight-update-models"]], "Postsynaptic models": [[2, "postsynaptic-models"]], "Current source models": [[2, "current-source-models"]], "Custom update models": [[2, "custom-update-models"]], "Custom connectivity update models": [[2, "custom-connectivity-update-models"]], "Building networks": [[1, "building-networks"]], "The model": [[1, "the-model"]], "Populations": [[1, "populations"]], "Parameters": [[1, "parameters"]], "Extra global parameter references": [[1, "extra-global-parameter-references"]], "Variables references": [[1, "variables-references"]], "Variable locations": [[1, "variable-locations"]], "Neuron populations": [[1, "neuron-populations"]], "Synapse populations": [[1, "synapse-populations"]], "Current sources": [[1, "current-sources"]], "Custom updates": [[1, "custom-updates"]], "Custom connectivity updates": [[1, "custom-connectivity-updates"]]}, "indexentries": {"array (class in pygenn.model_preprocessor)": [[7, "pygenn.model_preprocessor.Array"]], "arraybase (class in pygenn.model_preprocessor)": [[7, "pygenn.model_preprocessor.ArrayBase"]], "arraybase (class in pygenn.runtime)": [[7, "pygenn.runtime.ArrayBase"]], "avgpoolconv2d() (in module pygenn.init_toeplitz_connectivity_snippets)": [[7, "pygenn.init_toeplitz_connectivity_snippets.AvgPoolConv2D"]], "batch (pygenn.varaccessdim attribute)": [[7, "pygenn.VarAccessDim.BATCH"]], "bitmask (pygenn.synapsematrixconnectivity attribute)": [[7, "pygenn.SynapseMatrixConnectivity.BITMASK"]], "bitmask (pygenn.synapsematrixtype attribute)": [[7, "pygenn.SynapseMatrixType.BITMASK"]], "backend (class in pygenn.cuda_backend)": [[7, "pygenn.cuda_backend.Backend"]], "backend (class in pygenn.single_threaded_cpu_backend)": [[7, "pygenn.single_threaded_cpu_backend.Backend"]], "binomial() (in module pygenn.init_var_snippets)": [[7, "pygenn.init_var_snippets.Binomial"]], "blocksizeselect (class in pygenn.cuda_backend)": [[7, "pygenn.cuda_backend.BlockSizeSelect"]], "constant() (in module pygenn.init_var_snippets)": [[7, "pygenn.init_var_snippets.Constant"]], "conv2d() (in module pygenn.init_sparse_connectivity_snippets)": [[7, "pygenn.init_sparse_connectivity_snippets.Conv2D"]], "conv2d() (in module pygenn.init_toeplitz_connectivity_snippets)": [[7, "pygenn.init_toeplitz_connectivity_snippets.Conv2D"]], "currentsource (class in pygenn)": [[7, "pygenn.CurrentSource"]], "currentsourcemixin (class in pygenn.genn_groups)": [[7, "pygenn.genn_groups.CurrentSourceMixin"]], "customconnectivityupdate (class in pygenn)": [[7, "pygenn.CustomConnectivityUpdate"]], "customconnectivityupdatemixin (class in pygenn.genn_groups)": [[7, "pygenn.genn_groups.CustomConnectivityUpdateMixin"]], "customupdate (class in pygenn)": [[7, "pygenn.CustomUpdate"]], "customupdatemixin (class in pygenn.genn_groups)": [[7, "pygenn.genn_groups.CustomUpdateMixin"]], "customupdatevaraccess (class in pygenn)": [[7, "pygenn.CustomUpdateVarAccess"]], "customupdatewu (class in pygenn)": [[7, "pygenn.CustomUpdateWU"]], "customupdatewumixin (class in pygenn.genn_groups)": [[7, "pygenn.genn_groups.CustomUpdateWUMixin"]], "dc() (in module pygenn.current_source_models)": [[7, "pygenn.current_source_models.DC"]], "debug (pygenn.plogseverity attribute)": [[7, "pygenn.PlogSeverity.DEBUG"]], "dense (pygenn.synapsematrixconnectivity attribute)": [[7, "pygenn.SynapseMatrixConnectivity.DENSE"]], "dense (pygenn.synapsematrixtype attribute)": [[7, "pygenn.SynapseMatrixType.DENSE"]], "dense_proceduralg (pygenn.synapsematrixtype attribute)": [[7, "pygenn.SynapseMatrixType.DENSE_PROCEDURALG"]], "device (pygenn.varlocation attribute)": [[7, "pygenn.VarLocation.DEVICE"]], "deltacurr() (in module pygenn.postsynaptic_models)": [[7, "pygenn.postsynaptic_models.DeltaCurr"]], "deviceselect (class in pygenn.cuda_backend)": [[7, "pygenn.cuda_backend.DeviceSelect"]], "element (pygenn.varaccessdim attribute)": [[7, "pygenn.VarAccessDim.ELEMENT"]], "error (pygenn.plogseverity attribute)": [[7, "pygenn.PlogSeverity.ERROR"]], "expcond() (in module pygenn.postsynaptic_models)": [[7, "pygenn.postsynaptic_models.ExpCond"]], "expcurr() (in module pygenn.postsynaptic_models)": [[7, "pygenn.postsynaptic_models.ExpCurr"]], "exponential() (in module pygenn.init_var_snippets)": [[7, "pygenn.init_var_snippets.Exponential"]], "extraglobalparameter (class in pygenn.model_preprocessor)": [[7, "pygenn.model_preprocessor.ExtraGlobalParameter"]], "fatal (pygenn.plogseverity attribute)": [[7, "pygenn.PlogSeverity.FATAL"]], "fixednumberpostwithreplacement() (in module pygenn.init_sparse_connectivity_snippets)": [[7, "pygenn.init_sparse_connectivity_snippets.FixedNumberPostWithReplacement"]], "fixednumberprewithreplacement() (in module pygenn.init_sparse_connectivity_snippets)": [[7, "pygenn.init_sparse_connectivity_snippets.FixedNumberPreWithReplacement"]], "fixednumbertotalwithreplacement() (in module pygenn.init_sparse_connectivity_snippets)": [[7, "pygenn.init_sparse_connectivity_snippets.FixedNumberTotalWithReplacement"]], "fixedprobability() (in module pygenn.init_sparse_connectivity_snippets)": [[7, "pygenn.init_sparse_connectivity_snippets.FixedProbability"]], "fixedprobabilitynoautapse() (in module pygenn.init_sparse_connectivity_snippets)": [[7, "pygenn.init_sparse_connectivity_snippets.FixedProbabilityNoAutapse"]], "gamma() (in module pygenn.init_var_snippets)": [[7, "pygenn.init_var_snippets.Gamma"]], "gaussiannoise() (in module pygenn.current_source_models)": [[7, "pygenn.current_source_models.GaussianNoise"]], "gennmodel (class in pygenn)": [[7, "pygenn.GeNNModel"]], "groupmixin (class in pygenn.genn_groups)": [[7, "pygenn.genn_groups.GroupMixin"]], "host (pygenn.varlocation attribute)": [[7, "pygenn.VarLocation.HOST"]], "host_device (pygenn.varlocation attribute)": [[7, "pygenn.VarLocation.HOST_DEVICE"]], "host_device_zero_copy (pygenn.varlocation attribute)": [[7, "pygenn.VarLocation.HOST_DEVICE_ZERO_COPY"]], "individual (pygenn.synapsematrixweight attribute)": [[7, "pygenn.SynapseMatrixWeight.INDIVIDUAL"]], "info (pygenn.plogseverity attribute)": [[7, "pygenn.PlogSeverity.INFO"]], "izhikevich() (in module pygenn.neuron_models)": [[7, "pygenn.neuron_models.Izhikevich"]], "izhikevichvariable() (in module pygenn.neuron_models)": [[7, "pygenn.neuron_models.IzhikevichVariable"]], "kernel (pygenn.synapsematrixweight attribute)": [[7, "pygenn.SynapseMatrixWeight.KERNEL"]], "kernel() (in module pygenn.init_var_snippets)": [[7, "pygenn.init_var_snippets.Kernel"]], "lif() (in module pygenn.neuron_models)": [[7, "pygenn.neuron_models.LIF"]], "manual (pygenn.cuda_backend.blocksizeselect attribute)": [[7, "pygenn.cuda_backend.BlockSizeSelect.MANUAL"]], "manual (pygenn.cuda_backend.deviceselect attribute)": [[7, "pygenn.cuda_backend.DeviceSelect.MANUAL"]], "max (pygenn.varaccessmodeattribute attribute)": [[7, "pygenn.VarAccessModeAttribute.MAX"]], "most_memory (pygenn.cuda_backend.deviceselect attribute)": [[7, "pygenn.cuda_backend.DeviceSelect.MOST_MEMORY"]], "none (pygenn.plogseverity attribute)": [[7, "pygenn.PlogSeverity.NONE"]], "neurongroup (class in pygenn)": [[7, "pygenn.NeuronGroup"]], "neurongroupmixin (class in pygenn.genn_groups)": [[7, "pygenn.genn_groups.NeuronGroupMixin"]], "normal() (in module pygenn.init_var_snippets)": [[7, "pygenn.init_var_snippets.Normal"]], "normalclipped() (in module pygenn.init_var_snippets)": [[7, "pygenn.init_var_snippets.NormalClipped"]], "normalclippeddelay() (in module pygenn.init_var_snippets)": [[7, "pygenn.init_var_snippets.NormalClippedDelay"]], "occupancy (pygenn.cuda_backend.blocksizeselect attribute)": [[7, "pygenn.cuda_backend.BlockSizeSelect.OCCUPANCY"]], "optimal (pygenn.cuda_backend.deviceselect attribute)": [[7, "pygenn.cuda_backend.DeviceSelect.OPTIMAL"]], "onetoone() (in module pygenn.init_sparse_connectivity_snippets)": [[7, "pygenn.init_sparse_connectivity_snippets.OneToOne"]], "postsynaptic (pygenn.parallelismhint attribute)": [[7, "pygenn.ParallelismHint.POSTSYNAPTIC"]], "presynaptic (pygenn.parallelismhint attribute)": [[7, "pygenn.ParallelismHint.PRESYNAPTIC"]], "procedural (pygenn.synapsematrixconnectivity attribute)": [[7, "pygenn.SynapseMatrixConnectivity.PROCEDURAL"]], "procedural (pygenn.synapsematrixtype attribute)": [[7, "pygenn.SynapseMatrixType.PROCEDURAL"]], "procedural (pygenn.synapsematrixweight attribute)": [[7, "pygenn.SynapseMatrixWeight.PROCEDURAL"]], "procedural_kernelg (pygenn.synapsematrixtype attribute)": [[7, "pygenn.SynapseMatrixType.PROCEDURAL_KERNELG"]], "parallelismhint (class in pygenn)": [[7, "pygenn.ParallelismHint"]], "piecewisestdp() (in module pygenn.weight_update_models)": [[7, "pygenn.weight_update_models.PiecewiseSTDP"]], "plogseverity (class in pygenn)": [[7, "pygenn.PlogSeverity"]], "poisson() (in module pygenn.neuron_models)": [[7, "pygenn.neuron_models.Poisson"]], "poissonexp() (in module pygenn.current_source_models)": [[7, "pygenn.current_source_models.PoissonExp"]], "poissonnew() (in module pygenn.neuron_models)": [[7, "pygenn.neuron_models.PoissonNew"]], "preferences (class in pygenn.cuda_backend)": [[7, "pygenn.cuda_backend.Preferences"]], "preferences (class in pygenn.single_threaded_cpu_backend)": [[7, "pygenn.single_threaded_cpu_backend.Preferences"]], "read_only (pygenn.customupdatevaraccess attribute)": [[7, "pygenn.CustomUpdateVarAccess.READ_ONLY"]], "read_only (pygenn.varaccess attribute)": [[7, "pygenn.VarAccess.READ_ONLY"]], "read_only (pygenn.varaccessmode attribute)": [[7, "pygenn.VarAccessMode.READ_ONLY"]], "read_only (pygenn.varaccessmodeattribute attribute)": [[7, "pygenn.VarAccessModeAttribute.READ_ONLY"]], "read_only_duplicate (pygenn.varaccess attribute)": [[7, "pygenn.VarAccess.READ_ONLY_DUPLICATE"]], "read_only_shared (pygenn.customupdatevaraccess attribute)": [[7, "pygenn.CustomUpdateVarAccess.READ_ONLY_SHARED"]], "read_only_shared_neuron (pygenn.customupdatevaraccess attribute)": [[7, "pygenn.CustomUpdateVarAccess.READ_ONLY_SHARED_NEURON"]], "read_only_shared_neuron (pygenn.varaccess attribute)": [[7, "pygenn.VarAccess.READ_ONLY_SHARED_NEURON"]], "read_write (pygenn.customupdatevaraccess attribute)": [[7, "pygenn.CustomUpdateVarAccess.READ_WRITE"]], "read_write (pygenn.varaccess attribute)": [[7, "pygenn.VarAccess.READ_WRITE"]], "read_write (pygenn.varaccessmode attribute)": [[7, "pygenn.VarAccessMode.READ_WRITE"]], "read_write (pygenn.varaccessmodeattribute attribute)": [[7, "pygenn.VarAccessModeAttribute.READ_WRITE"]], "reduce (pygenn.varaccessmodeattribute attribute)": [[7, "pygenn.VarAccessModeAttribute.REDUCE"]], "reduce_batch_max (pygenn.customupdatevaraccess attribute)": [[7, "pygenn.CustomUpdateVarAccess.REDUCE_BATCH_MAX"]], "reduce_batch_sum (pygenn.customupdatevaraccess attribute)": [[7, "pygenn.CustomUpdateVarAccess.REDUCE_BATCH_SUM"]], "reduce_max (pygenn.varaccessmode attribute)": [[7, "pygenn.VarAccessMode.REDUCE_MAX"]], "reduce_neuron_max (pygenn.customupdatevaraccess attribute)": [[7, "pygenn.CustomUpdateVarAccess.REDUCE_NEURON_MAX"]], "reduce_neuron_sum (pygenn.customupdatevaraccess attribute)": [[7, "pygenn.CustomUpdateVarAccess.REDUCE_NEURON_SUM"]], "reduce_sum (pygenn.varaccessmode attribute)": [[7, "pygenn.VarAccessMode.REDUCE_SUM"]], "rulkovmap() (in module pygenn.neuron_models)": [[7, "pygenn.neuron_models.RulkovMap"]], "runtime (class in pygenn.cuda_backend)": [[7, "pygenn.cuda_backend.Runtime"]], "runtime (class in pygenn.runtime)": [[7, "pygenn.runtime.Runtime"]], "sparse (pygenn.synapsematrixconnectivity attribute)": [[7, "pygenn.SynapseMatrixConnectivity.SPARSE"]], "sparse (pygenn.synapsematrixtype attribute)": [[7, "pygenn.SynapseMatrixType.SPARSE"]], "sum (pygenn.varaccessmodeattribute attribute)": [[7, "pygenn.VarAccessModeAttribute.SUM"]], "spikesource() (in module pygenn.neuron_models)": [[7, "pygenn.neuron_models.SpikeSource"]], "spikesourcearray() (in module pygenn.neuron_models)": [[7, "pygenn.neuron_models.SpikeSourceArray"]], "statebase (class in pygenn.runtime)": [[7, "pygenn.runtime.StateBase"]], "staticgraded() (in module pygenn.weight_update_models)": [[7, "pygenn.weight_update_models.StaticGraded"]], "staticpulse() (in module pygenn.weight_update_models)": [[7, "pygenn.weight_update_models.StaticPulse"]], "staticpulseconstantweight() (in module pygenn.weight_update_models)": [[7, "pygenn.weight_update_models.StaticPulseConstantWeight"]], "staticpulsedendriticdelay() (in module pygenn.weight_update_models)": [[7, "pygenn.weight_update_models.StaticPulseDendriticDelay"]], "synapsegroup (class in pygenn)": [[7, "pygenn.SynapseGroup"]], "synapsegroupmixin (class in pygenn.genn_groups)": [[7, "pygenn.genn_groups.SynapseGroupMixin"]], "synapsematrixconnectivity (class in pygenn)": [[7, "pygenn.SynapseMatrixConnectivity"]], "synapsematrixtype (class in pygenn)": [[7, "pygenn.SynapseMatrixType"]], "synapsematrixweight (class in pygenn)": [[7, "pygenn.SynapseMatrixWeight"]], "synapsevariable (class in pygenn.model_preprocessor)": [[7, "pygenn.model_preprocessor.SynapseVariable"]], "toeplitz (pygenn.synapsematrixconnectivity attribute)": [[7, "pygenn.SynapseMatrixConnectivity.TOEPLITZ"]], "toeplitz (pygenn.synapsematrixtype attribute)": [[7, "pygenn.SynapseMatrixType.TOEPLITZ"]], "transpose() (in module pygenn.custom_update_models)": [[7, "pygenn.custom_update_models.Transpose"]], "traubmiles() (in module pygenn.neuron_models)": [[7, "pygenn.neuron_models.TraubMiles"]], "traubmilesalt() (in module pygenn.neuron_models)": [[7, "pygenn.neuron_models.TraubMilesAlt"]], "traubmilesfast() (in module pygenn.neuron_models)": [[7, "pygenn.neuron_models.TraubMilesFast"]], "traubmilesnstep() (in module pygenn.neuron_models)": [[7, "pygenn.neuron_models.TraubMilesNStep"]], "uniform() (in module pygenn.init_var_snippets)": [[7, "pygenn.init_var_snippets.Uniform"]], "uninitialised() (in module pygenn.init_sparse_connectivity_snippets)": [[7, "pygenn.init_sparse_connectivity_snippets.Uninitialised"]], "uninitialised() (in module pygenn.init_toeplitz_connectivity_snippets)": [[7, "pygenn.init_toeplitz_connectivity_snippets.Uninitialised"]], "uninitialised() (in module pygenn.init_var_snippets)": [[7, "pygenn.init_var_snippets.Uninitialised"]], "verbose (pygenn.plogseverity attribute)": [[7, "pygenn.PlogSeverity.VERBOSE"]], "varaccess (class in pygenn)": [[7, "pygenn.VarAccess"]], "varaccessdim (class in pygenn)": [[7, "pygenn.VarAccessDim"]], "varaccessmode (class in pygenn)": [[7, "pygenn.VarAccessMode"]], "varaccessmodeattribute (class in pygenn)": [[7, "pygenn.VarAccessModeAttribute"]], "varlocation (class in pygenn)": [[7, "pygenn.VarLocation"]], "variable (class in pygenn.model_preprocessor)": [[7, "pygenn.model_preprocessor.Variable"]], "variablebase (class in pygenn.model_preprocessor)": [[7, "pygenn.model_preprocessor.VariableBase"]], "warning (pygenn.plogseverity attribute)": [[7, "pygenn.PlogSeverity.WARNING"]], "word_packed_bitmask (pygenn.parallelismhint attribute)": [[7, "pygenn.ParallelismHint.WORD_PACKED_BITMASK"]], "zero_copy (pygenn.varlocation attribute)": [[7, "pygenn.VarLocation.ZERO_COPY"]], "add_current_source() (pygenn.gennmodel method)": [[7, "pygenn.GeNNModel.add_current_source"]], "add_custom_connectivity_update() (pygenn.gennmodel method)": [[7, "pygenn.GeNNModel.add_custom_connectivity_update"]], "add_custom_update() (pygenn.gennmodel method)": [[7, "pygenn.GeNNModel.add_custom_update"]], "add_neuron_population() (pygenn.gennmodel method)": [[7, "pygenn.GeNNModel.add_neuron_population"]], "add_synapse_population() (pygenn.gennmodel method)": [[7, "pygenn.GeNNModel.add_synapse_population"]], "allocate() (pygenn.runtime.runtime method)": [[7, "pygenn.runtime.Runtime.allocate"]], "allocate_array() (pygenn.runtime.runtime method)": [[7, "pygenn.runtime.Runtime.allocate_array"]], "axonal_delay_steps (pygenn.synapsegroup property)": [[7, "pygenn.SynapseGroup.axonal_delay_steps"]], "back_prop_delay_steps (pygenn.synapsegroup property)": [[7, "pygenn.SynapseGroup.back_prop_delay_steps"]], "backend_name (pygenn.gennmodel property)": [[7, "pygenn.GeNNModel.backend_name"]], "block_size_select_method (pygenn.cuda_backend.preferences property)": [[7, "pygenn.cuda_backend.Preferences.block_size_select_method"]], "build() (pygenn.gennmodel method)": [[7, "pygenn.GeNNModel.build"]], "constant_cache_overhead (pygenn.cuda_backend.preferences property)": [[7, "pygenn.cuda_backend.Preferences.constant_cache_overhead"]], "create_backend() (in module pygenn.cuda_backend)": [[7, "pygenn.cuda_backend.create_backend"]], "create_backend() (in module pygenn.single_threaded_cpu_backend)": [[7, "pygenn.single_threaded_cpu_backend.create_backend"]], "create_current_source_model() (in module pygenn)": [[7, "pygenn.create_current_source_model"]], "create_custom_connectivity_update_model() (in module pygenn)": [[7, "pygenn.create_custom_connectivity_update_model"]], "create_custom_update_model() (in module pygenn)": [[7, "pygenn.create_custom_update_model"]], "create_egp_ref() (in module pygenn)": [[7, "pygenn.create_egp_ref"]], "create_neuron_model() (in module pygenn)": [[7, "pygenn.create_neuron_model"]], "create_postsynaptic_model() (in module pygenn)": [[7, "pygenn.create_postsynaptic_model"]], "create_psm_egp_ref() (in module pygenn)": [[7, "pygenn.create_psm_egp_ref"]], "create_psm_var_ref() (in module pygenn)": [[7, "pygenn.create_psm_var_ref"]], "create_sparse_connect_init_snippet() (in module pygenn)": [[7, "pygenn.create_sparse_connect_init_snippet"]], "create_toeplitz_connect_init_snippet() (in module pygenn)": [[7, "pygenn.create_toeplitz_connect_init_snippet"]], "create_var_init_snippet() (in module pygenn)": [[7, "pygenn.create_var_init_snippet"]], "create_var_ref() (in module pygenn)": [[7, "pygenn.create_var_ref"]], "create_weight_update_model() (in module pygenn)": [[7, "pygenn.create_weight_update_model"]], "create_wu_egp_ref() (in module pygenn)": [[7, "pygenn.create_wu_egp_ref"]], "create_wu_post_var_ref() (in module pygenn)": [[7, "pygenn.create_wu_post_var_ref"]], "create_wu_pre_var_ref() (in module pygenn)": [[7, "pygenn.create_wu_pre_var_ref"]], "create_wu_var_ref() (in module pygenn)": [[7, "pygenn.create_wu_var_ref"]], "current_values (pygenn.model_preprocessor.synapsevariable property)": [[7, "pygenn.model_preprocessor.SynapseVariable.current_values"]], "current_values (pygenn.model_preprocessor.variable property)": [[7, "pygenn.model_preprocessor.Variable.current_values"]], "current_view (pygenn.model_preprocessor.synapsevariable property)": [[7, "pygenn.model_preprocessor.SynapseVariable.current_view"]], "current_view (pygenn.model_preprocessor.variable property)": [[7, "pygenn.model_preprocessor.Variable.current_view"]], "custom_update() (pygenn.gennmodel method)": [[7, "pygenn.GeNNModel.custom_update"]], "custom_update() (pygenn.runtime.runtime method)": [[7, "pygenn.runtime.Runtime.custom_update"]], "dt (pygenn.gennmodel property)": [[7, "pygenn.GeNNModel.dT"]], "dendritic_delay_location (pygenn.synapsegroup property)": [[7, "pygenn.SynapseGroup.dendritic_delay_location"]], "device_select_method (pygenn.cuda_backend.preferences property)": [[7, "pygenn.cuda_backend.Preferences.device_select_method"]], "enable_nccl_reductions (pygenn.cuda_backend.preferences property)": [[7, "pygenn.cuda_backend.Preferences.enable_nccl_reductions"]], "free_device_mem_bytes (pygenn.gennmodel property)": [[7, "pygenn.GeNNModel.free_device_mem_bytes"]], "generate_line_info (pygenn.cuda_backend.preferences property)": [[7, "pygenn.cuda_backend.Preferences.generate_line_info"]], "get_array() (pygenn.runtime.runtime method)": [[7, "pygenn.runtime.Runtime.get_array"]], "get_custom_update_time() (pygenn.gennmodel method)": [[7, "pygenn.GeNNModel.get_custom_update_time"]], "get_custom_update_time() (pygenn.runtime.runtime method)": [[7, "pygenn.runtime.Runtime.get_custom_update_time"]], "get_custom_update_transpose_time() (pygenn.gennmodel method)": [[7, "pygenn.GeNNModel.get_custom_update_transpose_time"]], "get_custom_update_transpose_time() (pygenn.runtime.runtime method)": [[7, "pygenn.runtime.Runtime.get_custom_update_transpose_time"]], "get_delay_pointer() (pygenn.runtime.runtime method)": [[7, "pygenn.runtime.Runtime.get_delay_pointer"]], "get_post_var_location() (pygenn.customconnectivityupdate method)": [[7, "pygenn.CustomConnectivityUpdate.get_post_var_location"]], "get_pre_var_location() (pygenn.customconnectivityupdate method)": [[7, "pygenn.CustomConnectivityUpdate.get_pre_var_location"]], "get_ps_var_location() (pygenn.synapsegroup method)": [[7, "pygenn.SynapseGroup.get_ps_var_location"]], "get_recorded_post_spike_events() (pygenn.runtime.runtime method)": [[7, "pygenn.runtime.Runtime.get_recorded_post_spike_events"]], "get_recorded_pre_spike_events() (pygenn.runtime.runtime method)": [[7, "pygenn.runtime.Runtime.get_recorded_pre_spike_events"]], "get_recorded_spikes() (pygenn.runtime.runtime method)": [[7, "pygenn.runtime.Runtime.get_recorded_spikes"]], "get_snippet() (in module pygenn.model_preprocessor)": [[7, "pygenn.model_preprocessor.get_snippet"]], "get_sparse_post_inds() (pygenn.genn_groups.synapsegroupmixin method)": [[7, "pygenn.genn_groups.SynapseGroupMixin.get_sparse_post_inds"]], "get_sparse_pre_inds() (pygenn.genn_groups.synapsegroupmixin method)": [[7, "pygenn.genn_groups.SynapseGroupMixin.get_sparse_pre_inds"]], "get_var_access_dim() (in module pygenn)": [[7, "pygenn.get_var_access_dim"]], "get_var_init() (in module pygenn.model_preprocessor)": [[7, "pygenn.model_preprocessor.get_var_init"]], "get_var_location() (pygenn.currentsource method)": [[7, "pygenn.CurrentSource.get_var_location"]], "get_var_location() (pygenn.customconnectivityupdate method)": [[7, "pygenn.CustomConnectivityUpdate.get_var_location"]], "get_var_location() (pygenn.neurongroup method)": [[7, "pygenn.NeuronGroup.get_var_location"]], "get_var_values() (pygenn.genn_groups.customconnectivityupdatemixin method)": [[7, "pygenn.genn_groups.CustomConnectivityUpdateMixin.get_var_values"]], "get_var_values() (pygenn.genn_groups.customupdatewumixin method)": [[7, "pygenn.genn_groups.CustomUpdateWUMixin.get_var_values"]], "get_var_values() (pygenn.genn_groups.synapsegroupmixin method)": [[7, "pygenn.genn_groups.SynapseGroupMixin.get_var_values"]], "get_wu_post_var_location() (pygenn.synapsegroup method)": [[7, "pygenn.SynapseGroup.get_wu_post_var_location"]], "get_wu_pre_var_location() (pygenn.synapsegroup method)": [[7, "pygenn.SynapseGroup.get_wu_pre_var_location"]], "get_wu_var_location() (pygenn.synapsegroup method)": [[7, "pygenn.SynapseGroup.get_wu_var_location"]], "host_view (pygenn.runtime.arraybase property)": [[7, "pygenn.runtime.ArrayBase.host_view"]], "init_postsynaptic() (in module pygenn)": [[7, "pygenn.init_postsynaptic"]], "init_sparse_connectivity() (in module pygenn)": [[7, "pygenn.init_sparse_connectivity"]], "init_sparse_time (pygenn.gennmodel property)": [[7, "pygenn.GeNNModel.init_sparse_time"]], "init_sparse_time (pygenn.runtime.runtime property)": [[7, "pygenn.runtime.Runtime.init_sparse_time"]], "init_time (pygenn.gennmodel property)": [[7, "pygenn.GeNNModel.init_time"]], "init_time (pygenn.runtime.runtime property)": [[7, "pygenn.runtime.Runtime.init_time"]], "init_toeplitz_connectivity() (in module pygenn)": [[7, "pygenn.init_toeplitz_connectivity"]], "init_var() (in module pygenn)": [[7, "pygenn.init_var"]], "init_weight_update() (in module pygenn)": [[7, "pygenn.init_weight_update"]], "initialize() (pygenn.runtime.runtime method)": [[7, "pygenn.runtime.Runtime.initialize"]], "initialize_sparse() (pygenn.runtime.runtime method)": [[7, "pygenn.runtime.Runtime.initialize_sparse"]], "kernel_size (pygenn.synapsegroup property)": [[7, "pygenn.SynapseGroup.kernel_size"]], "load() (pygenn.gennmodel method)": [[7, "pygenn.GeNNModel.load"]], "load() (pygenn.genn_groups.currentsourcemixin method)": [[7, "pygenn.genn_groups.CurrentSourceMixin.load"]], "load() (pygenn.genn_groups.customconnectivityupdatemixin method)": [[7, "pygenn.genn_groups.CustomConnectivityUpdateMixin.load"]], "load() (pygenn.genn_groups.customupdatemixin method)": [[7, "pygenn.genn_groups.CustomUpdateMixin.load"]], "load() (pygenn.genn_groups.customupdatewumixin method)": [[7, "pygenn.genn_groups.CustomUpdateWUMixin.load"]], "load() (pygenn.genn_groups.neurongroupmixin method)": [[7, "pygenn.genn_groups.NeuronGroupMixin.load"]], "load() (pygenn.genn_groups.synapsegroupmixin method)": [[7, "pygenn.genn_groups.SynapseGroupMixin.load"]], "load_init_egps() (pygenn.genn_groups.currentsourcemixin method)": [[7, "pygenn.genn_groups.CurrentSourceMixin.load_init_egps"]], "load_init_egps() (pygenn.genn_groups.customconnectivityupdatemixin method)": [[7, "pygenn.genn_groups.CustomConnectivityUpdateMixin.load_init_egps"]], "load_init_egps() (pygenn.genn_groups.customupdatemixin method)": [[7, "pygenn.genn_groups.CustomUpdateMixin.load_init_egps"]], "load_init_egps() (pygenn.genn_groups.customupdatewumixin method)": [[7, "pygenn.genn_groups.CustomUpdateWUMixin.load_init_egps"]], "load_init_egps() (pygenn.genn_groups.neurongroupmixin method)": [[7, "pygenn.genn_groups.NeuronGroupMixin.load_init_egps"]], "load_init_egps() (pygenn.genn_groups.synapsegroupmixin method)": [[7, "pygenn.genn_groups.SynapseGroupMixin.load_init_egps"]], "manual_block_sizes (pygenn.cuda_backend.preferences property)": [[7, "pygenn.cuda_backend.Preferences.manual_block_sizes"]], "manual_device_id (pygenn.cuda_backend.preferences property)": [[7, "pygenn.cuda_backend.Preferences.manual_device_id"]], "matrix_type (pygenn.synapsegroup property)": [[7, "pygenn.SynapseGroup.matrix_type"]], "max_connections (pygenn.synapsegroup property)": [[7, "pygenn.SynapseGroup.max_connections"]], "max_dendritic_delay_timesteps (pygenn.synapsegroup property)": [[7, "pygenn.SynapseGroup.max_dendritic_delay_timesteps"]], "max_source_connections (pygenn.synapsegroup property)": [[7, "pygenn.SynapseGroup.max_source_connections"]], "model (pygenn.currentsource property)": [[7, "pygenn.CurrentSource.model"]], "model (pygenn.customconnectivityupdate property)": [[7, "pygenn.CustomConnectivityUpdate.model"]], "model (pygenn.neurongroup property)": [[7, "pygenn.NeuronGroup.model"]], "module": [[7, "module-pygenn"], [7, "module-pygenn.cuda_backend"], [7, "module-pygenn.current_source_models"], [7, "module-pygenn.custom_connectivity_update_models"], [7, "module-pygenn.custom_update_models"], [7, "module-pygenn.genn_groups"], [7, "module-pygenn.init_sparse_connectivity_snippets"], [7, "module-pygenn.init_toeplitz_connectivity_snippets"], [7, "module-pygenn.init_var_snippets"], [7, "module-pygenn.model_preprocessor"], [7, "module-pygenn.neuron_models"], [7, "module-pygenn.postsynaptic_models"], [7, "module-pygenn.runtime"], [7, "module-pygenn.single_threaded_cpu_backend"], [7, "module-pygenn.types"], [7, "module-pygenn.weight_update_models"]], "name (pygenn.currentsource property)": [[7, "pygenn.CurrentSource.name"]], "name (pygenn.customconnectivityupdate property)": [[7, "pygenn.CustomConnectivityUpdate.name"]], "name (pygenn.customupdatevaraccess property)": [[7, "pygenn.CustomUpdateVarAccess.name"]], "name (pygenn.neurongroup property)": [[7, "pygenn.NeuronGroup.name"]], "name (pygenn.parallelismhint property)": [[7, "pygenn.ParallelismHint.name"]], "name (pygenn.plogseverity property)": [[7, "pygenn.PlogSeverity.name"]], "name (pygenn.synapsegroup property)": [[7, "pygenn.SynapseGroup.name"]], "name (pygenn.synapsematrixconnectivity property)": [[7, "pygenn.SynapseMatrixConnectivity.name"]], "name (pygenn.synapsematrixtype property)": [[7, "pygenn.SynapseMatrixType.name"]], "name (pygenn.synapsematrixweight property)": [[7, "pygenn.SynapseMatrixWeight.name"]], "name (pygenn.varaccess property)": [[7, "pygenn.VarAccess.name"]], "name (pygenn.varaccessdim property)": [[7, "pygenn.VarAccessDim.name"]], "name (pygenn.varaccessmode property)": [[7, "pygenn.VarAccessMode.name"]], "name (pygenn.varaccessmodeattribute property)": [[7, "pygenn.VarAccessModeAttribute.name"]], "name (pygenn.varlocation property)": [[7, "pygenn.VarLocation.name"]], "name (pygenn.cuda_backend.blocksizeselect property)": [[7, "pygenn.cuda_backend.BlockSizeSelect.name"]], "name (pygenn.cuda_backend.deviceselect property)": [[7, "pygenn.cuda_backend.DeviceSelect.name"]], "narrow_sparse_ind_enabled (pygenn.synapsegroup property)": [[7, "pygenn.SynapseGroup.narrow_sparse_ind_enabled"]], "nccl_generate_unique_id() (pygenn.cuda_backend.runtime method)": [[7, "pygenn.cuda_backend.Runtime.nccl_generate_unique_id"]], "nccl_init_communicator() (pygenn.cuda_backend.runtime method)": [[7, "pygenn.cuda_backend.Runtime.nccl_init_communicator"]], "nccl_unique_id (pygenn.cuda_backend.runtime property)": [[7, "pygenn.cuda_backend.Runtime.nccl_unique_id"]], "neuron_update_time (pygenn.gennmodel property)": [[7, "pygenn.GeNNModel.neuron_update_time"]], "neuron_update_time (pygenn.runtime.runtime property)": [[7, "pygenn.runtime.Runtime.neuron_update_time"]], "num_delay_slots (pygenn.neurongroup property)": [[7, "pygenn.NeuronGroup.num_delay_slots"]], "num_neurons (pygenn.customupdate property)": [[7, "pygenn.CustomUpdate.num_neurons"]], "num_neurons (pygenn.neurongroup property)": [[7, "pygenn.NeuronGroup.num_neurons"]], "num_threads_per_spike (pygenn.synapsegroup property)": [[7, "pygenn.SynapseGroup.num_threads_per_spike"]], "output_location (pygenn.synapsegroup property)": [[7, "pygenn.SynapseGroup.output_location"]], "parallelism_hint (pygenn.synapsegroup property)": [[7, "pygenn.SynapseGroup.parallelism_hint"]], "params (pygenn.currentsource property)": [[7, "pygenn.CurrentSource.params"]], "params (pygenn.customconnectivityupdate property)": [[7, "pygenn.CustomConnectivityUpdate.params"]], "params (pygenn.neurongroup property)": [[7, "pygenn.NeuronGroup.params"]], "post_spike_event_recording_data (pygenn.genn_groups.synapsegroupmixin property)": [[7, "pygenn.genn_groups.SynapseGroupMixin.post_spike_event_recording_data"]], "post_target_var (pygenn.synapsegroup property)": [[7, "pygenn.SynapseGroup.post_target_var"]], "post_var_initialisers (pygenn.customconnectivityupdate property)": [[7, "pygenn.CustomConnectivityUpdate.post_var_initialisers"]], "post_var_references (pygenn.customconnectivityupdate property)": [[7, "pygenn.CustomConnectivityUpdate.post_var_references"]], "postsynaptic_update_time (pygenn.gennmodel property)": [[7, "pygenn.GeNNModel.postsynaptic_update_time"]], "postsynaptic_update_time (pygenn.runtime.runtime property)": [[7, "pygenn.runtime.Runtime.postsynaptic_update_time"]], "pre_spike_event_recording_data (pygenn.genn_groups.synapsegroupmixin property)": [[7, "pygenn.genn_groups.SynapseGroupMixin.pre_spike_event_recording_data"]], "pre_target_var (pygenn.synapsegroup property)": [[7, "pygenn.SynapseGroup.pre_target_var"]], "pre_var_initialisers (pygenn.customconnectivityupdate property)": [[7, "pygenn.CustomConnectivityUpdate.pre_var_initialisers"]], "pre_var_references (pygenn.customconnectivityupdate property)": [[7, "pygenn.CustomConnectivityUpdate.pre_var_references"]], "prepare_egps() (in module pygenn.model_preprocessor)": [[7, "pygenn.model_preprocessor.prepare_egps"]], "prepare_param_vals() (in module pygenn.model_preprocessor)": [[7, "pygenn.model_preprocessor.prepare_param_vals"]], "prepare_vars() (in module pygenn.model_preprocessor)": [[7, "pygenn.model_preprocessor.prepare_vars"]], "presynaptic_update_time (pygenn.gennmodel property)": [[7, "pygenn.GeNNModel.presynaptic_update_time"]], "presynaptic_update_time (pygenn.runtime.runtime property)": [[7, "pygenn.runtime.Runtime.presynaptic_update_time"]], "prev_spike_time_location (pygenn.neurongroup property)": [[7, "pygenn.NeuronGroup.prev_spike_time_location"]], "prev_spike_time_required (pygenn.neurongroup property)": [[7, "pygenn.NeuronGroup.prev_spike_time_required"]], "ps_initialiser (pygenn.synapsegroup property)": [[7, "pygenn.SynapseGroup.ps_initialiser"]], "pull_connectivity_from_device() (pygenn.genn_groups.synapsegroupmixin method)": [[7, "pygenn.genn_groups.SynapseGroupMixin.pull_connectivity_from_device"]], "pull_extra_global_param_from_device() (pygenn.genn_groups.groupmixin method)": [[7, "pygenn.genn_groups.GroupMixin.pull_extra_global_param_from_device"]], "pull_from_device() (pygenn.model_preprocessor.arraybase method)": [[7, "pygenn.model_preprocessor.ArrayBase.pull_from_device"]], "pull_from_device() (pygenn.runtime.arraybase method)": [[7, "pygenn.runtime.ArrayBase.pull_from_device"]], "pull_in_syn_from_device() (pygenn.genn_groups.synapsegroupmixin method)": [[7, "pygenn.genn_groups.SynapseGroupMixin.pull_in_syn_from_device"]], "pull_psm_extra_global_param_from_device() (pygenn.genn_groups.synapsegroupmixin method)": [[7, "pygenn.genn_groups.SynapseGroupMixin.pull_psm_extra_global_param_from_device"]], "pull_recording_buffers_from_device() (pygenn.gennmodel method)": [[7, "pygenn.GeNNModel.pull_recording_buffers_from_device"]], "pull_recording_buffers_from_device() (pygenn.runtime.runtime method)": [[7, "pygenn.runtime.Runtime.pull_recording_buffers_from_device"]], "pull_slice_1d_from_device() (pygenn.runtime.arraybase method)": [[7, "pygenn.runtime.ArrayBase.pull_slice_1d_from_device"]], "pull_var_from_device() (pygenn.genn_groups.groupmixin method)": [[7, "pygenn.genn_groups.GroupMixin.pull_var_from_device"]], "push_connectivity_to_device() (pygenn.genn_groups.synapsegroupmixin method)": [[7, "pygenn.genn_groups.SynapseGroupMixin.push_connectivity_to_device"]], "push_extra_global_param_to_device() (pygenn.genn_groups.groupmixin method)": [[7, "pygenn.genn_groups.GroupMixin.push_extra_global_param_to_device"]], "push_in_syn_to_device() (pygenn.genn_groups.synapsegroupmixin method)": [[7, "pygenn.genn_groups.SynapseGroupMixin.push_in_syn_to_device"]], "push_psm_extra_global_param_to_device() (pygenn.genn_groups.synapsegroupmixin method)": [[7, "pygenn.genn_groups.SynapseGroupMixin.push_psm_extra_global_param_to_device"]], "push_slice_1d_to_device() (pygenn.runtime.arraybase method)": [[7, "pygenn.runtime.ArrayBase.push_slice_1d_to_device"]], "push_to_device() (pygenn.model_preprocessor.arraybase method)": [[7, "pygenn.model_preprocessor.ArrayBase.push_to_device"]], "push_to_device() (pygenn.runtime.arraybase method)": [[7, "pygenn.runtime.ArrayBase.push_to_device"]], "push_var_to_device() (pygenn.genn_groups.groupmixin method)": [[7, "pygenn.genn_groups.GroupMixin.push_var_to_device"]], "pygenn": [[7, "module-pygenn"]], "pygenn.cuda_backend": [[7, "module-pygenn.cuda_backend"]], "pygenn.current_source_models": [[7, "module-pygenn.current_source_models"]], "pygenn.custom_connectivity_update_models": [[7, "module-pygenn.custom_connectivity_update_models"]], "pygenn.custom_update_models": [[7, "module-pygenn.custom_update_models"]], "pygenn.genn_groups": [[7, "module-pygenn.genn_groups"]], "pygenn.init_sparse_connectivity_snippets": [[7, "module-pygenn.init_sparse_connectivity_snippets"]], "pygenn.init_toeplitz_connectivity_snippets": [[7, "module-pygenn.init_toeplitz_connectivity_snippets"]], "pygenn.init_var_snippets": [[7, "module-pygenn.init_var_snippets"]], "pygenn.model_preprocessor": [[7, "module-pygenn.model_preprocessor"]], "pygenn.neuron_models": [[7, "module-pygenn.neuron_models"]], "pygenn.postsynaptic_models": [[7, "module-pygenn.postsynaptic_models"]], "pygenn.runtime": [[7, "module-pygenn.runtime"]], "pygenn.single_threaded_cpu_backend": [[7, "module-pygenn.single_threaded_cpu_backend"]], "pygenn.types": [[7, "module-pygenn.types"]], "pygenn.weight_update_models": [[7, "module-pygenn.weight_update_models"]], "recording_zero_copy_enabled (pygenn.neurongroup property)": [[7, "pygenn.NeuronGroup.recording_zero_copy_enabled"]], "set_array() (pygenn.model_preprocessor.arraybase method)": [[7, "pygenn.model_preprocessor.ArrayBase.set_array"]], "set_array() (pygenn.model_preprocessor.variablebase method)": [[7, "pygenn.model_preprocessor.VariableBase.set_array"]], "set_dynamic_param_value() (pygenn.genn_groups.groupmixin method)": [[7, "pygenn.genn_groups.GroupMixin.set_dynamic_param_value"]], "set_dynamic_param_value() (pygenn.runtime.runtime method)": [[7, "pygenn.runtime.Runtime.set_dynamic_param_value"]], "set_init_values() (pygenn.model_preprocessor.extraglobalparameter method)": [[7, "pygenn.model_preprocessor.ExtraGlobalParameter.set_init_values"]], "set_init_values() (pygenn.model_preprocessor.variablebase method)": [[7, "pygenn.model_preprocessor.VariableBase.set_init_values"]], "set_param_dynamic() (pygenn.currentsource method)": [[7, "pygenn.CurrentSource.set_param_dynamic"]], "set_param_dynamic() (pygenn.customconnectivityupdate method)": [[7, "pygenn.CustomConnectivityUpdate.set_param_dynamic"]], "set_param_dynamic() (pygenn.neurongroup method)": [[7, "pygenn.NeuronGroup.set_param_dynamic"]], "set_post_var_location() (pygenn.customconnectivityupdate method)": [[7, "pygenn.CustomConnectivityUpdate.set_post_var_location"]], "set_pre_var_location() (pygenn.customconnectivityupdate method)": [[7, "pygenn.CustomConnectivityUpdate.set_pre_var_location"]], "set_ps_param_dynamic() (pygenn.synapsegroup method)": [[7, "pygenn.SynapseGroup.set_ps_param_dynamic"]], "set_ps_var_location() (pygenn.synapsegroup method)": [[7, "pygenn.SynapseGroup.set_ps_var_location"]], "set_sparse_connections() (pygenn.genn_groups.synapsegroupmixin method)": [[7, "pygenn.genn_groups.SynapseGroupMixin.set_sparse_connections"]], "set_values() (pygenn.model_preprocessor.extraglobalparameter method)": [[7, "pygenn.model_preprocessor.ExtraGlobalParameter.set_values"]], "set_values() (pygenn.model_preprocessor.variablebase method)": [[7, "pygenn.model_preprocessor.VariableBase.set_values"]], "set_var_location() (pygenn.currentsource method)": [[7, "pygenn.CurrentSource.set_var_location"]], "set_var_location() (pygenn.customconnectivityupdate method)": [[7, "pygenn.CustomConnectivityUpdate.set_var_location"]], "set_var_location() (pygenn.neurongroup method)": [[7, "pygenn.NeuronGroup.set_var_location"]], "set_wu_param_dynamic() (pygenn.synapsegroup method)": [[7, "pygenn.SynapseGroup.set_wu_param_dynamic"]], "set_wu_post_var_location() (pygenn.synapsegroup method)": [[7, "pygenn.SynapseGroup.set_wu_post_var_location"]], "set_wu_pre_var_location() (pygenn.synapsegroup method)": [[7, "pygenn.SynapseGroup.set_wu_pre_var_location"]], "set_wu_var_location() (pygenn.synapsegroup method)": [[7, "pygenn.SynapseGroup.set_wu_var_location"]], "show_ptx_info (pygenn.cuda_backend.preferences property)": [[7, "pygenn.cuda_backend.Preferences.show_ptx_info"]], "sparse_connectivity_initialiser (pygenn.synapsegroup property)": [[7, "pygenn.SynapseGroup.sparse_connectivity_initialiser"]], "sparse_connectivity_location (pygenn.synapsegroup property)": [[7, "pygenn.SynapseGroup.sparse_connectivity_location"]], "spike_event_recording_enabled (pygenn.neurongroup property)": [[7, "pygenn.NeuronGroup.spike_event_recording_enabled"]], "spike_recording_data (pygenn.genn_groups.neurongroupmixin property)": [[7, "pygenn.genn_groups.NeuronGroupMixin.spike_recording_data"]], "spike_recording_enabled (pygenn.neurongroup property)": [[7, "pygenn.NeuronGroup.spike_recording_enabled"]], "spike_time_location (pygenn.neurongroup property)": [[7, "pygenn.NeuronGroup.spike_time_location"]], "spike_time_required (pygenn.neurongroup property)": [[7, "pygenn.NeuronGroup.spike_time_required"]], "state (pygenn.runtime.runtime property)": [[7, "pygenn.runtime.Runtime.state"]], "step_time() (pygenn.gennmodel method)": [[7, "pygenn.GeNNModel.step_time"]], "step_time() (pygenn.runtime.runtime method)": [[7, "pygenn.runtime.Runtime.step_time"]], "synapse_dynamics_time (pygenn.gennmodel property)": [[7, "pygenn.GeNNModel.synapse_dynamics_time"]], "synapse_dynamics_time (pygenn.runtime.runtime property)": [[7, "pygenn.runtime.Runtime.synapse_dynamics_time"]], "synapse_group (pygenn.customconnectivityupdate property)": [[7, "pygenn.CustomConnectivityUpdate.synapse_group"]], "synapse_group (pygenn.customupdatewu property)": [[7, "pygenn.CustomUpdateWU.synapse_group"]], "synapse_group (pygenn.genn_groups.synapsegroupmixin property)": [[7, "pygenn.genn_groups.SynapseGroupMixin.synapse_group"]], "t (pygenn.gennmodel property)": [[7, "pygenn.GeNNModel.t"]], "time (pygenn.runtime.runtime property)": [[7, "pygenn.runtime.Runtime.time"]], "timestep (pygenn.gennmodel property)": [[7, "pygenn.GeNNModel.timestep"]], "timestep (pygenn.runtime.runtime property)": [[7, "pygenn.runtime.Runtime.timestep"]], "toeplitz_connectivity_initialiser (pygenn.synapsegroup property)": [[7, "pygenn.SynapseGroup.toeplitz_connectivity_initialiser"]], "unload() (pygenn.gennmodel method)": [[7, "pygenn.GeNNModel.unload"]], "unload() (pygenn.genn_groups.currentsourcemixin method)": [[7, "pygenn.genn_groups.CurrentSourceMixin.unload"]], "unload() (pygenn.genn_groups.customconnectivityupdatemixin method)": [[7, "pygenn.genn_groups.CustomConnectivityUpdateMixin.unload"]], "unload() (pygenn.genn_groups.customupdatemixin method)": [[7, "pygenn.genn_groups.CustomUpdateMixin.unload"]], "unload() (pygenn.genn_groups.customupdatewumixin method)": [[7, "pygenn.genn_groups.CustomUpdateWUMixin.unload"]], "unload() (pygenn.genn_groups.neurongroupmixin method)": [[7, "pygenn.genn_groups.NeuronGroupMixin.unload"]], "unload() (pygenn.genn_groups.synapsegroupmixin method)": [[7, "pygenn.genn_groups.SynapseGroupMixin.unload"]], "update_group_name (pygenn.customconnectivityupdate property)": [[7, "pygenn.CustomConnectivityUpdate.update_group_name"]], "value (pygenn.customupdatevaraccess property)": [[7, "pygenn.CustomUpdateVarAccess.value"]], "value (pygenn.parallelismhint property)": [[7, "pygenn.ParallelismHint.value"]], "value (pygenn.plogseverity property)": [[7, "pygenn.PlogSeverity.value"]], "value (pygenn.synapsematrixconnectivity property)": [[7, "pygenn.SynapseMatrixConnectivity.value"]], "value (pygenn.synapsematrixtype property)": [[7, "pygenn.SynapseMatrixType.value"]], "value (pygenn.synapsematrixweight property)": [[7, "pygenn.SynapseMatrixWeight.value"]], "value (pygenn.varaccess property)": [[7, "pygenn.VarAccess.value"]], "value (pygenn.varaccessdim property)": [[7, "pygenn.VarAccessDim.value"]], "value (pygenn.varaccessmode property)": [[7, "pygenn.VarAccessMode.value"]], "value (pygenn.varaccessmodeattribute property)": [[7, "pygenn.VarAccessModeAttribute.value"]], "value (pygenn.varlocation property)": [[7, "pygenn.VarLocation.value"]], "value (pygenn.cuda_backend.blocksizeselect property)": [[7, "pygenn.cuda_backend.BlockSizeSelect.value"]], "value (pygenn.cuda_backend.deviceselect property)": [[7, "pygenn.cuda_backend.DeviceSelect.value"]], "values (pygenn.model_preprocessor.extraglobalparameter property)": [[7, "pygenn.model_preprocessor.ExtraGlobalParameter.values"]], "values (pygenn.model_preprocessor.synapsevariable property)": [[7, "pygenn.model_preprocessor.SynapseVariable.values"]], "values (pygenn.model_preprocessor.variable property)": [[7, "pygenn.model_preprocessor.Variable.values"]], "var_initialisers (pygenn.currentsource property)": [[7, "pygenn.CurrentSource.var_initialisers"]], "var_initialisers (pygenn.customconnectivityupdate property)": [[7, "pygenn.CustomConnectivityUpdate.var_initialisers"]], "var_initialisers (pygenn.neurongroup property)": [[7, "pygenn.NeuronGroup.var_initialisers"]], "var_references (pygenn.customconnectivityupdate property)": [[7, "pygenn.CustomConnectivityUpdate.var_references"]], "var_references (pygenn.customupdate property)": [[7, "pygenn.CustomUpdate.var_references"]], "var_references (pygenn.customupdatewu property)": [[7, "pygenn.CustomUpdateWU.var_references"]], "view (pygenn.model_preprocessor.array property)": [[7, "pygenn.model_preprocessor.Array.view"]], "view (pygenn.model_preprocessor.extraglobalparameter property)": [[7, "pygenn.model_preprocessor.ExtraGlobalParameter.view"]], "view (pygenn.model_preprocessor.synapsevariable property)": [[7, "pygenn.model_preprocessor.SynapseVariable.view"]], "view (pygenn.model_preprocessor.variable property)": [[7, "pygenn.model_preprocessor.Variable.view"]], "weight_update_var_size (pygenn.genn_groups.synapsegroupmixin property)": [[7, "pygenn.genn_groups.SynapseGroupMixin.weight_update_var_size"]], "wu_initialiser (pygenn.synapsegroup property)": [[7, "pygenn.SynapseGroup.wu_initialiser"]]}}) \ No newline at end of file +Search.setIndex({"docnames": ["bibliography", "building_networks", "custom_models", "index", "sg_execution_times", "simulating_networks", "source/modules", "source/pygenn", "upgrading", "userproject/index", "userproject/mnist_mb_classifier", "userproject/potjans_microcircuit", "userproject/sg_execution_times", "userproject/superspike_demo"], "filenames": ["bibliography.rst", "building_networks.rst", "custom_models.rst", "index.rst", "sg_execution_times.rst", "simulating_networks.rst", "source/modules.rst", "source/pygenn.rst", "upgrading.rst", "userproject/index.rst", "userproject/mnist_mb_classifier.rst", "userproject/potjans_microcircuit.rst", "userproject/sg_execution_times.rst", "userproject/superspike_demo.rst"], "titles": ["Bibliography", "Building networks", "Custom models", "PyGeNN documentation", "Computation times", "Simulating networks", "pygenn", "pygenn package", "Upgrading from GeNN 4", "User projects", "MNIST classification using an insect-inspired mushroom body model", "PyGeNN implementation of local cortical microcircuit model", "Computation times", "PyGeNN implementation of SuperSpike"], "terms": {"morrison2008": [0, 2, 7], "morrison": 0, "A": [0, 1, 2, 7], "diesmann": [0, 11], "m": [0, 1, 5, 7, 11, 13], "gerstner": 0, "w": [0, 2, 13], "2008": 0, "phenomenolog": 0, "model": [0, 3, 4, 5, 7, 8, 9, 12, 13], "synapt": [0, 1, 2, 7, 10, 11, 13], "plastic": 0, "base": [0, 1, 2, 5, 7, 13], "spike": [0, 1, 3, 10, 11, 13], "time": [0, 1, 2, 5, 7, 8, 10, 11, 13], "biolog": 0, "cybernet": 0, "98": [0, 7], "459": 0, "478": 0, "http": [0, 2], "doi": 0, "org": 0, "10": [0, 1, 5, 7, 10, 11, 13], "1007": 0, "s00422": 0, "008": [0, 11], "0233": [0, 10], "1": [0, 1, 2, 3, 5, 7, 10, 11, 13], "potjans2014": [0, 11], "potjan": [0, 11], "t": [0, 2, 5, 7, 8, 10, 11, 13], "c": [0, 1, 2, 3, 7, 10, 11, 13], "2014": 0, "The": [0, 2, 3, 5, 7, 8, 11], "cell": [0, 10, 11], "type": [0, 1, 2, 6, 11, 13], "specif": [0, 11], "cortic": [0, 9, 12], "microcircuit": [0, 9, 12], "relat": 0, "structur": [0, 1, 2, 8, 13], "activ": [0, 2, 7, 11], "full": [0, 2, 7, 10, 11, 13], "scale": [0, 7, 10, 11], "network": [0, 2, 3, 7, 10, 11, 13], "cerebr": 0, "cortex": 0, "24": 0, "3": [0, 1, 4, 7, 10, 11, 12, 13], "785": 0, "806": 0, "1093": 0, "cercor": 0, "bhs358": 0, "i": [1, 2, 3, 5, 7, 8, 9, 10, 11, 13], "defin": [1, 2, 7, 10], "follow": [1, 2, 5, 7, 10, 11, 13], "gennmodel": [1, 2, 5, 6, 7, 8, 10, 11, 13], "must": [1, 2, 7], "creat": [1, 2, 7, 10, 11, 13], "name": [1, 2, 5, 7], "default": [1, 2, 5, 7, 10, 11, 13], "precis": [1, 2, 7, 11], "see": [1, 2, 7, 11], "ref": 1, "floatprecis": 1, "float": [1, 2, 7, 10, 11, 13], "yourmodelnam": 1, "By": [1, 2, 5, 7], "us": [0, 1, 2, 3, 4, 5, 7, 8, 9, 11, 12, 13], "hardwar": [1, 2, 3, 8], "acceler": [0, 1, 3], "code": [1, 2, 3, 5, 7, 8, 9, 10, 11, 13], "gener": [1, 3, 5, 7, 9, 10, 11, 13], "backend": [1, 5, 7], "avail": 1, "howev": [1, 2, 5, 7], "thi": [1, 2, 3, 5, 7, 8, 10, 11, 13], "can": [1, 2, 5, 7, 8, 10, 11, 13], "overriden": 1, "keyword": [1, 2, 5, 7], "argument": [1, 2, 5, 7], "For": [1, 2, 5, 7], "exampl": [1, 2, 4, 5, 7, 9, 10, 11, 12, 13], "singl": [1, 2, 5, 7, 8], "thread": [1, 2, 5, 7, 11], "cpu": [1, 2, 5, 7], "could": [1, 2, 5, 7], "manual": [1, 7], "select": 1, "single_threaded_cpu": 1, "addition": [1, 2, 5, 7], "ani": [1, 2, 5, 7], "prefer": [1, 7], "expos": [1, 2, 7], "configur": [1, 2, 7], "here": [1, 2, 7], "cuda": [1, 5], "allow": [1, 2, 7, 10, 11], "you": [1, 2, 3, 5, 7, 8], "which": [1, 2, 3, 5, 7], "devic": [1, 2, 5, 7, 10, 11], "via": [1, 2, 5, 7], "manual_device_id": [1, 7], "ar": [1, 2, 3, 5, 7, 8, 11, 13], "homogen": [1, 2], "across": [1, 2, 5, 7], "an": [1, 2, 4, 5, 7, 9, 12], "entir": 1, "dynam": [1, 13], "initialis": [1, 7, 8, 13], "mani": [1, 2, 7, 10, 11], "wai": [1, 2, 7, 8], "gpu": [0, 1, 2, 3, 5, 7, 8, 10], "fill": 1, "them": [1, 2, 5, 7], "constant": [1, 2, 7, 10], "valu": [1, 2, 7, 10, 11], "ini": 1, "0": [1, 2, 4, 5, 7, 10, 11, 12, 13], "0529324": 1, "copi": [1, 2, 5, 7, 10], "sequenc": [1, 2, 7], "from": [1, 2, 3, 4, 5, 7, 10, 11, 12, 13], "python": [1, 3, 5, 7, 9, 10, 11, 13], "np": [1, 2, 5, 10, 11, 13], "arang": [1, 5, 11], "400": [1, 13], "specifi": [2, 7], "snippet": [1, 3, 7, 8], "itself": [], "param": [1, 2, 7, 10, 13], "mean": [1, 2, 7, 11, 13], "05": [11, 13], "sd": [1, 2, 7, 11, 13], "01": 10, "pygenn": [1, 2, 4, 5, 8, 9, 10, 12], "init_var": [1, 6, 7, 11, 13], "normal": [1, 2, 7, 11], "where": [1, 2, 5, 7, 8], "built": [1, 2, 5, 7], "includ": [1, 2, 3, 7, 11], "init_var_snippet": [1, 6], "modul": [2, 3, 6], "like": [1, 3, 5, 8], "other": [1, 2, 7, 8], "part": [2, 7], "genn": [1, 2, 3, 5, 7, 9, 13], "easili": [2, 3, 7], "your": [1, 2, 5, 7], "own": 5, "describ": [1, 2, 3, 5, 7, 8], "todo": [1, 13], "As": [1, 2, 5, 7], "well": [1, 2, 5, 7], "variou": [1, 2], "have": [1, 2, 5, 7, 8, 13], "belong": 1, "postsynapt": [1, 5, 8, 11], "attach": [1, 2, 7], "call": [1, 2, 3, 5, 7], "r": [1, 2, 7, 13], "assign": [1, 2, 7], "syntax": 1, "neuron_var_ref": [1, 2, 7], "create_var_ref": [1, 6, 7, 13], "ng": 1, "v": [1, 2, 5, 7, 10, 11, 13], "current_source_var_ref": 1, "custom_update_var_ref": 1, "cu": 1, "postsynaptic_model_var_ref": 1, "create_psm_var_ref": [1, 6, 7], "sg": [1, 7], "wu_pre_var_ref": 1, "create_wu_pre_var_ref": [1, 6, 7], "pre": 1, "wu_post_var_ref": 1, "create_wu_post_var_ref": [1, 6, 7], "post": [1, 2, 7], "neurongroup": [1, 5, 6, 7], "return": [1, 2, 7, 10, 11, 13], "add_neuron_popul": [1, 7, 10, 11, 13], "currentsourc": [1, 2, 6, 7], "add_current_sourc": [1, 7, 10, 11], "customupd": [1, 6, 7], "add_custom_upd": [1, 7, 13], "synapsegroup": [1, 2, 5, 6, 7, 8], "add_synapse_popul": [1, 7, 8, 10, 11, 13], "while": [1, 2, 5, 7, 11, 13], "interchang": 1, "same": [1, 2, 5, 7, 8], "long": [1, 2, 10], "all": [1, 2, 4, 5, 7, 8, 9, 11, 13], "referenc": [1, 2, 7, 8], "delai": [1, 2, 5, 7, 8, 11], "size": [1, 2, 7, 10, 13], "per": [1, 2, 5, 7, 11, 13], "weight": [1, 5, 7, 8, 10, 11, 13], "slightli": 1, "differ": [1, 2, 5, 7, 11], "wu_var_ref": 1, "create_wu_var_ref": [1, 6, 7, 13], "g": [1, 2, 5, 7, 10, 11], "cu_wu_var_ref": 1, "customupdatewu": [1, 6, 7], "oper": [1, 2, 5, 7, 8], "anoth": [1, 7], "group": [1, 5, 7, 8], "": [0, 1, 2, 5, 7, 10, 11, 13], "state": [1, 2, 5, 7, 8, 10], "updatebasehash": [], "These": [1, 2, 7], "also": [1, 2, 5, 7], "addit": 1, "featur": [1, 2, 8], "thei": [1, 2, 5, 7, 8], "link": 1, "transpos": [1, 7, 13], "wu_transpose_var_ref": 1, "back_sg": 1, "tranpos": [1, 13], "dimens": 1, "e": [1, 2, 5, 7, 11, 13], "its": [1, 7], "_postsynaptic_": 1, "ha": [1, 2, 5, 7], "number": [1, 3, 5, 7, 8, 10, 11, 13], "_presynaptic_": [1, 2, 7], "vice": 1, "versa": 1, "after": [1, 2, 5, 7, 10], "run": [1, 2, 5, 7], "made": [1, 5, 7, 8], "forward": [1, 2, 7], "appli": [1, 2, 5, 11], "_": [1, 2, 5, 7, 11], "onli": [1, 2, 7, 8, 10], "possibl": [1, 2, 7, 8], "synapsematrixtyp": [1, 2, 6, 7, 8], "dens": [1, 7, 8, 10, 13], "contain": [1, 2, 3, 7], "ad": [1, 2, 7], "pop_nam": [1, 7, 11], "num_neuron": [1, 2, 7, 11], "var": [1, 2, 5, 7, 10, 13], "add": [1, 2, 7, 8, 11, 13], "arg": [7, 10, 11, 13], "new": [2, 7, 8], "neuronmodel": 7, "class": [1, 2, 5, 7], "string": [1, 2, 3, 7, 8], "instanc": [1, 7], "deriv": [2, 5, 7, 13], "genn_wrapp": [], "genn_model": [2, 7], "create_neuron_model": [1, 2, 6, 7, 10, 13], "dict": [1, 7], "initi": [1, 2, 5, 7, 10, 13], "tonic": [1, 7], "izhikevich": [1, 7], "izh_p": [], "02": [1, 2, 7], "b": [1, 5, 7], "2": [0, 1, 2, 7, 10, 11, 13], "65": [1, 7, 11], "d": [1, 7, 11, 13], "6": [0, 1, 7, 11], "condit": [2, 7], "izh_ini": [], "u": [1, 7, 9, 11, 13], "20": [1, 7, 10], "pop1": [1, 7], "user": [1, 2, 3, 5, 7, 8], "mai": [1, 2, 7], "necessit": [], "uniqu": [1, 7, 11], "predefin": [], "detail": [1, 2, 7], "two": [1, 2, 7], "matrix_typ": [1, 7, 11], "target": [1, 2, 7, 8, 11, 13], "weight_update_init": [1, 7], "postsynaptic_init": [1, 7], "connectivity_init": [1, 7], "none": [1, 2, 7, 10, 11, 13], "matrix": [2, 5, 7], "object": [5, 7], "sparseconnectivityinit": [1, 7], "toeplitzconnectivityinit": [1, 7], "input": [1, 10, 11, 13], "cs_name": [1, 7], "current_source_model": [1, 6], "pop": [1, 5, 7, 10, 11], "var_ref": [1, 2, 7, 13], "currentsourcemodel": [], "create_current_source_model": [1, 2, 6, 7, 10], "should": [1, 2, 7, 10], "inject": [1, 2, 7, 10], "cu_nam": [1, 7], "group_nam": [1, 7], "custom_update_model": [1, 6], "egp_ref": [1, 7], "customupdatemodel": [], "customupdatemodelbas": [1, 7], "create_custom_update_model": [1, 2, 6, 7, 13], "extra": [2, 7, 8], "global": [2, 7, 8], "add_custom_connectivity_upd": [1, 7], "syn_group": [1, 7], "custom_conn_update_model": [1, 7], "pre_var": [1, 2, 5, 7, 13], "post_var": [1, 2, 5, 7, 13], "pre_var_ref": [1, 2, 7, 13], "post_var_ref": [1, 2, 7, 13], "perform": [1, 2, 7], "within": [2, 7, 13], "customconnetivityupdatemodel": [], "customconnectivityupdatemodel": [], "create_custom_connectivity_update_model": [1, 2, 6, 7], "presynapt": [1, 2, 7, 13], "function": [1, 2, 5, 7, 8, 11, 13], "implement": [1, 2, 4, 7, 8, 9, 12], "we": [2, 5, 7, 8, 10], "essenti": [2, 7, 13], "c99": [2, 8], "en": 2, "cpprefer": 2, "com": 2, "languag": [2, 3, 8], "No": [2, 7], "preprocessor": 2, "enough": 2, "support": [1, 2, 3, 7, 8], "printf": 2, "debug": [2, 7], "messag": 2, "much": [2, 5], "more": [1, 2, 8, 11], "strstr": 2, "etc": [2, 13], "typedefin": 2, "cannot": [2, 3, 5, 7], "some": [1, 2, 7], "esoter": 2, "octal": 2, "integ": [2, 5, 7], "hexadecim": 2, "point": [2, 5, 7, 11, 13], "liter": 2, "aren": 2, "address": [2, 8], "isn": [2, 8], "On": [2, 5], "local": [2, 7, 8, 9, 12], "assum": [2, 8], "store": [2, 8], "regist": [2, 8], "limit": [2, 8], "when": [0, 1, 2, 5, 7, 8, 10], "deal": [2, 8], "paramet": [2, 7, 8, 10, 11, 13], "arrai": [2, 7, 8, 13], "longer": [2, 7, 8], "do": [2, 5, 7, 8], "stuff": [2, 8], "const": [2, 7, 8, 10, 13], "int": [1, 2, 7, 8, 10, 11, 13], "egpsubset": [2, 8], "egp": [2, 7, 8], "offset": [2, 7, 8, 11], "instead": [2, 7, 8], "overload": [2, 7], "so": [2, 5, 7, 8, 13], "sin": 2, "30": [0, 2, 7], "0f": 2, "resolv": 2, "rather": [1, 2, 7, 8, 10, 11, 13], "than": [1, 2, 7, 10, 11, 13], "doubl": 2, "version": [2, 7, 8], "without": 2, "suffix": 2, "treat": 2, "scalar": [2, 7, 10, 13], "alwai": 2, "0d": 2, "lp64": 2, "data": [1, 2, 5, 10, 11, 13], "platform": [2, 5], "32": [2, 7, 13], "bit": 2, "64": [1, 2, 7], "standard": [1, 2, 7, 10, 11], "librari": [2, 7], "co": 2, "tan": 2, "aco": 2, "asin": 2, "atan": 2, "atan2": 2, "cosh": 2, "sinh": 2, "tanh": 2, "acosh": 2, "asinh": 2, "atanh": 2, "exp": [2, 7, 10, 13], "expm1": 2, "exp2": 2, "pow": [2, 13], "scalbn": 2, "log": [2, 7, 11, 13], "log1p": 2, "log2": 2, "log10": 2, "ldexp": 2, "ilogb": 2, "sqrt": [2, 11, 13], "cbrt": 2, "hypot": 2, "ceil": [2, 7], "floor": 2, "fmod": 2, "round": [2, 10, 11], "rint": 2, "trunc": 2, "nearbyint": 2, "nextaft": 2, "remaind": 2, "fab": [2, 13], "fdim": 2, "fmax": [2, 7, 10, 13], "fmin": [2, 7, 10, 13], "erf": 2, "erfc": 2, "tgamma": 2, "lgamma": 2, "copysign": 2, "fma": 2, "min": [2, 11, 13], "max": [2, 7, 10, 11, 13], "ab": [2, 11], "form": [2, 7, 8], "nois": [1, 2, 7, 13], "probabilist": 2, "mechan": [2, 7], "In": [1, 2, 5, 7, 8, 11], "gennrand_uniform": [2, 7], "drawn": [2, 7], "uniformli": [2, 7], "interv": 2, "gennrand_norm": [2, 7], "distribut": [1, 2, 7, 10, 11], "deviat": [1, 2, 7, 11], "gennrand_exponenti": 2, "exponenti": [1, 2, 7, 13], "lambda": [2, 7, 13], "gennrand_log_norm": 2, "std": 2, "gennrand_gamma": 2, "alpha": [2, 7, 13], "gamma": [2, 7], "shape": [1, 2, 7, 10], "gennrand_binomi": 2, "n": [2, 7, 10, 11], "p": [0, 2, 7, 11], "binomi": [2, 7], "pass": [2, 7, 8], "numer": [1, 2, 7], "popul": [2, 5, 7, 10, 11, 13], "being": [2, 7], "enhanc": 2, "effici": [1, 2, 7], "comput": [0, 2, 7, 13], "friendli": [2, 5], "provid": [1, 2, 5, 7], "decai": [2, 7], "each": [1, 2, 5, 7, 10, 13], "timestep": [1, 2, 5, 7, 10, 11, 13], "tau": [1, 2, 5, 7, 10, 11, 13], "one": [2, 7], "bwlo": 2, "derived_param": [2, 7, 13], "exptc": [2, 13], "par": [2, 7, 13], "dt": [2, 7, 10, 11, 13], "create_var_init_snippet": [1, 2, 6, 7], "class_nam": [2, 7], "str": [1, 2, 7, 13], "tupl": [2, 7], "resolvedtyp": [2, 7], "param_nam": [2, 7], "var_init_cod": [2, 7], "extra_global_param": [2, 5, 7, 13], "refer": [2, 3, 7, 8], "read": [2, 7], "repres": [2, 7], "simul": [0, 2, 3, 7, 10, 11], "step": [2, 5, 7, 10], "And": [2, 7], "id": [2, 7, 11, 13], "index": [2, 3, 7, 11, 13], "start": [2, 7, 13], "zero": [1, 2, 5, 7, 13], "id_pr": [2, 7], "id_post": [2, 7], "num_pr": [2, 7], "num_post": [2, 7], "final": [1, 2, 7], "write": [2, 7, 8, 11], "option": [2, 7, 8], "callabl": [2, 7], "calcul": [1, 2, 7, 11, 13], "paramss": [2, 7], "statement": [2, 7], "requir": [2, 5, 7, 8, 13], "want": [2, 5, 7, 8, 10], "sampl": [1, 2, 7], "redraw": [2, 7], "neg": [2, 7], "ensur": [2, 7], "remain": [2, 7], "causal": [2, 7], "normal_positive_model": [2, 7], "normal_posit": [2, 7], "stat": [2, 7, 11], "behaviour": [1, 2, 3, 7], "varaccess": [1, 2, 6, 7], "var_name_typ": [], "sim_cod": [2, 7, 10, 13], "threshold_condition_cod": [2, 7, 10, 13], "reset_cod": [2, 7, 10, 13], "additional_input_var": [2, 7, 13], "auto_refractory_requir": [2, 7], "bool": [2, 7], "fals": [2, 7, 10, 11, 13], "isyn": [2, 7, 10, 13], "total": [2, 4, 7, 11, 12], "incom": [2, 7], "access": [1, 2, 5, 7], "modifi": [2, 7], "everi": [1, 2, 7, 11, 13], "threshold": [2, 7], "express": [2, 7, 13], "test": [2, 7, 10], "whether": [1, 2, 7], "emit": [2, 5, 7], "reset": [1, 2, 7, 10, 13], "list": [2, 7, 11], "doe": [2, 7, 8], "auto": [2, 7, 10], "refractori": [2, 7], "logic": [2, 7], "leaki": [2, 7], "integr": [2, 7, 10, 13], "frac": [2, 7], "dv": [2, 7], "i_": [2, 7], "rm": [2, 7], "syn": [1, 2, 7], "solv": [2, 7], "euler": [2, 7], "method": [2, 5, 7], "leaky_integrator_model": [2, 7], "leaky_integr": [2, 7], "read_writ": [2, 7], "receiv": [2, 7], "linear": [2, 7], "sum": [2, 7, 10, 13], "come": [2, 7], "through": [2, 7, 11, 13], "combin": [2, 7], "non": [2, 7], "linearli": [2, 7], "our": [2, 7], "product": [2, 7], "isyn2": [2, 7], "driven": [2, 7], "what": [1, 2, 3, 7], "output": [1, 2, 7, 10, 11, 13], "deliv": [1, 2, 7, 10], "create_weight_update_model": [1, 2, 6, 7, 10, 13], "pre_var_name_typ": [2, 7], "post_var_name_typ": [2, 7], "pre_neuron_var_ref": [2, 7, 13], "varaccessmod": [2, 6, 7], "post_neuron_var_ref": [2, 7, 13], "pre_spike_syn_cod": [2, 7, 10, 13], "event_cod": [], "pre_event_syn_cod": [2, 7], "post_event_syn_cod": [2, 7], "learn_post_cod": [], "post_spike_syn_cod": [2, 7, 10], "synapse_dynamics_cod": [2, 7, 13], "event_threshold_condition_cod": [], "pre_event_threshold_condition_cod": [2, 7], "post_event_threshold_condition_cod": [2, 7], "pre_spike_cod": [2, 7, 13], "post_spike_cod": [2, 7], "pre_dynamics_cod": [2, 7, 13], "post_dynamics_cod": [2, 7, 13], "assumpt": [2, 7], "addtopost": [2, 7, 13], "inc": [2, 7], "amount": [2, 7], "dendrit": [2, 7, 11], "insert": [2, 7], "between": [1, 2, 5, 7, 11, 13], "addtopostdelai": [2, 7], "onc": [1, 2, 5, 7, 10], "again": [2, 7], "length": [2, 7], "heterogen": [2, 7], "weightupdatemodel": [2, 7], "staticpulsedendriticdelai": [2, 7, 11], "simpl": [2, 3, 7], "maximum": [2, 7, 11], "max_dendritic_delay_timestep": [2, 7, 11], "properti": [2, 5, 7], "One": [2, 5, 7], "effect": [2, 7], "occur": [1, 2, 7], "revers": [2, 7, 11], "direct": [2, 7], "term": [0, 1, 2, 7], "addtopr": [2, 7], "v_post": [2, 7], "would": [1, 2, 5, 7], "_outgoing_": [2, 7], "accumul": [1, 2, 7], "set": [1, 2, 5, 7, 8, 10, 11], "pre_target_var": [2, 7], "unlik": [2, 7], "action": [2, 7, 10, 11, 13], "directli": [2, 5, 7, 8], "indic": [2, 5, 7, 11, 13], "stdp": [2, 7, 10], "rule": [2, 7, 10, 13], "nearest": [2, 7], "neighbour": [2, 7], "pair": [1, 2, 7], "depend": [2, 7], "delta": [2, 7], "w_": [2, 7], "ij": [2, 7], "begin": [2, 7], "case": [2, 7], "a_": [2, 7], "left": [2, 7], "tau_": [2, 7], "right": [2, 7], "leq0": [2, 7], "end": [2, 7, 10, 11, 13], "fulli": [1, 2, 7], "manner": [2, 7], "stdp_additive_model": [2, 7], "stdp_addit": [2, 7], "tauplu": [2, 7], "tauminu": [2, 7], "aplu": [2, 7], "aminu": [2, 7], "wmin": [2, 7, 10, 13], "wmax": [2, 7, 10, 13], "st_post": [2, 7, 10], "newweight": [2, 7, 10], "st_pre": [2, 7, 10], "memori": [1, 2, 5, 7, 10], "cost": [2, 7], "tend": [2, 7], "grow": [2, 7], "o": [2, 7], "therefor": [2, 7], "basi": [2, 7], "good": [2, 7], "idea": [2, 7], "extend": [2, 5, 7], "_trace_": [2, 7], "stdp_additive_2_model": [2, 7], "create_custom_weight_update_class": [2, 7], "stdp_additive_2": [2, 7], "pretrac": [2, 7], "posttrac": [2, 7], "tauplusdecai": [2, 7], "tauminusdecai": [2, 7], "previous": [2, 5, 7], "intern": [2, 7], "continu": [2, 7], "od": [2, 7], "typic": [1, 2, 7], "computation": [2, 7], "veri": [1, 2, 5, 7], "costli": [2, 7], "becaus": [2, 5, 7], "larg": [2, 7], "discuss": [2, 5, 7], "context": [2, 7], "rate": [2, 7, 11, 13], "contin": [2, 7], "definit": [2, 7], "v_pre": [2, 7], "trigger": [1, 2, 7], "evalu": [2, 7], "involv": [2, 7], "respect": [2, 7, 8], "voltag": [2, 7], "greater": [2, 7], "end_toggle_cod": [], "whenev": [2, 7], "true": [2, 5, 7, 10, 11, 13], "add_cpp_python_text": [], "set_event_cod": [], "macro": [], "execut": [1, 2, 4, 7, 12], "staticgrad": 7, "set_needs_pre_spike_event_tim": [], "set_needs_prev_pre_spike_event_tim": [], "is_pre_spike_event_time_requir": [], "is_prev_pre_spike_event_time_requir": [], "set_pr": [], "prev_set_pr": [], "how": [1, 2, 7, 10, 11], "translat": [1, 2], "equat": [2, 7], "over": [1, 2, 5], "create_postsynaptic_model": [1, 2, 6, 7, 13], "decay_cod": [], "apply_input_cod": [], "injectcurr": [2, 7, 10], "x": [2, 5, 7], "goe": [2, 7], "post_target_var": [2, 7, 13], "injection_cod": [2, 7, 10], "helper": [11, 13], "target_var": [2, 7], "row_update_cod": [2, 7], "host_update_cod": [2, 7], "design": [2, 7], "issu": [2, 7], "regard": [2, 7], "accompani": [2, 7], "push": [2, 7, 10], "pull": [2, 7], "illustr": [2, 7], "abov": [2, 5, 7, 8], "launch": [2, 5, 7], "main": [2, 7], "abil": [2, 7], "diagon": [2, 7, 8], "remove_diagonal_model": [2, 7], "remove_diagon": [2, 7], "for_each_synaps": [2, 7, 8], "remove_synaps": [2, 7], "break": [2, 7, 13], "similarli": [2, 5, 7], "back": [2, 7], "add_diagonal_model": [2, 7], "add_diagon": [2, 7], "add_synaps": [2, 7], "import": [2, 5, 7, 10, 11, 13], "lot": [2, 7], "_might_": [2, 7], "automat": [1, 2, 7, 11], "detect": [2, 7], "shuffl": [2, 7], "around": [2, 7], "accordingli": [2, 7], "fine": [2, 7], "know": [2, 7], "If": [2, 3, 5, 7, 13], "need": [1, 2, 5, 7, 8], "hook": [2, 7], "abl": [2, 7], "previou": [1, 2, 5, 7, 13], "common": [2, 5, 7], "scenario": [2, 7], "determin": [2, 7, 10, 11], "element": [2, 5, 7], "row": [2, 7, 8, 13], "get": [2, 7, 11, 13], "befor": [2, 5, 7], "postind": [2, 7], "unsign": [2, 7, 13], "pushpostindtodevic": [2, 7], "mlgenn": 0, "machin": [1, 3], "learn": [0, 1, 2, 3, 7, 10, 13], "neural": [0, 3], "snn": [0, 2], "foundat": [], "construct": [2, 3, 5, 7], "build": [2, 3, 5, 7, 8, 10, 11, 13], "api": [3, 5], "inspir": [4, 9, 12], "modern": [], "ml": [], "kera": [], "aim": 8, "reduc": [2, 7, 8, 13], "cognit": [], "load": [5, 7, 10, 11, 13], "layer": 11, "hyperparamet": [], "enabl": [0, 1, 5, 11], "rapid": [], "prototyp": [], "upgrad": 3, "4": [3, 7, 11], "custom": [3, 7, 10, 13], "bibliographi": 3, "project": [3, 10, 11], "search": [3, 7], "page": 3, "00": [4, 12], "000": [4, 12], "file": [4, 7, 12, 13], "galleri": [4, 9, 10, 11, 13], "mem": [4, 12], "mb": [4, 12], "mnist": [4, 9, 12], "classif": [4, 9, 12], "insect": [4, 9, 12], "mushroom": [4, 9, 12], "bodi": [4, 9, 12], "userproject": [4, 12], "mnist_mb_classifi": [4, 10, 12], "py": [4, 10, 11, 12, 13], "potjans_microcircuit_pygenn": 4, "superspik": [0, 4, 9, 12], "superspike_demo": [4, 12, 13], "packag": [3, 6], "customconnectivityupd": [6, 7], "customupdatevaraccess": [1, 2, 6, 7], "parallelismhint": [6, 7], "plogsever": [6, 7], "synapsematrixconnect": [6, 7], "synapsematrixweight": [6, 7], "varaccessdim": [6, 7], "varaccessmodeattribut": [6, 7], "varloc": [1, 5, 6, 7, 11], "create_egp_ref": [1, 6, 7], "create_psm_egp_ref": [6, 7], "create_sparse_connect_init_snippet": [1, 2, 6, 7], "create_toeplitz_connect_init_snippet": [1, 2, 6, 7], "create_wu_egp_ref": [6, 7], "get_var_access_dim": [6, 7], "init_postsynapt": [1, 6, 7, 8, 10, 11, 13], "init_sparse_connect": [1, 6, 7, 10, 11], "init_toeplitz_connect": [1, 6, 7], "init_weight_upd": [1, 6, 7, 8, 10, 11, 13], "submodul": 6, "cuda_backend": 6, "custom_connectivity_update_model": [1, 6], "init_sparse_connectivity_snippet": [1, 6], "init_toeplitz_connectivity_snippet": [1, 6], "libgenn_cuda_backend_dynam": 6, "libgenn_dynam": 6, "libgenn_single_threaded_cpu_backend_dynam": 6, "neuron_model": [1, 6], "postsynaptic_model": 6, "runtim": [5, 6], "single_threaded_cpu_backend": 6, "weight_update_model": [1, 6], "pybind11_object": 7, "currentsourcemixin": 7, "get_var_loc": 7, "self": 7, "_genn": 7, "arg0": 7, "set_param_dynam": [5, 7, 13], "set_var_loc": 7, "arg1": 7, "var_initialis": 7, "customconnectivityupdatemixin": 7, "get_post_var_loc": 7, "get_pre_var_loc": 7, "post_var_initialis": 7, "post_var_refer": 7, "pre_var_initialis": 7, "pre_var_refer": 7, "set_post_var_loc": 7, "set_pre_var_loc": 7, "synapse_group": 7, "update_group_nam": 7, "var_refer": 7, "customupdatebas": 7, "customupdatemixin": 7, "member": [1, 7], "read_onli": [2, 7], "read_only_shar": 7, "read_only_shared_neuron": 7, "reduce_batch_sum": [2, 7], "reduce_batch_max": [2, 7], "reduce_neuron_sum": [2, 7], "reduce_neuron_max": [2, 7], "33": 7, "84": 7, "76": 7, "52": 7, "44": 7, "customupdatewumixin": 7, "model_nam": 7, "time_precis": 7, "genn_log_level": 7, "warn": 7, "code_gen_log_level": 7, "transpiler_log_level": 7, "runtime_log_level": 7, "backend_log_level": 7, "preference_kwarg": 7, "modelspecintern": 7, "help": [7, 10, 11, 13], "current": [0, 3, 5, 7, 10, 11], "sourc": [7, 9, 10, 11, 13], "connect": [0, 7, 8, 10, 11], "neuron": [3, 5, 10, 11, 13], "backend_nam": 7, "path_to_model": 7, "always_rebuild": 7, "never_rebuild": 7, "path": 7, "place": [1, 5, 7], "directori": 7, "rebuilt": 7, "even": 7, "doesn": [7, 11], "appear": 7, "never": 7, "ever": 7, "prevent": 7, "overwrit": 7, "custom_upd": [7, 13], "free_device_mem_byt": 7, "get_custom_update_tim": [7, 13], "get_custom_update_transpose_tim": [7, 13], "init_sparse_tim": [7, 11, 13], "init_tim": [7, 11, 13], "num_recording_timestep": [5, 7, 10, 11, 13], "share": [1, 2, 5, 7], "neuron_update_tim": [7, 11, 13], "postsynaptic_update_tim": 7, "presynaptic_update_tim": [7, 11, 13], "pull_recording_buffers_from_devic": [5, 7, 10, 11, 13], "record": [7, 10, 11, 13], "buffer": 7, "step_tim": [5, 7, 10, 11, 13], "make": [2, 3, 5, 7, 13], "synapse_dynamics_tim": [7, 13], "unload": 7, "neurongroupmixin": 7, "num_delay_slot": 7, "prev_spike_time_loc": 7, "prev_spike_time_requir": 7, "recording_zero_copy_en": 7, "spike_event_recording_en": [5, 7], "spike_recording_en": [5, 7, 10, 11, 13], "spike_time_loc": 7, "spike_time_requir": 7, "word_packed_bitmask": 7, "fatal": 7, "error": [5, 7, 13], "info": 7, "verbos": 7, "5": [1, 7, 8, 10, 11, 13], "synapsegroupmixin": 7, "axonal_delay_step": [7, 8], "back_prop_delay_step": 7, "dendritic_delay_loc": 7, "get_ps_var_loc": 7, "get_wu_post_var_loc": 7, "get_wu_pre_var_loc": 7, "get_wu_var_loc": 7, "kernel_s": 7, "max_connect": 7, "max_source_connect": 7, "narrow_sparse_ind_en": 7, "num_threads_per_spik": [7, 11], "output_loc": 7, "parallelism_hint": 7, "ps_initialis": 7, "set_ps_param_dynam": 7, "set_ps_var_loc": 7, "set_wu_param_dynam": 7, "set_wu_post_var_loc": 7, "set_wu_pre_var_loc": 7, "set_wu_var_loc": 7, "sparse_connectivity_initialis": 7, "sparse_connectivity_loc": 7, "toeplitz_connectivity_initialis": 7, "wu_initialis": 7, "bitmask": [1, 2, 7], "spars": [1, 5, 7, 8, 10, 11, 13], "procedur": [1, 2, 7, 8, 11], "toeplitz": [1, 7, 8], "8": [7, 11], "16": 7, "dense_proceduralg": [1, 7, 8], "procedural_kernelg": [1, 7, 8], "66": 7, "129": 7, "136": 7, "264": 7, "68": 7, "272": 7, "individu": 7, "kernel": [1, 2, 5, 7, 11, 13], "256": [7, 13], "128": 7, "read_only_dupl": [2, 7], "97": 7, "batch": [1, 5], "reduce_sum": [2, 7], "reduce_max": [2, 7], "12": [0, 7], "zero_copi": 7, "host_devic": [1, 7], "host_device_zero_copi": [1, 7], "7": [1, 7, 11], "update_cod": [2, 7, 13], "extra_global_param_ref": [2, 7], "kwarg": 7, "egprefer": [1, 7], "varrefer": [1, 7], "row_build_cod": [2, 7], "col_build_cod": [2, 7], "calc_max_row_len_func": [2, 7], "calc_max_col_len_func": [2, 7], "calc_kernel_size_func": [2, 7], "initsparseconnectivitysnippet": [], "first": [2, 5, 7, 11, 13], "second": [11, 13], "inherit": [], "derivedparamfunc": [], "column": [2, 7], "calcmaxlengthfunc": [], "col": 13, "calckernelsizefunc": [], "diagonal_build_cod": [2, 7], "inittoeplitzconnectivitysnippet": [], "var_nam": [7, 10], "transpose_sg": 7, "transpose_var_nam": 7, "wuvarrefer": [1, 7], "init": [1, 7, 8, 11, 13], "initsparseconnectivitysnippetbas": [1, 7], "init_toeplitz_connect_snippet": [1, 7], "varinit": [1, 7], "initvarsnippet": [], "initvarsnippetbas": [1, 7], "backendbas": 7, "blocksizeselect": 7, "occup": 7, "deviceselect": 7, "optim": [1, 7], "most_memori": 7, "preferencesbas": 7, "block_size_select_method": 7, "constant_cache_overhead": 7, "device_select_method": 7, "enable_nccl_reduct": 7, "generate_line_info": 7, "manual_block_s": 7, "show_ptx_info": 7, "statebas": 7, "nccl_generate_unique_id": 7, "nccl_init_commun": 7, "nccl_unique_id": 7, "create_backend": 7, "arg2": 7, "arg3": 7, "dc": [7, 11], "currentsourcemodelbas": [1, 7], "gaussiannois": [1, 7], "poissonexp": [7, 11], "conv2d": [1, 7], "fixednumberpostwithreplac": 7, "fixednumberprewithreplac": [7, 10], "fixednumbertotalwithreplac": [7, 11], "fixedprob": [1, 7], "fixedprobabilitynoautaps": 7, "onetoon": 7, "uninitialis": 7, "avgpoolconv2d": 7, "inittoeplitzconnectivitysnippetbas": [1, 7], "normalclip": [7, 11, 13], "normalclippeddelai": [7, 11], "uniform": 7, "neuronmodelbas": [1, 7], "izhikevichvari": 7, "lif": [7, 10, 11], "poisson": [7, 13], "poissonnew": 7, "rulkovmap": 7, "spikesourc": 7, "spikesourcearrai": [7, 13], "traubmil": 7, "traubmilesalt": 7, "traubmilesfast": 7, "traubmilesnstep": 7, "deltacurr": [7, 10, 13], "postsynapticmodelbas": [1, 7], "expcond": [1, 7], "expcurr": [1, 7, 10, 11, 13], "arraybas": [5, 7], "host_view": 7, "pull_from_devic": [5, 7, 10, 13], "pull_slice_1d_from_devic": 7, "push_slice_1d_to_devic": 7, "push_to_devic": [5, 7, 10, 13], "alloc": [1, 5, 7], "allocate_arrai": 7, "get_arrai": 7, "get_delay_point": 7, "get_recorded_post_spike_ev": 7, "numpi": [7, 10, 11, 13], "ndarrai": [1, 7], "float64": 7, "int32": 7, "get_recorded_pre_spike_ev": 7, "get_recorded_spik": 7, "initialize_spars": 7, "set_dynamic_param_valu": [5, 7, 13], "numericvalu": 7, "piecewisestdp": 7, "weightupdatemodelbas": [1, 7], "staticpuls": [7, 8, 10], "staticpulseconstantweight": [1, 7, 8, 10], "backward": 8, "compat": 8, "strive": 8, "most": 8, "updat": [5, 8, 11, 13], "wa": [5, 8], "underli": 8, "compil": 8, "wherea": [5, 8], "pars": 8, "subset": 8, "variabl": [8, 10, 13], "old": 8, "xx": 8, "necessari": [8, 11], "order": [5, 7, 8, 11, 13], "streamlin": 8, "process": [1, 5, 8], "achiev": 8, "thing": [2, 8], "maintain": [3, 8], "sever": [1, 2, 7, 8], "area": 8, "psm": 8, "were": 8, "realli": 8, "ugli": 8, "confus": 8, "now": 8, "just": [5, 8], "let": 8, "whatev": 8, "sort": [2, 7, 8, 13], "loop": [2, 5, 7, 8, 11, 13], "outsid": 8, "reus": 8, "similar": [1, 8], "globalg": 8, "individualg": 8, "almost": [5, 8], "Then": 8, "ve": 8, "renam": 8, "obviou": 8, "variant": [7, 8], "chose": 8, "unusu": 8, "pointer": 8, "await": 8, "pr": 8, "settabl": 8, "replac": [2, 7, 8], "remov": 8, "implicit": 8, "refernec": 8, "below": 9, "develop": [3, 9, 11, 13], "download": [9, 10, 11, 13], "userproject_python": 9, "zip": [9, 13], "jupyt": [9, 10, 11, 13], "notebook": [9, 10, 11, 13], "userproject_jupyt": 9, "sphinx": [9, 10, 11, 13], "go": [1, 10, 11, 13], "plot": [10, 11, 13], "argpars": [10, 11, 13], "argumentpars": [10, 11, 13], "tqdm": 10, "factor": [10, 11], "convert": [7, 10, 13], "normalis": 10, "imag": 10, "pixel": 10, "na": [7, 10, 11], "input_scal": 10, "80": [1, 7, 10, 13], "stimul": 10, "correct": [2, 7, 10], "mbon": 10, "train": [1, 10, 13], "mbon_stimulus_curr": 10, "match": [10, 11], "num_pn": 10, "784": 10, "kenyon": 10, "capac": [7, 10], "num_kc": 10, "20000": 10, "num_mbon": 10, "present": [1, 10], "present_time_m": 10, "lif_param": [10, 11], "taum": [10, 11], "vrest": [7, 10, 11, 13], "60": [10, 13], "vreset": [10, 11], "vthresh": [10, 11, 13], "50": [7, 10, 11, 13], "ioffset": [10, 11], "taurefrac": [10, 11, 13], "pn": 10, "pn_param": 10, "100": [5, 10, 11], "pn_kc_weight": 10, "pn_kc_tau_syn": 10, "pn_kc_fan_in": 10, "kc": 10, "ggn": 10, "inhibit": 10, "200": [10, 13], "ggn_param": 10, "kc_mbon_tau_syn": 10, "kc_mbon_param": 10, "15": [7, 10], "rho": 10, "eta": 10, "00002": 10, "cs_model": 10, "magnitud": [2, 7, 10], "minim": 10, "fire": [7, 10, 11], "if_model": 10, "IF": [7, 10], "symmetr": 10, "symmetric_stdp": 10, "cli": [10, 13], "parser": [10, 11, 13], "add_argu": [10, 11, 13], "store_tru": [10, 11, 13], "save": [5, 10, 11, 13], "parse_arg": [10, 11, 13], "reshap": [10, 13], "test_imag": 10, "els": [10, 11, 13], "train_imag": 10, "astyp": 10, "float32": [10, 11], "axi": [10, 13], "newaxi": 10, "label": 10, "test_label": 10, "train_label": 10, "mnist_mb": 10, "lif_init": [10, 11], "refractim": [10, 11, 13], "if_init": 10, "turn": [10, 13], "pn_input": 10, "supervis": [0, 10], "mbon_input": 10, "synaps": [3, 5, 8, 10, 11, 13], "pn_kc_connect": 10, "num": [2, 7, 10, 11, 13], "pn_kc": 10, "pn_kc_ind": 10, "npy": [5, 10], "set_sparse_connect": [7, 10], "kc_ggn": 10, "ggn_kc": 10, "kc_mbon_weight_upd": 10, "kc_mbon_g": 10, "kc_mbon": 10, "present_timestep": 10, "def": [10, 11, 13], "reset_spike_tim": 10, "spike_tim": [5, 10, 11], "view": [7, 10, 13], "finfo": [10, 11], "reset_out_post": 10, "out_post": 10, "reset_neuron": 10, "var_init": 10, "var_val": 10, "item": [10, 11], "num_correct": 10, "rang": [7, 10, 13], "count": [10, 13], "mbon_spike_tim": 10, "mbon_spike_id": 10, "spike_recording_data": [5, 7, 10, 11, 13], "len": [10, 11, 13], "argmin": 10, "print": [10, 11, 13], "f": [0, 7, 10, 11, 13], "pull_connectivity_from_devic": [7, 10], "weigh": 10, "kc_mbon_g_view": 10, "vstack": [10, 13], "get_sparse_pre_ind": [7, 10], "get_sparse_post_ind": [7, 10], "plot_weight_distribut": 10, "matplotlib": [10, 11, 13], "pyplot": [10, 11, 13], "plt": [10, 11, 13], "fig": [10, 11, 13], "subplot": [10, 11, 13], "figsiz": 10, "hist": 10, "bin": 10, "axvlin": 10, "averag": [7, 10, 13], "linestyl": 10, "set_xlabel": [10, 11, 13], "set_ylabel": [10, 11, 13], "show": [10, 11, 13], "ipynb": [10, 11, 13], "reimplement": [11, 13], "tobia": 11, "marku": 11, "It": [7, 11, 13], "spontan": 11, "asynchron": [5, 11], "irregular": 11, "agreement": 11, "vivo": 11, "awak": 11, "anim": 11, "low": 11, "excitatori": 11, "scipi": [2, 7, 11], "norm": 11, "perf_count": 11, "layer_nam": 11, "23": 11, "population_nam": 11, "dt_m": 11, "background": 11, "background_r": 11, "rel": 11, "inhibitori": 11, "except": [7, 11], "l4e": 11, "l2": 11, "3e": 11, "mean_w": 11, "87": 11, "8e": 11, "external_w": 11, "801": 11, "paper": [2, 7, 11], "paragraph": 11, "under": [3, 11, 13], "parameter": 11, "caption": 11, "supplementari": 11, "layer_23_4_w": 11, "rel_w": 11, "mention": 11, "chosen": [5, 11], "origin": [7, 11], "layer_23_4_relw": 11, "20683": 11, "5834": 11, "21915": 11, "5479": 11, "4850": 11, "1065": 11, "14395": 11, "2948": 11, "probabl": [1, 7, 11], "given": [7, 11], "connection_probabilti": 11, "23e": 11, "1009": 11, "23i": 11, "1689": 11, "4e": 11, "0437": 11, "4i": 11, "0818": 11, "5e": 11, "0323": 11, "5i": 11, "6e": 11, "0076": 11, "6i": 11, "1346": 11, "1371": 11, "0316": 11, "0515": 11, "0755": 11, "0042": 11, "0077": 11, "0059": 11, "0497": 11, "135": 11, "0067": 11, "0003": 11, "0453": 11, "0691": 11, "0029": 11, "0794": 11, "1597": 11, "0033": 11, "1057": 11, "1004": 11, "0622": 11, "0505": 11, "0057": 11, "0831": 11, "3726": 11, "0204": 11, "0548": 11, "0269": 11, "0257": 11, "0022": 11, "06": 11, "3158": 11, "0086": 11, "0156": 11, "0066": 11, "0211": 11, "0166": 11, "0572": 11, "0197": 11, "0396": 11, "2252": 11, "0364": 11, "001": [11, 13], "0034": 11, "0005": 11, "0277": 11, "0658": 11, "1443": 11, "degre": 11, "extern": [7, 11], "num_external_input": 11, "1600": 11, "1500": 11, "2100": 11, "1900": 11, "2000": 11, "2900": 11, "somewhat": 11, "realiz": 11, "mean_firing_r": 11, "971": 11, "868": 11, "746": 11, "396": 11, "142": 11, "9": [11, 13], "078": 11, "991": 11, "523": 11, "mean_delai": 11, "75": 11, "delay_sd": 11, "375": 11, "get_scaled_num_neuron": 11, "neuron_scal": 11, "get_full_num_input": 11, "src_layer": 11, "src_pop": [1, 7, 11], "trg_layer": 11, "trg_pop": 11, "num_src": 11, "num_trg": 11, "connection_prob": 11, "get_mean_weight": 11, "get_scaled_num_connect": 11, "connectivity_scal": 11, "num_input": [11, 13], "assert": 11, "multipli": [2, 7, 11], "get_full_mean_input_curr": 11, "mean_input_curr": 11, "get_pars": [10, 11, 13], "durat": [7, 11], "1000": [11, 13], "profil": [11, 13], "creation": 11, "potjans_microcircuit": [11, 12], "fuse_postsynaptic_model": 11, "default_narrow_sparse_ind_en": 11, "timing_en": [11, 13], "kernel_profil": [11, 13], "default_var_loc": 11, "default_sparse_connectivity_loc": 11, "58": 11, "poisson_init": 11, "exp_curr_init": 11, "quantil": 11, "9999": [2, 7, 11], "normal_quantile_cdf": 11, "ppf": [2, 7, 11], "max_delai": 11, "fm": 11, "slot": 11, "note": [1, 3, 7, 11, 13], "seem": 11, "ineffici": [5, 7, 11], "aggress": 11, "merg": 11, "max_dendritic_delay_slot": 11, "total_neuron": 11, "neuron_popul": 11, "ext_input_r": 11, "ext_weight": 11, "ext_input_curr": 11, "25": [7, 11], "poisson_param": 11, "tausyn": [7, 11], "pop_siz": 11, "neuron_pop": 11, "_poisson": 11, "tpopul": 11, "dictionari": [1, 5, 7, 11], "total_synaps": 11, "num_sub_row": 11, "procedural_connect": 11, "trg_name": 11, "src_name": 11, "mean_weight": 11, "weight_sd": 11, "num_connect": 11, "tconnect": 11, "numconnect": 11, "meanweight": 11, "weightsd": 11, "meandelai": 11, "delaysd": 11, "fix": [2, 7, 11, 13], "connector": 11, "connect_param": 11, "d_dist": 11, "synapse_nam": 11, "hack": 11, "cast": 11, "w_dist": 11, "static_synapse_init": 11, "syn_pop": 11, "span": 11, "duration_timestep": 11, "ten_percent_timestep": 11, "sim_start_tim": 11, "advanc": 11, "sim_end_tim": 11, "tsimul": 11, "tinit": 11, "tspars": 11, "tneuron": 11, "tsynaps": 11, "save_data": [11, 13], "csv": [11, 13], "savetxt": [11, 13], "_spike": 11, "column_stack": [11, 13], "delimit": [11, 13], "fmt": [11, 13], "header": [11, 13], "figur": 11, "ax": [11, 13], "yuck": 11, "re": [5, 11, 13], "ordered_neuron_popul": 11, "start_id": 11, "bar_i": 11, "spike_id": [5, 11], "actor": 11, "scatter": [11, 13], "edgecolor": [11, 13], "bar": 11, "colour": 11, "barh": 11, "align": 11, "center": 11, "color": 11, "get_facecolor": 11, "ecolor": 11, "black": 11, "po": 11, "firingr": 11, "hz": [7, 11], "set_ytick": 11, "set_yticklabel": 11, "spantyp": [], "span_typ": [], "timestep_m": 13, "num_output": 13, "num_hidden": 13, "tau_rise_m": 13, "tau_decay_m": 13, "tau_rms_m": 13, "30000": 13, "tau_avg_err_m": 13, "10000": 13, "r0": 13, "epsilon": 13, "1e": 13, "tau_decay_": 13, "tau_rise_": 13, "tau_avg_err_": 13, "scale_tr_err_flt": 13, "auryn": 13, "unit": 13, "volt": 13, "1000x": 13, "w_min": 13, "w_max": 13, "w0": 13, "experi": 13, "input_freq_hz": 13, "update_time_m": 13, "500": 13, "trial_m": 13, "1890": 13, "update_timestep": 13, "trial_timestep": 13, "calc_t_peak": 13, "tau_ris": 13, "tau_decai": 13, "write_spike_fil": 13, "filenam": 13, "r_max_prop_model": 13, "r_max_prop": 13, "updatetim": 13, "taurm": 13, "upsilon": 13, "updatetimestep": 13, "exprm": 13, "gradient": [1, 2, 7, 13], "superspike_model": 13, "tauris": 13, "taudecai": 13, "beta": [7, 13], "z": 13, "ztilda": 13, "sigmaprim": 13, "errtilda": 13, "filter": 13, "trace": 13, "partial": [3, 13], "oneplushi": 13, "elig": 13, "feedback_model": 13, "feedback": 13, "hidden_neuron_model": 13, "hidden": 13, "taumem": 13, "isynfeedback": 13, "rmembran": 13, "membran": [7, 13], "potenti": [7, 13], "is_auto_refractory_requir": [], "output_neuron_model": 13, "tauavgerr": 13, "errris": 13, "avgsqrerr": 13, "errdecai": 13, "startspik": [7, 13], "endspik": [7, 13], "spiketim": [7, 13], "normfactor": 13, "trisemult": 13, "tdecaymult": 13, "tpeak": 13, "mulavgerr": 13, "spred": 13, "sreal": 13, "mismatch": 13, "temp": 13, "trial": [7, 13], "narg": 13, "oxford": 13, "ra": 13, "600": 13, "record_tri": 13, "target_spik": 13, "loadtxt": 13, "target_fil": 13, "dtype": 13, "neuron_id": 13, "format": [5, 7, 13], "millisecond": 13, "target_neuron_end_tim": 13, "cumsum": 13, "bincount": 13, "minlength": 13, "target_neuron_start_tim": 13, "concaten": 13, "frozen": 13, "input_isi_m": 13, "input_spike_tim": 13, "random": [7, 13], "vector": 13, "reach": 13, "otherwis": [7, 13], "stack": 13, "input_spikes_per_neuron": 13, "togeth": 13, "input_spik": 13, "input_neuron_end_tim": 13, "input_neuron_start_tim": 13, "input_init_var": 13, "hidden_param": 13, "hidden_init_var": 13, "output_param": 13, "output_init_var": 13, "superspike_param": 13, "superspike_pre_init_var": 13, "superspike_post_init_var": 13, "input_hidden_weight_dist_param": 13, "input_hidden_init_var": 13, "hidden_output_weight_dist_param": 13, "hidden_output_init_var": 13, "r_max_prop_param": 13, "descript": 13, "generatelineinfo": 13, "set_init_valu": [5, 7, 13], "any_record": 13, "input_hidden": 13, "inputhidden": 13, "hidden_output": 13, "hiddenoutput": 13, "output_hidden": 13, "outputhidden": 13, "input_hidden_transpos": 13, "calculatetranspos": 13, "input_hidden_optimiser_var_ref": 13, "input_hidden_optimis": 13, "gradientlearn": 13, "hidden_output_optimiser_var_ref": 13, "hidden_output_optimis": 13, "output_avg_sqr_err_var": 13, "current_r0": 13, "hidden_spik": 13, "output_spik": 13, "num_trial": 13, "displai": [7, 13], "perid": 13, "squar": [2, 7, 13], "time_": 13, "mean_error": 13, "0e": 13, "upload": 13, "repeat": 13, "input_spikes_": 13, "hidden_spikes_": 13, "output_spikes_": 13, "append": 13, "sharex": 13, "sharei": 13, "enumer": 13, "start_time_": 13, "890": 13, "sphx_glr_userproject_potjans_microcircuit_pygenn": 4, "usag": [10, 11, 13], "h": [7, 10, 11, 13], "__name__": [10, 11, 13], "__main__": [10, 11, 13], "digit": 10, "zenke2018": [0, 13], "zenk": [0, 13], "ganguli": [0, 13], "2018": 0, "multilay": 0, "1514": 0, "1541": 0, "1162": 0, "neco_a_01086": 0, "knight2018": [0, 2, 7], "knight": [0, 3], "j": 0, "nowotni": [0, 3], "outperform": 0, "hpc": 0, "neuromorph": 0, "solut": 0, "speed": 0, "energi": 0, "highli": 0, "frontier": 0, "neurosci": 0, "decemb": 0, "19": 0, "3389": 0, "fnin": 0, "00941": 0, "turner2022": [0, 2, 7], "turner": 0, "subramanian": 0, "2022": 0, "infer": 0, "engin": 0, "024002": 0, "1088": 0, "2634": 0, "4386": 0, "ac5ac5": 0, "smaller": 1, "occupi": 1, "scenerio": 1, "sweep": 1, "overcom": 1, "rune": 1, "multipl": [1, 2, 7], "speak": [1, 7], "batch_siz": 1, "512": 1, "duplic": [1, 2, 7], "control": 1, "associ": [1, 2, 5, 7], "pleas": [1, 2, 3, 7], "either": [1, 7], "hard": 1, "high": [1, 7], "cach": 1, "often": [1, 5], "snipept": [1, 7], "both": [1, 5, 7], "host": [1, 5], "altern": 1, "newer": 1, "embed": 1, "system": [1, 5], "jetson": 1, "tx1": 1, "physic": 1, "seper": [1, 8], "thu": [1, 5], "Their": 1, "kind": 1, "static": [1, 7], "puls": [1, 7], "weight_init": [1, 7], "postsynaptic_models_model": [1, 7], "conduct": [1, 7], "dense_procedur": 1, "simpli": 1, "prob": [1, 7], "2d": [1, 7], "convolut": [1, 2, 7], "62": [1, 7], "conv_kh": [1, 7], "conv_kw": [1, 7], "conv_ih": [1, 7], "conv_iw": [1, 7], "conv_ic": [1, 7], "conv_oh": [1, 7], "conv_ow": [1, 7], "conv_oc": [1, 7], "4096": [1, 7], "3844": [1, 7], "compon": 1, "init_toeplitz_connectivity_connect": [1, 7], "target_pop": [1, 7], "gaussian": [1, 7], "section": 1, "benefit": 1, "occasion": 1, "classifi": 1, "stimuli": 1, "been": [1, 7], "preced": 1, "simultan": [1, 7], "customconnectivityupdatemodelbas": [1, 7], "customconnectivityupdatemodelbaseupdatemodelbas": [1, 7], "customis": [2, 3], "fly": 2, "id_post_begin": [2, 7], "addsynaps": [2, 7], "binom": [2, 7], "fixed_number_post": [2, 7], "idpost": [2, 7], "short": [2, 7], "up": [2, 3, 7], "text": [2, 7], "look": [2, 3, 5, 7], "invers": [2, 7], "cummul": [2, 7], "cdf": [2, 7], "chanc": [2, 7], "bound": [2, 7], "draw": [2, 7], "independ": [2, 7], "id_diag": [2, 7], "id_kern_0": [2, 7], "id_kern_1": [2, 7], "id_kern_n": [2, 7], "dimension": [2, 7], "insid": [2, 7], "convolv": [2, 7], "kern_dim": [2, 7], "pop_dim": [2, 7], "simple_conv2d_model": [2, 7], "pynn": [2, 7], "simple_conv2d": [2, 7], "kern_siz": [2, 7], "kernrow": [2, 7], "kerncol": [2, 7], "prerow": [2, 7], "precol": [2, 7], "haven": [2, 7], "gone": [2, 7], "off": [2, 7], "edg": [2, 7], "postrow": [2, 7], "postcol": [2, 7], "pre_": [2, 7], "post_": [2, 7], "pre_event_cod": [2, 7], "uniform_noise_model": [2, 7], "uniform_nois": [2, 7], "demand": 2, "reset_model": [2, 7], "mode": [2, 7], "reduce_model": [2, 7], "gradient_batch_reduc": [2, 7], "reducedgradi": [2, 7], "neuron_reduc": [2, 7], "softwar": 3, "nvidia": 3, "genncod": 3, "find": 3, "contact": 3, "dr": 3, "jame": 3, "prof": 3, "thoma": 3, "epsrc": 3, "grant": 3, "ep": 3, "v052241": 3, "unlock": 3, "research": 3, "p006094": 3, "brain": 3, "board": 3, "j019690": 3, "green": 3, "lazi": 5, "hasn": 5, "chang": 5, "instantan": 5, "report": 5, "simplest": 5, "synchronis": 5, "event": 5, "natur": [5, 7], "dedic": 5, "collect": 5, "transfer": 5, "spike_event_recording_data": 5, "real": 5, "interact": 5, "encapsul": 5, "model_preprocessor": [5, 6], "variablebas": [5, 7], "locat": 5, "content": 5, "noth": 5, "recommend": 5, "leav": 5, "work": [5, 7], "transparantli": 5, "To": [5, 8], "current_valu": [5, 7], "transform": [5, 7, 13], "matric": 5, "extract": 5, "wish": 5, "current_view": [5, 7], "behav": 5, "extraglobalparamet": [5, 7], "hold": [5, 7], "psm_extra_global_param": 5, "groupmixin": [5, 7], "increas": 5, "parameterm": 5, "genn_group": 6, "load_init_egp": 7, "get_var_valu": 7, "parent": 7, "pull_extra_global_param_from_devic": 7, "egp_nam": 7, "pull_var_from_devic": 7, "push_extra_global_param_to_devic": 7, "push_var_to_devic": 7, "post_spike_event_recording_data": 7, "pre_spike_event_recording_data": 7, "pull_in_syn_from_devic": 7, "pull_psm_extra_global_param_from_devic": 7, "wrapper": 7, "push_connectivity_to_devic": 7, "push_in_syn_to_devic": 7, "push_psm_extra_global_param_to_devic": 7, "pre_indic": 7, "post_indic": 7, "rag": 7, "weight_update_var_s": 7, "variable_typ": 7, "set_arrai": 7, "view_shap": 7, "variable_nam": 7, "init_valu": 7, "inform": 7, "about": 7, "set_valu": 7, "synapsevari": 7, "delay_group": 7, "valinit_valuesu": 7, "get_snippet": 7, "snippet_base_class": 7, "built_in_snippet_modul": 7, "check": 7, "valid": 7, "nativ": 7, "model_famili": 7, "snippetbas": 7, "rais": 7, "attributeerror": 7, "exist": 7, "someth": 7, "get_var_init": 7, "var_spac": 7, "initials": 7, "map": 7, "prepare_egp": 7, "prepare_param_v": 7, "prepare_var": 7, "var_typ": 7, "becom": [7, 8], "cumbersom": 8, "wors": 8, "take": [7, 8], "improv": 8, "axon": 8, "entri": [7, 11, 13], "friedemann": 13, "surya": 13, "radcliff": 13, "camera": 13, "flag": 7, "differnet": 7, "amp": 7, "amplitud": 7, "noisi": 7, "equival": 7, "channel": 7, "discret": 7, "ascend": 7, "1st": 7, "statist": 7, "npost": 7, "next": 7, "smallest": 7, "special": 7, "stage": 7, "multinomi": 7, "parallelis": 7, "result": 7, "bernoulli": 7, "repeatedli": 7, "geometr": 7, "success": 7, "gap": 7, "devroy": 7, "1986": 7, "invert": 7, "autaps": 7, "recurr": 7, "br": 7, "inneffici": 7, "gemetr": 7, "mark": 7, "cite": 7, "izhikevich2003simpl": 7, "usual": 7, "eqnarrai": 7, "04": 7, "140": 7, "du": 7, "bv": 7, "increment": 7, "mv": 7, "particular": 7, "popular": 7, "though": 7, "due": 7, "strictli": 7, "inconsist": 7, "recoveri": 7, "sensit": 7, "unless": 7, "randomli": 7, "vspike": 7, "trefract": 7, "last": 7, "period": 7, "tspike": 7, "rest": 7, "four": 7, "That": 7, "equal": 7, "undefin": 7, "firingprob": 7, "cdot": 7, "pattern": 7, "leq": 7, "approxim": 7, "math": 7, "correspond": 7, "relev": 7, "especi": 7, "quit": 7, "small": 7, "moder": 7, "worth": 7, "poor": 7, "accord": 7, "timesteptospik": 7, "11": 7, "curand": 7, "rulkov": 7, "rulkov2002": 7, "nowotny2005self": 7, "ll": 7, "v_": 7, "big": 7, "y": 7, "ybig": 7, "intend": 7, "prev": 7, "60mv": 7, "shift": 7, "excit": 7, "468": 7, "roughli": 7, "resist": 7, "regul": 7, "omega": 7, "empti": 7, "spikegeneratorgroup": 7, "brian": 7, "globel": 7, "hodgkin": 7, "huxlei": 7, "traub": 7, "mile": 7, "algorithm": 7, "taken": 7, "traub1991": 7, "i_k": 7, "leak": 7, "i_m": 7, "i_i": 7, "g_": 7, "m_i": 7, "h_i": 7, "v_i": 7, "e_": 7, "k": 7, "n_i": 7, "dy": 7, "alpha_i": 7, "beta_i": 7, "y_i": 7, "alpha_n": 7, "032": 7, "1big": 7, "beta_n": 7, "5exp": 7, "55": 7, "40": 7, "alpha_m": 7, "beta_m": 7, "28": 7, "alpha_h": 7, "128exp": 7, "48": 7, "18": 7, "beta_h": 7, "143": 7, "nf": 7, "02672": 7, "mu": 7, "63": 7, "563": 7, "43": 7, "95": 7, "block": 7, "gna": 7, "mohm": 7, "cm": 7, "ena": 7, "equi": 7, "gk": 7, "ek": 7, "gl": 7, "el": 7, "densiti": 7, "muf": 7, "ordinari": 7, "differenti": 7, "ldt": 7, "004": 7, "singular": 7, "hit": 7, "l": 7, "hospit": 7, "workaround": 7, "avoid": 7, "munimum": 7, "fast": 7, "inner": 7, "There": 7}, "objects": {"": [[7, 0, 0, "-", "pygenn"]], "pygenn": [[7, 1, 1, "", "CurrentSource"], [7, 1, 1, "", "CustomConnectivityUpdate"], [7, 1, 1, "", "CustomUpdate"], [7, 1, 1, "", "CustomUpdateVarAccess"], [7, 1, 1, "", "CustomUpdateWU"], [7, 1, 1, "", "GeNNModel"], [7, 1, 1, "", "NeuronGroup"], [7, 1, 1, "", "ParallelismHint"], [7, 1, 1, "", "PlogSeverity"], [7, 1, 1, "", "SynapseGroup"], [7, 1, 1, "", "SynapseMatrixConnectivity"], [7, 1, 1, "", "SynapseMatrixType"], [7, 1, 1, "", "SynapseMatrixWeight"], [7, 1, 1, "", "VarAccess"], [7, 1, 1, "", "VarAccessDim"], [7, 1, 1, "", "VarAccessMode"], [7, 1, 1, "", "VarAccessModeAttribute"], [7, 1, 1, "", "VarLocation"], [7, 5, 1, "", "create_current_source_model"], [7, 5, 1, "", "create_custom_connectivity_update_model"], [7, 5, 1, "", "create_custom_update_model"], [7, 5, 1, "", "create_egp_ref"], [7, 5, 1, "", "create_neuron_model"], [7, 5, 1, "", "create_postsynaptic_model"], [7, 5, 1, "", "create_psm_egp_ref"], [7, 5, 1, "", "create_psm_var_ref"], [7, 5, 1, "", "create_sparse_connect_init_snippet"], [7, 5, 1, "", "create_toeplitz_connect_init_snippet"], [7, 5, 1, "", "create_var_init_snippet"], [7, 5, 1, "", "create_var_ref"], [7, 5, 1, "", "create_weight_update_model"], [7, 5, 1, "", "create_wu_egp_ref"], [7, 5, 1, "", "create_wu_post_var_ref"], [7, 5, 1, "", "create_wu_pre_var_ref"], [7, 5, 1, "", "create_wu_var_ref"], [7, 0, 0, "-", "cuda_backend"], [7, 0, 0, "-", "current_source_models"], [7, 0, 0, "-", "custom_connectivity_update_models"], [7, 0, 0, "-", "custom_update_models"], [7, 0, 0, "-", "genn_groups"], [7, 5, 1, "", "get_var_access_dim"], [7, 5, 1, "", "init_postsynaptic"], [7, 5, 1, "", "init_sparse_connectivity"], [7, 0, 0, "-", "init_sparse_connectivity_snippets"], [7, 5, 1, "", "init_toeplitz_connectivity"], [7, 0, 0, "-", "init_toeplitz_connectivity_snippets"], [7, 5, 1, "", "init_var"], [7, 0, 0, "-", "init_var_snippets"], [7, 5, 1, "", "init_weight_update"], [7, 0, 0, "-", "model_preprocessor"], [7, 0, 0, "-", "neuron_models"], [7, 0, 0, "-", "postsynaptic_models"], [7, 0, 0, "-", "runtime"], [7, 0, 0, "-", "single_threaded_cpu_backend"], [7, 0, 0, "-", "types"], [7, 0, 0, "-", "weight_update_models"]], "pygenn.CurrentSource": [[7, 2, 1, "", "get_var_location"], [7, 3, 1, "", "model"], [7, 3, 1, "", "name"], [7, 3, 1, "", "params"], [7, 2, 1, "", "set_param_dynamic"], [7, 2, 1, "", "set_var_location"], [7, 3, 1, "", "var_initialisers"]], "pygenn.CustomConnectivityUpdate": [[7, 2, 1, "", "get_post_var_location"], [7, 2, 1, "", "get_pre_var_location"], [7, 2, 1, "", "get_var_location"], [7, 3, 1, "", "model"], [7, 3, 1, "", "name"], [7, 3, 1, "", "params"], [7, 3, 1, "", "post_var_initialisers"], [7, 3, 1, "", "post_var_references"], [7, 3, 1, "", "pre_var_initialisers"], [7, 3, 1, "", "pre_var_references"], [7, 2, 1, "", "set_param_dynamic"], [7, 2, 1, "", "set_post_var_location"], [7, 2, 1, "", "set_pre_var_location"], [7, 2, 1, "", "set_var_location"], [7, 3, 1, "", "synapse_group"], [7, 3, 1, "", "update_group_name"], [7, 3, 1, "", "var_initialisers"], [7, 3, 1, "", "var_references"]], "pygenn.CustomUpdate": [[7, 3, 1, "", "num_neurons"], [7, 3, 1, "", "var_references"]], "pygenn.CustomUpdateVarAccess": [[7, 4, 1, "", "READ_ONLY"], [7, 4, 1, "", "READ_ONLY_SHARED"], [7, 4, 1, "", "READ_ONLY_SHARED_NEURON"], [7, 4, 1, "", "READ_WRITE"], [7, 4, 1, "", "REDUCE_BATCH_MAX"], [7, 4, 1, "", "REDUCE_BATCH_SUM"], [7, 4, 1, "", "REDUCE_NEURON_MAX"], [7, 4, 1, "", "REDUCE_NEURON_SUM"], [7, 3, 1, "", "name"], [7, 3, 1, "", "value"]], "pygenn.CustomUpdateWU": [[7, 3, 1, "", "synapse_group"], [7, 3, 1, "", "var_references"]], "pygenn.GeNNModel": [[7, 2, 1, "", "add_current_source"], [7, 2, 1, "", "add_custom_connectivity_update"], [7, 2, 1, "", "add_custom_update"], [7, 2, 1, "", "add_neuron_population"], [7, 2, 1, "", "add_synapse_population"], [7, 3, 1, "", "backend_name"], [7, 2, 1, "", "build"], [7, 2, 1, "", "custom_update"], [7, 3, 1, "", "dT"], [7, 3, 1, "", "free_device_mem_bytes"], [7, 2, 1, "", "get_custom_update_time"], [7, 2, 1, "", "get_custom_update_transpose_time"], [7, 3, 1, "", "init_sparse_time"], [7, 3, 1, "", "init_time"], [7, 2, 1, "", "load"], [7, 3, 1, "", "neuron_update_time"], [7, 3, 1, "", "postsynaptic_update_time"], [7, 3, 1, "", "presynaptic_update_time"], [7, 2, 1, "", "pull_recording_buffers_from_device"], [7, 2, 1, "", "step_time"], [7, 3, 1, "", "synapse_dynamics_time"], [7, 3, 1, "", "t"], [7, 3, 1, "", "timestep"], [7, 2, 1, "", "unload"]], "pygenn.NeuronGroup": [[7, 2, 1, "", "get_var_location"], [7, 3, 1, "", "model"], [7, 3, 1, "", "name"], [7, 3, 1, "", "num_delay_slots"], [7, 3, 1, "", "num_neurons"], [7, 3, 1, "", "params"], [7, 3, 1, "", "prev_spike_time_location"], [7, 3, 1, "", "prev_spike_time_required"], [7, 3, 1, "", "recording_zero_copy_enabled"], [7, 2, 1, "", "set_param_dynamic"], [7, 2, 1, "", "set_var_location"], [7, 3, 1, "", "spike_event_recording_enabled"], [7, 3, 1, "", "spike_recording_enabled"], [7, 3, 1, "", "spike_time_location"], [7, 3, 1, "", "spike_time_required"], [7, 3, 1, "", "var_initialisers"]], "pygenn.ParallelismHint": [[7, 4, 1, "", "POSTSYNAPTIC"], [7, 4, 1, "", "PRESYNAPTIC"], [7, 4, 1, "", "WORD_PACKED_BITMASK"], [7, 3, 1, "", "name"], [7, 3, 1, "", "value"]], "pygenn.PlogSeverity": [[7, 4, 1, "", "DEBUG"], [7, 4, 1, "", "ERROR"], [7, 4, 1, "", "FATAL"], [7, 4, 1, "", "INFO"], [7, 4, 1, "", "NONE"], [7, 4, 1, "", "VERBOSE"], [7, 4, 1, "", "WARNING"], [7, 3, 1, "", "name"], [7, 3, 1, "", "value"]], "pygenn.SynapseGroup": [[7, 3, 1, "", "axonal_delay_steps"], [7, 3, 1, "", "back_prop_delay_steps"], [7, 3, 1, "", "dendritic_delay_location"], [7, 2, 1, "", "get_ps_var_location"], [7, 2, 1, "", "get_wu_post_var_location"], [7, 2, 1, "", "get_wu_pre_var_location"], [7, 2, 1, "", "get_wu_var_location"], [7, 3, 1, "", "kernel_size"], [7, 3, 1, "", "matrix_type"], [7, 3, 1, "", "max_connections"], [7, 3, 1, "", "max_dendritic_delay_timesteps"], [7, 3, 1, "", "max_source_connections"], [7, 3, 1, "", "name"], [7, 3, 1, "", "narrow_sparse_ind_enabled"], [7, 3, 1, "", "num_threads_per_spike"], [7, 3, 1, "", "output_location"], [7, 3, 1, "", "parallelism_hint"], [7, 3, 1, "", "post_target_var"], [7, 3, 1, "", "pre_target_var"], [7, 3, 1, "", "ps_initialiser"], [7, 2, 1, "", "set_ps_param_dynamic"], [7, 2, 1, "", "set_ps_var_location"], [7, 2, 1, "", "set_wu_param_dynamic"], [7, 2, 1, "", "set_wu_post_var_location"], [7, 2, 1, "", "set_wu_pre_var_location"], [7, 2, 1, "", "set_wu_var_location"], [7, 3, 1, "", "sparse_connectivity_initialiser"], [7, 3, 1, "", "sparse_connectivity_location"], [7, 3, 1, "", "toeplitz_connectivity_initialiser"], [7, 3, 1, "", "wu_initialiser"]], "pygenn.SynapseMatrixConnectivity": [[7, 4, 1, "", "BITMASK"], [7, 4, 1, "", "DENSE"], [7, 4, 1, "", "PROCEDURAL"], [7, 4, 1, "", "SPARSE"], [7, 4, 1, "", "TOEPLITZ"], [7, 3, 1, "", "name"], [7, 3, 1, "", "value"]], "pygenn.SynapseMatrixType": [[7, 4, 1, "", "BITMASK"], [7, 4, 1, "", "DENSE"], [7, 4, 1, "", "DENSE_PROCEDURALG"], [7, 4, 1, "", "PROCEDURAL"], [7, 4, 1, "", "PROCEDURAL_KERNELG"], [7, 4, 1, "", "SPARSE"], [7, 4, 1, "", "TOEPLITZ"], [7, 3, 1, "", "name"], [7, 3, 1, "", "value"]], "pygenn.SynapseMatrixWeight": [[7, 4, 1, "", "INDIVIDUAL"], [7, 4, 1, "", "KERNEL"], [7, 4, 1, "", "PROCEDURAL"], [7, 3, 1, "", "name"], [7, 3, 1, "", "value"]], "pygenn.VarAccess": [[7, 4, 1, "", "READ_ONLY"], [7, 4, 1, "", "READ_ONLY_DUPLICATE"], [7, 4, 1, "", "READ_ONLY_SHARED_NEURON"], [7, 4, 1, "", "READ_WRITE"], [7, 3, 1, "", "name"], [7, 3, 1, "", "value"]], "pygenn.VarAccessDim": [[7, 4, 1, "", "BATCH"], [7, 4, 1, "", "ELEMENT"], [7, 3, 1, "", "name"], [7, 3, 1, "", "value"]], "pygenn.VarAccessMode": [[7, 4, 1, "", "READ_ONLY"], [7, 4, 1, "", "READ_WRITE"], [7, 4, 1, "", "REDUCE_MAX"], [7, 4, 1, "", "REDUCE_SUM"], [7, 3, 1, "", "name"], [7, 3, 1, "", "value"]], "pygenn.VarAccessModeAttribute": [[7, 4, 1, "", "MAX"], [7, 4, 1, "", "READ_ONLY"], [7, 4, 1, "", "READ_WRITE"], [7, 4, 1, "", "REDUCE"], [7, 4, 1, "", "SUM"], [7, 3, 1, "", "name"], [7, 3, 1, "", "value"]], "pygenn.VarLocation": [[7, 4, 1, "", "DEVICE"], [7, 4, 1, "", "HOST"], [7, 4, 1, "", "HOST_DEVICE"], [7, 4, 1, "", "HOST_DEVICE_ZERO_COPY"], [7, 4, 1, "", "ZERO_COPY"], [7, 3, 1, "", "name"], [7, 3, 1, "", "value"]], "pygenn.cuda_backend": [[7, 1, 1, "", "Backend"], [7, 1, 1, "", "BlockSizeSelect"], [7, 1, 1, "", "DeviceSelect"], [7, 1, 1, "", "Preferences"], [7, 1, 1, "", "Runtime"], [7, 5, 1, "", "create_backend"]], "pygenn.cuda_backend.BlockSizeSelect": [[7, 4, 1, "", "MANUAL"], [7, 4, 1, "", "OCCUPANCY"], [7, 3, 1, "", "name"], [7, 3, 1, "", "value"]], "pygenn.cuda_backend.DeviceSelect": [[7, 4, 1, "", "MANUAL"], [7, 4, 1, "", "MOST_MEMORY"], [7, 4, 1, "", "OPTIMAL"], [7, 3, 1, "", "name"], [7, 3, 1, "", "value"]], "pygenn.cuda_backend.Preferences": [[7, 3, 1, "", "block_size_select_method"], [7, 3, 1, "", "constant_cache_overhead"], [7, 3, 1, "", "device_select_method"], [7, 3, 1, "", "enable_nccl_reductions"], [7, 3, 1, "", "generate_line_info"], [7, 3, 1, "", "manual_block_sizes"], [7, 3, 1, "", "manual_device_id"], [7, 3, 1, "", "show_ptx_info"]], "pygenn.cuda_backend.Runtime": [[7, 2, 1, "", "nccl_generate_unique_id"], [7, 2, 1, "", "nccl_init_communicator"], [7, 3, 1, "", "nccl_unique_id"]], "pygenn.current_source_models": [[7, 5, 1, "", "DC"], [7, 5, 1, "", "GaussianNoise"], [7, 5, 1, "", "PoissonExp"]], "pygenn.custom_update_models": [[7, 5, 1, "", "Transpose"]], "pygenn.genn_groups": [[7, 1, 1, "", "CurrentSourceMixin"], [7, 1, 1, "", "CustomConnectivityUpdateMixin"], [7, 1, 1, "", "CustomUpdateMixin"], [7, 1, 1, "", "CustomUpdateWUMixin"], [7, 1, 1, "", "GroupMixin"], [7, 1, 1, "", "NeuronGroupMixin"], [7, 1, 1, "", "SynapseGroupMixin"]], "pygenn.genn_groups.CurrentSourceMixin": [[7, 2, 1, "", "load"], [7, 2, 1, "", "load_init_egps"], [7, 2, 1, "", "unload"]], "pygenn.genn_groups.CustomConnectivityUpdateMixin": [[7, 2, 1, "", "get_var_values"], [7, 2, 1, "", "load"], [7, 2, 1, "", "load_init_egps"], [7, 2, 1, "", "unload"]], "pygenn.genn_groups.CustomUpdateMixin": [[7, 2, 1, "", "load"], [7, 2, 1, "", "load_init_egps"], [7, 2, 1, "", "unload"]], "pygenn.genn_groups.CustomUpdateWUMixin": [[7, 2, 1, "", "get_var_values"], [7, 2, 1, "", "load"], [7, 2, 1, "", "load_init_egps"], [7, 2, 1, "", "unload"]], "pygenn.genn_groups.GroupMixin": [[7, 2, 1, "", "pull_extra_global_param_from_device"], [7, 2, 1, "", "pull_var_from_device"], [7, 2, 1, "", "push_extra_global_param_to_device"], [7, 2, 1, "", "push_var_to_device"], [7, 2, 1, "", "set_dynamic_param_value"]], "pygenn.genn_groups.NeuronGroupMixin": [[7, 2, 1, "", "load"], [7, 2, 1, "", "load_init_egps"], [7, 3, 1, "", "spike_recording_data"], [7, 2, 1, "", "unload"]], "pygenn.genn_groups.SynapseGroupMixin": [[7, 2, 1, "", "get_sparse_post_inds"], [7, 2, 1, "", "get_sparse_pre_inds"], [7, 2, 1, "", "get_var_values"], [7, 2, 1, "", "load"], [7, 2, 1, "", "load_init_egps"], [7, 3, 1, "", "post_spike_event_recording_data"], [7, 3, 1, "", "pre_spike_event_recording_data"], [7, 2, 1, "", "pull_connectivity_from_device"], [7, 2, 1, "", "pull_in_syn_from_device"], [7, 2, 1, "", "pull_psm_extra_global_param_from_device"], [7, 2, 1, "", "push_connectivity_to_device"], [7, 2, 1, "", "push_in_syn_to_device"], [7, 2, 1, "", "push_psm_extra_global_param_to_device"], [7, 2, 1, "", "set_sparse_connections"], [7, 3, 1, "", "synapse_group"], [7, 2, 1, "", "unload"], [7, 3, 1, "", "weight_update_var_size"]], "pygenn.init_sparse_connectivity_snippets": [[7, 5, 1, "", "Conv2D"], [7, 5, 1, "", "FixedNumberPostWithReplacement"], [7, 5, 1, "", "FixedNumberPreWithReplacement"], [7, 5, 1, "", "FixedNumberTotalWithReplacement"], [7, 5, 1, "", "FixedProbability"], [7, 5, 1, "", "FixedProbabilityNoAutapse"], [7, 5, 1, "", "OneToOne"], [7, 5, 1, "", "Uninitialised"]], "pygenn.init_toeplitz_connectivity_snippets": [[7, 5, 1, "", "AvgPoolConv2D"], [7, 5, 1, "", "Conv2D"], [7, 5, 1, "", "Uninitialised"]], "pygenn.init_var_snippets": [[7, 5, 1, "", "Binomial"], [7, 5, 1, "", "Constant"], [7, 5, 1, "", "Exponential"], [7, 5, 1, "", "Gamma"], [7, 5, 1, "", "Kernel"], [7, 5, 1, "", "Normal"], [7, 5, 1, "", "NormalClipped"], [7, 5, 1, "", "NormalClippedDelay"], [7, 5, 1, "", "Uniform"], [7, 5, 1, "", "Uninitialised"]], "pygenn.model_preprocessor": [[7, 1, 1, "", "Array"], [7, 1, 1, "", "ArrayBase"], [7, 1, 1, "", "ExtraGlobalParameter"], [7, 1, 1, "", "SynapseVariable"], [7, 1, 1, "", "Variable"], [7, 1, 1, "", "VariableBase"], [7, 5, 1, "", "get_snippet"], [7, 5, 1, "", "get_var_init"], [7, 5, 1, "", "prepare_egps"], [7, 5, 1, "", "prepare_param_vals"], [7, 5, 1, "", "prepare_vars"]], "pygenn.model_preprocessor.Array": [[7, 3, 1, "", "view"]], "pygenn.model_preprocessor.ArrayBase": [[7, 2, 1, "", "pull_from_device"], [7, 2, 1, "", "push_to_device"], [7, 2, 1, "", "set_array"]], "pygenn.model_preprocessor.ExtraGlobalParameter": [[7, 2, 1, "", "set_init_values"], [7, 2, 1, "", "set_values"], [7, 3, 1, "", "values"], [7, 3, 1, "", "view"]], "pygenn.model_preprocessor.SynapseVariable": [[7, 3, 1, "", "current_values"], [7, 3, 1, "", "current_view"], [7, 3, 1, "", "values"], [7, 3, 1, "", "view"]], "pygenn.model_preprocessor.Variable": [[7, 3, 1, "", "current_values"], [7, 3, 1, "", "current_view"], [7, 3, 1, "", "values"], [7, 3, 1, "", "view"]], "pygenn.model_preprocessor.VariableBase": [[7, 2, 1, "", "set_array"], [7, 2, 1, "", "set_init_values"], [7, 2, 1, "", "set_values"]], "pygenn.neuron_models": [[7, 5, 1, "", "Izhikevich"], [7, 5, 1, "", "IzhikevichVariable"], [7, 5, 1, "", "LIF"], [7, 5, 1, "", "Poisson"], [7, 5, 1, "", "PoissonNew"], [7, 5, 1, "", "RulkovMap"], [7, 5, 1, "", "SpikeSource"], [7, 5, 1, "", "SpikeSourceArray"], [7, 5, 1, "", "TraubMiles"], [7, 5, 1, "", "TraubMilesAlt"], [7, 5, 1, "", "TraubMilesFast"], [7, 5, 1, "", "TraubMilesNStep"]], "pygenn.postsynaptic_models": [[7, 5, 1, "", "DeltaCurr"], [7, 5, 1, "", "ExpCond"], [7, 5, 1, "", "ExpCurr"]], "pygenn.runtime": [[7, 1, 1, "", "ArrayBase"], [7, 1, 1, "", "Runtime"], [7, 1, 1, "", "StateBase"]], "pygenn.runtime.ArrayBase": [[7, 3, 1, "", "host_view"], [7, 2, 1, "", "pull_from_device"], [7, 2, 1, "", "pull_slice_1d_from_device"], [7, 2, 1, "", "push_slice_1d_to_device"], [7, 2, 1, "", "push_to_device"]], "pygenn.runtime.Runtime": [[7, 2, 1, "", "allocate"], [7, 2, 1, "", "allocate_array"], [7, 2, 1, "", "custom_update"], [7, 2, 1, "", "get_array"], [7, 2, 1, "", "get_custom_update_time"], [7, 2, 1, "", "get_custom_update_transpose_time"], [7, 2, 1, "", "get_delay_pointer"], [7, 2, 1, "", "get_recorded_post_spike_events"], [7, 2, 1, "", "get_recorded_pre_spike_events"], [7, 2, 1, "", "get_recorded_spikes"], [7, 3, 1, "", "init_sparse_time"], [7, 3, 1, "", "init_time"], [7, 2, 1, "", "initialize"], [7, 2, 1, "", "initialize_sparse"], [7, 3, 1, "", "neuron_update_time"], [7, 3, 1, "", "postsynaptic_update_time"], [7, 3, 1, "", "presynaptic_update_time"], [7, 2, 1, "", "pull_recording_buffers_from_device"], [7, 2, 1, "", "set_dynamic_param_value"], [7, 3, 1, "", "state"], [7, 2, 1, "", "step_time"], [7, 3, 1, "", "synapse_dynamics_time"], [7, 3, 1, "", "time"], [7, 3, 1, "", "timestep"]], "pygenn.single_threaded_cpu_backend": [[7, 1, 1, "", "Backend"], [7, 1, 1, "", "Preferences"], [7, 5, 1, "", "create_backend"]], "pygenn.weight_update_models": [[7, 5, 1, "", "PiecewiseSTDP"], [7, 5, 1, "", "StaticGraded"], [7, 5, 1, "", "StaticPulse"], [7, 5, 1, "", "StaticPulseConstantWeight"], [7, 5, 1, "", "StaticPulseDendriticDelay"]]}, "objtypes": {"0": "py:module", "1": "py:class", "2": "py:method", "3": "py:property", "4": "py:attribute", "5": "py:function"}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "class", "Python class"], "2": ["py", "method", "Python method"], "3": ["py", "property", "Python property"], "4": ["py", "attribute", "Python attribute"], "5": ["py", "function", "Python function"]}, "titleterms": {"bibliographi": 0, "build": 1, "network": [1, 5], "The": 1, "model": [1, 2, 10, 11], "popul": 1, "paramet": [1, 5], "variabl": [1, 2, 5, 7], "refer": 1, "neuron": [1, 2, 7], "synaps": [1, 2, 7], "current": [1, 2], "sourc": [1, 2], "custom": [1, 2], "updat": [1, 2, 7], "connect": [1, 2], "genncod": [2, 8], "random": 2, "number": 2, "gener": 2, "type": 7, "initialis": 2, "snippet": 2, "spars": 2, "toeplitz": 2, "addit": [2, 7], "input": [2, 7], "weight": 2, "pre": [2, 7], "postsynapt": [2, 7], "dynam": [2, 5, 7], "spike": [2, 5, 7], "like": [2, 7], "event": [2, 7], "parallel": [2, 7], "iter": [2, 7], "remov": [2, 7], "creation": [2, 7], "host": [2, 7], "pygenn": [3, 6, 7, 11, 13], "document": 3, "indic": 3, "tabl": 3, "comput": [4, 12], "time": [4, 12], "simul": 5, "packag": 7, "submodul": 7, "cuda_backend": 7, "modul": 7, "current_source_model": 7, "custom_connectivity_update_model": 7, "custom_update_model": 7, "init_sparse_connectivity_snippet": 7, "init_toeplitz_connectivity_snippet": 7, "init_var_snippet": 7, "libgenn_cuda_backend_dynam": 7, "libgenn_dynam": 7, "libgenn_single_threaded_cpu_backend_dynam": 7, "neuron_model": 7, "postsynaptic_model": 7, "runtim": 7, "single_threaded_cpu_backend": 7, "weight_update_model": 7, "upgrad": 8, "from": 8, "genn": 8, "4": 8, "syntax": 8, "chang": 8, "user": 9, "project": 9, "mnist": 10, "classif": 10, "us": 10, "an": 10, "insect": 10, "inspir": 10, "mushroom": 10, "bodi": 10, "implement": [11, 13], "local": 11, "cortic": 11, "microcircuit": 11, "superspik": 13, "name": [10, 11, 13], "argument": [10, 11, 13], "extra": [1, 5], "global": [1, 5], "locat": 1, "batch": [2, 7], "reduct": [2, 7], "record": 5, "push": 5, "pull": 5, "valu": 5, "view": 5, "genn_group": 7, "model_preprocessor": 7}, "envversion": {"sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx": 58}, "alltitles": {"Bibliography": [[0, "bibliography"]], "Building networks": [[1, "building-networks"]], "The model": [[1, "the-model"]], "Populations": [[1, "populations"]], "Parameters": [[1, "parameters"]], "Extra global parameters": [[1, "extra-global-parameters"], [5, "extra-global-parameters"]], "Extra global parameter references": [[1, "extra-global-parameter-references"]], "Variables": [[1, "variables"], [5, "variables"]], "Variables references": [[1, "variables-references"]], "Variable locations": [[1, "variable-locations"]], "Neuron populations": [[1, "neuron-populations"]], "Synapse populations": [[1, "synapse-populations"]], "Current sources": [[1, "current-sources"]], "Custom updates": [[1, "custom-updates"]], "Custom connectivity updates": [[1, "custom-connectivity-updates"]], "Custom models": [[2, "custom-models"]], "GeNNCode": [[2, "genncode"], [8, "genncode"]], "Random number generation": [[2, "random-number-generation"]], "Initialisation snippets": [[2, "initialisation-snippets"]], "Variable initialisation": [[2, "variable-initialisation"]], "Sparse connectivity initialisation": [[2, "sparse-connectivity-initialisation"]], "Toeplitz connectivity initialisation": [[2, "toeplitz-connectivity-initialisation"]], "Models": [[2, "models"]], "Neuron models": [[2, "neuron-models"]], "Additional input variables": [[2, "additional-input-variables"], [7, "additional-input-variables"]], "Weight update models": [[2, "weight-update-models"]], "Pre and postsynaptic dynamics": [[2, "pre-and-postsynaptic-dynamics"], [7, "pre-and-postsynaptic-dynamics"]], "Synapse dynamics": [[2, "synapse-dynamics"], [7, "synapse-dynamics"]], "Spike-like events": [[2, "spike-like-events"], [7, "spike-like-events"]], "Postsynaptic models": [[2, "postsynaptic-models"]], "Current source models": [[2, "current-source-models"]], "Custom update models": [[2, "custom-update-models"]], "Batch reduction": [[2, "batch-reduction"], [7, "batch-reduction"]], "Neuron reduction": [[2, "neuron-reduction"], [7, "neuron-reduction"]], "Custom connectivity update models": [[2, "custom-connectivity-update-models"]], "Parallel synapse iteration and removal": [[2, "parallel-synapse-iteration-and-removal"], [7, "parallel-synapse-iteration-and-removal"]], "Parallel synapse creation": [[2, "parallel-synapse-creation"], [7, "parallel-synapse-creation"]], "Host updates": [[2, "host-updates"], [7, "host-updates"]], "PyGeNN documentation": [[3, "pygenn-documentation"]], "Indices and tables": [[3, "indices-and-tables"]], "Computation times": [[4, "computation-times"], [12, "computation-times"]], "Simulating networks": [[5, "simulating-networks"]], "Spike recording": [[5, "spike-recording"]], "Pushing and pulling": [[5, "pushing-and-pulling"]], "Values and views": [[5, "values-and-views"]], "Dynamic parameters": [[5, "dynamic-parameters"]], "pygenn": [[6, "pygenn"]], "Upgrading from GeNN 4": [[8, "upgrading-from-genn-4"]], "Syntax changes": [[8, "syntax-changes"]], "User projects": [[9, "user-projects"]], "MNIST classification using an insect-inspired mushroom body model": [[10, "mnist-classification-using-an-insect-inspired-mushroom-body-model"]], "Named Arguments": [[10, "named-arguments"], [11, "named-arguments"], [13, "named-arguments"]], "PyGeNN implementation of local cortical microcircuit model": [[11, "pygenn-implementation-of-local-cortical-microcircuit-model"]], "PyGeNN implementation of SuperSpike": [[13, "pygenn-implementation-of-superspike"]], "pygenn package": [[7, "module-pygenn"]], "Submodules": [[7, "submodules"]], "pygenn.cuda_backend module": [[7, "module-pygenn.cuda_backend"]], "pygenn.current_source_models module": [[7, "module-pygenn.current_source_models"]], "pygenn.custom_connectivity_update_models module": [[7, "module-pygenn.custom_connectivity_update_models"]], "pygenn.custom_update_models module": [[7, "module-pygenn.custom_update_models"]], "pygenn.genn_groups module": [[7, "module-pygenn.genn_groups"]], "pygenn.init_sparse_connectivity_snippets module": [[7, "module-pygenn.init_sparse_connectivity_snippets"]], "pygenn.init_toeplitz_connectivity_snippets module": [[7, "module-pygenn.init_toeplitz_connectivity_snippets"]], "pygenn.init_var_snippets module": [[7, "module-pygenn.init_var_snippets"]], "pygenn.libgenn_cuda_backend_dynamic module": [[7, "pygenn-libgenn-cuda-backend-dynamic-module"]], "pygenn.libgenn_dynamic module": [[7, "pygenn-libgenn-dynamic-module"]], "pygenn.libgenn_single_threaded_cpu_backend_dynamic module": [[7, "pygenn-libgenn-single-threaded-cpu-backend-dynamic-module"]], "pygenn.model_preprocessor module": [[7, "module-pygenn.model_preprocessor"]], "pygenn.neuron_models module": [[7, "module-pygenn.neuron_models"]], "pygenn.postsynaptic_models module": [[7, "module-pygenn.postsynaptic_models"]], "pygenn.runtime module": [[7, "module-pygenn.runtime"]], "pygenn.single_threaded_cpu_backend module": [[7, "module-pygenn.single_threaded_cpu_backend"]], "pygenn.types module": [[7, "module-pygenn.types"]], "pygenn.weight_update_models module": [[7, "module-pygenn.weight_update_models"]]}, "indexentries": {"array (class in pygenn.model_preprocessor)": [[7, "pygenn.model_preprocessor.Array"]], "arraybase (class in pygenn.model_preprocessor)": [[7, "pygenn.model_preprocessor.ArrayBase"]], "arraybase (class in pygenn.runtime)": [[7, "pygenn.runtime.ArrayBase"]], "avgpoolconv2d() (in module pygenn.init_toeplitz_connectivity_snippets)": [[7, "pygenn.init_toeplitz_connectivity_snippets.AvgPoolConv2D"]], "batch (pygenn.varaccessdim attribute)": [[7, "pygenn.VarAccessDim.BATCH"]], "bitmask (pygenn.synapsematrixconnectivity attribute)": [[7, "pygenn.SynapseMatrixConnectivity.BITMASK"]], "bitmask (pygenn.synapsematrixtype attribute)": [[7, "pygenn.SynapseMatrixType.BITMASK"]], "backend (class in pygenn.cuda_backend)": [[7, "pygenn.cuda_backend.Backend"]], "backend (class in pygenn.single_threaded_cpu_backend)": [[7, "pygenn.single_threaded_cpu_backend.Backend"]], "binomial() (in module pygenn.init_var_snippets)": [[7, "pygenn.init_var_snippets.Binomial"]], "blocksizeselect (class in pygenn.cuda_backend)": [[7, "pygenn.cuda_backend.BlockSizeSelect"]], "constant() (in module pygenn.init_var_snippets)": [[7, "pygenn.init_var_snippets.Constant"]], "conv2d() (in module pygenn.init_sparse_connectivity_snippets)": [[7, "pygenn.init_sparse_connectivity_snippets.Conv2D"]], "conv2d() (in module pygenn.init_toeplitz_connectivity_snippets)": [[7, "pygenn.init_toeplitz_connectivity_snippets.Conv2D"]], "currentsource (class in pygenn)": [[7, "pygenn.CurrentSource"]], "currentsourcemixin (class in pygenn.genn_groups)": [[7, "pygenn.genn_groups.CurrentSourceMixin"]], "customconnectivityupdate (class in pygenn)": [[7, "pygenn.CustomConnectivityUpdate"]], "customconnectivityupdatemixin (class in pygenn.genn_groups)": [[7, "pygenn.genn_groups.CustomConnectivityUpdateMixin"]], "customupdate (class in pygenn)": [[7, "pygenn.CustomUpdate"]], "customupdatemixin (class in pygenn.genn_groups)": [[7, "pygenn.genn_groups.CustomUpdateMixin"]], "customupdatevaraccess (class in pygenn)": [[7, "pygenn.CustomUpdateVarAccess"]], "customupdatewu (class in pygenn)": [[7, "pygenn.CustomUpdateWU"]], "customupdatewumixin (class in pygenn.genn_groups)": [[7, "pygenn.genn_groups.CustomUpdateWUMixin"]], "dc() (in module pygenn.current_source_models)": [[7, "pygenn.current_source_models.DC"]], "debug (pygenn.plogseverity attribute)": [[7, "pygenn.PlogSeverity.DEBUG"]], "dense (pygenn.synapsematrixconnectivity attribute)": [[7, "pygenn.SynapseMatrixConnectivity.DENSE"]], "dense (pygenn.synapsematrixtype attribute)": [[7, "pygenn.SynapseMatrixType.DENSE"]], "dense_proceduralg (pygenn.synapsematrixtype attribute)": [[7, "pygenn.SynapseMatrixType.DENSE_PROCEDURALG"]], "device (pygenn.varlocation attribute)": [[7, "pygenn.VarLocation.DEVICE"]], "deltacurr() (in module pygenn.postsynaptic_models)": [[7, "pygenn.postsynaptic_models.DeltaCurr"]], "deviceselect (class in pygenn.cuda_backend)": [[7, "pygenn.cuda_backend.DeviceSelect"]], "element (pygenn.varaccessdim attribute)": [[7, "pygenn.VarAccessDim.ELEMENT"]], "error (pygenn.plogseverity attribute)": [[7, "pygenn.PlogSeverity.ERROR"]], "expcond() (in module pygenn.postsynaptic_models)": [[7, "pygenn.postsynaptic_models.ExpCond"]], "expcurr() (in module pygenn.postsynaptic_models)": [[7, "pygenn.postsynaptic_models.ExpCurr"]], "exponential() (in module pygenn.init_var_snippets)": [[7, "pygenn.init_var_snippets.Exponential"]], "extraglobalparameter (class in pygenn.model_preprocessor)": [[7, "pygenn.model_preprocessor.ExtraGlobalParameter"]], "fatal (pygenn.plogseverity attribute)": [[7, "pygenn.PlogSeverity.FATAL"]], "fixednumberpostwithreplacement() (in module pygenn.init_sparse_connectivity_snippets)": [[7, "pygenn.init_sparse_connectivity_snippets.FixedNumberPostWithReplacement"]], "fixednumberprewithreplacement() (in module pygenn.init_sparse_connectivity_snippets)": [[7, "pygenn.init_sparse_connectivity_snippets.FixedNumberPreWithReplacement"]], "fixednumbertotalwithreplacement() (in module pygenn.init_sparse_connectivity_snippets)": [[7, "pygenn.init_sparse_connectivity_snippets.FixedNumberTotalWithReplacement"]], "fixedprobability() (in module pygenn.init_sparse_connectivity_snippets)": [[7, "pygenn.init_sparse_connectivity_snippets.FixedProbability"]], "fixedprobabilitynoautapse() (in module pygenn.init_sparse_connectivity_snippets)": [[7, "pygenn.init_sparse_connectivity_snippets.FixedProbabilityNoAutapse"]], "gamma() (in module pygenn.init_var_snippets)": [[7, "pygenn.init_var_snippets.Gamma"]], "gaussiannoise() (in module pygenn.current_source_models)": [[7, "pygenn.current_source_models.GaussianNoise"]], "gennmodel (class in pygenn)": [[7, "pygenn.GeNNModel"]], "groupmixin (class in pygenn.genn_groups)": [[7, "pygenn.genn_groups.GroupMixin"]], "host (pygenn.varlocation attribute)": [[7, "pygenn.VarLocation.HOST"]], "host_device (pygenn.varlocation attribute)": [[7, "pygenn.VarLocation.HOST_DEVICE"]], "host_device_zero_copy (pygenn.varlocation attribute)": [[7, "pygenn.VarLocation.HOST_DEVICE_ZERO_COPY"]], "individual (pygenn.synapsematrixweight attribute)": [[7, "pygenn.SynapseMatrixWeight.INDIVIDUAL"]], "info (pygenn.plogseverity attribute)": [[7, "pygenn.PlogSeverity.INFO"]], "izhikevich() (in module pygenn.neuron_models)": [[7, "pygenn.neuron_models.Izhikevich"]], "izhikevichvariable() (in module pygenn.neuron_models)": [[7, "pygenn.neuron_models.IzhikevichVariable"]], "kernel (pygenn.synapsematrixweight attribute)": [[7, "pygenn.SynapseMatrixWeight.KERNEL"]], "kernel() (in module pygenn.init_var_snippets)": [[7, "pygenn.init_var_snippets.Kernel"]], "lif() (in module pygenn.neuron_models)": [[7, "pygenn.neuron_models.LIF"]], "manual (pygenn.cuda_backend.blocksizeselect attribute)": [[7, "pygenn.cuda_backend.BlockSizeSelect.MANUAL"]], "manual (pygenn.cuda_backend.deviceselect attribute)": [[7, "pygenn.cuda_backend.DeviceSelect.MANUAL"]], "max (pygenn.varaccessmodeattribute attribute)": [[7, "pygenn.VarAccessModeAttribute.MAX"]], "most_memory (pygenn.cuda_backend.deviceselect attribute)": [[7, "pygenn.cuda_backend.DeviceSelect.MOST_MEMORY"]], "none (pygenn.plogseverity attribute)": [[7, "pygenn.PlogSeverity.NONE"]], "neurongroup (class in pygenn)": [[7, "pygenn.NeuronGroup"]], "neurongroupmixin (class in pygenn.genn_groups)": [[7, "pygenn.genn_groups.NeuronGroupMixin"]], "normal() (in module pygenn.init_var_snippets)": [[7, "pygenn.init_var_snippets.Normal"]], "normalclipped() (in module pygenn.init_var_snippets)": [[7, "pygenn.init_var_snippets.NormalClipped"]], "normalclippeddelay() (in module pygenn.init_var_snippets)": [[7, "pygenn.init_var_snippets.NormalClippedDelay"]], "occupancy (pygenn.cuda_backend.blocksizeselect attribute)": [[7, "pygenn.cuda_backend.BlockSizeSelect.OCCUPANCY"]], "optimal (pygenn.cuda_backend.deviceselect attribute)": [[7, "pygenn.cuda_backend.DeviceSelect.OPTIMAL"]], "onetoone() (in module pygenn.init_sparse_connectivity_snippets)": [[7, "pygenn.init_sparse_connectivity_snippets.OneToOne"]], "postsynaptic (pygenn.parallelismhint attribute)": [[7, "pygenn.ParallelismHint.POSTSYNAPTIC"]], "presynaptic (pygenn.parallelismhint attribute)": [[7, "pygenn.ParallelismHint.PRESYNAPTIC"]], "procedural (pygenn.synapsematrixconnectivity attribute)": [[7, "pygenn.SynapseMatrixConnectivity.PROCEDURAL"]], "procedural (pygenn.synapsematrixtype attribute)": [[7, "pygenn.SynapseMatrixType.PROCEDURAL"]], "procedural (pygenn.synapsematrixweight attribute)": [[7, "pygenn.SynapseMatrixWeight.PROCEDURAL"]], "procedural_kernelg (pygenn.synapsematrixtype attribute)": [[7, "pygenn.SynapseMatrixType.PROCEDURAL_KERNELG"]], "parallelismhint (class in pygenn)": [[7, "pygenn.ParallelismHint"]], "piecewisestdp() (in module pygenn.weight_update_models)": [[7, "pygenn.weight_update_models.PiecewiseSTDP"]], "plogseverity (class in pygenn)": [[7, "pygenn.PlogSeverity"]], "poisson() (in module pygenn.neuron_models)": [[7, "pygenn.neuron_models.Poisson"]], "poissonexp() (in module pygenn.current_source_models)": [[7, "pygenn.current_source_models.PoissonExp"]], "poissonnew() (in module pygenn.neuron_models)": [[7, "pygenn.neuron_models.PoissonNew"]], "preferences (class in pygenn.cuda_backend)": [[7, "pygenn.cuda_backend.Preferences"]], "preferences (class in pygenn.single_threaded_cpu_backend)": [[7, "pygenn.single_threaded_cpu_backend.Preferences"]], "read_only (pygenn.customupdatevaraccess attribute)": [[7, "pygenn.CustomUpdateVarAccess.READ_ONLY"]], "read_only (pygenn.varaccess attribute)": [[7, "pygenn.VarAccess.READ_ONLY"]], "read_only (pygenn.varaccessmode attribute)": [[7, "pygenn.VarAccessMode.READ_ONLY"]], "read_only (pygenn.varaccessmodeattribute attribute)": [[7, "pygenn.VarAccessModeAttribute.READ_ONLY"]], "read_only_duplicate (pygenn.varaccess attribute)": [[7, "pygenn.VarAccess.READ_ONLY_DUPLICATE"]], "read_only_shared (pygenn.customupdatevaraccess attribute)": [[7, "pygenn.CustomUpdateVarAccess.READ_ONLY_SHARED"]], "read_only_shared_neuron (pygenn.customupdatevaraccess attribute)": [[7, "pygenn.CustomUpdateVarAccess.READ_ONLY_SHARED_NEURON"]], "read_only_shared_neuron (pygenn.varaccess attribute)": [[7, "pygenn.VarAccess.READ_ONLY_SHARED_NEURON"]], "read_write (pygenn.customupdatevaraccess attribute)": [[7, "pygenn.CustomUpdateVarAccess.READ_WRITE"]], "read_write (pygenn.varaccess attribute)": [[7, "pygenn.VarAccess.READ_WRITE"]], "read_write (pygenn.varaccessmode attribute)": [[7, "pygenn.VarAccessMode.READ_WRITE"]], "read_write (pygenn.varaccessmodeattribute attribute)": [[7, "pygenn.VarAccessModeAttribute.READ_WRITE"]], "reduce (pygenn.varaccessmodeattribute attribute)": [[7, "pygenn.VarAccessModeAttribute.REDUCE"]], "reduce_batch_max (pygenn.customupdatevaraccess attribute)": [[7, "pygenn.CustomUpdateVarAccess.REDUCE_BATCH_MAX"]], "reduce_batch_sum (pygenn.customupdatevaraccess attribute)": [[7, "pygenn.CustomUpdateVarAccess.REDUCE_BATCH_SUM"]], "reduce_max (pygenn.varaccessmode attribute)": [[7, "pygenn.VarAccessMode.REDUCE_MAX"]], "reduce_neuron_max (pygenn.customupdatevaraccess attribute)": [[7, "pygenn.CustomUpdateVarAccess.REDUCE_NEURON_MAX"]], "reduce_neuron_sum (pygenn.customupdatevaraccess attribute)": [[7, "pygenn.CustomUpdateVarAccess.REDUCE_NEURON_SUM"]], "reduce_sum (pygenn.varaccessmode attribute)": [[7, "pygenn.VarAccessMode.REDUCE_SUM"]], "rulkovmap() (in module pygenn.neuron_models)": [[7, "pygenn.neuron_models.RulkovMap"]], "runtime (class in pygenn.cuda_backend)": [[7, "pygenn.cuda_backend.Runtime"]], "runtime (class in pygenn.runtime)": [[7, "pygenn.runtime.Runtime"]], "sparse (pygenn.synapsematrixconnectivity attribute)": [[7, "pygenn.SynapseMatrixConnectivity.SPARSE"]], "sparse (pygenn.synapsematrixtype attribute)": [[7, "pygenn.SynapseMatrixType.SPARSE"]], "sum (pygenn.varaccessmodeattribute attribute)": [[7, "pygenn.VarAccessModeAttribute.SUM"]], "spikesource() (in module pygenn.neuron_models)": [[7, "pygenn.neuron_models.SpikeSource"]], "spikesourcearray() (in module pygenn.neuron_models)": [[7, "pygenn.neuron_models.SpikeSourceArray"]], "statebase (class in pygenn.runtime)": [[7, "pygenn.runtime.StateBase"]], "staticgraded() (in module pygenn.weight_update_models)": [[7, "pygenn.weight_update_models.StaticGraded"]], "staticpulse() (in module pygenn.weight_update_models)": [[7, "pygenn.weight_update_models.StaticPulse"]], "staticpulseconstantweight() (in module pygenn.weight_update_models)": [[7, "pygenn.weight_update_models.StaticPulseConstantWeight"]], "staticpulsedendriticdelay() (in module pygenn.weight_update_models)": [[7, "pygenn.weight_update_models.StaticPulseDendriticDelay"]], "synapsegroup (class in pygenn)": [[7, "pygenn.SynapseGroup"]], "synapsegroupmixin (class in pygenn.genn_groups)": [[7, "pygenn.genn_groups.SynapseGroupMixin"]], "synapsematrixconnectivity (class in pygenn)": [[7, "pygenn.SynapseMatrixConnectivity"]], "synapsematrixtype (class in pygenn)": [[7, "pygenn.SynapseMatrixType"]], "synapsematrixweight (class in pygenn)": [[7, "pygenn.SynapseMatrixWeight"]], "synapsevariable (class in pygenn.model_preprocessor)": [[7, "pygenn.model_preprocessor.SynapseVariable"]], "toeplitz (pygenn.synapsematrixconnectivity attribute)": [[7, "pygenn.SynapseMatrixConnectivity.TOEPLITZ"]], "toeplitz (pygenn.synapsematrixtype attribute)": [[7, "pygenn.SynapseMatrixType.TOEPLITZ"]], "transpose() (in module pygenn.custom_update_models)": [[7, "pygenn.custom_update_models.Transpose"]], "traubmiles() (in module pygenn.neuron_models)": [[7, "pygenn.neuron_models.TraubMiles"]], "traubmilesalt() (in module pygenn.neuron_models)": [[7, "pygenn.neuron_models.TraubMilesAlt"]], "traubmilesfast() (in module pygenn.neuron_models)": [[7, "pygenn.neuron_models.TraubMilesFast"]], "traubmilesnstep() (in module pygenn.neuron_models)": [[7, "pygenn.neuron_models.TraubMilesNStep"]], "uniform() (in module pygenn.init_var_snippets)": [[7, "pygenn.init_var_snippets.Uniform"]], "uninitialised() (in module pygenn.init_sparse_connectivity_snippets)": [[7, "pygenn.init_sparse_connectivity_snippets.Uninitialised"]], "uninitialised() (in module pygenn.init_toeplitz_connectivity_snippets)": [[7, "pygenn.init_toeplitz_connectivity_snippets.Uninitialised"]], "uninitialised() (in module pygenn.init_var_snippets)": [[7, "pygenn.init_var_snippets.Uninitialised"]], "verbose (pygenn.plogseverity attribute)": [[7, "pygenn.PlogSeverity.VERBOSE"]], "varaccess (class in pygenn)": [[7, "pygenn.VarAccess"]], "varaccessdim (class in pygenn)": [[7, "pygenn.VarAccessDim"]], "varaccessmode (class in pygenn)": [[7, "pygenn.VarAccessMode"]], "varaccessmodeattribute (class in pygenn)": [[7, "pygenn.VarAccessModeAttribute"]], "varlocation (class in pygenn)": [[7, "pygenn.VarLocation"]], "variable (class in pygenn.model_preprocessor)": [[7, "pygenn.model_preprocessor.Variable"]], "variablebase (class in pygenn.model_preprocessor)": [[7, "pygenn.model_preprocessor.VariableBase"]], "warning (pygenn.plogseverity attribute)": [[7, "pygenn.PlogSeverity.WARNING"]], "word_packed_bitmask (pygenn.parallelismhint attribute)": [[7, "pygenn.ParallelismHint.WORD_PACKED_BITMASK"]], "zero_copy (pygenn.varlocation attribute)": [[7, "pygenn.VarLocation.ZERO_COPY"]], "add_current_source() (pygenn.gennmodel method)": [[7, "pygenn.GeNNModel.add_current_source"]], "add_custom_connectivity_update() (pygenn.gennmodel method)": [[7, "pygenn.GeNNModel.add_custom_connectivity_update"]], "add_custom_update() (pygenn.gennmodel method)": [[7, "pygenn.GeNNModel.add_custom_update"]], "add_neuron_population() (pygenn.gennmodel method)": [[7, "pygenn.GeNNModel.add_neuron_population"]], "add_synapse_population() (pygenn.gennmodel method)": [[7, "pygenn.GeNNModel.add_synapse_population"]], "allocate() (pygenn.runtime.runtime method)": [[7, "pygenn.runtime.Runtime.allocate"]], "allocate_array() (pygenn.runtime.runtime method)": [[7, "pygenn.runtime.Runtime.allocate_array"]], "axonal_delay_steps (pygenn.synapsegroup property)": [[7, "pygenn.SynapseGroup.axonal_delay_steps"]], "back_prop_delay_steps (pygenn.synapsegroup property)": [[7, "pygenn.SynapseGroup.back_prop_delay_steps"]], "backend_name (pygenn.gennmodel property)": [[7, "pygenn.GeNNModel.backend_name"]], "block_size_select_method (pygenn.cuda_backend.preferences property)": [[7, "pygenn.cuda_backend.Preferences.block_size_select_method"]], "build() (pygenn.gennmodel method)": [[7, "pygenn.GeNNModel.build"]], "constant_cache_overhead (pygenn.cuda_backend.preferences property)": [[7, "pygenn.cuda_backend.Preferences.constant_cache_overhead"]], "create_backend() (in module pygenn.cuda_backend)": [[7, "pygenn.cuda_backend.create_backend"]], "create_backend() (in module pygenn.single_threaded_cpu_backend)": [[7, "pygenn.single_threaded_cpu_backend.create_backend"]], "create_current_source_model() (in module pygenn)": [[7, "pygenn.create_current_source_model"]], "create_custom_connectivity_update_model() (in module pygenn)": [[7, "pygenn.create_custom_connectivity_update_model"]], "create_custom_update_model() (in module pygenn)": [[7, "pygenn.create_custom_update_model"]], "create_egp_ref() (in module pygenn)": [[7, "pygenn.create_egp_ref"]], "create_neuron_model() (in module pygenn)": [[7, "pygenn.create_neuron_model"]], "create_postsynaptic_model() (in module pygenn)": [[7, "pygenn.create_postsynaptic_model"]], "create_psm_egp_ref() (in module pygenn)": [[7, "pygenn.create_psm_egp_ref"]], "create_psm_var_ref() (in module pygenn)": [[7, "pygenn.create_psm_var_ref"]], "create_sparse_connect_init_snippet() (in module pygenn)": [[7, "pygenn.create_sparse_connect_init_snippet"]], "create_toeplitz_connect_init_snippet() (in module pygenn)": [[7, "pygenn.create_toeplitz_connect_init_snippet"]], "create_var_init_snippet() (in module pygenn)": [[7, "pygenn.create_var_init_snippet"]], "create_var_ref() (in module pygenn)": [[7, "pygenn.create_var_ref"]], "create_weight_update_model() (in module pygenn)": [[7, "pygenn.create_weight_update_model"]], "create_wu_egp_ref() (in module pygenn)": [[7, "pygenn.create_wu_egp_ref"]], "create_wu_post_var_ref() (in module pygenn)": [[7, "pygenn.create_wu_post_var_ref"]], "create_wu_pre_var_ref() (in module pygenn)": [[7, "pygenn.create_wu_pre_var_ref"]], "create_wu_var_ref() (in module pygenn)": [[7, "pygenn.create_wu_var_ref"]], "current_values (pygenn.model_preprocessor.synapsevariable property)": [[7, "pygenn.model_preprocessor.SynapseVariable.current_values"]], "current_values (pygenn.model_preprocessor.variable property)": [[7, "pygenn.model_preprocessor.Variable.current_values"]], "current_view (pygenn.model_preprocessor.synapsevariable property)": [[7, "pygenn.model_preprocessor.SynapseVariable.current_view"]], "current_view (pygenn.model_preprocessor.variable property)": [[7, "pygenn.model_preprocessor.Variable.current_view"]], "custom_update() (pygenn.gennmodel method)": [[7, "pygenn.GeNNModel.custom_update"]], "custom_update() (pygenn.runtime.runtime method)": [[7, "pygenn.runtime.Runtime.custom_update"]], "dt (pygenn.gennmodel property)": [[7, "pygenn.GeNNModel.dT"]], "dendritic_delay_location (pygenn.synapsegroup property)": [[7, "pygenn.SynapseGroup.dendritic_delay_location"]], "device_select_method (pygenn.cuda_backend.preferences property)": [[7, "pygenn.cuda_backend.Preferences.device_select_method"]], "enable_nccl_reductions (pygenn.cuda_backend.preferences property)": [[7, "pygenn.cuda_backend.Preferences.enable_nccl_reductions"]], "free_device_mem_bytes (pygenn.gennmodel property)": [[7, "pygenn.GeNNModel.free_device_mem_bytes"]], "generate_line_info (pygenn.cuda_backend.preferences property)": [[7, "pygenn.cuda_backend.Preferences.generate_line_info"]], "get_array() (pygenn.runtime.runtime method)": [[7, "pygenn.runtime.Runtime.get_array"]], "get_custom_update_time() (pygenn.gennmodel method)": [[7, "pygenn.GeNNModel.get_custom_update_time"]], "get_custom_update_time() (pygenn.runtime.runtime method)": [[7, "pygenn.runtime.Runtime.get_custom_update_time"]], "get_custom_update_transpose_time() (pygenn.gennmodel method)": [[7, "pygenn.GeNNModel.get_custom_update_transpose_time"]], "get_custom_update_transpose_time() (pygenn.runtime.runtime method)": [[7, "pygenn.runtime.Runtime.get_custom_update_transpose_time"]], "get_delay_pointer() (pygenn.runtime.runtime method)": [[7, "pygenn.runtime.Runtime.get_delay_pointer"]], "get_post_var_location() (pygenn.customconnectivityupdate method)": [[7, "pygenn.CustomConnectivityUpdate.get_post_var_location"]], "get_pre_var_location() (pygenn.customconnectivityupdate method)": [[7, "pygenn.CustomConnectivityUpdate.get_pre_var_location"]], "get_ps_var_location() (pygenn.synapsegroup method)": [[7, "pygenn.SynapseGroup.get_ps_var_location"]], "get_recorded_post_spike_events() (pygenn.runtime.runtime method)": [[7, "pygenn.runtime.Runtime.get_recorded_post_spike_events"]], "get_recorded_pre_spike_events() (pygenn.runtime.runtime method)": [[7, "pygenn.runtime.Runtime.get_recorded_pre_spike_events"]], "get_recorded_spikes() (pygenn.runtime.runtime method)": [[7, "pygenn.runtime.Runtime.get_recorded_spikes"]], "get_snippet() (in module pygenn.model_preprocessor)": [[7, "pygenn.model_preprocessor.get_snippet"]], "get_sparse_post_inds() (pygenn.genn_groups.synapsegroupmixin method)": [[7, "pygenn.genn_groups.SynapseGroupMixin.get_sparse_post_inds"]], "get_sparse_pre_inds() (pygenn.genn_groups.synapsegroupmixin method)": [[7, "pygenn.genn_groups.SynapseGroupMixin.get_sparse_pre_inds"]], "get_var_access_dim() (in module pygenn)": [[7, "pygenn.get_var_access_dim"]], "get_var_init() (in module pygenn.model_preprocessor)": [[7, "pygenn.model_preprocessor.get_var_init"]], "get_var_location() (pygenn.currentsource method)": [[7, "pygenn.CurrentSource.get_var_location"]], "get_var_location() (pygenn.customconnectivityupdate method)": [[7, "pygenn.CustomConnectivityUpdate.get_var_location"]], "get_var_location() (pygenn.neurongroup method)": [[7, "pygenn.NeuronGroup.get_var_location"]], "get_var_values() (pygenn.genn_groups.customconnectivityupdatemixin method)": [[7, "pygenn.genn_groups.CustomConnectivityUpdateMixin.get_var_values"]], "get_var_values() (pygenn.genn_groups.customupdatewumixin method)": [[7, "pygenn.genn_groups.CustomUpdateWUMixin.get_var_values"]], "get_var_values() (pygenn.genn_groups.synapsegroupmixin method)": [[7, "pygenn.genn_groups.SynapseGroupMixin.get_var_values"]], "get_wu_post_var_location() (pygenn.synapsegroup method)": [[7, "pygenn.SynapseGroup.get_wu_post_var_location"]], "get_wu_pre_var_location() (pygenn.synapsegroup method)": [[7, "pygenn.SynapseGroup.get_wu_pre_var_location"]], "get_wu_var_location() (pygenn.synapsegroup method)": [[7, "pygenn.SynapseGroup.get_wu_var_location"]], "host_view (pygenn.runtime.arraybase property)": [[7, "pygenn.runtime.ArrayBase.host_view"]], "init_postsynaptic() (in module pygenn)": [[7, "pygenn.init_postsynaptic"]], "init_sparse_connectivity() (in module pygenn)": [[7, "pygenn.init_sparse_connectivity"]], "init_sparse_time (pygenn.gennmodel property)": [[7, "pygenn.GeNNModel.init_sparse_time"]], "init_sparse_time (pygenn.runtime.runtime property)": [[7, "pygenn.runtime.Runtime.init_sparse_time"]], "init_time (pygenn.gennmodel property)": [[7, "pygenn.GeNNModel.init_time"]], "init_time (pygenn.runtime.runtime property)": [[7, "pygenn.runtime.Runtime.init_time"]], "init_toeplitz_connectivity() (in module pygenn)": [[7, "pygenn.init_toeplitz_connectivity"]], "init_var() (in module pygenn)": [[7, "pygenn.init_var"]], "init_weight_update() (in module pygenn)": [[7, "pygenn.init_weight_update"]], "initialize() (pygenn.runtime.runtime method)": [[7, "pygenn.runtime.Runtime.initialize"]], "initialize_sparse() (pygenn.runtime.runtime method)": [[7, "pygenn.runtime.Runtime.initialize_sparse"]], "kernel_size (pygenn.synapsegroup property)": [[7, "pygenn.SynapseGroup.kernel_size"]], "load() (pygenn.gennmodel method)": [[7, "pygenn.GeNNModel.load"]], "load() (pygenn.genn_groups.currentsourcemixin method)": [[7, "pygenn.genn_groups.CurrentSourceMixin.load"]], "load() (pygenn.genn_groups.customconnectivityupdatemixin method)": [[7, "pygenn.genn_groups.CustomConnectivityUpdateMixin.load"]], "load() (pygenn.genn_groups.customupdatemixin method)": [[7, "pygenn.genn_groups.CustomUpdateMixin.load"]], "load() (pygenn.genn_groups.customupdatewumixin method)": [[7, "pygenn.genn_groups.CustomUpdateWUMixin.load"]], "load() (pygenn.genn_groups.neurongroupmixin method)": [[7, "pygenn.genn_groups.NeuronGroupMixin.load"]], "load() (pygenn.genn_groups.synapsegroupmixin method)": [[7, "pygenn.genn_groups.SynapseGroupMixin.load"]], "load_init_egps() (pygenn.genn_groups.currentsourcemixin method)": [[7, "pygenn.genn_groups.CurrentSourceMixin.load_init_egps"]], "load_init_egps() (pygenn.genn_groups.customconnectivityupdatemixin method)": [[7, "pygenn.genn_groups.CustomConnectivityUpdateMixin.load_init_egps"]], "load_init_egps() (pygenn.genn_groups.customupdatemixin method)": [[7, "pygenn.genn_groups.CustomUpdateMixin.load_init_egps"]], "load_init_egps() (pygenn.genn_groups.customupdatewumixin method)": [[7, "pygenn.genn_groups.CustomUpdateWUMixin.load_init_egps"]], "load_init_egps() (pygenn.genn_groups.neurongroupmixin method)": [[7, "pygenn.genn_groups.NeuronGroupMixin.load_init_egps"]], "load_init_egps() (pygenn.genn_groups.synapsegroupmixin method)": [[7, "pygenn.genn_groups.SynapseGroupMixin.load_init_egps"]], "manual_block_sizes (pygenn.cuda_backend.preferences property)": [[7, "pygenn.cuda_backend.Preferences.manual_block_sizes"]], "manual_device_id (pygenn.cuda_backend.preferences property)": [[7, "pygenn.cuda_backend.Preferences.manual_device_id"]], "matrix_type (pygenn.synapsegroup property)": [[7, "pygenn.SynapseGroup.matrix_type"]], "max_connections (pygenn.synapsegroup property)": [[7, "pygenn.SynapseGroup.max_connections"]], "max_dendritic_delay_timesteps (pygenn.synapsegroup property)": [[7, "pygenn.SynapseGroup.max_dendritic_delay_timesteps"]], "max_source_connections (pygenn.synapsegroup property)": [[7, "pygenn.SynapseGroup.max_source_connections"]], "model (pygenn.currentsource property)": [[7, "pygenn.CurrentSource.model"]], "model (pygenn.customconnectivityupdate property)": [[7, "pygenn.CustomConnectivityUpdate.model"]], "model (pygenn.neurongroup property)": [[7, "pygenn.NeuronGroup.model"]], "module": [[7, "module-pygenn"], [7, "module-pygenn.cuda_backend"], [7, "module-pygenn.current_source_models"], [7, "module-pygenn.custom_connectivity_update_models"], [7, "module-pygenn.custom_update_models"], [7, "module-pygenn.genn_groups"], [7, "module-pygenn.init_sparse_connectivity_snippets"], [7, "module-pygenn.init_toeplitz_connectivity_snippets"], [7, "module-pygenn.init_var_snippets"], [7, "module-pygenn.model_preprocessor"], [7, "module-pygenn.neuron_models"], [7, "module-pygenn.postsynaptic_models"], [7, "module-pygenn.runtime"], [7, "module-pygenn.single_threaded_cpu_backend"], [7, "module-pygenn.types"], [7, "module-pygenn.weight_update_models"]], "name (pygenn.currentsource property)": [[7, "pygenn.CurrentSource.name"]], "name (pygenn.customconnectivityupdate property)": [[7, "pygenn.CustomConnectivityUpdate.name"]], "name (pygenn.customupdatevaraccess property)": [[7, "pygenn.CustomUpdateVarAccess.name"]], "name (pygenn.neurongroup property)": [[7, "pygenn.NeuronGroup.name"]], "name (pygenn.parallelismhint property)": [[7, "pygenn.ParallelismHint.name"]], "name (pygenn.plogseverity property)": [[7, "pygenn.PlogSeverity.name"]], "name (pygenn.synapsegroup property)": [[7, "pygenn.SynapseGroup.name"]], "name (pygenn.synapsematrixconnectivity property)": [[7, "pygenn.SynapseMatrixConnectivity.name"]], "name (pygenn.synapsematrixtype property)": [[7, "pygenn.SynapseMatrixType.name"]], "name (pygenn.synapsematrixweight property)": [[7, "pygenn.SynapseMatrixWeight.name"]], "name (pygenn.varaccess property)": [[7, "pygenn.VarAccess.name"]], "name (pygenn.varaccessdim property)": [[7, "pygenn.VarAccessDim.name"]], "name (pygenn.varaccessmode property)": [[7, "pygenn.VarAccessMode.name"]], "name (pygenn.varaccessmodeattribute property)": [[7, "pygenn.VarAccessModeAttribute.name"]], "name (pygenn.varlocation property)": [[7, "pygenn.VarLocation.name"]], "name (pygenn.cuda_backend.blocksizeselect property)": [[7, "pygenn.cuda_backend.BlockSizeSelect.name"]], "name (pygenn.cuda_backend.deviceselect property)": [[7, "pygenn.cuda_backend.DeviceSelect.name"]], "narrow_sparse_ind_enabled (pygenn.synapsegroup property)": [[7, "pygenn.SynapseGroup.narrow_sparse_ind_enabled"]], "nccl_generate_unique_id() (pygenn.cuda_backend.runtime method)": [[7, "pygenn.cuda_backend.Runtime.nccl_generate_unique_id"]], "nccl_init_communicator() (pygenn.cuda_backend.runtime method)": [[7, "pygenn.cuda_backend.Runtime.nccl_init_communicator"]], "nccl_unique_id (pygenn.cuda_backend.runtime property)": [[7, "pygenn.cuda_backend.Runtime.nccl_unique_id"]], "neuron_update_time (pygenn.gennmodel property)": [[7, "pygenn.GeNNModel.neuron_update_time"]], "neuron_update_time (pygenn.runtime.runtime property)": [[7, "pygenn.runtime.Runtime.neuron_update_time"]], "num_delay_slots (pygenn.neurongroup property)": [[7, "pygenn.NeuronGroup.num_delay_slots"]], "num_neurons (pygenn.customupdate property)": [[7, "pygenn.CustomUpdate.num_neurons"]], "num_neurons (pygenn.neurongroup property)": [[7, "pygenn.NeuronGroup.num_neurons"]], "num_threads_per_spike (pygenn.synapsegroup property)": [[7, "pygenn.SynapseGroup.num_threads_per_spike"]], "output_location (pygenn.synapsegroup property)": [[7, "pygenn.SynapseGroup.output_location"]], "parallelism_hint (pygenn.synapsegroup property)": [[7, "pygenn.SynapseGroup.parallelism_hint"]], "params (pygenn.currentsource property)": [[7, "pygenn.CurrentSource.params"]], "params (pygenn.customconnectivityupdate property)": [[7, "pygenn.CustomConnectivityUpdate.params"]], "params (pygenn.neurongroup property)": [[7, "pygenn.NeuronGroup.params"]], "post_spike_event_recording_data (pygenn.genn_groups.synapsegroupmixin property)": [[7, "pygenn.genn_groups.SynapseGroupMixin.post_spike_event_recording_data"]], "post_target_var (pygenn.synapsegroup property)": [[7, "pygenn.SynapseGroup.post_target_var"]], "post_var_initialisers (pygenn.customconnectivityupdate property)": [[7, "pygenn.CustomConnectivityUpdate.post_var_initialisers"]], "post_var_references (pygenn.customconnectivityupdate property)": [[7, "pygenn.CustomConnectivityUpdate.post_var_references"]], "postsynaptic_update_time (pygenn.gennmodel property)": [[7, "pygenn.GeNNModel.postsynaptic_update_time"]], "postsynaptic_update_time (pygenn.runtime.runtime property)": [[7, "pygenn.runtime.Runtime.postsynaptic_update_time"]], "pre_spike_event_recording_data (pygenn.genn_groups.synapsegroupmixin property)": [[7, "pygenn.genn_groups.SynapseGroupMixin.pre_spike_event_recording_data"]], "pre_target_var (pygenn.synapsegroup property)": [[7, "pygenn.SynapseGroup.pre_target_var"]], "pre_var_initialisers (pygenn.customconnectivityupdate property)": [[7, "pygenn.CustomConnectivityUpdate.pre_var_initialisers"]], "pre_var_references (pygenn.customconnectivityupdate property)": [[7, "pygenn.CustomConnectivityUpdate.pre_var_references"]], "prepare_egps() (in module pygenn.model_preprocessor)": [[7, "pygenn.model_preprocessor.prepare_egps"]], "prepare_param_vals() (in module pygenn.model_preprocessor)": [[7, "pygenn.model_preprocessor.prepare_param_vals"]], "prepare_vars() (in module pygenn.model_preprocessor)": [[7, "pygenn.model_preprocessor.prepare_vars"]], "presynaptic_update_time (pygenn.gennmodel property)": [[7, "pygenn.GeNNModel.presynaptic_update_time"]], "presynaptic_update_time (pygenn.runtime.runtime property)": [[7, "pygenn.runtime.Runtime.presynaptic_update_time"]], "prev_spike_time_location (pygenn.neurongroup property)": [[7, "pygenn.NeuronGroup.prev_spike_time_location"]], "prev_spike_time_required (pygenn.neurongroup property)": [[7, "pygenn.NeuronGroup.prev_spike_time_required"]], "ps_initialiser (pygenn.synapsegroup property)": [[7, "pygenn.SynapseGroup.ps_initialiser"]], "pull_connectivity_from_device() (pygenn.genn_groups.synapsegroupmixin method)": [[7, "pygenn.genn_groups.SynapseGroupMixin.pull_connectivity_from_device"]], "pull_extra_global_param_from_device() (pygenn.genn_groups.groupmixin method)": [[7, "pygenn.genn_groups.GroupMixin.pull_extra_global_param_from_device"]], "pull_from_device() (pygenn.model_preprocessor.arraybase method)": [[7, "pygenn.model_preprocessor.ArrayBase.pull_from_device"]], "pull_from_device() (pygenn.runtime.arraybase method)": [[7, "pygenn.runtime.ArrayBase.pull_from_device"]], "pull_in_syn_from_device() (pygenn.genn_groups.synapsegroupmixin method)": [[7, "pygenn.genn_groups.SynapseGroupMixin.pull_in_syn_from_device"]], "pull_psm_extra_global_param_from_device() (pygenn.genn_groups.synapsegroupmixin method)": [[7, "pygenn.genn_groups.SynapseGroupMixin.pull_psm_extra_global_param_from_device"]], "pull_recording_buffers_from_device() (pygenn.gennmodel method)": [[7, "pygenn.GeNNModel.pull_recording_buffers_from_device"]], "pull_recording_buffers_from_device() (pygenn.runtime.runtime method)": [[7, "pygenn.runtime.Runtime.pull_recording_buffers_from_device"]], "pull_slice_1d_from_device() (pygenn.runtime.arraybase method)": [[7, "pygenn.runtime.ArrayBase.pull_slice_1d_from_device"]], "pull_var_from_device() (pygenn.genn_groups.groupmixin method)": [[7, "pygenn.genn_groups.GroupMixin.pull_var_from_device"]], "push_connectivity_to_device() (pygenn.genn_groups.synapsegroupmixin method)": [[7, "pygenn.genn_groups.SynapseGroupMixin.push_connectivity_to_device"]], "push_extra_global_param_to_device() (pygenn.genn_groups.groupmixin method)": [[7, "pygenn.genn_groups.GroupMixin.push_extra_global_param_to_device"]], "push_in_syn_to_device() (pygenn.genn_groups.synapsegroupmixin method)": [[7, "pygenn.genn_groups.SynapseGroupMixin.push_in_syn_to_device"]], "push_psm_extra_global_param_to_device() (pygenn.genn_groups.synapsegroupmixin method)": [[7, "pygenn.genn_groups.SynapseGroupMixin.push_psm_extra_global_param_to_device"]], "push_slice_1d_to_device() (pygenn.runtime.arraybase method)": [[7, "pygenn.runtime.ArrayBase.push_slice_1d_to_device"]], "push_to_device() (pygenn.model_preprocessor.arraybase method)": [[7, "pygenn.model_preprocessor.ArrayBase.push_to_device"]], "push_to_device() (pygenn.runtime.arraybase method)": [[7, "pygenn.runtime.ArrayBase.push_to_device"]], "push_var_to_device() (pygenn.genn_groups.groupmixin method)": [[7, "pygenn.genn_groups.GroupMixin.push_var_to_device"]], "pygenn": [[7, "module-pygenn"]], "pygenn.cuda_backend": [[7, "module-pygenn.cuda_backend"]], "pygenn.current_source_models": [[7, "module-pygenn.current_source_models"]], "pygenn.custom_connectivity_update_models": [[7, "module-pygenn.custom_connectivity_update_models"]], "pygenn.custom_update_models": [[7, "module-pygenn.custom_update_models"]], "pygenn.genn_groups": [[7, "module-pygenn.genn_groups"]], "pygenn.init_sparse_connectivity_snippets": [[7, "module-pygenn.init_sparse_connectivity_snippets"]], "pygenn.init_toeplitz_connectivity_snippets": [[7, "module-pygenn.init_toeplitz_connectivity_snippets"]], "pygenn.init_var_snippets": [[7, "module-pygenn.init_var_snippets"]], "pygenn.model_preprocessor": [[7, "module-pygenn.model_preprocessor"]], "pygenn.neuron_models": [[7, "module-pygenn.neuron_models"]], "pygenn.postsynaptic_models": [[7, "module-pygenn.postsynaptic_models"]], "pygenn.runtime": [[7, "module-pygenn.runtime"]], "pygenn.single_threaded_cpu_backend": [[7, "module-pygenn.single_threaded_cpu_backend"]], "pygenn.types": [[7, "module-pygenn.types"]], "pygenn.weight_update_models": [[7, "module-pygenn.weight_update_models"]], "recording_zero_copy_enabled (pygenn.neurongroup property)": [[7, "pygenn.NeuronGroup.recording_zero_copy_enabled"]], "set_array() (pygenn.model_preprocessor.arraybase method)": [[7, "pygenn.model_preprocessor.ArrayBase.set_array"]], "set_array() (pygenn.model_preprocessor.variablebase method)": [[7, "pygenn.model_preprocessor.VariableBase.set_array"]], "set_dynamic_param_value() (pygenn.genn_groups.groupmixin method)": [[7, "pygenn.genn_groups.GroupMixin.set_dynamic_param_value"]], "set_dynamic_param_value() (pygenn.runtime.runtime method)": [[7, "pygenn.runtime.Runtime.set_dynamic_param_value"]], "set_init_values() (pygenn.model_preprocessor.extraglobalparameter method)": [[7, "pygenn.model_preprocessor.ExtraGlobalParameter.set_init_values"]], "set_init_values() (pygenn.model_preprocessor.variablebase method)": [[7, "pygenn.model_preprocessor.VariableBase.set_init_values"]], "set_param_dynamic() (pygenn.currentsource method)": [[7, "pygenn.CurrentSource.set_param_dynamic"]], "set_param_dynamic() (pygenn.customconnectivityupdate method)": [[7, "pygenn.CustomConnectivityUpdate.set_param_dynamic"]], "set_param_dynamic() (pygenn.neurongroup method)": [[7, "pygenn.NeuronGroup.set_param_dynamic"]], "set_post_var_location() (pygenn.customconnectivityupdate method)": [[7, "pygenn.CustomConnectivityUpdate.set_post_var_location"]], "set_pre_var_location() (pygenn.customconnectivityupdate method)": [[7, "pygenn.CustomConnectivityUpdate.set_pre_var_location"]], "set_ps_param_dynamic() (pygenn.synapsegroup method)": [[7, "pygenn.SynapseGroup.set_ps_param_dynamic"]], "set_ps_var_location() (pygenn.synapsegroup method)": [[7, "pygenn.SynapseGroup.set_ps_var_location"]], "set_sparse_connections() (pygenn.genn_groups.synapsegroupmixin method)": [[7, "pygenn.genn_groups.SynapseGroupMixin.set_sparse_connections"]], "set_values() (pygenn.model_preprocessor.extraglobalparameter method)": [[7, "pygenn.model_preprocessor.ExtraGlobalParameter.set_values"]], "set_values() (pygenn.model_preprocessor.variablebase method)": [[7, "pygenn.model_preprocessor.VariableBase.set_values"]], "set_var_location() (pygenn.currentsource method)": [[7, "pygenn.CurrentSource.set_var_location"]], "set_var_location() (pygenn.customconnectivityupdate method)": [[7, "pygenn.CustomConnectivityUpdate.set_var_location"]], "set_var_location() (pygenn.neurongroup method)": [[7, "pygenn.NeuronGroup.set_var_location"]], "set_wu_param_dynamic() (pygenn.synapsegroup method)": [[7, "pygenn.SynapseGroup.set_wu_param_dynamic"]], "set_wu_post_var_location() (pygenn.synapsegroup method)": [[7, "pygenn.SynapseGroup.set_wu_post_var_location"]], "set_wu_pre_var_location() (pygenn.synapsegroup method)": [[7, "pygenn.SynapseGroup.set_wu_pre_var_location"]], "set_wu_var_location() (pygenn.synapsegroup method)": [[7, "pygenn.SynapseGroup.set_wu_var_location"]], "show_ptx_info (pygenn.cuda_backend.preferences property)": [[7, "pygenn.cuda_backend.Preferences.show_ptx_info"]], "sparse_connectivity_initialiser (pygenn.synapsegroup property)": [[7, "pygenn.SynapseGroup.sparse_connectivity_initialiser"]], "sparse_connectivity_location (pygenn.synapsegroup property)": [[7, "pygenn.SynapseGroup.sparse_connectivity_location"]], "spike_event_recording_enabled (pygenn.neurongroup property)": [[7, "pygenn.NeuronGroup.spike_event_recording_enabled"]], "spike_recording_data (pygenn.genn_groups.neurongroupmixin property)": [[7, "pygenn.genn_groups.NeuronGroupMixin.spike_recording_data"]], "spike_recording_enabled (pygenn.neurongroup property)": [[7, "pygenn.NeuronGroup.spike_recording_enabled"]], "spike_time_location (pygenn.neurongroup property)": [[7, "pygenn.NeuronGroup.spike_time_location"]], "spike_time_required (pygenn.neurongroup property)": [[7, "pygenn.NeuronGroup.spike_time_required"]], "state (pygenn.runtime.runtime property)": [[7, "pygenn.runtime.Runtime.state"]], "step_time() (pygenn.gennmodel method)": [[7, "pygenn.GeNNModel.step_time"]], "step_time() (pygenn.runtime.runtime method)": [[7, "pygenn.runtime.Runtime.step_time"]], "synapse_dynamics_time (pygenn.gennmodel property)": [[7, "pygenn.GeNNModel.synapse_dynamics_time"]], "synapse_dynamics_time (pygenn.runtime.runtime property)": [[7, "pygenn.runtime.Runtime.synapse_dynamics_time"]], "synapse_group (pygenn.customconnectivityupdate property)": [[7, "pygenn.CustomConnectivityUpdate.synapse_group"]], "synapse_group (pygenn.customupdatewu property)": [[7, "pygenn.CustomUpdateWU.synapse_group"]], "synapse_group (pygenn.genn_groups.synapsegroupmixin property)": [[7, "pygenn.genn_groups.SynapseGroupMixin.synapse_group"]], "t (pygenn.gennmodel property)": [[7, "pygenn.GeNNModel.t"]], "time (pygenn.runtime.runtime property)": [[7, "pygenn.runtime.Runtime.time"]], "timestep (pygenn.gennmodel property)": [[7, "pygenn.GeNNModel.timestep"]], "timestep (pygenn.runtime.runtime property)": [[7, "pygenn.runtime.Runtime.timestep"]], "toeplitz_connectivity_initialiser (pygenn.synapsegroup property)": [[7, "pygenn.SynapseGroup.toeplitz_connectivity_initialiser"]], "unload() (pygenn.gennmodel method)": [[7, "pygenn.GeNNModel.unload"]], "unload() (pygenn.genn_groups.currentsourcemixin method)": [[7, "pygenn.genn_groups.CurrentSourceMixin.unload"]], "unload() (pygenn.genn_groups.customconnectivityupdatemixin method)": [[7, "pygenn.genn_groups.CustomConnectivityUpdateMixin.unload"]], "unload() (pygenn.genn_groups.customupdatemixin method)": [[7, "pygenn.genn_groups.CustomUpdateMixin.unload"]], "unload() (pygenn.genn_groups.customupdatewumixin method)": [[7, "pygenn.genn_groups.CustomUpdateWUMixin.unload"]], "unload() (pygenn.genn_groups.neurongroupmixin method)": [[7, "pygenn.genn_groups.NeuronGroupMixin.unload"]], "unload() (pygenn.genn_groups.synapsegroupmixin method)": [[7, "pygenn.genn_groups.SynapseGroupMixin.unload"]], "update_group_name (pygenn.customconnectivityupdate property)": [[7, "pygenn.CustomConnectivityUpdate.update_group_name"]], "value (pygenn.customupdatevaraccess property)": [[7, "pygenn.CustomUpdateVarAccess.value"]], "value (pygenn.parallelismhint property)": [[7, "pygenn.ParallelismHint.value"]], "value (pygenn.plogseverity property)": [[7, "pygenn.PlogSeverity.value"]], "value (pygenn.synapsematrixconnectivity property)": [[7, "pygenn.SynapseMatrixConnectivity.value"]], "value (pygenn.synapsematrixtype property)": [[7, "pygenn.SynapseMatrixType.value"]], "value (pygenn.synapsematrixweight property)": [[7, "pygenn.SynapseMatrixWeight.value"]], "value (pygenn.varaccess property)": [[7, "pygenn.VarAccess.value"]], "value (pygenn.varaccessdim property)": [[7, "pygenn.VarAccessDim.value"]], "value (pygenn.varaccessmode property)": [[7, "pygenn.VarAccessMode.value"]], "value (pygenn.varaccessmodeattribute property)": [[7, "pygenn.VarAccessModeAttribute.value"]], "value (pygenn.varlocation property)": [[7, "pygenn.VarLocation.value"]], "value (pygenn.cuda_backend.blocksizeselect property)": [[7, "pygenn.cuda_backend.BlockSizeSelect.value"]], "value (pygenn.cuda_backend.deviceselect property)": [[7, "pygenn.cuda_backend.DeviceSelect.value"]], "values (pygenn.model_preprocessor.extraglobalparameter property)": [[7, "pygenn.model_preprocessor.ExtraGlobalParameter.values"]], "values (pygenn.model_preprocessor.synapsevariable property)": [[7, "pygenn.model_preprocessor.SynapseVariable.values"]], "values (pygenn.model_preprocessor.variable property)": [[7, "pygenn.model_preprocessor.Variable.values"]], "var_initialisers (pygenn.currentsource property)": [[7, "pygenn.CurrentSource.var_initialisers"]], "var_initialisers (pygenn.customconnectivityupdate property)": [[7, "pygenn.CustomConnectivityUpdate.var_initialisers"]], "var_initialisers (pygenn.neurongroup property)": [[7, "pygenn.NeuronGroup.var_initialisers"]], "var_references (pygenn.customconnectivityupdate property)": [[7, "pygenn.CustomConnectivityUpdate.var_references"]], "var_references (pygenn.customupdate property)": [[7, "pygenn.CustomUpdate.var_references"]], "var_references (pygenn.customupdatewu property)": [[7, "pygenn.CustomUpdateWU.var_references"]], "view (pygenn.model_preprocessor.array property)": [[7, "pygenn.model_preprocessor.Array.view"]], "view (pygenn.model_preprocessor.extraglobalparameter property)": [[7, "pygenn.model_preprocessor.ExtraGlobalParameter.view"]], "view (pygenn.model_preprocessor.synapsevariable property)": [[7, "pygenn.model_preprocessor.SynapseVariable.view"]], "view (pygenn.model_preprocessor.variable property)": [[7, "pygenn.model_preprocessor.Variable.view"]], "weight_update_var_size (pygenn.genn_groups.synapsegroupmixin property)": [[7, "pygenn.genn_groups.SynapseGroupMixin.weight_update_var_size"]], "wu_initialiser (pygenn.synapsegroup property)": [[7, "pygenn.SynapseGroup.wu_initialiser"]]}}) \ No newline at end of file diff --git a/documentation/5/sg_execution_times.html b/documentation/5/sg_execution_times.html index 9b876e55f..c6de1a845 100644 --- a/documentation/5/sg_execution_times.html +++ b/documentation/5/sg_execution_times.html @@ -3,7 +3,7 @@ - + Computation times — PyGeNN documentation @@ -62,15 +62,15 @@

Navigation

-

MNIST classification using an insect-inspired mushroom body model (..\userproject\mnist_mb_classifier.py)

+

MNIST classification using an insect-inspired mushroom body model (../userproject/mnist_mb_classifier.py)

00:00.000

0.0

-

PyGeNN implementation of local cortical microcircuit model (..\userproject\potjans_microcircuit.py)

+

sphx_glr_userproject_potjans_microcircuit_pygenn.py (../userproject/potjans_microcircuit_pygenn.py)

00:00.000

0.0

-

PyGeNN implementation of SuperSpike (..\userproject\superspike_demo.py)

+

PyGeNN implementation of SuperSpike (../userproject/superspike_demo.py)

00:00.000

0.0

diff --git a/documentation/5/simulating_networks.html b/documentation/5/simulating_networks.html index 518b3f0b1..7d89827f7 100644 --- a/documentation/5/simulating_networks.html +++ b/documentation/5/simulating_networks.html @@ -3,7 +3,7 @@ - + Simulating networks — PyGeNN documentation diff --git a/documentation/5/source/modules.html b/documentation/5/source/modules.html index b4d64eaeb..fbcb062e0 100644 --- a/documentation/5/source/modules.html +++ b/documentation/5/source/modules.html @@ -3,7 +3,7 @@ - + pygenn — PyGeNN documentation @@ -94,6 +94,9 @@

pygennpygenn.init_sparse_connectivity_snippets module
  • pygenn.init_toeplitz_connectivity_snippets module
  • pygenn.init_var_snippets module
  • +
  • pygenn.libgenn_cuda_backend_dynamic module
  • +
  • pygenn.libgenn_dynamic module
  • +
  • pygenn.libgenn_single_threaded_cpu_backend_dynamic module
  • pygenn.model_preprocessor module
  • pygenn.neuron_models module
  • pygenn.postsynaptic_models module
  • diff --git a/documentation/5/source/pygenn.html b/documentation/5/source/pygenn.html index 002e45b85..f2fbaced1 100644 --- a/documentation/5/source/pygenn.html +++ b/documentation/5/source/pygenn.html @@ -3,7 +3,7 @@ - + pygenn package — PyGeNN documentation @@ -312,12 +312,12 @@

    Navigation

    (see current_source_models) or an instance of CurrentSourceModelBase (for example returned by create_current_source_model())

  • pop (NeuronGroup) – neuron population to inject current into

  • -
  • params (Dict[str, int | float]) – parameter values for the current source model (see `Parameters`_)

  • +
  • params (Dict[str, int | float]) – parameter values for the current source model (see `Parameters`_)

  • vars (Dict[str, VarInit | int | float | ndarray | Sequence]) – initial variable values or initialisers -for the current source model (see `Variables`_)

  • +for the current source model (see `Variables`_)

  • var_refs (Dict[str, VarReference]) – variables references to neuron variables in pop, typically created using create_var_ref() -(see `Variables references`_)

  • +(see `Variables references`_)

    Return type:
    @@ -348,22 +348,22 @@

    Navigation

    (see custom_connectivity_update_models) or an instance of CustomConnectivityUpdateModelBaseUpdateModelBase (for example returned by create_custom_connectivity_update_model())

    -
  • params (Dict[str, int | float]) – parameter values for the custom connectivity model (see `Parameters`_)

  • +
  • params (Dict[str, int | float]) – parameter values for the custom connectivity model (see `Parameters`_)

  • vars (Dict[str, VarInit | int | float | ndarray | Sequence]) – initial synaptic variable values or -initialisers (see `Variables`_)

  • -
  • pre_vars (Dict[str, VarInit | int | float | ndarray | Sequence]) – initial presynaptic variable values or initialisers (see `Variables`_)

  • +
  • pre_vars (Dict[str, VarInit | int | float | ndarray | Sequence]) – initial presynaptic variable values or +initialisers (see `Variables`_)

  • post_vars (Dict[str, VarInit | int | float | ndarray | Sequence]) – initial postsynaptic variable values or initialisers -(see `Variables`_)

  • +(see `Variables`_)

  • var_refs (Dict[str, WUVarReference]) – references to synaptic variables, typically created using create_wu_var_ref() -(see `Variables references`_)

  • +(see `Variables references`_)

  • pre_var_refs (Dict[str, VarReference]) – references to presynaptic variables, typically created using create_var_ref() -(see `Variables references`_)

  • +(see `Variables references`_)

  • post_var_refs (Dict[str, VarReference]) – references to postsynaptic variables, typically created using create_var_ref() -(see `Variables references`_)

  • +(see `Variables references`_)

    @@ -383,16 +383,16 @@

    Navigation

    (see custom_update_models) or an instance of CustomUpdateModelBase (for example returned by create_custom_update_model())

    -
  • params (Dict[str, int | float]) – parameter values for the custom update model (see `Parameters`_)

  • +
  • params (Dict[str, int | float]) – parameter values for the custom update model (see `Parameters`_)

  • vars (Dict[str, VarInit | int | float | ndarray | Sequence]) – initial variable values or initialisers -for the custom update model (see `Variables`_)

  • +for the custom update model (see `Variables`_)

  • var_refs (Dict[str, VarReference] | Dict[str, WUVarReference]) – references to variables in other populations to access from this update, typically created using either create_var_ref() or create_wu_var_ref() -(see `Variables references`_).

  • +(see `Variables references`_).

  • egp_refs (Dict[str, EGPReference]) – references to extra global parameters in other populations to access from this update, typically created using -create_egp_ref() (see `Extra global parameter references`_).

  • +create_egp_ref() (see `Extra global parameter references`_).

    @@ -410,9 +410,9 @@

    Navigation

  • neuron (NeuronModelBase | str) – neuron model either as a string referencing a built in model (see neuron_models) or an instance of NeuronModelBase (for example returned by create_neuron_model())

  • -
  • params (Dict[str, int | float]) – parameter values for the neuron model (see `Parameters`_)

  • +
  • params (Dict[str, int | float]) – parameter values for the neuron model (see `Parameters`_)

  • vars (Dict[str, VarInit | int | float | ndarray | Sequence]) – initial variable values or initialisers -for the neuron model (see `Variables`_)

  • +for the neuron model (see `Variables`_)

    Return type:
    @@ -930,12 +930,15 @@

    Navigation

    class pygenn.SynapseMatrixConnectivity

    Bases: pybind11_object

    +

    Flags defining differnet types of synaptic matrix connectivity

    Members:

    -

    DENSE

    +
    +

    DENSE

    BITMASK

    SPARSE

    PROCEDURAL

    TOEPLITZ

    +
    BITMASK = <SynapseMatrixConnectivity.BITMASK: 2>
    @@ -2091,12 +2094,12 @@

    Spike-like eventspostsynaptic_models_models) or an instance of PostsynapticModelBase (for example returned by create_postsynaptic_model())

    -
  • params (Dict[str, int | float]) – parameter values for the postsynaptic model (see `Parameters`_)

  • +
  • params (Dict[str, int | float]) – parameter values for the postsynaptic model (see `Parameters`_)

  • vars (Dict[str, VarInit | int | float | ndarray | Sequence]) – initial synaptic variable values or initialisers -for the postsynaptic model (see `Variables`_)

  • +for the postsynaptic model (see `Variables`_)

  • var_refs (Dict[str, VarInit | int | float | ndarray | Sequence]) – references to postsynaptic neuron variables, typically created using create_var_ref() -(see `Variables references`_)

  • +(see `Variables references`_)

    @@ -2122,7 +2125,7 @@

    Spike-like eventsinit_sparse_connectivity_snippets) or an instance of InitSparseConnectivitySnippetBase (for example returned by create_sparse_connect_init_snippet())

    -
  • params (Dict[str, int | float]) – parameter values for the sparse connectivity init snippet (see `Parameters`_)

  • +
  • params (Dict[str, int | float]) – parameter values for the sparse connectivity init snippet (see `Parameters`_)

  • @@ -2145,7 +2148,7 @@

    Spike-like eventsinit_toeplitz_connectivity_snippets) or an instance of InitToeplitzConnectivitySnippetBase (for example returned by create_toeplitz_connect_init_snippet())

    -
  • params – parameter values for the toeplitz connectivity init snippet (see `Parameters`_)

  • +
  • params – parameter values for the toeplitz connectivity init snippet (see `Parameters`_)

  • @@ -2175,7 +2178,7 @@

    Spike-like eventsinit_var_snippets) or an instance of InitVarSnippetBase (for example returned by create_var_init_snippet())

    -
  • params (Dict[str, int | float]) – parameter values for the variable init snippet (see `Parameters`_)

  • +
  • params (Dict[str, int | float]) – parameter values for the variable init snippet (see `Parameters`_)

  • @@ -2198,19 +2201,19 @@

    Spike-like eventsweight_update_models) or an instance of WeightUpdateModelBase (for example returned by create_weight_update_model())

    -
  • params (Dict[str, int | float]) – parameter values (see `Parameters`_)

  • +
  • params (Dict[str, int | float]) – parameter values (see `Parameters`_)

  • vars (Dict[str, VarInit | int | float | ndarray | Sequence]) – initial synaptic variable values or -initialisers (see `Variables`_)

  • -
  • pre_vars (Dict[str, VarInit | int | float | ndarray | Sequence]) – initial presynaptic variable values or initialisers (see `Variables`_)

  • +
  • pre_vars (Dict[str, VarInit | int | float | ndarray | Sequence]) – initial presynaptic variable values or +initialisers (see `Variables`_)

  • post_vars (Dict[str, VarInit | int | float | ndarray | Sequence]) – initial postsynaptic variable values or initialisers -(see `Variables`_)

  • +(see `Variables`_)

  • pre_var_refs (Dict[str, VarReference]) – references to presynaptic neuron variables, typically created using create_var_ref() -(see `Variables references`_)

  • +(see `Variables references`_)

  • post_var_refs (Dict[str, VarReference]) – references to postsynaptic neuron variables, typically created using create_var_ref() -(see `Variables references`_)

  • +(see `Variables references`_)

    @@ -2374,17 +2377,30 @@

    Submodules
    pygenn.current_source_models.DC() pygenn._genn.CurrentSourceModelBase
    -
    +

    DC source +It has a single parameter: +- amp - amplitude of the current [nA]

    +
    pygenn.current_source_models.GaussianNoise() pygenn._genn.CurrentSourceModelBase
    -
    +

    Noisy current source with noise drawn from normal distribution +It has 2 parameters: +- mean - mean of the normal distribution [nA] +- sd - standard deviation of the normal distribution [nA]

    +
    pygenn.current_source_models.PoissonExp() pygenn._genn.CurrentSourceModelBase
    -
    +

    Current source for injecting a current equivalent to a population of +Poisson spike sources, one-to-one connected with exponential synapses +It has 3 parameters: +- weight - synaptic weight of the Poisson spikes [nA] +- tauSyn - decay time constant [ms] +- rate - mean firing rate [Hz]

    +
    @@ -2694,42 +2710,87 @@

    Submodules
    pygenn.init_sparse_connectivity_snippets.Conv2D() pygenn._genn.InitSparseConnectivitySnippetBase
    -
    +

    Initialises convolutional connectivity +Row build state variables are used to convert presynaptic neuron index to rows, columns and channels and, +from these, to calculate the range of postsynaptic rows, columns and channels connections will be made within. +This sparse connectivity snippet does not support multiple threads per neuron

    +
    pygenn.init_sparse_connectivity_snippets.FixedNumberPostWithReplacement() pygenn._genn.InitSparseConnectivitySnippetBase
    -
    +

    Initialises connectivity with a fixed number of random synapses per row. +The postsynaptic targets of the synapses can be initialised in parallel by sampling from the discrete +uniform distribution. However, to sample connections in ascending order, we sample from the 1st order statistic +of the uniform distribution – Beta[1, Npost] – essentially the next smallest value. In this special case +this is equivalent to the exponential distribution which can be sampled in constant time using the inversion method.

    +
    pygenn.init_sparse_connectivity_snippets.FixedNumberPreWithReplacement() pygenn._genn.InitSparseConnectivitySnippetBase
    -
    +

    Initialises connectivity with a fixed number of random synapses per column. +No need for ordering here so fine to sample directly from uniform distribution

    +
    pygenn.init_sparse_connectivity_snippets.FixedNumberTotalWithReplacement() pygenn._genn.InitSparseConnectivitySnippetBase
    -
    +

    Initialises connectivity with a total number of random synapses. +The first stage in using this connectivity is to determine how many of the total synapses end up in each row. +This can be determined by sampling from the multinomial distribution. However, this operation cannot be +efficiently parallelised so must be performed on the host and the result passed as an extra global parameter array. +Once the length of each row is determined, the postsynaptic targets of the synapses can be initialised in parallel +by sampling from the discrete uniform distribution. However, to sample connections in ascending order, we sample +from the 1st order statistic of the uniform distribution – Beta[1, Npost] – essentially the next smallest value. +In this special case this is equivalent to the exponential distribution which can be sampled in constant time using the inversion method.

    +
    pygenn.init_sparse_connectivity_snippets.FixedProbability() pygenn._genn.InitSparseConnectivitySnippetBase
    -
    +

    Initialises connectivity with a fixed probability of a synapse existing +between a pair of pre and postsynaptic neurons. +Whether a synapse exists between a pair of pre and a postsynaptic +neurons can be modelled using a Bernoulli distribution. While this COULD +be sampled directly by repeatedly drawing from the uniform distribution, +this is inefficient. Instead we sample from the geometric distribution +which describes “the probability distribution of the number of Bernoulli +trials needed to get one success” – essentially the distribution of the +‘gaps’ between synapses. We do this using the “inversion method” +described by Devroye (1986) – essentially inverting the CDF of the +equivalent continuous distribution (in this case the exponential distribution)

    +
    pygenn.init_sparse_connectivity_snippets.FixedProbabilityNoAutapse() pygenn._genn.InitSparseConnectivitySnippetBase
    -
    +

    Initialises connectivity with a fixed probability of a synapse existing +between a pair of pre and postsynaptic neurons. This version ensures there +are no autapses - connections between neurons with the same id +so should be used for recurrent connections. +Whether a synapse exists between a pair of pre and a postsynaptic +neurons can be modelled using a Bernoulli distribution. While this COULD +br sampling directly by repeatedly drawing from the uniform distribution, +this is innefficient. Instead we sample from the gemetric distribution +which describes “the probability distribution of the number of Bernoulli +trials needed to get one success” – essentially the distribution of the +‘gaps’ between synapses. We do this using the “inversion method” +described by Devroye (1986) – essentially inverting the CDF of the +equivalent continuous distribution (in this case the exponential distribution)

    +
    pygenn.init_sparse_connectivity_snippets.OneToOne() pygenn._genn.InitSparseConnectivitySnippetBase
    -
    +

    Initialises connectivity to a ‘one-to-one’ diagonal matrix

    +
    pygenn.init_sparse_connectivity_snippets.Uninitialised() pygenn._genn.InitSparseConnectivitySnippetBase
    -
    +

    Used to mark connectivity as uninitialised - no initialisation code will be run

    +

    @@ -2802,6 +2863,15 @@

    Submodulespygenn.init_var_snippets.Uninitialised() pygenn._genn.InitVarSnippetBase
    +

    +
    +

    pygenn.libgenn_cuda_backend_dynamic module

    +
    +
    +

    pygenn.libgenn_dynamic module

    +
    +
    +

    pygenn.libgenn_single_threaded_cpu_backend_dynamic module

    pygenn.model_preprocessor module

    @@ -3000,12 +3070,43 @@

    Submodules
    pygenn.neuron_models.Izhikevich() pygenn._genn.NeuronModelBase
    -
    +

    Izhikevich neuron with fixed parameters cite izhikevich2003simple. +It is usually described as +f{eqnarray*} +frac{dV}{dt} &=& 0.04 V^2 + 5 V + 140 - U + I, \ +frac{dU}{dt} &=& a (bV-U), +f} +I is an external input current and the voltage V is reset to parameter c and U incremented by parameter d, whenever V >= 30 mV. This is paired with a particular integration procedure of two 0.5 ms Euler time steps for the V equation followed by one 1 ms time step of the U equation. Because of its popularity we provide this model in this form here event though due to the details of the usual implementation it is strictly speaking inconsistent with the displayed equations.

    +

    Variables are:

    +
      +
    • V - Membrane potential

    • +
    • U - Membrane recovery variable

    • +
    +

    Parameters are:

    +
      +
    • a - time scale of U

    • +
    • b - sensitivity of U

    • +
    • c - after-spike reset value of V

    • +
    • d - after-spike reset value of U

    • +
    +
    pygenn.neuron_models.IzhikevichVariable() pygenn._genn.NeuronModelBase
    -
    +

    Izhikevich neuron with variable parameters cite izhikevich2003simple. +This is the same model as NeuronModels::Izhikevich but parameters are defined as +“variables” in order to allow users to provide individual values for each +individual neuron instead of fixed values for all neurons across the population.

    +

    Accordingly, the model has the Variables: +- V - Membrane potential +- U - Membrane recovery variable +- a - time scale of U +- b - sensitivity of U +- c - after-spike reset value of V +- d - after-spike reset value of U

    +

    and no parameters.

    +
    @@ -3015,47 +3116,184 @@

    Submodules
    pygenn.neuron_models.Poisson() pygenn._genn.NeuronModelBase
    -

    +

    Poisson neurons +Poisson neurons have constant membrane potential (Vrest) unless they are +activated randomly to the Vspike value if (t- spikeTime ) > trefract.

    +

    It has 2 variables:

    +
      +
    • V - Membrane potential (mV)

    • +
    • spikeTime - Time at which the neuron spiked for the last time (ms)

    • +
    +

    and 4 parameters:

    +
      +
    • trefract - Refractory period (ms)

    • +
    • tspike - duration of spike (ms)

    • +
    • Vspike - Membrane potential at spike (mV)

    • +
    • Vrest - Membrane potential at rest (mV)

    • +
    +

    note The initial values array for the Poisson type needs two entries +for V, and spikeTime and the parameter array needs four entries for +trefract, tspike, Vspike and Vrest, in that order. +note The refractory period and the spike duration both start at the beginning of the spike. That means that the refractory period should be longer or equal to the spike duration. If this is not the case, undefined model behaviour occurs.

    +

    It has two extra global parameters:

    +
      +
    • firingProb - an array of firing probabilities/ average rates; this can extend to \(n \cdot N\), where \(N\) is the number of neurons, for \(n > 0\) firing patterns

    • +
    • offset - an unsigned integer that points to the start of the currently used input pattern; typically taking values of \(i \cdot N\), \(0 \leq i < n\).

    • +
    +

    note This model uses a linear approximation for the probability +of firing a spike in a given time step of size DT, i.e. the +probability of firing is \(\lambda\) times DT: :math:` p = lambda Delta t`, +where $lambda$ corresponds to the value of the relevant entry of firingProb. +This approximation is usually very good, especially for typical, +quite small time steps and moderate firing rates. However, it is worth +noting that the approximation becomes poor for very high firing rates +and large time steps.

    +
    pygenn.neuron_models.PoissonNew() pygenn._genn.NeuronModelBase
    -
    +

    Poisson neurons +This neuron model emits spikes according to the Poisson distribution with a mean firing +rate as determined by its single parameter. +It has 1 state variable:

    +
      +
    • timeStepToSpike - Number of timesteps to next spike

    • +
    +

    and 1 parameter:

    +
      +
    • rate - Mean firing rate (Hz)

    • +
    +

    note Internally this samples from the exponential distribution using +the C++ 11 <random> library on the CPU and by transforming the +uniform distribution, generated using cuRAND, with a natural log on the GPU.

    +
    pygenn.neuron_models.RulkovMap() pygenn._genn.NeuronModelBase
    -
    +

    Rulkov Map neuron +The RulkovMap type is a map based neuron model based on cite Rulkov2002 but in +the 1-dimensional map form used in cite nowotny2005self : +f{eqnarray*}{ +V(t+Delta t) &=& left{ begin{array}{ll} +V_{rm spike} Big(frac{alpha V_{rm spike}}{V_{rm spike}-V(t) beta I_{rm syn}} + y Big) & V(t) leq 0 \ +V_{rm spike} big(alpha+ybig) & V(t) leq V_{rm spike} big(alpha + ybig) ; & ; V(t-Delta t) leq 0 \ +-V_{rm spike} & {rm otherwise} +end{array} +right. +f} +note +The RulkovMap type only works as intended for the single time step size of `DT`= 0.5.

    +

    The RulkovMap type has 2 variables: +- V - the membrane potential +- preV - the membrane potential at the previous time step

    +

    and it has 4 parameters: +- Vspike - determines the amplitude of spikes, typically -60mV +- alpha - determines the shape of the iteration function, typically \(\alpha `= 3 +- ``y`\) - “shift / excitation” parameter, also determines the iteration function,originally, y= -2.468 +- beta - roughly speaking equivalent to the input resistance, i.e. it regulates the scale of the input into the neuron, typically \(\beta`= 2.64 :math:`{\rm M}\Omega\).

    +

    note +The initial values array for the RulkovMap type needs two entries for V and preV and the +parameter array needs four entries for Vspike, alpha, y and beta, in that order.

    +
    pygenn.neuron_models.SpikeSource() pygenn._genn.NeuronModelBase
    -
    +

    Empty neuron which allows setting spikes from external sources +This model does not contain any update code and can be used to implement +the equivalent of a SpikeGeneratorGroup in Brian or a SpikeSourceArray in PyNN.

    +
    pygenn.neuron_models.SpikeSourceArray() pygenn._genn.NeuronModelBase
    -
    +

    Spike source array +A neuron which reads spike times from a global spikes array. +It has 2 variables:

    +
      +
    • startSpike - Index of the next spike in the global array

    • +
    • endSpike - Index of the spike next to the last in the globel array

    • +
    +

    and 1 extra global parameter:

    +
      +
    • spikeTimes - Array with all spike times

    • +
    +
    pygenn.neuron_models.TraubMiles() pygenn._genn.NeuronModelBase
    -
    +

    Hodgkin-Huxley neurons with Traub & Miles algorithm. +This conductance based model has been taken from cite Traub1991 and can be described by the equations: +f{eqnarray*}{ +C frac{d V}{dt} &=& -I_{{rm Na}} -I_K-I_{{rm leak}}-I_M-I_{i,DC}-I_{i,{rm syn}}-I_i, \ +I_{{rm Na}}(t) &=& g_{{rm Na}} m_i(t)^3 h_i(t)(V_i(t)-E_{{rm Na}}) \ +I_{{rm K}}(t) &=& g_{{rm K}} n_i(t)^4(V_i(t)-E_{{rm K}}) \ +frac{dy(t)}{dt} &=& alpha_y (V(t))(1-y(t))-beta_y(V(t)) y(t), f} +where \(y_i= m, h, n\), and +f{eqnarray*}{ +alpha_n&=& 0.032(-50-V)/big(exp((-50-V)/5)-1big) \ +beta_n &=& 0.5exp((-55-V)/40) \ +alpha_m &=& 0.32(-52-V)/big(exp((-52-V)/4)-1big) \ +beta_m &=& 0.28(25+V)/big(exp((25+V)/5)-1big) \ +alpha_h &=& 0.128exp((-48-V)/18) \ +beta_h &=& 4/big(exp((-25-V)/5)+1big). +f} +and typical parameters are \(C=0.143\) nF, \(g_{{\rm leak}}= 0.02672\) +\(\mu`S, :math:`E_{{\rm leak}}= -63.563\) mV, \(g_{{\rm Na}}=7.15\) \(\mu`S, +:math:`E_{{\rm Na}}= 50\) mV, \(g_{{\rm {\rm K}}}=1.43\) \(\mu`S, +:math:`E_{{\rm K}}= -95\) mV.

    +

    It has 4 variables:

    +
      +
    • V - membrane potential E

    • +
    • m - probability for Na channel activation m

    • +
    • h - probability for not Na channel blocking h

    • +
    • n - probability for K channel activation n

    • +
    +

    and 7 parameters:

    +
      +
    • gNa - Na conductance in 1/(mOhms * cm^2)

    • +
    • ENa - Na equi potential in mV

    • +
    • gK - K conductance in 1/(mOhms * cm^2)

    • +
    • EK - K equi potential in mV

    • +
    • gl - Leak conductance in 1/(mOhms * cm^2)

    • +
    • El - Leak equi potential in mV

    • +
    • C - Membrane capacity density in muF/cm^2

    • +
    +

    note +Internally, the ordinary differential equations defining the model are integrated with a +linear Euler algorithm and GeNN integrates 25 internal time steps for each neuron for each +network time step. I.e., if the network is simulated at DT= 0.1 ms, then the neurons are +integrated with a linear Euler algorithm with lDT= 0.004 ms. +This variant uses IF statements to check for a value at which a singularity would be hit. +If so, value calculated by L’Hospital rule is used.

    +
    pygenn.neuron_models.TraubMilesAlt() pygenn._genn.NeuronModelBase
    -
    +

    Hodgkin-Huxley neurons with Traub & Miles algorithm +Using a workaround to avoid singularity: adding the munimum numerical value of the floating point precision used. +note See NeuronModels::TraubMiles for variable and parameter names.

    +
    pygenn.neuron_models.TraubMilesFast() pygenn._genn.NeuronModelBase
    -
    +

    Hodgkin-Huxley neurons with Traub & Miles algorithm: Original fast implementation, using 25 inner iterations. +There are singularities in this model, which can be easily hit in float precision +note See NeuronModels::TraubMiles for variable and parameter names.

    +
    pygenn.neuron_models.TraubMilesNStep() pygenn._genn.NeuronModelBase
    -
    +

    Hodgkin-Huxley neurons with Traub & Miles algorithm. +Same as standard TraubMiles model but number of inner loops can be set using a parameter +note See NeuronModels::TraubMiles for variable and parameter names.

    +

    @@ -3724,6 +3962,9 @@

    Table of Contents

  • Uninitialised()
  • +
  • pygenn.libgenn_cuda_backend_dynamic module
  • +
  • pygenn.libgenn_dynamic module
  • +
  • pygenn.libgenn_single_threaded_cpu_backend_dynamic module
  • pygenn.model_preprocessor module
    • Array
      • Array.view
      • diff --git a/documentation/5/upgrading.html b/documentation/5/upgrading.html index 83ffeebc6..06decf182 100644 --- a/documentation/5/upgrading.html +++ b/documentation/5/upgrading.html @@ -3,7 +3,7 @@ - + Upgrading from GeNN 4 — PyGeNN documentation diff --git a/documentation/5/userproject/index.html b/documentation/5/userproject/index.html index 264131154..e5bcb2446 100644 --- a/documentation/5/userproject/index.html +++ b/documentation/5/userproject/index.html @@ -3,7 +3,7 @@ - + User projects — PyGeNN documentation diff --git a/documentation/5/userproject/mnist_mb_classifier.html b/documentation/5/userproject/mnist_mb_classifier.html index d90919ad6..d1b72bcb5 100644 --- a/documentation/5/userproject/mnist_mb_classifier.html +++ b/documentation/5/userproject/mnist_mb_classifier.html @@ -3,7 +3,7 @@ - + MNIST classification using an insect-inspired mushroom body model — PyGeNN documentation diff --git a/documentation/5/userproject/potjans_microcircuit.html b/documentation/5/userproject/potjans_microcircuit.html index 2dd61d914..3d4f8e11f 100644 --- a/documentation/5/userproject/potjans_microcircuit.html +++ b/documentation/5/userproject/potjans_microcircuit.html @@ -3,7 +3,7 @@ - + PyGeNN implementation of local cortical microcircuit model — PyGeNN documentation @@ -60,9 +60,8 @@

        Navigation

        The simulated spontaneous activity is asynchronous irregular and cell-type specific firing rates are in agreement with in vivo recordings in awake animals, including the low rate of layer 2/3 excitatory cells. This example can be used as follows:

        -
        usage: potjans_microcircuit [-h] [--duration DURATION] [--neuron-scale NEURON_SCALE]
        -                            [--connectivity-scale CONNECTIVITY_SCALE] [--kernel-profiling]
        -                            [--procedural-connectivity] [--save-data]
        +
        usage: potjans_microcircuit [-h] [--duration DURATION] [--neuron-scale NEURON_SCALE] [--connectivity-scale CONNECTIVITY_SCALE] [--kernel-profiling] [--procedural-connectivity]
        +                            [--save-data]
         
        diff --git a/documentation/5/userproject/sg_execution_times.html b/documentation/5/userproject/sg_execution_times.html index e2784a77d..487dbdaa4 100644 --- a/documentation/5/userproject/sg_execution_times.html +++ b/documentation/5/userproject/sg_execution_times.html @@ -3,7 +3,7 @@ - + Computation times — PyGeNN documentation diff --git a/documentation/5/userproject/superspike_demo.html b/documentation/5/userproject/superspike_demo.html index 6165b5117..8639c5800 100644 --- a/documentation/5/userproject/superspike_demo.html +++ b/documentation/5/userproject/superspike_demo.html @@ -3,7 +3,7 @@ - + PyGeNN implementation of SuperSpike — PyGeNN documentation @@ -60,9 +60,7 @@

        Navigation

        learning rule to learn the transformation between fixed spike trains of Poisson noise and a target spiking output (by default the Radcliffe Camera at Oxford).

        This example can be used as follows:

        -
        usage: superspike_demo [-h] --record-trial [RECORD_TRIAL [RECORD_TRIAL ...]]
        -                       [--target-file TARGET_FILE] [--num-trials NUM_TRIALS] [--kernel-profiling]
        -                       [--save-data]
        +
        usage: superspike_demo [-h] --record-trial [RECORD_TRIAL [RECORD_TRIAL ...]] [--target-file TARGET_FILE] [--num-trials NUM_TRIALS] [--kernel-profiling] [--save-data]