File: summed_variable.py_

package info (click to toggle)
brian 2.9.0-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 6,872 kB
  • sloc: python: 51,820; cpp: 2,033; makefile: 108; sh: 72
file content (35 lines) | stat: -rw-r--r-- 1,183 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
{# USES_VARIABLES { N } #}
{# ITERATE_ALL { _idx } #}
{% extends 'common_group.py_' %}

{% block maincode %}
{% set _target_var_array = get_array_name(_target_var) %}
{% set _index_array = get_array_name(_index_var) %}

# scalar code
_vectorisation_idx = 1
{{scalar_code|autoindent}}

# vector code
_vectorisation_idx = LazyArange(N)
{{vector_code|autoindent}}

# We write to the array, using the name provided as a keyword argument to the
# template
# Note that for subgroups, we do not want to overwrite the full array
{% if _target_start > 0 %}
_indices = {{_index_array}} - {{_target_start}}
{% else %}
_indices = {{_index_array}}
{% endif %}
{# Handle the situation that the target did not have a stop variable, e.g. for synapses: #}
{% if _target_stop < 0 %}
_target_stop = {{constant_or_scalar(_target_size_name, variables[_target_size_name])}}
{% else %}
_target_stop = {{_target_stop}}
{% endif %}
_length = _target_stop - {{_target_start}}
{{_target_var_array}}[{{_target_start}}:_target_stop] = _numpy.bincount(_indices,
                                 minlength=_length,
                                 weights=_numpy.broadcast_to(_synaptic_var, (N, )))
{% endblock %}