diff --git a/AUTHORS b/AUTHORS index bc9902ca8..efbb75090 100644 --- a/AUTHORS +++ b/AUTHORS @@ -1,6 +1,6 @@ The following people have contributed to PyNN. Their affiliations at the time of the contributions are shown below. -* Andrew Davison [1] +* Andrew Davison [1, 20] * Pierre Yger [1, 9] * Eilif Muller [7, 13] * Jens Kremkow [5,6] @@ -22,9 +22,14 @@ The following people have contributed to PyNN. Their affiliations at the time of * Jannis Schücker [16] * Maximilian Schmidt [16] * Christian Roessert [13] -* Shailesh Appukuttan [1] +* Shailesh Appukuttan [1, 20] * Elodie Legouée [1] * Joffrey Gonin [1] +* Ankur Sinha [18] +* Håkon Mørk [19] +* Andrei Moise [20] +* Onur Ates [20] +* Rémy Cagnol [21] 1. Unité de Neuroscience, Information et Complexité, CNRS, Gif sur Yvette, France @@ -44,3 +49,7 @@ The following people have contributed to PyNN. Their affiliations at the time of 15. PDC, KTH, Stockholm, Sweden 16. Institute of Neuroscience and Medicine (INM-6), Jülich Research Center, Jülich, Germany 17. Okinawa Institute of Science and Technology (OIST), Onna-son, Okinawa, Japan +18. Biocomputation group, University of Hertfordshire, Hatfield, United Kingdom. +19. Norwegian University of Life Sciences, Ås, Norway +20. Paris-Saclay Institute of Neuroscience, CNRS/Université Paris-Saclay, Gif sur Yvette, France +21. Faculty of Mathematics and Physics, Charles University, Prague, Czechia diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md new file mode 100644 index 000000000..18d96083a --- /dev/null +++ b/CODE_OF_CONDUCT.md @@ -0,0 +1,46 @@ +# Contributor Covenant Code of Conduct + +## Our Pledge + +In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation. + +## Our Standards + +Examples of behavior that contributes to creating a positive environment include: + +* Using welcoming and inclusive language +* Being respectful of differing viewpoints and experiences +* Gracefully accepting constructive criticism +* Focusing on what is best for the community +* Showing empathy towards other community members + +Examples of unacceptable behavior by participants include: + +* The use of sexualized language or imagery and unwelcome sexual attention or advances +* Trolling, insulting/derogatory comments, and personal or political attacks +* Public or private harassment +* Publishing others' private information, such as a physical or electronic address, without explicit permission +* Other conduct which could reasonably be considered inappropriate in a professional setting + +## Our Responsibilities + +Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior. + +Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful. + +## Scope + +This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers. + +## Enforcement + +Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at pynn-maintainers@protonmail.com. The project team will review and investigate all complaints, and will respond in a way that it deems appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately. + +Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership. + +## Attribution + +This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, available at [http://contributor-covenant.org/version/1/4][version] + +[homepage]: http://contributor-covenant.org +[version]: http://contributor-covenant.org/version/1/4/ diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 000000000..37b60d288 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1 @@ +See http://neuralensemble.org/docs/PyNN/developers/contributing.html diff --git a/MANIFEST.in b/MANIFEST.in index 2ead9c992..bfb41d41c 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -10,6 +10,7 @@ include test/system/scenarios/*.py include test/unittests/*.py include examples/*.py include doc/*.txt +include doc/*/*.txt include LICENSE include AUTHORS include README.rst diff --git a/README.rst b/README.rst index 4bfe3a7cf..21cefe3ad 100644 --- a/README.rst +++ b/README.rst @@ -30,7 +30,7 @@ your simulator, and are not restricted to the standard models. - Bug reports: https://github.com/NeuralEnsemble/PyNN/issues -:copyright: Copyright 2006-2016 by the PyNN team, see AUTHORS. +:copyright: Copyright 2006-2020 by the PyNN team, see AUTHORS. :license: CeCILL, see LICENSE for details. .. image:: https://travis-ci.org/NeuralEnsemble/PyNN.png?branch=master diff --git a/ci/install.sh b/ci/install.sh index c48da8e64..4ea24343b 100644 --- a/ci/install.sh +++ b/ci/install.sh @@ -2,7 +2,6 @@ set -e # stop execution in case of errors -sudo apt-get install -qq python-numpy python3-numpy python-scipy python3-scipy libgsl0-dev openmpi-bin libopenmpi-dev pip install -r requirements.txt pip install coverage coveralls pip install nose-testconfig diff --git a/ci/install_brian.sh b/ci/install_brian.sh index f15960bb4..1010feede 100644 --- a/ci/install_brian.sh +++ b/ci/install_brian.sh @@ -8,3 +8,8 @@ if [ "$TRAVIS_PYTHON_VERSION" == "2.7" ]; then pip install sympy; pip install brian; fi +if [ "$TRAVIS_PYTHON_VERSION" == "3.7" ]; then + echo -e "\n========== Installing Brian 2 ==========\n" + pip install cython; + pip install brian2; +fi \ No newline at end of file diff --git a/ci/install_nest.sh b/ci/install_nest.sh index e962aad69..3e3f63879 100644 --- a/ci/install_nest.sh +++ b/ci/install_nest.sh @@ -2,20 +2,20 @@ set -e # stop execution in case of errors -if [ "$TRAVIS_PYTHON_VERSION" == "2.7" ] || [ "$TRAVIS_PYTHON_VERSION" == "3.5" ]; then +if [ "$TRAVIS_PYTHON_VERSION" == "2.7" ] || [ "$TRAVIS_PYTHON_VERSION" == "3.7" ]; then echo -e "\n========== Installing NEST ==========\n" # Specify which version of NEST to install #export NEST_VERSION="master" - export NEST_VERSION="2.14.0" + export NEST_VERSION="2.20.0" - pip install cython==0.23.4 + pip install cython #==0.28.1 if [ "$NEST_VERSION" = "master" ]; then export NEST="nest-simulator-$NEST_VERSION" wget https://github.com/nest/nest-simulator/archive/$NEST_VERSION.tar.gz -O $HOME/$NEST.tar.gz; else - export NEST="nest-$NEST_VERSION" - wget https://github.com/nest/nest-simulator/releases/download/v$NEST_VERSION/nest-$NEST_VERSION.tar.gz -O $HOME/$NEST.tar.gz + export NEST="nest-simulator-$NEST_VERSION" + wget https://github.com/nest/nest-simulator/archive/v$NEST_VERSION.tar.gz -O $HOME/$NEST.tar.gz; fi pushd $HOME; @@ -26,11 +26,13 @@ if [ "$TRAVIS_PYTHON_VERSION" == "2.7" ] || [ "$TRAVIS_PYTHON_VERSION" == "3.5" mkdir -p $HOME/build/$NEST pushd $HOME/build/$NEST export VENV=`python -c "import sys; print(sys.prefix)"`; - ln -s /opt/python/2.7.14/lib/libpython2.7.so $VENV/lib/libpython2.7.so; - ln -s /opt/python/3.5.4/lib/libpython3.5m.so $VENV/lib/libpython3.5.so; - export PYTHON_INCLUDE_DIR=$VENV/include/python${TRAVIS_PYTHON_VERSION} - if [ "$TRAVIS_PYTHON_VERSION" == "3.5" ]; then - export PYTHON_INCLUDE_DIR=${PYTHON_INCLUDE_DIR}m; + if [ "$TRAVIS_PYTHON_VERSION" == "2.7" ]; then + ln -s /opt/python/2.7/lib/libpython2.7.so $VENV/lib/libpython2.7.so; + export PYTHON_INCLUDE_DIR=$VENV/include/python${TRAVIS_PYTHON_VERSION} + fi + if [ "$TRAVIS_PYTHON_VERSION" == "3.7" ]; then + ln -s /opt/python/3.7/lib/libpython3.7m.so $VENV/lib/libpython3.7.so; + export PYTHON_INCLUDE_DIR=$VENV/include/python${TRAVIS_PYTHON_VERSION}m fi cython --version; cmake --version; diff --git a/ci/install_neuron.sh b/ci/install_neuron.sh index 215f873c5..c26382018 100644 --- a/ci/install_neuron.sh +++ b/ci/install_neuron.sh @@ -2,11 +2,11 @@ set -e # stop execution in case of errors -if [ "$TRAVIS_PYTHON_VERSION" == "2.7" ]; then +if [ "$TRAVIS_PYTHON_VERSION" == "3.7" ]; then echo -e "\n========== Installing NEURON ==========\n" - export NRN_VERSION="nrn-7.5" + export NRN_VERSION="nrn-7.7" if [ ! -f "$HOME/$NRN_VERSION/configure" ]; then - wget http://www.neuron.yale.edu/ftp/neuron/versions/v7.5/$NRN_VERSION.tar.gz -O $HOME/$NRN_VERSION.tar.gz; + wget http://www.neuron.yale.edu/ftp/neuron/versions/v7.7/$NRN_VERSION.tar.gz -O $HOME/$NRN_VERSION.tar.gz; pushd $HOME; tar xzf $NRN_VERSION.tar.gz; popd; diff --git a/ci/test_script.sh b/ci/test_script.sh index 3b29102af..56a64901e 100644 --- a/ci/test_script.sh +++ b/ci/test_script.sh @@ -2,9 +2,8 @@ set -e # stop execution in case of errors -if [ "$TRAVIS_PYTHON_VERSION" == "2.7" ] || [ "$TRAVIS_PYTHON_VERSION" == "3.5" ]; then - nosetests --with-coverage --cover-package=pyNN -e backends -v test/unittests; - nosetests --with-coverage --cover-package=pyNN -v test/system; +if [ "$TRAVIS_PYTHON_VERSION" == "2.7" ] || [ "$TRAVIS_PYTHON_VERSION" == "3.7" ]; then + python setup.py nosetests --with-coverage --cover-package=pyNN -v --tests=test; else - nosetests -e backends test/unittests; -fi \ No newline at end of file + python setup.py nosetests -e backends -v --tests=test/unittests; +fi diff --git a/doc/backends/NEST.txt b/doc/backends/NEST.txt index dbfbea432..4cc5559f6 100644 --- a/doc/backends/NEST.txt +++ b/doc/backends/NEST.txt @@ -24,17 +24,12 @@ or the conventional grid-constrained scheme setup(spike_precision='on_grid') -where `'on_grid'` is the default. +where `'off_grid'` is the default. -.. todo:: consider changing the default to off_grid, since PyNN's defaults are - supposed to prefer accuracy/comparability over performance. - -As of NEST 2.0.0, the following PyNN standard models have an off-grid -implementation: :class:`IF_curr_alpha` (in preparation), :class:`IF_curr_exp`, +The following PyNN standard models have an off-grid +implementation: :class:`IF_curr_exp`, :class:`SpikeSourcePoisson` :class:`EIF_cond_alpha_isfa_ista`. -.. todo:: check the accuracy of the above list before release - .. todo:: add a list of native NEST models with off-grid capability Here is an example showing how to specify the option in a PyNN script diff --git a/doc/backends/NEURON.txt b/doc/backends/NEURON.txt index eb51de5f5..9f86f9bc6 100644 --- a/doc/backends/NEURON.txt +++ b/doc/backends/NEURON.txt @@ -28,7 +28,7 @@ If using *cvode*, there are two more optional parameters: .. testcode:: cvode - setup(cvode=True, + setup(use_cvode=True, rtol=0.001, # specify relative error tolerance atol=1e-4) # specify absolute error tolerance @@ -137,55 +137,15 @@ If your model relies on other NMODL mechanisms, call the :func:`~pyNN.neuron.load_mechanisms` function with the path to the directory containing the :file:`.mod` files. +It is also possible to use NEURON "ARTIFICIAL_CELL" models, such as :class:`IntFire1`, + :class:`IntFire2` and :class:`IntFire4`: -Using native synaptic plasticity models -======================================= - -A native NEURON synaptic plasticity model should be implemented in NMODL using the "weight adjuster" -approach. The mechanism should be a ``POINT_PROCESS`` which defines a ``POINTER wsyn``. -This mechanism will receive ``NetCon``s from both the presynaptic and postsynaptic neurons -(at least for the common case where the mechanism depends on post-synaptic spike times -but not on state variables of the postsynaptic cell such as the membrane potential. -The latter scenario is possible, but is not documented here.) -The ``wsyn`` pointer will be connected to the weight variable of the post-synaptic response mechanism. -See the :file:`pyNN/neuron/nmodl` directory for some examples of such mechanisms. - -Call the :func:`~pyNN.neuron.load_mechanisms` function with the path to the directory -containing the :file:`.mod` file. - -For each synaptic plasticity model you must also define a synapse type class: - -.. codeblock:: python - - from pyNN.neuron import NativeSynapseType - from pyNN.neuron.simulator import Connection - - class MySTDP(NativeSynapseType): - default_parameters = { - "weight": 0.0, "delay": None, - "tauLTP": 20.0, "tauLTD": 20.0, - "aLTP": 0.01, "aLTD": 0.012, - "wmin": 0, "wmax": 0.0000001, - "dendritic_delay_fraction": 1.0 - } - model = "MySTDPMechanism" # this is the POINT_PROCESS name - connection_type = Connection - presynaptic_type = None - postsynaptic_variable = "spikes" - -The parameters "weight", "delay" and "dendritic_delay_fraction" are obligatory, -and will be handled by PyNN. All other parameters will be passed on to the NMODL mechanism. - -It is now straightforward to use this synapse type in PyNN: - -.. codeblock:: python +.. testcode:: nativemodel - from pyNN.neuron import setup, run, Population, Projection, AllToAllConnector, StaticSynapse + from pyNN.neuron import setup, Population, IntFire1 setup() - p1 = Population(10, sim.IF_cond_exp()) - syn = MySTDP(weight=0.01, delay=0.5, wmax=0.02) - prj = Projection(p1, p1, AllToAllConnector(), syn, receptor_type='excitatory') - run(100.0) + p1 = Population(10, IntFire1(tau=10.0, refrac=2.5)) + p1.record('m') .. _`CVode documentation`: http://www.neuron.yale.edu/neuron/static/docs/help/neuron/neuron/classes/cvode.html diff --git a/doc/conf.py b/doc/conf.py index 43722639c..397ca29a2 100644 --- a/doc/conf.py +++ b/doc/conf.py @@ -71,7 +71,7 @@ class MockNESTModule(mock.Mock): # General information about the project. project = u'PyNN' authors = u'the PyNN community' -copyright = u'2006-2017, ' + authors +copyright = u'2006-2020, ' + authors # The version info for the project you're documenting, acts as replacement for # |version| and |release|, also used in various other places throughout the @@ -80,7 +80,7 @@ class MockNESTModule(mock.Mock): # The short X.Y version. version = '0.9' # The full version, including alpha/beta/rc tags. -release = '0.9.2' +release = '0.9.6' # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. diff --git a/doc/connections.txt b/doc/connections.txt index 136e262c0..1e215eb08 100644 --- a/doc/connections.txt +++ b/doc/connections.txt @@ -57,10 +57,14 @@ The simplest, and default synapse type in PyNN has constant synaptic weight: .. testcode:: syn = StaticSynapse(weight=0.04, delay=0.5) - + .. note:: weights are in microsiemens or nanoamps, depending on whether the post-synaptic mechanism implements a change in conductance or current, - and delays are in milliseconds (see :doc:`units`). + and delays are in milliseconds (see :doc:`units`). Weights should always + be positive, *except* for the case of inhibitory (see `receptor_type` + argument below), current-based synapses, for which they should be negative. + Inhibitory, conductance-based synapses have positive weights, because + it is the reversal potential which makes it inhibitory. It is also possible to add variability to synaptic weights and delays by specifying a :class:`RandomDistribution` object as the parameter value: @@ -110,7 +114,7 @@ timing-dependence components, e.g.: timing_dependence=SpikePairRule(tau_plus=20.0, tau_minus=20.0, A_plus=0.01, A_minus=0.012), weight_dependence=AdditiveWeightDependence(w_min=0, w_max=0.04)) - + Note that not all simulators will support all possible combinations of synaptic plasticity components. @@ -312,8 +316,8 @@ Reading connection patterns to/from a file Connection patterns can be read in from a text file. The file should contain a header specifying which parameter is in which column, e.g.:: - - # columns = ["i", "j", "weight", "delay", "U", "tau_rec"] + + # columns = ["i", "j", "weight", "delay", "U", "tau_rec"] and then the connection data should be in columns separated by spaces. The connections are read using: @@ -373,7 +377,8 @@ level of the simulator. To create a :class:`Projection` we must specify: Optionally, we can also specify: * the name of the post-synaptic mechanism (e.g. ‘excitatory’, ‘NMDA’) - (by default, this is 'excitatory'); + (if not specified, PyNN picks a default depending on the weight + parameter of the synapse type); * a label (autogenerated if not specified); * a :class:`Space` object, which determines how distances should be calculated for distance-dependent wiring schemes or parameter values. diff --git a/doc/contributors.txt b/doc/contributors.txt index 8838387d7..a40a4ecbd 100644 --- a/doc/contributors.txt +++ b/doc/contributors.txt @@ -1,6 +1,6 @@ -======================== -Contributors and licence -======================== +================================= +Contributors, licence and funding +================================= .. include:: ../AUTHORS @@ -17,6 +17,18 @@ software in computational neuroscience, such as NEURON (GPL) and Brian (CeCILL). If you are interested in using PyNN, but the choice of licence is a problem for you, please contact us to discuss dual-licensing. + .. centered:: LICENSE AGREEMENT .. include:: ../LICENSE + + +Funding +======= + +Development of PyNN has been partially funded by the European Union Sixth Framework Program (FP6) under +grant agreement FETPI-015879 (FACETS), by the European Union Seventh Framework Program (FP7/2007­-2013) +under grant agreements no. 269921 (BrainScaleS) and no. 604102 (HBP), +and by the European Union’s Horizon 2020 Framework Programme for +Research and Innovation under the Specific Grant Agreements No. 720270 (Human Brain Project SGA1) +and No. 785907 (Human Brain Project SGA2). diff --git a/doc/developers/contributing.txt b/doc/developers/contributing.txt index adb93ff0e..f4d57cebf 100644 --- a/doc/developers/contributing.txt +++ b/doc/developers/contributing.txt @@ -80,14 +80,14 @@ We try to stay fairly close to PEP8_. Please note in particular: - some function/method names in PyNN use ``mixedCase``, but these will gradually be deprecated and replaced with ``lower_case_with_underscores``. Any new functions or methods should use the latter. - - we currently target versions 2.7 and 3.3-3.6 + - we currently target versions 2.7 and 3.6+ Testing ======= -Running the PyNN test suite requires the *nose_* and *mock_* packages, and -optionally the *coverage_* package. To run the entire test suite, in the +Running the PyNN test suite requires the *nose_*, *mock_* and *nose-testconfig* packages, +and optionally the *coverage_* package. To run the entire test suite, in the ``test`` subdirectory of the source tree:: $ nosetests @@ -114,19 +114,19 @@ The suggested way to do this is to write test functions, in a separate file, that take a simulator module as an argument, and then call these functions from ``test_neuron.py``, ``test_nest.py``, etc. -System tests defined in the scenarios directory are treated as a single test +System tests defined in the scenarios directory are treated as a single test (test_scenarios()) while running nosetests. To run only the tests within a file named 'test_electrodes' located inside system/scenarios, use:: $ nosetests -s --tc=testFile:test_electrodes test_nest.py -To run a single specific test named 'test_changing_electrode' located within +To run a single specific test named 'test_changing_electrode' located within some file (and added to registry) inside system/scenarios, use:: $ nosetests -s --tc=testName:test_changing_electrode test_nest.py Note that this would also run the tests specified within the simulator specific -files such as test_brian.py, test_nest.py and test_neuron.py. To avoid +files such as test_brian.py, test_nest.py and test_neuron.py. To avoid this, specify the 'test_scenarios function' on the command line:: $ nosetests -s --tc=testName:test_changing_electrode test_nest.py:test_scenarios @@ -220,7 +220,7 @@ where ``x.y.z`` is the release number. You should now upload the documentation to http://neuralensemble.org/docs/PyNN/ by running:: $ make zip - + in the :file:`doc` directory, and then unpacking the resulting archive on the NeuralEnsemble server. diff --git a/doc/developers/governance.txt b/doc/developers/governance.txt new file mode 100644 index 000000000..444e86705 --- /dev/null +++ b/doc/developers/governance.txt @@ -0,0 +1,103 @@ +========== +Governance +========== + +PyNN is a community-developed project, we welcome contributions from anyone who is interested in +the project. The project maintainers are the members of the `PyNN Developers team`_. +All contributors agree to abide by the Code of Conduct, see below. + +Contributions +============= + +All contributions must be by pull request, with the exception of quick bug fixes affecting fewer +than ten lines of code. +Normally, pull requests may be approved by any maintainer, although anyone is welcome to join in +the discussion. +In case of disagreement with a decision, we will try to reach a consensus between maintainers, +taking account of any input from the wider community. +If consensus cannot be reached, decisions will be based on a majority vote among the maintainers, +with the caveats that (i) only one vote per institution is allowed (i.e. in the case where several +maintainers belong to the same institution they will have to agree among themselves how to vote) +and (ii) a quorum of three maintainers must be achieved. + +Maintainers +=========== + +Any contributor who has had at least three pull requests accepted may be nominated as a maintainer. +Nominations must be approved by at least two existing maintainers, with no dissenting maintainer. +In case of disagreement, decisions on accepting new maintainers will be based on a majority vote +as above. + +Contributor Code of Conduct +=========================== + +Our Pledge +---------- + +In the interest of fostering an open and welcoming environment, we as contributors and maintainers +pledge to making participation in our project and our community a harassment-free experience for +everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, +level of experience, nationality, personal appearance, race, religion, or sexual identity and +orientation. + +Our Standards +------------- + +Examples of behavior that contributes to creating a positive environment include: + +* Using welcoming and inclusive language +* Being respectful of differing viewpoints and experiences +* Gracefully accepting constructive criticism +* Focusing on what is best for the community +* Showing empathy towards other community members + +Examples of unacceptable behavior by participants include: + +* The use of sexualized language or imagery and unwelcome sexual attention or advances +* Trolling, insulting/derogatory comments, and personal or political attacks +* Public or private harassment +* Publishing others' private information, such as a physical or electronic address, without + explicit permission +* Other conduct which could reasonably be considered inappropriate in a professional setting + +Our Responsibilities +-------------------- + +Project maintainers are responsible for clarifying the standards of acceptable behavior and are +expected to take appropriate and fair corrective action in response to any instances of +unacceptable behavior. + +Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, +code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, +or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, +threatening, offensive, or harmful. + +Scope +----- + +This Code of Conduct applies both within project spaces and in public spaces when an individual is +representing the project or its community. Examples of representing a project or community +include using an official project e-mail address, posting via an official social media account, +or acting as an appointed representative at an online or offline event. +Representation of a project may be further defined and clarified by project maintainers. + +Enforcement +----------- + +Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting +the project team at pynn-maintainers@protonmail.com. The project team will review and investigate +all complaints, and will respond in a way that it deems appropriate to the circumstances. The +project team is obligated to maintain confidentiality with regard to the reporter of an incident. +Further details of specific enforcement policies may be posted separately. + +Project maintainers who do not follow or enforce the Code of Conduct in good faith may face +temporary or permanent repercussions as determined by other members of the project's leadership. + +Attribution +----------- + +This Code of Conduct is adapted from the `Contributor Covenant`_, version 1.4, available at http://contributor-covenant.org/version/1/4 + + +.. _`Contributor Covenant`: http://contributor-covenant.org +.. _`PyNN Developers team`: https://github.com/orgs/NeuralEnsemble/teams/pynn-developers/members diff --git a/doc/developers_guide.txt b/doc/developers_guide.txt index 8c05d7260..6dfa152ce 100644 --- a/doc/developers_guide.txt +++ b/doc/developers_guide.txt @@ -18,6 +18,7 @@ There are several ways to contribute to PyNN: * fixing bugs and other mistakes; * adding or maintaining a simulator backend; * major refactoring to improve performance, reduce code complexity, or both. + * becoming a maintainer The following sections contain guidelines for each of these. @@ -26,8 +27,9 @@ The following sections contain guidelines for each of these. developers/bug_reports developers/contributing - - + developers/governance + + .. developers/adding_backend .. _`NeuralEnsemble Google Group`: http://groups.google.com/group/neuralensemble diff --git a/doc/download.txt b/doc/download.txt index 5f22dae36..03e4775b2 100644 --- a/doc/download.txt +++ b/doc/download.txt @@ -5,8 +5,8 @@ Downloads Source distributions -------------------- -The `latest stable version of PyNN`_ (0.8.1) may be downloaded from the -`Python Package Index`_ or from the `INCF Software Centre`_. This is recommended for +The `latest stable version of PyNN`_ (0.9.6) may be downloaded from the +`Python Package Index`_. This is recommended for anyone using PyNN for the first time. If you need support for a previous version of the API, the packages can be downloaded from @@ -24,23 +24,6 @@ Older versions: * `0.7.0 `_ * `0.6.0 `_ * `0.5.0 `_ - * `0.4.1 `_ - * `0.4.0 `_ - * `0.3.0 `_ - - -Linux packages --------------- - - * `Debian 7.0 (Wheezy)`_ (0.7.4) - * `Debian 8.0 (Jessie)`_ (0.7.4) - * `Debian unstable (Sid)`_ (0.7.4) - * `Ubuntu 12.04 (Precise)`_ (0.7.0) - * `Ubuntu 14.04 (Trusty)`_ (0.7.4) - * `Ubuntu 15.04 (Vivid)`_ (0.7.4) - -(many thanks to the NeuroDebian_ guys for packaging PyNN for Debian. -More up-to-date packages are often available from the NeuroDebian repository.) Latest source code from GitHub diff --git a/doc/import_export.txt b/doc/import_export.txt new file mode 100644 index 000000000..1c912732a --- /dev/null +++ b/doc/import_export.txt @@ -0,0 +1,77 @@ +============================================= +Importing from and exporting to other formats +============================================= + +Other formats for representing spiking network models are also available. + +PyNN currently supports NeuroML_, NineML_ and SONATA_. + +NeuroML +------- + +See section on :doc:`backends/NeuroML`. + +NineML +------ + +See section on :doc:`nineml`. + +.. _sec-sonata: + +SONATA +------ + +SONATA_ is a data format for representing/storing data-driven spiking neuronal network models, +experimental protocols (injecting spikes, currents) and simulation outputs. + +In the network representation, all connections are represented explicity, as in PyNN's +:class:`FromFileConnector` and :class:`FromListConnector`. + +A PyNN model/simulation script can be exported in SONATA format using: + +.. code-block:: python + + from pyNN.network import Network + from pyNN.serialization import export_to_sonata + + sim.setup() + ... + # create populations, projections, etc. + ... + + # add populations and projections to a Network + net = Network(pop1, pop2, ...., prj1, prj2, ...) + + export_to_sonata(net, "sonata_output_dir") + + +A SONATA model/simulation can be read and executed through PyNN provided the cell types +used in the model are compatible with PyNN, i.e. they must be point neurons. +(SONATA also supports biophysically/morphologically detailed neuron models). + +.. code-block:: python + + from pyNN.serialization import import_from_sonata, load_sonata_simulation_plan + import pyNN.neuron as sim + + simulation_plan = load_sonata_simulation_plan("simulation_config.json") + simulation_plan.setup(sim) + net = import_from_sonata("circuit_config.json", sim) + simulation_plan.execute(net) + +Simulation results from such a simulation are stored in the SONATA outputs format. +Support for this format will soon be added to Neo_, but for the time being you +can read the results as follows: + +.. code-block:: python + + from pyNN.serialization.sonata import SonataIO + + data = SonataIO("sonata_output_dir").read() + + + +.. _NeuroML: http://neuroml.org +.. _NineML: http://nineml.net +.. _SONATA: https://github.com/AllenInstitute/sonata +.. _Neo: http://neuralensemble.org/neo diff --git a/doc/index.txt b/doc/index.txt index 0e39147cf..c0b4b289d 100644 --- a/doc/index.txt +++ b/doc/index.txt @@ -18,7 +18,9 @@ PyNN: documentation backends parallel units + import_export examples + publications contributors release_notes diff --git a/doc/installation.txt b/doc/installation.txt index ddaa22f74..a8d283b3d 100644 --- a/doc/installation.txt +++ b/doc/installation.txt @@ -7,10 +7,10 @@ install and run PyNN on Windows, but this has not been tested. Installing PyNN requires: - * Python (version 2.7, 3.3-3.6) + * Python (version 2.7, 3.6+) * a recent version of the NumPy_ package * the lazyarray_ package - * the Neo_ package (>= 0.5.0) + * the Neo_ package (>= 0.8.0) * at least one of the supported simulators: e.g. NEURON, NEST, or Brian. Optional dependencies are: @@ -18,6 +18,7 @@ Optional dependencies are: * mpi4py_ (if you wish to run distributed simulations using MPI) * either Jinja2_ or Cheetah_ (templating engines) * the CSA_ library + * h5py (to use the SONATA format) Installing PyNN =============== @@ -28,12 +29,11 @@ The easiest way to get PyNN is to use pip_:: $ pip install pyNN -If you are running Debian or Ubuntu, there are :doc:`binary packages ` -available. If you would prefer to install manually, :doc:`download the latest +If you would prefer to install manually, :doc:`download the latest source distribution `, then run the setup script, e.g.:: - $ tar xzf PyNN-0.9.2.tar.gz - $ cd PyNN-0.9.2 + $ tar xzf PyNN-0.9.6.tar.gz + $ cd PyNN-0.9.6 $ python setup.py install This will install it to your Python :file:`site-packages` directory, and may @@ -78,7 +78,7 @@ you will need to manually run :command:`nrnivmodl` in the :file:`pyNN/neuron/nmo Installing NEURON ================= -Download the sources for NEURON 7.4 or 7.5, in ``.tar.gz`` format, from ``_. +Download the sources for NEURON 7.4 or later, in ``.tar.gz`` format, from ``_. Also download Interviews from the same location. Compile Interviews and NEURON according to the instructions given at ``_, @@ -118,7 +118,7 @@ If you run into problems, check out the `NEURON Forum`_. Installing NEST and PyNEST ========================== -NEST 2.14 can be downloaded from ``_. +NEST 2.18.0 can be downloaded from ``_. Earlier versions of NEST may not work with this version of PyNN. The full installation instructions are available in the file INSTALL, which you can find in the NEST source package, or at ``_. @@ -128,10 +128,11 @@ Now try it out:: $ cd ~ $ python >>> import nest - -- N E S T -- - + -- N E S T -- Copyright (C) 2004 The NEST Initiative - Version 2.14.0 Nov 21 2017 11:05:28 + + Version: v2.20.0 + ... >>> nest.Models() (u'ac_generator', u'aeif_cond_alpha', u'aeif_cond_alpha_RK5', u'aeif_cond_alpha_multisynapse', diff --git a/doc/introduction.txt b/doc/introduction.txt index 62ca023ee..f849f053e 100644 --- a/doc/introduction.txt +++ b/doc/introduction.txt @@ -6,8 +6,6 @@ PyNN_ (pronounced 'pine') is a simulator-independent language for building neuro In other words, you can write the code for a model once, using the PyNN API and the Python_ programming language, and then run it without modification on any simulator that PyNN supports (currently NEURON_, NEST_ and Brian_) as well as on certain neuromorphic hardware systems. -.. note:: in PyNN 0.8.1, only NEST, NEURON and Brian are supported. Support for other simulators (e.g. Brian 2, MOOSE) and for neuromorphic hardware will be (re)introduced later in the 0.8 development cycle. - The PyNN API aims to support modelling at a high-level of abstraction (populations of neurons, layers, columns and the connections between them) while still allowing access to the details of individual neurons and synapses when required. PyNN provides a library of standard neuron, synapse and synaptic plasticity models, which have been verified to work the same on the different supported simulators. PyNN also provides a set of commonly-used connectivity algorithms (e.g. all-to-all, random, distance-dependent, small-world) but makes it easy to provide your own connectivity in a simulator-independent way, either using the Connection Set Algebra (`Djurfeldt, 2012`_) or by writing your own Python code. Even if you don't wish to run simulations on multiple simulators, you may benefit from writing your simulation code using PyNN's powerful, high-level interface. In this case, you can use any neuron or synapse model supported by your simulator, and are not restricted to the standard models. PyNN transparently supports distributed simulations (using MPI) where the underlying simulator does. diff --git a/doc/nineml.txt b/doc/nineml.txt index 89bb3c042..5ec12391c 100644 --- a/doc/nineml.txt +++ b/doc/nineml.txt @@ -43,14 +43,16 @@ format such as SEDML_ Using a NineML abstraction layer model in a NEST or NEURON simulation ===================================================================== -This requires code-generation support for the backend simulator. -For NEST and NEURON, the Pype9 package is required. Brian support is also envisaged. +This requires code-generation support for the backend simulator. For NEST, this +will be built-in to some future release; for NEURON, the nineml2nmodl package +is required [currently available in the NineML svn, will be released on PyPI at +some point]. Brian support is also envisaged. :: import pyNN.neuron as sim - celltype_cls = sim.nineml_cell_type( + celltype_cls = sim.nineml_celltype( name="my_neuron_type", neuron_model="iaf.xml", synapse_models={ @@ -71,10 +73,6 @@ For NEST and NEURON, the Pype9 package is required. Brian support is also envisa cells.record(("iaf.v", "AMPA.g", "NMDA.g", "GABAA.v")) -:: - - synapsetype_cls = sim.nineml_synapse_type("my_stdp.xml") - Simulating an entire NineML model with NEST or NEURON ===================================================== diff --git a/doc/parameters.txt b/doc/parameters.txt index 3b61f7d06..7b09342eb 100644 --- a/doc/parameters.txt +++ b/doc/parameters.txt @@ -147,10 +147,65 @@ the same time: .. todo:: in the above, give current source examples, and Projection examples -Time series parameters -====================== +Time series and array-valued parameters +======================================= + +For certain neuron models (:class:`SpikeSourceArray`, :class:`GIF_cond_exp`) +and current sources, the individual parameter values are not single numbers +(with physical units), but arrays, e.g.: + +.. code-block:: python + + celltype = SpikeSourceArray(np.array([5.0, 15.0, 45.0, 99.0])) + +to set the same spike times for the entire population. +To set different spike times for each cell in the population requires an array of arrays. +To avoid ambiguities in this situation, the inner arrays should be wrapped by the +:class:`Sequence` class, e.g.: + +.. code-block:: python + + celltype = SpikeSourceArray([Sequence([5.0, 15.0, 45.0, 99.0]), + Sequence([2.0, 5.3, 18.9]), + Sequence([17.8, 88.2, 100.1]) + ]) + +Such an array-of-Sequences can also be provided by a generator function, e.g.: + +.. code-block:: python + + number = int(2 * simtime * input_rate / 1000.0) + + def generate_spike_times(i): + gen = lambda: Sequence(numpy.add.accumulate(numpy.random.exponential(1000.0 / input_rate, size=number))) + if hasattr(i, "__len__"): + return [gen() for j in i] + else: + return gen() + + celltype = SpikeSourceArray(spike_times=generate_spike_times) + + +As a generalization of :class:`Sequence`, some models require array-valued parameters, +expressed as tuples or :class:`ArrayParameter` instances, e.g.: + +.. code-block:: python + + cell_type = GIF_cond_exp( + ... + # this parameter has the same value in all neurons in the population + tau_gamma=(1.0, 10.0, 100.0), # Time constants for spike-frequency adaptation in ms. + # the following parameter has different values for each neuron + a_eta=[(0.1, 0.1, 0.1), # Post-spike increments for spike-triggered current in nA + (0.0, 0.0, 0.0), + (0.0, 0.0, 0.0), + (0.0, 0.0, 0.0)] + ...) -.. todo:: discuss spike trains, current sources, Sequence class +.. note:: The reason for defining :class:`Sequence` and :class:`ArrayParameter` + rather than just using a plain NumPy array is to avoid the ambiguity of + "is a given array a single parameter value (e.g. a spike train for one cell) + or an array of parameter values (e.g. one number per cell)?". Setting initial values diff --git a/doc/publications.txt b/doc/publications.txt new file mode 100644 index 000000000..867c870b3 --- /dev/null +++ b/doc/publications.txt @@ -0,0 +1,102 @@ +============================================= +Publications about, relating to or using PyNN +============================================= + +* Schmuker, Michael, Pfeil, Thomas and Nawrot, Martin Paul (2014) **A neuromorphic network for generic multivariate + data classification** + Proceedings of the National Academy of Sciences 111: 2081-2086. doi: 10.1073/pnas.1303053111 + `[link] `_ + +* Kaplan, BA, Khoei, MA, Lansner, A, & Perrinet, LU (2014) **Signature of an anticipatory response in area VI as modeled + by a probabilistic model and a spiking neural network.** In: Neural Networks (IJCNN), 2014 International Joint + Conference on (pp. 3205-3212). Beijing, China. IEEE. doi: 10.1109/IJCNN.2014.6889847 + `[link] `_ + +* Djurfeldt M., Davison A.P. and Eppler J.M. (2014) **Efficient generation of connectivity in neuronal networks from + simulator-independent descriptions.** Frontiers in Neuroinformatics 8:43: doi: 10.3389/fninf.2014.00043 + `[link] `_ + +* Antolík J. and Davison A.P. (2013) **Integrated workflows for spiking neuronal network simulations.** + Frontiers in Neuroinformatics 7:34: 10.3389/fninf.2013.00034 + `[link] `_ + +* Pfeil, Thomas, Grübl, Andreas, Jeltsch, Sebastian, Müller, Eric, Müller, Paul, Petrovici, Mihai A., Schmuker, Michael, + Brüderle, Daniel, Schemmel, Johannes and Meier, Karlheinz (2013) **Six networks on a universal neuromorphic computing + substrate.** Frontiers in Neuroscience 7:11 doi: 10.3389/fnins.2013.00011 + `[link] `_ + +* Kaplan BA, Lansner A, Masson GS and Perrinet LU (2013) **Anisotropic connectivity implements motion-based prediction in + a spiking neural network.** Front. Comput. Neurosci. 7:112. doi: 10.3389/fncom.2013.00112 + `[link] <>`_ + +* Brüderle D., Petrovici M.A., Vogginger B., Ehrlich M., Pfeil T., Millner S., Grübl A., Wendt K., Müller E., + Schwartz M.O., Husmann de Oliveira D., Jeltsch S., Fieres J., Schilling M., Müller P., Breitwieser O., Petkov V., + Muller L., Davison A.P., Krishnamurthy P., Kremkow J., Lundqvist M., Muller E., Partzsch J., Scholze S., Zühl L., + Mayr C., Destexhe A., Diesmann M., Potjans T.C., Lansner A., Schüffny R., Schemmel J., Meier K. (2011) + **A Comprehensive Workflow for General-Purpose Neural Modeling with Highly Configurable Neuromorphic Hardware + Systems.** Biological Cybernetics 104: 263-296. doi: 10.1007/s00422-011-0435-9 + `[link] `_ + +* Galluppi, Francesco, Rast, Alexander, Davies, Sergio and Furber, Steve (2010) **A general-purpose model translation + system for a universal neural chip.** Neural Information Processing. Theory and Algorithms; Lecture Notes in Computer + Science vol 6443, pp58-65 + `[link] `_ + +* J. Nageswaran, N. Dutt, J. L. Krichmar, A. Nicolau, A. V. Veidenbaum (2009) **A configurable simulation environment + for the efficient simulation of large-scale spiking neural networks on graphics processors.** + Neural Networks 22:5-6, doi:10.1016/j.neunet.2009.06.028. + `[link] `_ + +* Davison AP, Hines M and Muller E (2009) **Trends in programming languages for neuroscience simulations.** + Front. Neurosci. doi:10.3389/neuro.01.036.2009. + `[link] `_ + +* Davison AP, Brüderle D, Eppler J, Kremkow J, Muller E, Pecevski D, Perrinet L and Yger P (2009) **PyNN: a + common interface for neuronal network simulators.** Front. Neuroinform. 2:11. doi:10.3389/neuro.11.011.2008. + `[link] `_ + +* Brüderle D, Muller E, Davison A, Muller E, Schemmel J and Meier K (2009) **Establishing a novel modeling tool: a + python-based interface for a neuromorphic hardware system.** + Front. Neuroinform. 3:17. doi:10.3389/neuro.11.017.2009. + `[link] `_ + +* Bednar JA (2009) **Topographica: building and analyzing map-level simulations from Python, C/C++, MATLAB, NEST, or + NEURON components.** Front. Neuroinform. 3:8. doi:10.3389/neuro.11.008.2009. + `[link] `_ + +* Goodman D and Brette R (2008) **Brian: a simulator for spiking neural networks in Python.** + Front. Neuroinform. 2:5. doi:10.3389/neuro.11.005.2008. + `[link] `_ + +* Pecevski D, Natschläger T and Schuch K (2009) **PCSIM: a parallel simulation environment for neural circuits fully + integrated with Python.** Front. Neuroinform. 3:11. doi:10.3389/neuro.11.011.2009. + `[link] `_ + +* Ray S and Bhalla US (2008) **PyMOOSE: interoperable scripting in Python for MOOSE.** + Front. Neuroinform. 2:6. doi:10.3389/neuro.11.006.2008. + `[link] `_ + +* Sharon Crook, R Angus Silver and Padraig Gleeson (2009) **Describing and exchanging models of neurons and neuronal + networks with NeuroML.** BMC Neuroscience, 10(Suppl 1):L1doi:10.1186/1471-2202-10-S1-L1. + `[link] `_ + +* D. Brüderle, A. Grübl, K. Meier, E. Muller and J. Schemmel (2007) **A Software Framework for Tuning the Dynamics of + Neuromorphic Silicon Towards Biology.** LNCS 4507. doi:10.1007/978-3-540-73007-1. + `[link] `_ + +* B. Kaplan, D. Brüderle, J. Schemmel and K. Meier (2009) **High-Conductance States on a Neuromorphic Hardware System.** + Proceedings of IJCNN 2009. + `[link] `_ + +* D. Brüderle (2009) **Neuroscientific Modeling with a Mixed-Signal VLSI Hardware System.** + Doctoral Dissertation, Kirchhoff-Institute for Physics, University of Heidelberg. + `[link] `_ + +* A. Davison, P. Yger, J. Kremkow, L. Perrinet and E. Muller (2007) **PyNN: towards a universal neural simulator API in + Python.** BMC Neuroscience 2007, 8(Suppl 2):P2. doi:10.1186/1471-2202-8-S2-P2. + `[link] `_ + +* E. Muller, A. P. Davison, T. Brizzi, D. Bruederle, M. J. Eppler, J. Kremkow, D. Pecevski, L. Perrinet, M. Schmuker and + P. Yger (2009) **NeuralEnsemble.Org: Unifying neural simulators in Python to ease the model complexity bottleneck.** + Frontiers in Neuroinformatics Conference Abstract: Neuroinformatics 2009. doi: 10.3389/conf.neuro.11.2009.08.104. + `[link] `_ diff --git a/doc/random_numbers.txt b/doc/random_numbers.txt index 55ff87aa3..1a28a1946 100644 --- a/doc/random_numbers.txt +++ b/doc/random_numbers.txt @@ -57,6 +57,13 @@ simulation. This independence can be computationally costly, however, so it is possible to set *parallel_safe=False*, accepting that the results will be dependent on the number of nodes, in order to get better performace. +.. note:: if you do not provide a seed, PyNN will provide one for you, the + same each time. This means that running the same simulation several + times will use identical random numbers each time, so if you want + to have different random numbers on different runs, you must + provide your own seed and change it (or randomly generate it) + each time. + .. note:: *parallel_safe* may or may not have any effect when using a :class:`~pyNN.random.NativeRNG`, depending on the simulator. @@ -135,4 +142,12 @@ arguments returns a single number, not an array: digits but the numbers in the array have full precision. +SpikeSourcePoisson +================== + +The :class:`SpikeSourcePoisson` model is currently an exception to the situation outlined above. +It ought to take an `rng` argument, but at present this is not supported, and the model uses the +global random number generator seed, as set in the :func:`setup()` function. + + .. _`GNU Scientific Library random number generators`: http://pygsl.sourceforge.net/reference/pygsl/module-pygsl.rng.html \ No newline at end of file diff --git a/doc/release_notes.txt b/doc/release_notes.txt index 63ab435ac..3c64390b9 100644 --- a/doc/release_notes.txt +++ b/doc/release_notes.txt @@ -6,6 +6,10 @@ Release notes .. toctree:: :maxdepth: 1 + releases/0.9.6.txt + releases/0.9.5.txt + releases/0.9.4.txt + releases/0.9.3.txt releases/0.9.2.txt releases/0.9.1.txt releases/0.9.0.txt diff --git a/doc/releases/0.9.2.txt b/doc/releases/0.9.2.txt new file mode 100644 index 000000000..d138a9cc0 --- /dev/null +++ b/doc/releases/0.9.2.txt @@ -0,0 +1,57 @@ +======================== +PyNN 0.9.2 release notes +======================== + +November 22nd 2017 + +Welcome to PyNN 0.9.2! + + +Recording injected currents +--------------------------- + +It is now possible to record the injected current from :class:`CurrentSource` objects in PyNN, for example: + +.. code-block:: python + + noise = sim.NoisyCurrentSource(mean=0.5, stdev=0.2, start=50.0, stop=450.0, dt=1.0) + noise.record() + + sim.run(500.0) + + signal = noise.get_data() + +The returned signal object is a Neo :class:`AnalogSignal`. + +Python 2.6 +---------- + +As of this version, PyNN no longer supports Python 2.6. + + +NEST 2.14.0 and NEURON 7.5 +-------------------------- + +PyNN 0.9.1 now supports the latest versions of NEST and NEURON. +NEURON 7.4 is also still supported. +NEST 2.12.0 should still work in most circumstances, +but current recording (see above) requires a more recent version. + + +native_electrode_type +--------------------- + +It has been possible for some time to use native (NEST-specific) neuron and synapse models with :mod:`pyNN.nest`. +It is now also possible to use native current generator models, e.g.: + +.. code-block:: python + + noise = sim.native_electrode_type('noise_generator')(mean=500.0, std=200.0, start=50.0, + stop=450.0, dt=1.0) + +Bug fixes +--------- + +A `number of bugs`_ have been fixed. + +.. _`number of bugs`: https://github.com/NeuralEnsemble/PyNN/issues?q=is%3Aissue+milestone%3A0.9.2+is%3Aclosed diff --git a/doc/releases/0.9.3.txt b/doc/releases/0.9.3.txt new file mode 100644 index 000000000..b4d28edcf --- /dev/null +++ b/doc/releases/0.9.3.txt @@ -0,0 +1,105 @@ +======================== +PyNN 0.9.3 release notes +======================== + +December 4th 2018 + +Welcome to PyNN 0.9.3! + + +NEST 2.16.0 +----------- + +PyNN 0.9.3 now supports the latest version of NEST. + + +Array-valued parameters +----------------------- + +The generalized integrate-and-fire model (:class:`GIF_cond_exp`) was added in version 0.8.3. +This model has multiple mechanisms, each with multiple time constants, +e.g. `tau_eta1`, `tau_eta2`, `tau_eta3`. +To simplify parameterisation of such models, we now allow array-valued parameters, +specified as a tuple, e.g. instead of: + +.. code-block:: python + + GIF_cond_exp( + ... + tau_eta1=1.0, tau_eta2=10.0, tau_eta3=100.0 + ... + ) + +we now write: + +.. code-block:: python + + GIF_cond_exp( + ... + tau_eta=(1.0, 10.0, 100.0) + ) + +As for other parameter types, we can also specify inhomogeneous values across a population +using lists of tuples, or generator functions. + +Project governance and code of conduct +-------------------------------------- + +In an attempt to follow best practices in the governance of open source software projects, +we have adopted some :doc:`rules and guidelines ` concerning the rights +and obligations of contributors and of maintainers, and of how we decide who will be a maintainer. + +This includes a code of conduct for contributors and maintainers, +aimed at fostering an open and welcoming environment. + +Simplified use of random number generators +------------------------------------------ + +Previously, a random number generator with `parallel_safe=False` +would always draw a reduced number of values when run with >1 MPI processes, +according to the number of processes, unless the `mask_local` parameter was set to False. + +Now, a mask must be explicitly provided if you want to draw a reduced number of values +(i.e. only those values consumed on that node). + +If provided, the `mask` parameter (renamed from `mask_local`) should be a boolean or +integer NumPy array, indicating that only a subset of the random numbers should be returned. + +Example:: + + rng.next(5, mask=np.array([True, False, True, False, True])) + +or:: + + rng.next(5, mask=np.array([0, 2, 4])) + +will each return only three values. + +If the rng is "parallel safe", an array of `n` values will be drawn from the rng, +and the mask applied. +If the rng is not parallel safe, the contents of the mask are disregarded, only its +size (for an integer mask) or the number of True values (for a boolean mask) +is used in determining how many values to draw. + + +Support for NEURON "ARTIFICIAL_CELL" models +------------------------------------------- + +When using the NEURON simulator through PyNN, it is now possible to use "ARTIFICIAL_CELL" models, +such as :class:`IntFire1`, :class:`IntFire2` and :class:`IntFire4`: + +.. testcode:: nativemodel + + from pyNN.neuron import setup, Population, IntFire1 + + setup() + p1 = Population(10, IntFire1(tau=10.0, refrac=2.5)) + p1.record('m') + + +Bug fixes and performance improvements +-------------------------------------- + +A `number of bugs`_ have been fixed, and some performance optimizations have been made. + +.. _`number of bugs`: https://github.com/NeuralEnsemble/PyNN/issues?q=is%3Aissue+milestone%3A0.9.3+is%3Aclosed diff --git a/doc/releases/0.9.4.txt b/doc/releases/0.9.4.txt new file mode 100644 index 000000000..485db9197 --- /dev/null +++ b/doc/releases/0.9.4.txt @@ -0,0 +1,33 @@ +======================== +PyNN 0.9.4 release notes +======================== + +March 22nd 2019 + +Welcome to PyNN 0.9.4! + + +SONATA +------- + +SONATA_ is a data format for representing/storing data-driven spiking neuronal network models, experimental protocols +(injecting spikes, currents) and simulation outputs. + +In the network representation, all connections are represented explicity, as in PyNN’s +:class:`FromFileConnector` and :class:`FromListConnector`. + +A PyNN model/simulation script can be exported in SONATA format, +and a SONATA model/simulation can be read and executed through PyNN +provided the cell types used in the model are compatible with PyNN, +i.e. they must be point neurons. + +For more information on working with the SONATA format, see :ref:`sec-sonata`. + + +Bug fixes and performance improvements +-------------------------------------- + +A `small number of bugs`_ have been fixed, and the documentation clarified in a few places. + +.. _SONATA: https://github.com/AllenInstitute/sonata +.. _`small number of bugs`: https://github.com/NeuralEnsemble/PyNN/issues?q=milestone%3A0.9.4+is%3Aclosed diff --git a/doc/releases/0.9.5.txt b/doc/releases/0.9.5.txt new file mode 100644 index 000000000..894f28cec --- /dev/null +++ b/doc/releases/0.9.5.txt @@ -0,0 +1,21 @@ +======================== +PyNN 0.9.5 release notes +======================== + +December 5th 2019 + +Welcome to PyNN 0.9.5! + + +NEST 2.18.0 +----------- + +PyNN now supports the latest version of NEST. + + +Bug fixes +--------- + +A `small number of bugs`_ have been fixed. + +.. _`small number of bugs`: https://github.com/NeuralEnsemble/PyNN/issues?q=milestone%3A0.9.5+is%3Aclosed diff --git a/doc/releases/0.9.6.txt b/doc/releases/0.9.6.txt new file mode 100644 index 000000000..a0dda4097 --- /dev/null +++ b/doc/releases/0.9.6.txt @@ -0,0 +1,33 @@ +======================== +PyNN 0.9.6 release notes +======================== + +December 17th 2020 + +Welcome to PyNN 0.9.6! + + +NEST 2.20.0 +----------- + +PyNN now supports the latest version of NEST_. + +Beta support for Brian 2 +------------------------ + +PyNN now supports running simulations with `Brian 2`_. +A few small bugs remain, so we regard this as a preview release for wider testing. + +End of support for Python 2.7 and Brian 1 +----------------------------------------- + +This is the last release with support for Python 2.7 (and therefore, for Brian 1). + +Bug fixes +--------- + +A `small number of bugs`_ have been fixed. + +.. _`small number of bugs`: https://github.com/NeuralEnsemble/PyNN/issues?q=milestone%3A0.9.6+is%3Aclosed +.. _NEST: https://www.nest-simulator.org +.. _`Brian 2`: https://brian2.readthedocs.io \ No newline at end of file diff --git a/doc/standardmodels.txt b/doc/standardmodels.txt index 6982c10e5..afb420e23 100644 --- a/doc/standardmodels.txt +++ b/doc/standardmodels.txt @@ -32,9 +32,9 @@ Name Default value Units Description ``v_rest`` -65.0 mV Resting membrane potential ``cm`` 1.0 nF Capacity of the membrane ``tau_m`` 20.0 ms Membrane time constant -``tau_refrac`` 0.0 ms Duration of refractory period -``tau_syn_E`` 5.0 ms Rise time of the excitatory synaptic alpha function -``tau_syn_I`` 5.0 ms Rise time of the inhibitory synaptic alpha function +``tau_refrac`` 0.1 ms Duration of refractory period +``tau_syn_E`` 0.5 ms Rise time of the excitatory synaptic alpha function +``tau_syn_I`` 0.5 ms Rise time of the inhibitory synaptic alpha function ``i_offset`` 0.0 nA Offset current ``v_reset`` -65.0 mV Reset potential after a spike ``v_thresh`` -50.0 mV Spike threshold @@ -55,7 +55,7 @@ Name Default value Units Description ``v_rest`` -65.0 mV Resting membrane potential ``cm`` 1.0 nF Capacity of the membrane ``tau_m`` 20.0 ms Membrane time constant -``tau_refrac`` 0.0 ms Duration of refractory period +``tau_refrac`` 0.1 ms Duration of refractory period ``tau_syn_E`` 5.0 ms Decay time of excitatory synaptic current ``tau_syn_I`` 5.0 ms Decay time of inhibitory synaptic current ``i_offset`` 0.0 nA Offset current @@ -77,9 +77,9 @@ Name Default value Units Description ``v_rest`` -65.0 mV Resting membrane potential ``cm`` 1.0 nF Capacity of the membrane ``tau_m`` 20.0 ms Membrane time constant -``tau_refrac`` 0.0 ms Duration of refractory period -``tau_syn_E`` 5.0 ms Rise time of the excitatory synaptic alpha function -``tau_syn_I`` 5.0 ms Rise time of the inhibitory synaptic alpha function +``tau_refrac`` 0.1 ms Duration of refractory period +``tau_syn_E`` 0.3 ms Rise time of the excitatory synaptic alpha function +``tau_syn_I`` 0.5 ms Rise time of the inhibitory synaptic alpha function ``e_rev_E`` 0.0 mV Reversal potential for excitatory input ``e_rev_I`` -70.0 mV Reversal potential for inhibitory input ``v_thresh`` -50.0 mV Spike threshold @@ -101,7 +101,7 @@ Name Default value Units Description ``v_rest`` -65.0 mV Resting membrane potential ``cm`` 1.0 nF Capacity of the membrane ``tau_m`` 20.0 ms Membrane time constant -``tau_refrac`` 0.0 ms Duration of refractory period +``tau_refrac`` 0.1 ms Duration of refractory period ``tau_syn_E`` 5.0 ms Decay time of the excitatory synaptic conductance ``tau_syn_I`` 5.0 ms Decay time of the inhibitory synaptic conductance ``e_rev_E`` 0.0 mV Reversal potential for excitatory input @@ -151,8 +151,8 @@ Availability: NEST, NEURON, Brian Name Default value Units Description ============== ============= ===== =================================================== ``cm`` 0.281 nF Capacity of the membrane -``tau_refrac`` 0.0 ms Duration of refractory period -``v_spike`` 0.0 mV Spike detection threshold +``tau_refrac`` 0.1 ms Duration of refractory period +``v_spike`` -40.0 mV Spike detection threshold ``v_reset`` -70.6 mV Reset value for membrane potential after a spike ``v_rest`` -70.6 mV Resting membrane potential (Leak reversal potential) ``tau_m`` 9.3667 ms Membrane time constant diff --git a/doc/units.txt b/doc/units.txt index 43d27e70c..b166a9f13 100644 --- a/doc/units.txt +++ b/doc/units.txt @@ -16,4 +16,7 @@ conductance µS capacitance nF firing rate /s phase/angle deg -================= ===== \ No newline at end of file +================= ===== + +Synaptic weights are in microsiemens or nanoamps, depending on whether the post-synaptic mechanism implements a change in conductance or current. +Distances are typically in microns, but any distance scale can be used, provided it is used consistently. diff --git a/examples/HH_cond_exp2.py b/examples/HH_cond_exp2.py index 4c4a60591..f693c645f 100644 --- a/examples/HH_cond_exp2.py +++ b/examples/HH_cond_exp2.py @@ -15,7 +15,7 @@ from pyNN.utility import get_script_args -make_plot = False +make_plot = True simulator_name = get_script_args(1)[0] exec("from pyNN.%s import *" % simulator_name) @@ -51,6 +51,7 @@ hhcell.can_record = lambda x: True # hack for native_name in var_names[simulator_name].values(): hhcell.record(native_name) + hhcell.celltype.units[native_name] = '' run(20.0) diff --git a/examples/NEST_nineml_models/StdpSongAbbott/compile/CMakeCache.txt b/examples/NEST_nineml_models/StdpSongAbbott/compile/CMakeCache.txt new file mode 100644 index 000000000..e05911288 --- /dev/null +++ b/examples/NEST_nineml_models/StdpSongAbbott/compile/CMakeCache.txt @@ -0,0 +1,404 @@ +# This is the CMakeCache file. +# For build in directory: /home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/compile +# It was generated by CMake: /home/pedroernesto/anaconda3/lib/python3.7/site-packages/cmake/data/bin/cmake +# You can edit this file to change values found and used by cmake. +# If you do not want to change any of the values, simply exit the editor. +# If you do want to change a value, simply edit, save, and exit the editor. +# The syntax for the file is as follows: +# KEY:TYPE=VALUE +# KEY is the name of a variable in the cache. +# TYPE is a hint to GUIs for the type of VALUE, DO NOT EDIT TYPE!. +# VALUE is the current value for the KEY. + +######################## +# EXTERNAL cache entries +######################## + +//Path to a program. +CMAKE_ADDR2LINE:FILEPATH=/home/pedroernesto/anaconda3/bin/x86_64-conda_cos6-linux-gnu-addr2line + +//Path to a program. +CMAKE_AR:FILEPATH=/home/pedroernesto/anaconda3/bin/x86_64-conda_cos6-linux-gnu-ar + +//Choose the type of build, options are: None Debug Release RelWithDebInfo +// MinSizeRel ... +CMAKE_BUILD_TYPE:STRING= + +//Enable/Disable color output during build. +CMAKE_COLOR_MAKEFILE:BOOL=ON + +//A wrapper around 'ar' adding the appropriate '--plugin' option +// for the GCC compiler +CMAKE_CXX_COMPILER_AR:FILEPATH=/home/pedroernesto/anaconda3/bin/x86_64-conda_cos6-linux-gnu-gcc-ar + +//A wrapper around 'ranlib' adding the appropriate '--plugin' option +// for the GCC compiler +CMAKE_CXX_COMPILER_RANLIB:FILEPATH=/home/pedroernesto/anaconda3/bin/x86_64-conda_cos6-linux-gnu-gcc-ranlib + +//Flags used by the CXX compiler during all build types. +CMAKE_CXX_FLAGS:STRING= + +//Flags used by the CXX compiler during DEBUG builds. +CMAKE_CXX_FLAGS_DEBUG:STRING=-g + +//Flags used by the CXX compiler during MINSIZEREL builds. +CMAKE_CXX_FLAGS_MINSIZEREL:STRING=-Os -DNDEBUG + +//Flags used by the CXX compiler during RELEASE builds. +CMAKE_CXX_FLAGS_RELEASE:STRING=-O3 -DNDEBUG + +//Flags used by the CXX compiler during RELWITHDEBINFO builds. +CMAKE_CXX_FLAGS_RELWITHDEBINFO:STRING=-O2 -g -DNDEBUG + +//Path to a program. +CMAKE_DLLTOOL:FILEPATH=CMAKE_DLLTOOL-NOTFOUND + +//Flags used by the linker during all build types. +CMAKE_EXE_LINKER_FLAGS:STRING= + +//Flags used by the linker during DEBUG builds. +CMAKE_EXE_LINKER_FLAGS_DEBUG:STRING= + +//Flags used by the linker during MINSIZEREL builds. +CMAKE_EXE_LINKER_FLAGS_MINSIZEREL:STRING= + +//Flags used by the linker during RELEASE builds. +CMAKE_EXE_LINKER_FLAGS_RELEASE:STRING= + +//Flags used by the linker during RELWITHDEBINFO builds. +CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO:STRING= + +//Enable/Disable output of compile commands during generation. +CMAKE_EXPORT_COMPILE_COMMANDS:BOOL= + +//User executables (bin) +CMAKE_INSTALL_BINDIR:PATH=bin + +//Read-only architecture-independent data (DATAROOTDIR) +CMAKE_INSTALL_DATADIR:PATH= + +//Read-only architecture-independent data root (share) +CMAKE_INSTALL_DATAROOTDIR:PATH=share + +//Documentation root (DATAROOTDIR/doc/PROJECT_NAME) +CMAKE_INSTALL_DOCDIR:PATH= + +//C header files (include) +CMAKE_INSTALL_INCLUDEDIR:PATH=include + +//Info documentation (DATAROOTDIR/info) +CMAKE_INSTALL_INFODIR:PATH= + +//Object code libraries (lib) +CMAKE_INSTALL_LIBDIR:PATH=lib + +//Program executables (libexec) +CMAKE_INSTALL_LIBEXECDIR:PATH=libexec + +//Locale-dependent data (DATAROOTDIR/locale) +CMAKE_INSTALL_LOCALEDIR:PATH= + +//Modifiable single-machine data (var) +CMAKE_INSTALL_LOCALSTATEDIR:PATH=var + +//Man documentation (DATAROOTDIR/man) +CMAKE_INSTALL_MANDIR:PATH= + +//C header files for non-gcc (/usr/include) +CMAKE_INSTALL_OLDINCLUDEDIR:PATH=/usr/include + +//Install path prefix, prepended onto install directories. +CMAKE_INSTALL_PREFIX:PATH=/home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/install + +//Run-time variable data (LOCALSTATEDIR/run) +CMAKE_INSTALL_RUNSTATEDIR:PATH= + +//System admin executables (sbin) +CMAKE_INSTALL_SBINDIR:PATH=sbin + +//Modifiable architecture-independent data (com) +CMAKE_INSTALL_SHAREDSTATEDIR:PATH=com + +//Read-only single-machine data (etc) +CMAKE_INSTALL_SYSCONFDIR:PATH=etc + +//Path to a program. +CMAKE_LINKER:FILEPATH=/home/pedroernesto/anaconda3/bin/x86_64-conda_cos6-linux-gnu-ld + +//Path to a program. +CMAKE_MAKE_PROGRAM:FILEPATH=/usr/bin/make + +//Flags used by the linker during the creation of modules during +// all build types. +CMAKE_MODULE_LINKER_FLAGS:STRING= + +//Flags used by the linker during the creation of modules during +// DEBUG builds. +CMAKE_MODULE_LINKER_FLAGS_DEBUG:STRING= + +//Flags used by the linker during the creation of modules during +// MINSIZEREL builds. +CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL:STRING= + +//Flags used by the linker during the creation of modules during +// RELEASE builds. +CMAKE_MODULE_LINKER_FLAGS_RELEASE:STRING= + +//Flags used by the linker during the creation of modules during +// RELWITHDEBINFO builds. +CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO:STRING= + +//Path to a program. +CMAKE_NM:FILEPATH=/home/pedroernesto/anaconda3/bin/x86_64-conda_cos6-linux-gnu-nm + +//Path to a program. +CMAKE_OBJCOPY:FILEPATH=/home/pedroernesto/anaconda3/bin/x86_64-conda_cos6-linux-gnu-objcopy + +//Path to a program. +CMAKE_OBJDUMP:FILEPATH=/home/pedroernesto/anaconda3/bin/x86_64-conda_cos6-linux-gnu-objdump + +//Value Computed by CMake +CMAKE_PROJECT_DESCRIPTION:STATIC= + +//Value Computed by CMake +CMAKE_PROJECT_HOMEPAGE_URL:STATIC= + +//Value Computed by CMake +CMAKE_PROJECT_NAME:STATIC=StdpSongAbbottmodule + +//Path to a program. +CMAKE_RANLIB:FILEPATH=/home/pedroernesto/anaconda3/bin/x86_64-conda_cos6-linux-gnu-ranlib + +//Path to a program. +CMAKE_READELF:FILEPATH=/home/pedroernesto/anaconda3/bin/x86_64-conda_cos6-linux-gnu-readelf + +//Flags used by the linker during the creation of shared libraries +// during all build types. +CMAKE_SHARED_LINKER_FLAGS:STRING= + +//Flags used by the linker during the creation of shared libraries +// during DEBUG builds. +CMAKE_SHARED_LINKER_FLAGS_DEBUG:STRING= + +//Flags used by the linker during the creation of shared libraries +// during MINSIZEREL builds. +CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL:STRING= + +//Flags used by the linker during the creation of shared libraries +// during RELEASE builds. +CMAKE_SHARED_LINKER_FLAGS_RELEASE:STRING= + +//Flags used by the linker during the creation of shared libraries +// during RELWITHDEBINFO builds. +CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO:STRING= + +//If set, runtime paths are not added when installing shared libraries, +// but are added when building. +CMAKE_SKIP_INSTALL_RPATH:BOOL=NO + +//If set, runtime paths are not added when using shared libraries. +CMAKE_SKIP_RPATH:BOOL=NO + +//Flags used by the linker during the creation of static libraries +// during all build types. +CMAKE_STATIC_LINKER_FLAGS:STRING= + +//Flags used by the linker during the creation of static libraries +// during DEBUG builds. +CMAKE_STATIC_LINKER_FLAGS_DEBUG:STRING= + +//Flags used by the linker during the creation of static libraries +// during MINSIZEREL builds. +CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL:STRING= + +//Flags used by the linker during the creation of static libraries +// during RELEASE builds. +CMAKE_STATIC_LINKER_FLAGS_RELEASE:STRING= + +//Flags used by the linker during the creation of static libraries +// during RELWITHDEBINFO builds. +CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO:STRING= + +//Path to a program. +CMAKE_STRIP:FILEPATH=/home/pedroernesto/anaconda3/bin/x86_64-conda_cos6-linux-gnu-strip + +//If this value is on, makefiles will be generated without the +// .SILENT directive, and all commands will be echoed to the console +// during the make. This is useful for debugging only. With Visual +// Studio IDE projects all commands are done without /nologo. +CMAKE_VERBOSE_MAKEFILE:BOOL=FALSE + +//Value Computed by CMake +StdpSongAbbottmodule_BINARY_DIR:STATIC=/home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/compile + +//Value Computed by CMake +StdpSongAbbottmodule_SOURCE_DIR:STATIC=/home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/src + +//Specify the `nest-config` executable. +with-nest:STRING=/home/pedroernesto/anaconda3/build/NEST/bin/nest-config + + +######################## +# INTERNAL cache entries +######################## + +//ADVANCED property for variable: CMAKE_ADDR2LINE +CMAKE_ADDR2LINE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_AR +CMAKE_AR-ADVANCED:INTERNAL=1 +//This is the directory where this CMakeCache.txt was created +CMAKE_CACHEFILE_DIR:INTERNAL=/home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/compile +//Major version of cmake used to create the current loaded cache +CMAKE_CACHE_MAJOR_VERSION:INTERNAL=3 +//Minor version of cmake used to create the current loaded cache +CMAKE_CACHE_MINOR_VERSION:INTERNAL=18 +//Patch version of cmake used to create the current loaded cache +CMAKE_CACHE_PATCH_VERSION:INTERNAL=4 +//ADVANCED property for variable: CMAKE_COLOR_MAKEFILE +CMAKE_COLOR_MAKEFILE-ADVANCED:INTERNAL=1 +//Path to CMake executable. +CMAKE_COMMAND:INTERNAL=/home/pedroernesto/anaconda3/lib/python3.7/site-packages/cmake/data/bin/cmake +//Path to cpack program executable. +CMAKE_CPACK_COMMAND:INTERNAL=/home/pedroernesto/anaconda3/lib/python3.7/site-packages/cmake/data/bin/cpack +//Path to ctest program executable. +CMAKE_CTEST_COMMAND:INTERNAL=/home/pedroernesto/anaconda3/lib/python3.7/site-packages/cmake/data/bin/ctest +//ADVANCED property for variable: CMAKE_CXX_COMPILER_AR +CMAKE_CXX_COMPILER_AR-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_COMPILER_RANLIB +CMAKE_CXX_COMPILER_RANLIB-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS +CMAKE_CXX_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS_DEBUG +CMAKE_CXX_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS_MINSIZEREL +CMAKE_CXX_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS_RELEASE +CMAKE_CXX_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS_RELWITHDEBINFO +CMAKE_CXX_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_DLLTOOL +CMAKE_DLLTOOL-ADVANCED:INTERNAL=1 +//Executable file format +CMAKE_EXECUTABLE_FORMAT:INTERNAL=ELF +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS +CMAKE_EXE_LINKER_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_DEBUG +CMAKE_EXE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_MINSIZEREL +CMAKE_EXE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELEASE +CMAKE_EXE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO +CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXPORT_COMPILE_COMMANDS +CMAKE_EXPORT_COMPILE_COMMANDS-ADVANCED:INTERNAL=1 +//Name of external makefile project generator. +CMAKE_EXTRA_GENERATOR:INTERNAL= +//Name of generator. +CMAKE_GENERATOR:INTERNAL=Unix Makefiles +//Generator instance identifier. +CMAKE_GENERATOR_INSTANCE:INTERNAL= +//Name of generator platform. +CMAKE_GENERATOR_PLATFORM:INTERNAL= +//Name of generator toolset. +CMAKE_GENERATOR_TOOLSET:INTERNAL= +//Source directory with the top level CMakeLists.txt file for this +// project +CMAKE_HOME_DIRECTORY:INTERNAL=/home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/src +//ADVANCED property for variable: CMAKE_INSTALL_BINDIR +CMAKE_INSTALL_BINDIR-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_INSTALL_DATADIR +CMAKE_INSTALL_DATADIR-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_INSTALL_DATAROOTDIR +CMAKE_INSTALL_DATAROOTDIR-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_INSTALL_DOCDIR +CMAKE_INSTALL_DOCDIR-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_INSTALL_INCLUDEDIR +CMAKE_INSTALL_INCLUDEDIR-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_INSTALL_INFODIR +CMAKE_INSTALL_INFODIR-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_INSTALL_LIBDIR +CMAKE_INSTALL_LIBDIR-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_INSTALL_LIBEXECDIR +CMAKE_INSTALL_LIBEXECDIR-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_INSTALL_LOCALEDIR +CMAKE_INSTALL_LOCALEDIR-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_INSTALL_LOCALSTATEDIR +CMAKE_INSTALL_LOCALSTATEDIR-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_INSTALL_MANDIR +CMAKE_INSTALL_MANDIR-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_INSTALL_OLDINCLUDEDIR +CMAKE_INSTALL_OLDINCLUDEDIR-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_INSTALL_RUNSTATEDIR +CMAKE_INSTALL_RUNSTATEDIR-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_INSTALL_SBINDIR +CMAKE_INSTALL_SBINDIR-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_INSTALL_SHAREDSTATEDIR +CMAKE_INSTALL_SHAREDSTATEDIR-ADVANCED:INTERNAL=1 +//Install .so files without execute permission. +CMAKE_INSTALL_SO_NO_EXE:INTERNAL=1 +//ADVANCED property for variable: CMAKE_INSTALL_SYSCONFDIR +CMAKE_INSTALL_SYSCONFDIR-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_LINKER +CMAKE_LINKER-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MAKE_PROGRAM +CMAKE_MAKE_PROGRAM-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS +CMAKE_MODULE_LINKER_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_DEBUG +CMAKE_MODULE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL +CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELEASE +CMAKE_MODULE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO +CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_NM +CMAKE_NM-ADVANCED:INTERNAL=1 +//number of local generators +CMAKE_NUMBER_OF_MAKEFILES:INTERNAL=1 +//ADVANCED property for variable: CMAKE_OBJCOPY +CMAKE_OBJCOPY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_OBJDUMP +CMAKE_OBJDUMP-ADVANCED:INTERNAL=1 +//Platform information initialized +CMAKE_PLATFORM_INFO_INITIALIZED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_RANLIB +CMAKE_RANLIB-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_READELF +CMAKE_READELF-ADVANCED:INTERNAL=1 +//Path to CMake installation. +CMAKE_ROOT:INTERNAL=/home/pedroernesto/anaconda3/lib/python3.7/site-packages/cmake/data/share/cmake-3.18 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS +CMAKE_SHARED_LINKER_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_DEBUG +CMAKE_SHARED_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL +CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELEASE +CMAKE_SHARED_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO +CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SKIP_INSTALL_RPATH +CMAKE_SKIP_INSTALL_RPATH-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SKIP_RPATH +CMAKE_SKIP_RPATH-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS +CMAKE_STATIC_LINKER_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_DEBUG +CMAKE_STATIC_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL +CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELEASE +CMAKE_STATIC_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO +CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STRIP +CMAKE_STRIP-ADVANCED:INTERNAL=1 +//uname command +CMAKE_UNAME:INTERNAL=/bin/uname +//ADVANCED property for variable: CMAKE_VERBOSE_MAKEFILE +CMAKE_VERBOSE_MAKEFILE-ADVANCED:INTERNAL=1 +//CMAKE_INSTALL_PREFIX during last run +_GNUInstallDirs_LAST_CMAKE_INSTALL_PREFIX:INTERNAL=/home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/install + diff --git a/examples/NEST_nineml_models/StdpSongAbbott/compile/CMakeFiles/3.18.4/CMakeCXXCompiler.cmake b/examples/NEST_nineml_models/StdpSongAbbott/compile/CMakeFiles/3.18.4/CMakeCXXCompiler.cmake new file mode 100644 index 000000000..4648611c5 --- /dev/null +++ b/examples/NEST_nineml_models/StdpSongAbbott/compile/CMakeFiles/3.18.4/CMakeCXXCompiler.cmake @@ -0,0 +1,90 @@ +set(CMAKE_CXX_COMPILER "/home/pedroernesto/anaconda3/bin/x86_64-conda_cos6-linux-gnu-c++") +set(CMAKE_CXX_COMPILER_ARG1 "") +set(CMAKE_CXX_COMPILER_ID "GNU") +set(CMAKE_CXX_COMPILER_VERSION "7.3.0") +set(CMAKE_CXX_COMPILER_VERSION_INTERNAL "") +set(CMAKE_CXX_COMPILER_WRAPPER "") +set(CMAKE_CXX_STANDARD_COMPUTED_DEFAULT "14") +set(CMAKE_CXX_COMPILE_FEATURES "cxx_std_98;cxx_template_template_parameters;cxx_std_11;cxx_alias_templates;cxx_alignas;cxx_alignof;cxx_attributes;cxx_auto_type;cxx_constexpr;cxx_decltype;cxx_decltype_incomplete_return_types;cxx_default_function_template_args;cxx_defaulted_functions;cxx_defaulted_move_initializers;cxx_delegating_constructors;cxx_deleted_functions;cxx_enum_forward_declarations;cxx_explicit_conversions;cxx_extended_friend_declarations;cxx_extern_templates;cxx_final;cxx_func_identifier;cxx_generalized_initializers;cxx_inheriting_constructors;cxx_inline_namespaces;cxx_lambdas;cxx_local_type_template_args;cxx_long_long_type;cxx_noexcept;cxx_nonstatic_member_init;cxx_nullptr;cxx_override;cxx_range_for;cxx_raw_string_literals;cxx_reference_qualified_functions;cxx_right_angle_brackets;cxx_rvalue_references;cxx_sizeof_member;cxx_static_assert;cxx_strong_enums;cxx_thread_local;cxx_trailing_return_types;cxx_unicode_literals;cxx_uniform_initialization;cxx_unrestricted_unions;cxx_user_literals;cxx_variadic_macros;cxx_variadic_templates;cxx_std_14;cxx_aggregate_default_initializers;cxx_attribute_deprecated;cxx_binary_literals;cxx_contextual_conversions;cxx_decltype_auto;cxx_digit_separators;cxx_generic_lambdas;cxx_lambda_init_captures;cxx_relaxed_constexpr;cxx_return_type_deduction;cxx_variable_templates;cxx_std_17") +set(CMAKE_CXX98_COMPILE_FEATURES "cxx_std_98;cxx_template_template_parameters") +set(CMAKE_CXX11_COMPILE_FEATURES "cxx_std_11;cxx_alias_templates;cxx_alignas;cxx_alignof;cxx_attributes;cxx_auto_type;cxx_constexpr;cxx_decltype;cxx_decltype_incomplete_return_types;cxx_default_function_template_args;cxx_defaulted_functions;cxx_defaulted_move_initializers;cxx_delegating_constructors;cxx_deleted_functions;cxx_enum_forward_declarations;cxx_explicit_conversions;cxx_extended_friend_declarations;cxx_extern_templates;cxx_final;cxx_func_identifier;cxx_generalized_initializers;cxx_inheriting_constructors;cxx_inline_namespaces;cxx_lambdas;cxx_local_type_template_args;cxx_long_long_type;cxx_noexcept;cxx_nonstatic_member_init;cxx_nullptr;cxx_override;cxx_range_for;cxx_raw_string_literals;cxx_reference_qualified_functions;cxx_right_angle_brackets;cxx_rvalue_references;cxx_sizeof_member;cxx_static_assert;cxx_strong_enums;cxx_thread_local;cxx_trailing_return_types;cxx_unicode_literals;cxx_uniform_initialization;cxx_unrestricted_unions;cxx_user_literals;cxx_variadic_macros;cxx_variadic_templates") +set(CMAKE_CXX14_COMPILE_FEATURES "cxx_std_14;cxx_aggregate_default_initializers;cxx_attribute_deprecated;cxx_binary_literals;cxx_contextual_conversions;cxx_decltype_auto;cxx_digit_separators;cxx_generic_lambdas;cxx_lambda_init_captures;cxx_relaxed_constexpr;cxx_return_type_deduction;cxx_variable_templates") +set(CMAKE_CXX17_COMPILE_FEATURES "cxx_std_17") +set(CMAKE_CXX20_COMPILE_FEATURES "") + +set(CMAKE_CXX_PLATFORM_ID "Linux") +set(CMAKE_CXX_SIMULATE_ID "") +set(CMAKE_CXX_COMPILER_FRONTEND_VARIANT "") +set(CMAKE_CXX_SIMULATE_VERSION "") + +set(CMAKE_CXX_COMPILER_SYSROOT "/home/pedroernesto/anaconda3/bin/../x86_64-conda_cos6-linux-gnu/sysroot/usr") +set(CMAKE_COMPILER_SYSROOT "/home/pedroernesto/anaconda3/bin/../x86_64-conda_cos6-linux-gnu/sysroot/usr") + + +set(CMAKE_AR "/home/pedroernesto/anaconda3/bin/x86_64-conda_cos6-linux-gnu-ar") +set(CMAKE_CXX_COMPILER_AR "/home/pedroernesto/anaconda3/bin/x86_64-conda_cos6-linux-gnu-gcc-ar") +set(CMAKE_RANLIB "/home/pedroernesto/anaconda3/bin/x86_64-conda_cos6-linux-gnu-ranlib") +set(CMAKE_CXX_COMPILER_RANLIB "/home/pedroernesto/anaconda3/bin/x86_64-conda_cos6-linux-gnu-gcc-ranlib") +set(CMAKE_LINKER "/home/pedroernesto/anaconda3/bin/x86_64-conda_cos6-linux-gnu-ld") +set(CMAKE_MT "") +set(CMAKE_COMPILER_IS_GNUCXX 1) +set(CMAKE_CXX_COMPILER_LOADED 1) +set(CMAKE_CXX_COMPILER_WORKS TRUE) +set(CMAKE_CXX_ABI_COMPILED TRUE) +set(CMAKE_COMPILER_IS_MINGW ) +set(CMAKE_COMPILER_IS_CYGWIN ) +if(CMAKE_COMPILER_IS_CYGWIN) + set(CYGWIN 1) + set(UNIX 1) +endif() + +set(CMAKE_CXX_COMPILER_ENV_VAR "CXX") + +if(CMAKE_COMPILER_IS_MINGW) + set(MINGW 1) +endif() +set(CMAKE_CXX_COMPILER_ID_RUN 1) +set(CMAKE_CXX_SOURCE_FILE_EXTENSIONS C;M;c++;cc;cpp;cxx;m;mm;CPP) +set(CMAKE_CXX_IGNORE_EXTENSIONS inl;h;hpp;HPP;H;o;O;obj;OBJ;def;DEF;rc;RC) + +foreach (lang C OBJC OBJCXX) + if (CMAKE_${lang}_COMPILER_ID_RUN) + foreach(extension IN LISTS CMAKE_${lang}_SOURCE_FILE_EXTENSIONS) + list(REMOVE_ITEM CMAKE_CXX_SOURCE_FILE_EXTENSIONS ${extension}) + endforeach() + endif() +endforeach() + +set(CMAKE_CXX_LINKER_PREFERENCE 30) +set(CMAKE_CXX_LINKER_PREFERENCE_PROPAGATES 1) + +# Save compiler ABI information. +set(CMAKE_CXX_SIZEOF_DATA_PTR "8") +set(CMAKE_CXX_COMPILER_ABI "ELF") +set(CMAKE_CXX_LIBRARY_ARCHITECTURE "") + +if(CMAKE_CXX_SIZEOF_DATA_PTR) + set(CMAKE_SIZEOF_VOID_P "${CMAKE_CXX_SIZEOF_DATA_PTR}") +endif() + +if(CMAKE_CXX_COMPILER_ABI) + set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_CXX_COMPILER_ABI}") +endif() + +if(CMAKE_CXX_LIBRARY_ARCHITECTURE) + set(CMAKE_LIBRARY_ARCHITECTURE "") +endif() + +set(CMAKE_CXX_CL_SHOWINCLUDES_PREFIX "") +if(CMAKE_CXX_CL_SHOWINCLUDES_PREFIX) + set(CMAKE_CL_SHOWINCLUDES_PREFIX "${CMAKE_CXX_CL_SHOWINCLUDES_PREFIX}") +endif() + + + + + +set(CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES "/home/pedroernesto/anaconda3/x86_64-conda_cos6-linux-gnu/include/c++/7.3.0;/home/pedroernesto/anaconda3/x86_64-conda_cos6-linux-gnu/include/c++/7.3.0/x86_64-conda_cos6-linux-gnu;/home/pedroernesto/anaconda3/x86_64-conda_cos6-linux-gnu/include/c++/7.3.0/backward;/home/pedroernesto/anaconda3/lib/gcc/x86_64-conda_cos6-linux-gnu/7.3.0/include;/home/pedroernesto/anaconda3/lib/gcc/x86_64-conda_cos6-linux-gnu/7.3.0/include-fixed;/home/pedroernesto/anaconda3/x86_64-conda_cos6-linux-gnu/include;/home/pedroernesto/anaconda3/x86_64-conda_cos6-linux-gnu/sysroot/usr/include") +set(CMAKE_CXX_IMPLICIT_LINK_LIBRARIES "stdc++;m;gcc_s;gcc;c;gcc_s;gcc") +set(CMAKE_CXX_IMPLICIT_LINK_DIRECTORIES "/home/pedroernesto/anaconda3/lib/gcc/x86_64-conda_cos6-linux-gnu/7.3.0;/home/pedroernesto/anaconda3/lib/gcc;/home/pedroernesto/anaconda3/x86_64-conda_cos6-linux-gnu/lib;/home/pedroernesto/anaconda3/x86_64-conda_cos6-linux-gnu/sysroot/lib;/home/pedroernesto/anaconda3/x86_64-conda_cos6-linux-gnu/sysroot/usr/lib") +set(CMAKE_CXX_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "") diff --git a/examples/NEST_nineml_models/StdpSongAbbott/compile/CMakeFiles/3.18.4/CMakeDetermineCompilerABI_CXX.bin b/examples/NEST_nineml_models/StdpSongAbbott/compile/CMakeFiles/3.18.4/CMakeDetermineCompilerABI_CXX.bin new file mode 100755 index 000000000..c68544f2f Binary files /dev/null and b/examples/NEST_nineml_models/StdpSongAbbott/compile/CMakeFiles/3.18.4/CMakeDetermineCompilerABI_CXX.bin differ diff --git a/examples/NEST_nineml_models/StdpSongAbbott/compile/CMakeFiles/3.18.4/CMakeSystem.cmake b/examples/NEST_nineml_models/StdpSongAbbott/compile/CMakeFiles/3.18.4/CMakeSystem.cmake new file mode 100644 index 000000000..2dd42f09b --- /dev/null +++ b/examples/NEST_nineml_models/StdpSongAbbott/compile/CMakeFiles/3.18.4/CMakeSystem.cmake @@ -0,0 +1,15 @@ +set(CMAKE_HOST_SYSTEM "Linux-4.15.0-140-generic") +set(CMAKE_HOST_SYSTEM_NAME "Linux") +set(CMAKE_HOST_SYSTEM_VERSION "4.15.0-140-generic") +set(CMAKE_HOST_SYSTEM_PROCESSOR "x86_64") + + + +set(CMAKE_SYSTEM "Linux-4.15.0-140-generic") +set(CMAKE_SYSTEM_NAME "Linux") +set(CMAKE_SYSTEM_VERSION "4.15.0-140-generic") +set(CMAKE_SYSTEM_PROCESSOR "x86_64") + +set(CMAKE_CROSSCOMPILING "FALSE") + +set(CMAKE_SYSTEM_LOADED 1) diff --git a/examples/NEST_nineml_models/StdpSongAbbott/compile/CMakeFiles/3.18.4/CompilerIdCXX/CMakeCXXCompilerId.cpp b/examples/NEST_nineml_models/StdpSongAbbott/compile/CMakeFiles/3.18.4/CompilerIdCXX/CMakeCXXCompilerId.cpp new file mode 100644 index 000000000..37c21cafe --- /dev/null +++ b/examples/NEST_nineml_models/StdpSongAbbott/compile/CMakeFiles/3.18.4/CompilerIdCXX/CMakeCXXCompilerId.cpp @@ -0,0 +1,663 @@ +/* This source file must have a .cpp extension so that all C++ compilers + recognize the extension without flags. Borland does not know .cxx for + example. */ +#ifndef __cplusplus +# error "A C compiler has been selected for C++." +#endif + + +/* Version number components: V=Version, R=Revision, P=Patch + Version date components: YYYY=Year, MM=Month, DD=Day */ + +#if defined(__COMO__) +# define COMPILER_ID "Comeau" + /* __COMO_VERSION__ = VRR */ +# define COMPILER_VERSION_MAJOR DEC(__COMO_VERSION__ / 100) +# define COMPILER_VERSION_MINOR DEC(__COMO_VERSION__ % 100) + +#elif defined(__INTEL_COMPILER) || defined(__ICC) +# define COMPILER_ID "Intel" +# if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +# endif +# if defined(__GNUC__) +# define SIMULATE_ID "GNU" +# endif + /* __INTEL_COMPILER = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER/100) +# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER/10 % 10) +# if defined(__INTEL_COMPILER_UPDATE) +# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER_UPDATE) +# else +# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER % 10) +# endif +# if defined(__INTEL_COMPILER_BUILD_DATE) + /* __INTEL_COMPILER_BUILD_DATE = YYYYMMDD */ +# define COMPILER_VERSION_TWEAK DEC(__INTEL_COMPILER_BUILD_DATE) +# endif +# if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +# endif +# if defined(__GNUC__) +# define SIMULATE_VERSION_MAJOR DEC(__GNUC__) +# elif defined(__GNUG__) +# define SIMULATE_VERSION_MAJOR DEC(__GNUG__) +# endif +# if defined(__GNUC_MINOR__) +# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__) +# endif +# if defined(__GNUC_PATCHLEVEL__) +# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) +# endif + +#elif defined(__PATHCC__) +# define COMPILER_ID "PathScale" +# define COMPILER_VERSION_MAJOR DEC(__PATHCC__) +# define COMPILER_VERSION_MINOR DEC(__PATHCC_MINOR__) +# if defined(__PATHCC_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__PATHCC_PATCHLEVEL__) +# endif + +#elif defined(__BORLANDC__) && defined(__CODEGEARC_VERSION__) +# define COMPILER_ID "Embarcadero" +# define COMPILER_VERSION_MAJOR HEX(__CODEGEARC_VERSION__>>24 & 0x00FF) +# define COMPILER_VERSION_MINOR HEX(__CODEGEARC_VERSION__>>16 & 0x00FF) +# define COMPILER_VERSION_PATCH DEC(__CODEGEARC_VERSION__ & 0xFFFF) + +#elif defined(__BORLANDC__) +# define COMPILER_ID "Borland" + /* __BORLANDC__ = 0xVRR */ +# define COMPILER_VERSION_MAJOR HEX(__BORLANDC__>>8) +# define COMPILER_VERSION_MINOR HEX(__BORLANDC__ & 0xFF) + +#elif defined(__WATCOMC__) && __WATCOMC__ < 1200 +# define COMPILER_ID "Watcom" + /* __WATCOMC__ = VVRR */ +# define COMPILER_VERSION_MAJOR DEC(__WATCOMC__ / 100) +# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10) +# if (__WATCOMC__ % 10) > 0 +# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10) +# endif + +#elif defined(__WATCOMC__) +# define COMPILER_ID "OpenWatcom" + /* __WATCOMC__ = VVRP + 1100 */ +# define COMPILER_VERSION_MAJOR DEC((__WATCOMC__ - 1100) / 100) +# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10) +# if (__WATCOMC__ % 10) > 0 +# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10) +# endif + +#elif defined(__SUNPRO_CC) +# define COMPILER_ID "SunPro" +# if __SUNPRO_CC >= 0x5100 + /* __SUNPRO_CC = 0xVRRP */ +# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_CC>>12) +# define COMPILER_VERSION_MINOR HEX(__SUNPRO_CC>>4 & 0xFF) +# define COMPILER_VERSION_PATCH HEX(__SUNPRO_CC & 0xF) +# else + /* __SUNPRO_CC = 0xVRP */ +# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_CC>>8) +# define COMPILER_VERSION_MINOR HEX(__SUNPRO_CC>>4 & 0xF) +# define COMPILER_VERSION_PATCH HEX(__SUNPRO_CC & 0xF) +# endif + +#elif defined(__HP_aCC) +# define COMPILER_ID "HP" + /* __HP_aCC = VVRRPP */ +# define COMPILER_VERSION_MAJOR DEC(__HP_aCC/10000) +# define COMPILER_VERSION_MINOR DEC(__HP_aCC/100 % 100) +# define COMPILER_VERSION_PATCH DEC(__HP_aCC % 100) + +#elif defined(__DECCXX) +# define COMPILER_ID "Compaq" + /* __DECCXX_VER = VVRRTPPPP */ +# define COMPILER_VERSION_MAJOR DEC(__DECCXX_VER/10000000) +# define COMPILER_VERSION_MINOR DEC(__DECCXX_VER/100000 % 100) +# define COMPILER_VERSION_PATCH DEC(__DECCXX_VER % 10000) + +#elif defined(__IBMCPP__) && defined(__COMPILER_VER__) +# define COMPILER_ID "zOS" + /* __IBMCPP__ = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100) +# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10) + +#elif defined(__ibmxl__) && defined(__clang__) +# define COMPILER_ID "XLClang" +# define COMPILER_VERSION_MAJOR DEC(__ibmxl_version__) +# define COMPILER_VERSION_MINOR DEC(__ibmxl_release__) +# define COMPILER_VERSION_PATCH DEC(__ibmxl_modification__) +# define COMPILER_VERSION_TWEAK DEC(__ibmxl_ptf_fix_level__) + + +#elif defined(__IBMCPP__) && !defined(__COMPILER_VER__) && __IBMCPP__ >= 800 +# define COMPILER_ID "XL" + /* __IBMCPP__ = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100) +# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10) + +#elif defined(__IBMCPP__) && !defined(__COMPILER_VER__) && __IBMCPP__ < 800 +# define COMPILER_ID "VisualAge" + /* __IBMCPP__ = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100) +# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10) + +#elif defined(__PGI) +# define COMPILER_ID "PGI" +# define COMPILER_VERSION_MAJOR DEC(__PGIC__) +# define COMPILER_VERSION_MINOR DEC(__PGIC_MINOR__) +# if defined(__PGIC_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__PGIC_PATCHLEVEL__) +# endif + +#elif defined(_CRAYC) +# define COMPILER_ID "Cray" +# define COMPILER_VERSION_MAJOR DEC(_RELEASE_MAJOR) +# define COMPILER_VERSION_MINOR DEC(_RELEASE_MINOR) + +#elif defined(__TI_COMPILER_VERSION__) +# define COMPILER_ID "TI" + /* __TI_COMPILER_VERSION__ = VVVRRRPPP */ +# define COMPILER_VERSION_MAJOR DEC(__TI_COMPILER_VERSION__/1000000) +# define COMPILER_VERSION_MINOR DEC(__TI_COMPILER_VERSION__/1000 % 1000) +# define COMPILER_VERSION_PATCH DEC(__TI_COMPILER_VERSION__ % 1000) + +#elif defined(__FUJITSU) || defined(__FCC_VERSION) || defined(__fcc_version) +# define COMPILER_ID "Fujitsu" + +#elif defined(__ghs__) +# define COMPILER_ID "GHS" +/* __GHS_VERSION_NUMBER = VVVVRP */ +# ifdef __GHS_VERSION_NUMBER +# define COMPILER_VERSION_MAJOR DEC(__GHS_VERSION_NUMBER / 100) +# define COMPILER_VERSION_MINOR DEC(__GHS_VERSION_NUMBER / 10 % 10) +# define COMPILER_VERSION_PATCH DEC(__GHS_VERSION_NUMBER % 10) +# endif + +#elif defined(__SCO_VERSION__) +# define COMPILER_ID "SCO" + +#elif defined(__ARMCC_VERSION) && !defined(__clang__) +# define COMPILER_ID "ARMCC" +#if __ARMCC_VERSION >= 1000000 + /* __ARMCC_VERSION = VRRPPPP */ + # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/1000000) + # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 100) + # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000) +#else + /* __ARMCC_VERSION = VRPPPP */ + # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/100000) + # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 10) + # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000) +#endif + + +#elif defined(__clang__) && defined(__apple_build_version__) +# define COMPILER_ID "AppleClang" +# if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +# endif +# define COMPILER_VERSION_MAJOR DEC(__clang_major__) +# define COMPILER_VERSION_MINOR DEC(__clang_minor__) +# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) +# if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +# endif +# define COMPILER_VERSION_TWEAK DEC(__apple_build_version__) + +#elif defined(__clang__) && defined(__ARMCOMPILER_VERSION) +# define COMPILER_ID "ARMClang" + # define COMPILER_VERSION_MAJOR DEC(__ARMCOMPILER_VERSION/1000000) + # define COMPILER_VERSION_MINOR DEC(__ARMCOMPILER_VERSION/10000 % 100) + # define COMPILER_VERSION_PATCH DEC(__ARMCOMPILER_VERSION % 10000) +# define COMPILER_VERSION_INTERNAL DEC(__ARMCOMPILER_VERSION) + +#elif defined(__clang__) +# define COMPILER_ID "Clang" +# if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +# endif +# define COMPILER_VERSION_MAJOR DEC(__clang_major__) +# define COMPILER_VERSION_MINOR DEC(__clang_minor__) +# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) +# if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +# endif + +#elif defined(__GNUC__) || defined(__GNUG__) +# define COMPILER_ID "GNU" +# if defined(__GNUC__) +# define COMPILER_VERSION_MAJOR DEC(__GNUC__) +# else +# define COMPILER_VERSION_MAJOR DEC(__GNUG__) +# endif +# if defined(__GNUC_MINOR__) +# define COMPILER_VERSION_MINOR DEC(__GNUC_MINOR__) +# endif +# if defined(__GNUC_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) +# endif + +#elif defined(_MSC_VER) +# define COMPILER_ID "MSVC" + /* _MSC_VER = VVRR */ +# define COMPILER_VERSION_MAJOR DEC(_MSC_VER / 100) +# define COMPILER_VERSION_MINOR DEC(_MSC_VER % 100) +# if defined(_MSC_FULL_VER) +# if _MSC_VER >= 1400 + /* _MSC_FULL_VER = VVRRPPPPP */ +# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 100000) +# else + /* _MSC_FULL_VER = VVRRPPPP */ +# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 10000) +# endif +# endif +# if defined(_MSC_BUILD) +# define COMPILER_VERSION_TWEAK DEC(_MSC_BUILD) +# endif + +#elif defined(__VISUALDSPVERSION__) || defined(__ADSPBLACKFIN__) || defined(__ADSPTS__) || defined(__ADSP21000__) +# define COMPILER_ID "ADSP" +#if defined(__VISUALDSPVERSION__) + /* __VISUALDSPVERSION__ = 0xVVRRPP00 */ +# define COMPILER_VERSION_MAJOR HEX(__VISUALDSPVERSION__>>24) +# define COMPILER_VERSION_MINOR HEX(__VISUALDSPVERSION__>>16 & 0xFF) +# define COMPILER_VERSION_PATCH HEX(__VISUALDSPVERSION__>>8 & 0xFF) +#endif + +#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC) +# define COMPILER_ID "IAR" +# if defined(__VER__) && defined(__ICCARM__) +# define COMPILER_VERSION_MAJOR DEC((__VER__) / 1000000) +# define COMPILER_VERSION_MINOR DEC(((__VER__) / 1000) % 1000) +# define COMPILER_VERSION_PATCH DEC((__VER__) % 1000) +# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__) +# elif defined(__VER__) && (defined(__ICCAVR__) || defined(__ICCRX__) || defined(__ICCRH850__) || defined(__ICCRL78__) || defined(__ICC430__) || defined(__ICCRISCV__) || defined(__ICCV850__) || defined(__ICC8051__)) +# define COMPILER_VERSION_MAJOR DEC((__VER__) / 100) +# define COMPILER_VERSION_MINOR DEC((__VER__) - (((__VER__) / 100)*100)) +# define COMPILER_VERSION_PATCH DEC(__SUBVERSION__) +# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__) +# endif + + +/* These compilers are either not known or too old to define an + identification macro. Try to identify the platform and guess that + it is the native compiler. */ +#elif defined(__hpux) || defined(__hpua) +# define COMPILER_ID "HP" + +#else /* unknown compiler */ +# define COMPILER_ID "" +#endif + +/* Construct the string literal in pieces to prevent the source from + getting matched. Store it in a pointer rather than an array + because some compilers will just produce instructions to fill the + array rather than assigning a pointer to a static array. */ +char const* info_compiler = "INFO" ":" "compiler[" COMPILER_ID "]"; +#ifdef SIMULATE_ID +char const* info_simulate = "INFO" ":" "simulate[" SIMULATE_ID "]"; +#endif + +#ifdef __QNXNTO__ +char const* qnxnto = "INFO" ":" "qnxnto[]"; +#endif + +#if defined(__CRAYXE) || defined(__CRAYXC) +char const *info_cray = "INFO" ":" "compiler_wrapper[CrayPrgEnv]"; +#endif + +#define STRINGIFY_HELPER(X) #X +#define STRINGIFY(X) STRINGIFY_HELPER(X) + +/* Identify known platforms by name. */ +#if defined(__linux) || defined(__linux__) || defined(linux) +# define PLATFORM_ID "Linux" + +#elif defined(__CYGWIN__) +# define PLATFORM_ID "Cygwin" + +#elif defined(__MINGW32__) +# define PLATFORM_ID "MinGW" + +#elif defined(__APPLE__) +# define PLATFORM_ID "Darwin" + +#elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32) +# define PLATFORM_ID "Windows" + +#elif defined(__FreeBSD__) || defined(__FreeBSD) +# define PLATFORM_ID "FreeBSD" + +#elif defined(__NetBSD__) || defined(__NetBSD) +# define PLATFORM_ID "NetBSD" + +#elif defined(__OpenBSD__) || defined(__OPENBSD) +# define PLATFORM_ID "OpenBSD" + +#elif defined(__sun) || defined(sun) +# define PLATFORM_ID "SunOS" + +#elif defined(_AIX) || defined(__AIX) || defined(__AIX__) || defined(__aix) || defined(__aix__) +# define PLATFORM_ID "AIX" + +#elif defined(__hpux) || defined(__hpux__) +# define PLATFORM_ID "HP-UX" + +#elif defined(__HAIKU__) +# define PLATFORM_ID "Haiku" + +#elif defined(__BeOS) || defined(__BEOS__) || defined(_BEOS) +# define PLATFORM_ID "BeOS" + +#elif defined(__QNX__) || defined(__QNXNTO__) +# define PLATFORM_ID "QNX" + +#elif defined(__tru64) || defined(_tru64) || defined(__TRU64__) +# define PLATFORM_ID "Tru64" + +#elif defined(__riscos) || defined(__riscos__) +# define PLATFORM_ID "RISCos" + +#elif defined(__sinix) || defined(__sinix__) || defined(__SINIX__) +# define PLATFORM_ID "SINIX" + +#elif defined(__UNIX_SV__) +# define PLATFORM_ID "UNIX_SV" + +#elif defined(__bsdos__) +# define PLATFORM_ID "BSDOS" + +#elif defined(_MPRAS) || defined(MPRAS) +# define PLATFORM_ID "MP-RAS" + +#elif defined(__osf) || defined(__osf__) +# define PLATFORM_ID "OSF1" + +#elif defined(_SCO_SV) || defined(SCO_SV) || defined(sco_sv) +# define PLATFORM_ID "SCO_SV" + +#elif defined(__ultrix) || defined(__ultrix__) || defined(_ULTRIX) +# define PLATFORM_ID "ULTRIX" + +#elif defined(__XENIX__) || defined(_XENIX) || defined(XENIX) +# define PLATFORM_ID "Xenix" + +#elif defined(__WATCOMC__) +# if defined(__LINUX__) +# define PLATFORM_ID "Linux" + +# elif defined(__DOS__) +# define PLATFORM_ID "DOS" + +# elif defined(__OS2__) +# define PLATFORM_ID "OS2" + +# elif defined(__WINDOWS__) +# define PLATFORM_ID "Windows3x" + +# elif defined(__VXWORKS__) +# define PLATFORM_ID "VxWorks" + +# else /* unknown platform */ +# define PLATFORM_ID +# endif + +#elif defined(__INTEGRITY) +# if defined(INT_178B) +# define PLATFORM_ID "Integrity178" + +# else /* regular Integrity */ +# define PLATFORM_ID "Integrity" +# endif + +#else /* unknown platform */ +# define PLATFORM_ID + +#endif + +/* For windows compilers MSVC and Intel we can determine + the architecture of the compiler being used. This is because + the compilers do not have flags that can change the architecture, + but rather depend on which compiler is being used +*/ +#if defined(_WIN32) && defined(_MSC_VER) +# if defined(_M_IA64) +# define ARCHITECTURE_ID "IA64" + +# elif defined(_M_X64) || defined(_M_AMD64) +# define ARCHITECTURE_ID "x64" + +# elif defined(_M_IX86) +# define ARCHITECTURE_ID "X86" + +# elif defined(_M_ARM64) +# define ARCHITECTURE_ID "ARM64" + +# elif defined(_M_ARM) +# if _M_ARM == 4 +# define ARCHITECTURE_ID "ARMV4I" +# elif _M_ARM == 5 +# define ARCHITECTURE_ID "ARMV5I" +# else +# define ARCHITECTURE_ID "ARMV" STRINGIFY(_M_ARM) +# endif + +# elif defined(_M_MIPS) +# define ARCHITECTURE_ID "MIPS" + +# elif defined(_M_SH) +# define ARCHITECTURE_ID "SHx" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__WATCOMC__) +# if defined(_M_I86) +# define ARCHITECTURE_ID "I86" + +# elif defined(_M_IX86) +# define ARCHITECTURE_ID "X86" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC) +# if defined(__ICCARM__) +# define ARCHITECTURE_ID "ARM" + +# elif defined(__ICCRX__) +# define ARCHITECTURE_ID "RX" + +# elif defined(__ICCRH850__) +# define ARCHITECTURE_ID "RH850" + +# elif defined(__ICCRL78__) +# define ARCHITECTURE_ID "RL78" + +# elif defined(__ICCRISCV__) +# define ARCHITECTURE_ID "RISCV" + +# elif defined(__ICCAVR__) +# define ARCHITECTURE_ID "AVR" + +# elif defined(__ICC430__) +# define ARCHITECTURE_ID "MSP430" + +# elif defined(__ICCV850__) +# define ARCHITECTURE_ID "V850" + +# elif defined(__ICC8051__) +# define ARCHITECTURE_ID "8051" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__ghs__) +# if defined(__PPC64__) +# define ARCHITECTURE_ID "PPC64" + +# elif defined(__ppc__) +# define ARCHITECTURE_ID "PPC" + +# elif defined(__ARM__) +# define ARCHITECTURE_ID "ARM" + +# elif defined(__x86_64__) +# define ARCHITECTURE_ID "x64" + +# elif defined(__i386__) +# define ARCHITECTURE_ID "X86" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif +#else +# define ARCHITECTURE_ID +#endif + +/* Convert integer to decimal digit literals. */ +#define DEC(n) \ + ('0' + (((n) / 10000000)%10)), \ + ('0' + (((n) / 1000000)%10)), \ + ('0' + (((n) / 100000)%10)), \ + ('0' + (((n) / 10000)%10)), \ + ('0' + (((n) / 1000)%10)), \ + ('0' + (((n) / 100)%10)), \ + ('0' + (((n) / 10)%10)), \ + ('0' + ((n) % 10)) + +/* Convert integer to hex digit literals. */ +#define HEX(n) \ + ('0' + ((n)>>28 & 0xF)), \ + ('0' + ((n)>>24 & 0xF)), \ + ('0' + ((n)>>20 & 0xF)), \ + ('0' + ((n)>>16 & 0xF)), \ + ('0' + ((n)>>12 & 0xF)), \ + ('0' + ((n)>>8 & 0xF)), \ + ('0' + ((n)>>4 & 0xF)), \ + ('0' + ((n) & 0xF)) + +/* Construct a string literal encoding the version number components. */ +#ifdef COMPILER_VERSION_MAJOR +char const info_version[] = { + 'I', 'N', 'F', 'O', ':', + 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','[', + COMPILER_VERSION_MAJOR, +# ifdef COMPILER_VERSION_MINOR + '.', COMPILER_VERSION_MINOR, +# ifdef COMPILER_VERSION_PATCH + '.', COMPILER_VERSION_PATCH, +# ifdef COMPILER_VERSION_TWEAK + '.', COMPILER_VERSION_TWEAK, +# endif +# endif +# endif + ']','\0'}; +#endif + +/* Construct a string literal encoding the internal version number. */ +#ifdef COMPILER_VERSION_INTERNAL +char const info_version_internal[] = { + 'I', 'N', 'F', 'O', ':', + 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','_', + 'i','n','t','e','r','n','a','l','[', + COMPILER_VERSION_INTERNAL,']','\0'}; +#endif + +/* Construct a string literal encoding the version number components. */ +#ifdef SIMULATE_VERSION_MAJOR +char const info_simulate_version[] = { + 'I', 'N', 'F', 'O', ':', + 's','i','m','u','l','a','t','e','_','v','e','r','s','i','o','n','[', + SIMULATE_VERSION_MAJOR, +# ifdef SIMULATE_VERSION_MINOR + '.', SIMULATE_VERSION_MINOR, +# ifdef SIMULATE_VERSION_PATCH + '.', SIMULATE_VERSION_PATCH, +# ifdef SIMULATE_VERSION_TWEAK + '.', SIMULATE_VERSION_TWEAK, +# endif +# endif +# endif + ']','\0'}; +#endif + +/* Construct the string literal in pieces to prevent the source from + getting matched. Store it in a pointer rather than an array + because some compilers will just produce instructions to fill the + array rather than assigning a pointer to a static array. */ +char const* info_platform = "INFO" ":" "platform[" PLATFORM_ID "]"; +char const* info_arch = "INFO" ":" "arch[" ARCHITECTURE_ID "]"; + + + + +#if defined(__INTEL_COMPILER) && defined(_MSVC_LANG) && _MSVC_LANG < 201403L +# if defined(__INTEL_CXX11_MODE__) +# if defined(__cpp_aggregate_nsdmi) +# define CXX_STD 201402L +# else +# define CXX_STD 201103L +# endif +# else +# define CXX_STD 199711L +# endif +#elif defined(_MSC_VER) && defined(_MSVC_LANG) +# define CXX_STD _MSVC_LANG +#else +# define CXX_STD __cplusplus +#endif + +const char* info_language_dialect_default = "INFO" ":" "dialect_default[" +#if CXX_STD > 201703L + "20" +#elif CXX_STD >= 201703L + "17" +#elif CXX_STD >= 201402L + "14" +#elif CXX_STD >= 201103L + "11" +#else + "98" +#endif +"]"; + +/*--------------------------------------------------------------------------*/ + +int main(int argc, char* argv[]) +{ + int require = 0; + require += info_compiler[argc]; + require += info_platform[argc]; +#ifdef COMPILER_VERSION_MAJOR + require += info_version[argc]; +#endif +#ifdef COMPILER_VERSION_INTERNAL + require += info_version_internal[argc]; +#endif +#ifdef SIMULATE_ID + require += info_simulate[argc]; +#endif +#ifdef SIMULATE_VERSION_MAJOR + require += info_simulate_version[argc]; +#endif +#if defined(__CRAYXE) || defined(__CRAYXC) + require += info_cray[argc]; +#endif + require += info_language_dialect_default[argc]; + (void)argv; + return require; +} diff --git a/examples/NEST_nineml_models/StdpSongAbbott/compile/CMakeFiles/3.18.4/CompilerIdCXX/a.out b/examples/NEST_nineml_models/StdpSongAbbott/compile/CMakeFiles/3.18.4/CompilerIdCXX/a.out new file mode 100755 index 000000000..25cacfd2c Binary files /dev/null and b/examples/NEST_nineml_models/StdpSongAbbott/compile/CMakeFiles/3.18.4/CompilerIdCXX/a.out differ diff --git a/examples/NEST_nineml_models/StdpSongAbbott/compile/CMakeFiles/CMakeDirectoryInformation.cmake b/examples/NEST_nineml_models/StdpSongAbbott/compile/CMakeFiles/CMakeDirectoryInformation.cmake new file mode 100644 index 000000000..8cdb9d0e2 --- /dev/null +++ b/examples/NEST_nineml_models/StdpSongAbbott/compile/CMakeFiles/CMakeDirectoryInformation.cmake @@ -0,0 +1,16 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.18 + +# Relative path conversion top directories. +set(CMAKE_RELATIVE_PATH_TOP_SOURCE "/home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/src") +set(CMAKE_RELATIVE_PATH_TOP_BINARY "/home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/compile") + +# Force unix paths in dependencies. +set(CMAKE_FORCE_UNIX_PATHS 1) + + +# The C and CXX include file regular expressions for this directory. +set(CMAKE_C_INCLUDE_REGEX_SCAN "^.*$") +set(CMAKE_C_INCLUDE_REGEX_COMPLAIN "^$") +set(CMAKE_CXX_INCLUDE_REGEX_SCAN ${CMAKE_C_INCLUDE_REGEX_SCAN}) +set(CMAKE_CXX_INCLUDE_REGEX_COMPLAIN ${CMAKE_C_INCLUDE_REGEX_COMPLAIN}) diff --git a/examples/NEST_nineml_models/StdpSongAbbott/compile/CMakeFiles/CMakeRuleHashes.txt b/examples/NEST_nineml_models/StdpSongAbbott/compile/CMakeFiles/CMakeRuleHashes.txt new file mode 100644 index 000000000..e35ee7cbf --- /dev/null +++ b/examples/NEST_nineml_models/StdpSongAbbott/compile/CMakeFiles/CMakeRuleHashes.txt @@ -0,0 +1,2 @@ +# Hashes of file build rules. +0a3644f1b927e36293b3e3a5aab0ea3c CMakeFiles/dist diff --git a/examples/NEST_nineml_models/StdpSongAbbott/compile/CMakeFiles/Makefile.cmake b/examples/NEST_nineml_models/StdpSongAbbott/compile/CMakeFiles/Makefile.cmake new file mode 100644 index 000000000..ac8d10882 --- /dev/null +++ b/examples/NEST_nineml_models/StdpSongAbbott/compile/CMakeFiles/Makefile.cmake @@ -0,0 +1,106 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.18 + +# The generator used is: +set(CMAKE_DEPENDS_GENERATOR "Unix Makefiles") + +# The top level Makefile was generated from the following files: +set(CMAKE_MAKEFILE_DEPENDS + "CMakeCache.txt" + "CMakeFiles/3.18.4/CMakeCXXCompiler.cmake" + "CMakeFiles/3.18.4/CMakeSystem.cmake" + "/home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/src/CMakeLists.txt" + "/home/pedroernesto/anaconda3/lib/python3.7/site-packages/cmake/data/share/cmake-3.18/Modules/CMakeCXXCompiler.cmake.in" + "/home/pedroernesto/anaconda3/lib/python3.7/site-packages/cmake/data/share/cmake-3.18/Modules/CMakeCXXCompilerABI.cpp" + "/home/pedroernesto/anaconda3/lib/python3.7/site-packages/cmake/data/share/cmake-3.18/Modules/CMakeCXXInformation.cmake" + "/home/pedroernesto/anaconda3/lib/python3.7/site-packages/cmake/data/share/cmake-3.18/Modules/CMakeCheckCompilerFlagCommonPatterns.cmake" + "/home/pedroernesto/anaconda3/lib/python3.7/site-packages/cmake/data/share/cmake-3.18/Modules/CMakeCommonLanguageInclude.cmake" + "/home/pedroernesto/anaconda3/lib/python3.7/site-packages/cmake/data/share/cmake-3.18/Modules/CMakeCompilerIdDetection.cmake" + "/home/pedroernesto/anaconda3/lib/python3.7/site-packages/cmake/data/share/cmake-3.18/Modules/CMakeDetermineCXXCompiler.cmake" + "/home/pedroernesto/anaconda3/lib/python3.7/site-packages/cmake/data/share/cmake-3.18/Modules/CMakeDetermineCompileFeatures.cmake" + "/home/pedroernesto/anaconda3/lib/python3.7/site-packages/cmake/data/share/cmake-3.18/Modules/CMakeDetermineCompiler.cmake" + "/home/pedroernesto/anaconda3/lib/python3.7/site-packages/cmake/data/share/cmake-3.18/Modules/CMakeDetermineCompilerABI.cmake" + "/home/pedroernesto/anaconda3/lib/python3.7/site-packages/cmake/data/share/cmake-3.18/Modules/CMakeDetermineCompilerId.cmake" + "/home/pedroernesto/anaconda3/lib/python3.7/site-packages/cmake/data/share/cmake-3.18/Modules/CMakeDetermineSystem.cmake" + "/home/pedroernesto/anaconda3/lib/python3.7/site-packages/cmake/data/share/cmake-3.18/Modules/CMakeFindBinUtils.cmake" + "/home/pedroernesto/anaconda3/lib/python3.7/site-packages/cmake/data/share/cmake-3.18/Modules/CMakeGenericSystem.cmake" + "/home/pedroernesto/anaconda3/lib/python3.7/site-packages/cmake/data/share/cmake-3.18/Modules/CMakeInitializeConfigs.cmake" + "/home/pedroernesto/anaconda3/lib/python3.7/site-packages/cmake/data/share/cmake-3.18/Modules/CMakeLanguageInformation.cmake" + "/home/pedroernesto/anaconda3/lib/python3.7/site-packages/cmake/data/share/cmake-3.18/Modules/CMakeParseImplicitIncludeInfo.cmake" + "/home/pedroernesto/anaconda3/lib/python3.7/site-packages/cmake/data/share/cmake-3.18/Modules/CMakeParseImplicitLinkInfo.cmake" + "/home/pedroernesto/anaconda3/lib/python3.7/site-packages/cmake/data/share/cmake-3.18/Modules/CMakeSystem.cmake.in" + "/home/pedroernesto/anaconda3/lib/python3.7/site-packages/cmake/data/share/cmake-3.18/Modules/CMakeSystemSpecificInformation.cmake" + "/home/pedroernesto/anaconda3/lib/python3.7/site-packages/cmake/data/share/cmake-3.18/Modules/CMakeSystemSpecificInitialize.cmake" + "/home/pedroernesto/anaconda3/lib/python3.7/site-packages/cmake/data/share/cmake-3.18/Modules/CMakeTestCXXCompiler.cmake" + "/home/pedroernesto/anaconda3/lib/python3.7/site-packages/cmake/data/share/cmake-3.18/Modules/CMakeTestCompilerCommon.cmake" + "/home/pedroernesto/anaconda3/lib/python3.7/site-packages/cmake/data/share/cmake-3.18/Modules/CMakeUnixFindMake.cmake" + "/home/pedroernesto/anaconda3/lib/python3.7/site-packages/cmake/data/share/cmake-3.18/Modules/CPack.cmake" + "/home/pedroernesto/anaconda3/lib/python3.7/site-packages/cmake/data/share/cmake-3.18/Modules/CPackComponent.cmake" + "/home/pedroernesto/anaconda3/lib/python3.7/site-packages/cmake/data/share/cmake-3.18/Modules/Compiler/ADSP-DetermineCompiler.cmake" + "/home/pedroernesto/anaconda3/lib/python3.7/site-packages/cmake/data/share/cmake-3.18/Modules/Compiler/ARMCC-DetermineCompiler.cmake" + "/home/pedroernesto/anaconda3/lib/python3.7/site-packages/cmake/data/share/cmake-3.18/Modules/Compiler/ARMClang-DetermineCompiler.cmake" + "/home/pedroernesto/anaconda3/lib/python3.7/site-packages/cmake/data/share/cmake-3.18/Modules/Compiler/AppleClang-DetermineCompiler.cmake" + "/home/pedroernesto/anaconda3/lib/python3.7/site-packages/cmake/data/share/cmake-3.18/Modules/Compiler/Borland-DetermineCompiler.cmake" + "/home/pedroernesto/anaconda3/lib/python3.7/site-packages/cmake/data/share/cmake-3.18/Modules/Compiler/CMakeCommonCompilerMacros.cmake" + "/home/pedroernesto/anaconda3/lib/python3.7/site-packages/cmake/data/share/cmake-3.18/Modules/Compiler/Clang-DetermineCompiler.cmake" + "/home/pedroernesto/anaconda3/lib/python3.7/site-packages/cmake/data/share/cmake-3.18/Modules/Compiler/Clang-DetermineCompilerInternal.cmake" + "/home/pedroernesto/anaconda3/lib/python3.7/site-packages/cmake/data/share/cmake-3.18/Modules/Compiler/Comeau-CXX-DetermineCompiler.cmake" + "/home/pedroernesto/anaconda3/lib/python3.7/site-packages/cmake/data/share/cmake-3.18/Modules/Compiler/Compaq-CXX-DetermineCompiler.cmake" + "/home/pedroernesto/anaconda3/lib/python3.7/site-packages/cmake/data/share/cmake-3.18/Modules/Compiler/Cray-DetermineCompiler.cmake" + "/home/pedroernesto/anaconda3/lib/python3.7/site-packages/cmake/data/share/cmake-3.18/Modules/Compiler/Embarcadero-DetermineCompiler.cmake" + "/home/pedroernesto/anaconda3/lib/python3.7/site-packages/cmake/data/share/cmake-3.18/Modules/Compiler/Fujitsu-DetermineCompiler.cmake" + "/home/pedroernesto/anaconda3/lib/python3.7/site-packages/cmake/data/share/cmake-3.18/Modules/Compiler/GHS-DetermineCompiler.cmake" + "/home/pedroernesto/anaconda3/lib/python3.7/site-packages/cmake/data/share/cmake-3.18/Modules/Compiler/GNU-CXX-DetermineCompiler.cmake" + "/home/pedroernesto/anaconda3/lib/python3.7/site-packages/cmake/data/share/cmake-3.18/Modules/Compiler/GNU-CXX.cmake" + "/home/pedroernesto/anaconda3/lib/python3.7/site-packages/cmake/data/share/cmake-3.18/Modules/Compiler/GNU-FindBinUtils.cmake" + "/home/pedroernesto/anaconda3/lib/python3.7/site-packages/cmake/data/share/cmake-3.18/Modules/Compiler/GNU.cmake" + "/home/pedroernesto/anaconda3/lib/python3.7/site-packages/cmake/data/share/cmake-3.18/Modules/Compiler/HP-CXX-DetermineCompiler.cmake" + "/home/pedroernesto/anaconda3/lib/python3.7/site-packages/cmake/data/share/cmake-3.18/Modules/Compiler/IAR-DetermineCompiler.cmake" + "/home/pedroernesto/anaconda3/lib/python3.7/site-packages/cmake/data/share/cmake-3.18/Modules/Compiler/IBMCPP-CXX-DetermineVersionInternal.cmake" + "/home/pedroernesto/anaconda3/lib/python3.7/site-packages/cmake/data/share/cmake-3.18/Modules/Compiler/Intel-DetermineCompiler.cmake" + "/home/pedroernesto/anaconda3/lib/python3.7/site-packages/cmake/data/share/cmake-3.18/Modules/Compiler/MSVC-DetermineCompiler.cmake" + "/home/pedroernesto/anaconda3/lib/python3.7/site-packages/cmake/data/share/cmake-3.18/Modules/Compiler/NVIDIA-DetermineCompiler.cmake" + "/home/pedroernesto/anaconda3/lib/python3.7/site-packages/cmake/data/share/cmake-3.18/Modules/Compiler/OpenWatcom-DetermineCompiler.cmake" + "/home/pedroernesto/anaconda3/lib/python3.7/site-packages/cmake/data/share/cmake-3.18/Modules/Compiler/PGI-DetermineCompiler.cmake" + "/home/pedroernesto/anaconda3/lib/python3.7/site-packages/cmake/data/share/cmake-3.18/Modules/Compiler/PathScale-DetermineCompiler.cmake" + "/home/pedroernesto/anaconda3/lib/python3.7/site-packages/cmake/data/share/cmake-3.18/Modules/Compiler/SCO-DetermineCompiler.cmake" + "/home/pedroernesto/anaconda3/lib/python3.7/site-packages/cmake/data/share/cmake-3.18/Modules/Compiler/SunPro-CXX-DetermineCompiler.cmake" + "/home/pedroernesto/anaconda3/lib/python3.7/site-packages/cmake/data/share/cmake-3.18/Modules/Compiler/TI-DetermineCompiler.cmake" + "/home/pedroernesto/anaconda3/lib/python3.7/site-packages/cmake/data/share/cmake-3.18/Modules/Compiler/VisualAge-CXX-DetermineCompiler.cmake" + "/home/pedroernesto/anaconda3/lib/python3.7/site-packages/cmake/data/share/cmake-3.18/Modules/Compiler/Watcom-DetermineCompiler.cmake" + "/home/pedroernesto/anaconda3/lib/python3.7/site-packages/cmake/data/share/cmake-3.18/Modules/Compiler/XL-CXX-DetermineCompiler.cmake" + "/home/pedroernesto/anaconda3/lib/python3.7/site-packages/cmake/data/share/cmake-3.18/Modules/Compiler/XLClang-CXX-DetermineCompiler.cmake" + "/home/pedroernesto/anaconda3/lib/python3.7/site-packages/cmake/data/share/cmake-3.18/Modules/Compiler/zOS-CXX-DetermineCompiler.cmake" + "/home/pedroernesto/anaconda3/lib/python3.7/site-packages/cmake/data/share/cmake-3.18/Modules/GNUInstallDirs.cmake" + "/home/pedroernesto/anaconda3/lib/python3.7/site-packages/cmake/data/share/cmake-3.18/Modules/Internal/CMakeCheckCompilerFlag.cmake" + "/home/pedroernesto/anaconda3/lib/python3.7/site-packages/cmake/data/share/cmake-3.18/Modules/Internal/FeatureTesting.cmake" + "/home/pedroernesto/anaconda3/lib/python3.7/site-packages/cmake/data/share/cmake-3.18/Modules/Platform/Linux-Determine-CXX.cmake" + "/home/pedroernesto/anaconda3/lib/python3.7/site-packages/cmake/data/share/cmake-3.18/Modules/Platform/Linux-GNU-CXX.cmake" + "/home/pedroernesto/anaconda3/lib/python3.7/site-packages/cmake/data/share/cmake-3.18/Modules/Platform/Linux-GNU.cmake" + "/home/pedroernesto/anaconda3/lib/python3.7/site-packages/cmake/data/share/cmake-3.18/Modules/Platform/Linux.cmake" + "/home/pedroernesto/anaconda3/lib/python3.7/site-packages/cmake/data/share/cmake-3.18/Modules/Platform/UnixPaths.cmake" + "/home/pedroernesto/anaconda3/lib/python3.7/site-packages/cmake/data/share/cmake-3.18/Templates/CPackConfig.cmake.in" + ) + +# The corresponding makefile is: +set(CMAKE_MAKEFILE_OUTPUTS + "Makefile" + "CMakeFiles/cmake.check_cache" + ) + +# Byproducts of CMake generate step: +set(CMAKE_MAKEFILE_PRODUCTS + "CMakeFiles/3.18.4/CMakeSystem.cmake" + "CMakeFiles/3.18.4/CMakeCXXCompiler.cmake" + "CMakeFiles/3.18.4/CMakeCXXCompiler.cmake" + "CPackConfig.cmake" + "CPackSourceConfig.cmake" + "CMakeFiles/CMakeDirectoryInformation.cmake" + ) + +# Dependency information for all targets: +set(CMAKE_DEPEND_INFO_FILES + "CMakeFiles/StdpSongAbbottmodule_module.dir/DependInfo.cmake" + "CMakeFiles/StdpSongAbbottmodule_lib.dir/DependInfo.cmake" + "CMakeFiles/dist.dir/DependInfo.cmake" + ) diff --git a/examples/NEST_nineml_models/StdpSongAbbott/compile/CMakeFiles/Makefile2 b/examples/NEST_nineml_models/StdpSongAbbott/compile/CMakeFiles/Makefile2 new file mode 100644 index 000000000..4c75b6213 --- /dev/null +++ b/examples/NEST_nineml_models/StdpSongAbbott/compile/CMakeFiles/Makefile2 @@ -0,0 +1,182 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.18 + +# Default target executed when no arguments are given to make. +default_target: all + +.PHONY : default_target + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + + +# Disable VCS-based implicit rules. +% : %,v + + +# Disable VCS-based implicit rules. +% : RCS/% + + +# Disable VCS-based implicit rules. +% : RCS/%,v + + +# Disable VCS-based implicit rules. +% : SCCS/s.% + + +# Disable VCS-based implicit rules. +% : s.% + + +.SUFFIXES: .hpux_make_needs_suffix_list + + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: + +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /home/pedroernesto/anaconda3/lib/python3.7/site-packages/cmake/data/bin/cmake + +# The command to remove a file. +RM = /home/pedroernesto/anaconda3/lib/python3.7/site-packages/cmake/data/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/src + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/compile + +#============================================================================= +# Directory level rules for the build root directory + +# The main recursive "all" target. +all: CMakeFiles/StdpSongAbbottmodule_module.dir/all +all: CMakeFiles/StdpSongAbbottmodule_lib.dir/all + +.PHONY : all + +# The main recursive "preinstall" target. +preinstall: + +.PHONY : preinstall + +# The main recursive "clean" target. +clean: CMakeFiles/StdpSongAbbottmodule_module.dir/clean +clean: CMakeFiles/StdpSongAbbottmodule_lib.dir/clean +clean: CMakeFiles/dist.dir/clean + +.PHONY : clean + +#============================================================================= +# Target rules for target CMakeFiles/StdpSongAbbottmodule_module.dir + +# All Build rule for target. +CMakeFiles/StdpSongAbbottmodule_module.dir/all: + $(MAKE) $(MAKESILENT) -f CMakeFiles/StdpSongAbbottmodule_module.dir/build.make CMakeFiles/StdpSongAbbottmodule_module.dir/depend + $(MAKE) $(MAKESILENT) -f CMakeFiles/StdpSongAbbottmodule_module.dir/build.make CMakeFiles/StdpSongAbbottmodule_module.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/compile/CMakeFiles --progress-num=4,5,6 "Built target StdpSongAbbottmodule_module" +.PHONY : CMakeFiles/StdpSongAbbottmodule_module.dir/all + +# Build rule for subdir invocation for target. +CMakeFiles/StdpSongAbbottmodule_module.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/compile/CMakeFiles 3 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 CMakeFiles/StdpSongAbbottmodule_module.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/compile/CMakeFiles 0 +.PHONY : CMakeFiles/StdpSongAbbottmodule_module.dir/rule + +# Convenience name for target. +StdpSongAbbottmodule_module: CMakeFiles/StdpSongAbbottmodule_module.dir/rule + +.PHONY : StdpSongAbbottmodule_module + +# clean rule for target. +CMakeFiles/StdpSongAbbottmodule_module.dir/clean: + $(MAKE) $(MAKESILENT) -f CMakeFiles/StdpSongAbbottmodule_module.dir/build.make CMakeFiles/StdpSongAbbottmodule_module.dir/clean +.PHONY : CMakeFiles/StdpSongAbbottmodule_module.dir/clean + +#============================================================================= +# Target rules for target CMakeFiles/StdpSongAbbottmodule_lib.dir + +# All Build rule for target. +CMakeFiles/StdpSongAbbottmodule_lib.dir/all: + $(MAKE) $(MAKESILENT) -f CMakeFiles/StdpSongAbbottmodule_lib.dir/build.make CMakeFiles/StdpSongAbbottmodule_lib.dir/depend + $(MAKE) $(MAKESILENT) -f CMakeFiles/StdpSongAbbottmodule_lib.dir/build.make CMakeFiles/StdpSongAbbottmodule_lib.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/compile/CMakeFiles --progress-num=1,2,3 "Built target StdpSongAbbottmodule_lib" +.PHONY : CMakeFiles/StdpSongAbbottmodule_lib.dir/all + +# Build rule for subdir invocation for target. +CMakeFiles/StdpSongAbbottmodule_lib.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/compile/CMakeFiles 3 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 CMakeFiles/StdpSongAbbottmodule_lib.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/compile/CMakeFiles 0 +.PHONY : CMakeFiles/StdpSongAbbottmodule_lib.dir/rule + +# Convenience name for target. +StdpSongAbbottmodule_lib: CMakeFiles/StdpSongAbbottmodule_lib.dir/rule + +.PHONY : StdpSongAbbottmodule_lib + +# clean rule for target. +CMakeFiles/StdpSongAbbottmodule_lib.dir/clean: + $(MAKE) $(MAKESILENT) -f CMakeFiles/StdpSongAbbottmodule_lib.dir/build.make CMakeFiles/StdpSongAbbottmodule_lib.dir/clean +.PHONY : CMakeFiles/StdpSongAbbottmodule_lib.dir/clean + +#============================================================================= +# Target rules for target CMakeFiles/dist.dir + +# All Build rule for target. +CMakeFiles/dist.dir/all: + $(MAKE) $(MAKESILENT) -f CMakeFiles/dist.dir/build.make CMakeFiles/dist.dir/depend + $(MAKE) $(MAKESILENT) -f CMakeFiles/dist.dir/build.make CMakeFiles/dist.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/compile/CMakeFiles --progress-num=7 "Built target dist" +.PHONY : CMakeFiles/dist.dir/all + +# Build rule for subdir invocation for target. +CMakeFiles/dist.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/compile/CMakeFiles 1 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 CMakeFiles/dist.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/compile/CMakeFiles 0 +.PHONY : CMakeFiles/dist.dir/rule + +# Convenience name for target. +dist: CMakeFiles/dist.dir/rule + +.PHONY : dist + +# clean rule for target. +CMakeFiles/dist.dir/clean: + $(MAKE) $(MAKESILENT) -f CMakeFiles/dist.dir/build.make CMakeFiles/dist.dir/clean +.PHONY : CMakeFiles/dist.dir/clean + +#============================================================================= +# Special targets to cleanup operation of make. + +# Special rule to run CMake to check the build system integrity. +# No rule that depends on this can have commands that come from listfiles +# because they might be regenerated. +cmake_check_build_system: + $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0 +.PHONY : cmake_check_build_system + diff --git a/examples/NEST_nineml_models/StdpSongAbbott/compile/CMakeFiles/StdpSongAbbottmodule_lib.dir/CXX.includecache b/examples/NEST_nineml_models/StdpSongAbbott/compile/CMakeFiles/StdpSongAbbottmodule_lib.dir/CXX.includecache new file mode 100644 index 000000000..b7c0cfd17 --- /dev/null +++ b/examples/NEST_nineml_models/StdpSongAbbott/compile/CMakeFiles/StdpSongAbbottmodule_lib.dir/CXX.includecache @@ -0,0 +1,6682 @@ +#IncludeRegexLine: ^[ ]*[#%][ ]*(include|import)[ ]*[<"]([^">]+)([">]) + +#IncludeRegexScan: ^.*$ + +#IncludeRegexComplain: ^$ + +#IncludeRegexTransform: + +/home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/src/StdpSongAbbott.cpp +StdpSongAbbott.h +/home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/src/StdpSongAbbott.h +common_synapse_properties.h +/home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/src/common_synapse_properties.h +connector_model.h +/home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/src/connector_model.h +event.h +/home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/src/event.h +dictdatum.h +/home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/src/dictdatum.h + +/home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/src/StdpSongAbbott.h +cmath +- +common_synapse_properties.h +/home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/src/common_synapse_properties.h +connection.h +/home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/src/connection.h +connector_model.h +/home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/src/connector_model.h +event.h +/home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/src/event.h +dictdatum.h +/home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/src/dictdatum.h +dictutils.h +/home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/src/dictutils.h + +/home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/src/StdpSongAbbottmodule.cpp +StdpSongAbbottmodule.h +/home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/src/StdpSongAbbottmodule.h +StdpSongAbbott.h +/home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/src/StdpSongAbbott.h +config.h +/home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/src/config.h +connection_manager_impl.h +/home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/src/connection_manager_impl.h +connector_model_impl.h +/home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/src/connector_model_impl.h +dynamicloader.h +/home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/src/dynamicloader.h +exceptions.h +/home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/src/exceptions.h +genericmodel.h +/home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/src/genericmodel.h +genericmodel_impl.h +/home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/src/genericmodel_impl.h +kernel_manager.h +/home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/src/kernel_manager.h +model.h +/home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/src/model.h +model_manager_impl.h +/home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/src/model_manager_impl.h +nest.h +/home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/src/nest.h +nest_impl.h +/home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/src/nest_impl.h +nestmodule.h +/home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/src/nestmodule.h +target_identifier.h +/home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/src/target_identifier.h +booldatum.h +/home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/src/booldatum.h +integerdatum.h +/home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/src/integerdatum.h +sliexceptions.h +/home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/src/sliexceptions.h +tokenarray.h +/home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/src/tokenarray.h + +/home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/src/StdpSongAbbottmodule.h +slimodule.h +/home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/src/slimodule.h +slifunction.h +/home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/src/slifunction.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/aggregatedatum.h +config.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/config.h +allocator.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/allocator.h +datum.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/datum.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/allocator.h +config.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/config.h +cassert +- +cstdlib +- +string +- + +/home/pedroernesto/anaconda3/build/NEST/include/nest/arraydatum.h +vector +- +aggregatedatum.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/aggregatedatum.h +interpret.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/interpret.h +lockptrdatum.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/lockptrdatum.h +tokenarray.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/tokenarray.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/block_vector.h +cmath +- +vector +- +iostream +- +iterator +- +cassert +- +sliexceptions.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/sliexceptions.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/booldatum.h +string +- +allocator.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/allocator.h +genericdatum.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/genericdatum.h +interpret.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/interpret.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/common_synapse_properties.h +connector_model.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/connector_model.h +nest_types.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/nest_types.h +node.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/node.h +sibling_container.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/sibling_container.h +dictdatum.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/dictdatum.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/compose.hpp +sstream +- +string +- +list +- +map +- + +/home/pedroernesto/anaconda3/build/NEST/include/nest/config.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/conn_builder.h +map +- +vector +- +lockptr.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/lockptr.h +gslrandomgen.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/gslrandomgen.h +conn_parameter.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/conn_parameter.h +gid_collection.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/gid_collection.h +nest_time.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/nest_time.h +dictdatum.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/dictdatum.h +sliexceptions.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/sliexceptions.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/conn_builder_factory.h +map +- +conn_builder.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/conn_builder.h +dictdatum.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/dictdatum.h +lockptrdatum.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/lockptrdatum.h +name.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/name.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/conn_parameter.h +limits +- +vector +- +randomdev.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/randomdev.h +randomgen.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/randomgen.h +exceptions.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/exceptions.h +token.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/token.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/connection.h +common_synapse_properties.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/common_synapse_properties.h +connection_label.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/connection_label.h +connector_base_impl.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/connector_base_impl.h +delay_checker.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/delay_checker.h +event.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/event.h +kernel_manager.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/kernel_manager.h +nest_names.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/nest_names.h +nest_time.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/nest_time.h +nest_timeconverter.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/nest_timeconverter.h +nest_types.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/nest_types.h +node.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/node.h +spikecounter.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/spikecounter.h +syn_id_delay.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/syn_id_delay.h +arraydatum.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/arraydatum.h +dict.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/dict.h +dictutils.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/dictutils.h +doubledatum.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/doubledatum.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/connection_id.h +arraydatum.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/arraydatum.h +dictutils.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/dictutils.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/connection_label.h +nest.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/nest.h +nest_names.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/nest_names.h +dictdatum.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/dictdatum.h +dictutils.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/dictutils.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/connection_manager.h +string +- +vector +- +manager_interface.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/manager_interface.h +conn_builder.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/conn_builder.h +connection_id.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/connection_id.h +connector_base.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/connector_base.h +gid_collection.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/gid_collection.h +nest_time.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/nest_time.h +nest_timeconverter.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/nest_timeconverter.h +nest_types.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/nest_types.h +per_thread_bool_indicator.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/per_thread_bool_indicator.h +source_table.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/source_table.h +target_table.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/target_table.h +target_table_devices.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/target_table_devices.h +arraydatum.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/arraydatum.h +dict.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/dict.h +dictdatum.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/dictdatum.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/connection_manager_impl.h +connection_manager.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/connection_manager.h +string +- +conn_builder.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/conn_builder.h +conn_builder_factory.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/conn_builder_factory.h +connector_base.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/connector_base.h +kernel_manager.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/kernel_manager.h +target_table_devices_impl.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/target_table_devices_impl.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/connector_base.h +config.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/config.h +cstdlib +- +vector +- +compose.hpp +/home/pedroernesto/anaconda3/build/NEST/include/nest/compose.hpp +sort.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/sort.h +vector_util.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/vector_util.h +common_synapse_properties.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/common_synapse_properties.h +connection_label.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/connection_label.h +connector_model.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/connector_model.h +event.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/event.h +nest_datums.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/nest_datums.h +nest_names.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/nest_names.h +node.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/node.h +source.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/source.h +spikecounter.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/spikecounter.h +arraydatum.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/arraydatum.h +dictutils.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/dictutils.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/connector_base_impl.h +connector_base.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/connector_base.h +kernel_manager.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/kernel_manager.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/connector_model.h +cmath +- +string +- +numerics.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/numerics.h +event.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/event.h +nest_time.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/nest_time.h +nest_types.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/nest_types.h +dictutils.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/dictutils.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/connector_model_impl.h +connector_model.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/connector_model.h +config.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/config.h +compose.hpp +/home/pedroernesto/anaconda3/build/NEST/include/nest/compose.hpp +connector_base.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/connector_base.h +delay_checker.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/delay_checker.h +kernel_manager.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/kernel_manager.h +nest_time.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/nest_time.h +nest_timeconverter.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/nest_timeconverter.h +dictutils.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/dictutils.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/datum.h +slitype.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/slitype.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/delay_checker.h +nest_time.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/nest_time.h +dictdatum.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/dictdatum.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/dict.h +map +- +name.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/name.h +sliexceptions.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/sliexceptions.h +token.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/token.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/dictdatum.h +dict.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/dict.h +interpret.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/interpret.h +lockptrdatum.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/lockptrdatum.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/dictutils.h +algorithm +- +functional +- +string +- +arraydatum.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/arraydatum.h +dictdatum.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/dictdatum.h +doubledatum.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/doubledatum.h +integerdatum.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/integerdatum.h +namedatum.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/namedatum.h +tokenutils.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/tokenutils.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/doubledatum.h +datum.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/datum.h +interpret.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/interpret.h +numericdatum.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/numericdatum.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/dynamicloader.h +config.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/config.h +vector +- +slifunction.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/slifunction.h +slimodule.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/slimodule.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/enum_bitfield.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/event.h +cassert +- +cstring +- +algorithm +- +vector +- +lockptr.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/lockptr.h +exceptions.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/exceptions.h +nest_time.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/nest_time.h +nest_types.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/nest_types.h +vp_manager.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/vp_manager.h +name.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/name.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/event_delivery_manager.h +cassert +- +limits +- +vector +- +manager_interface.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/manager_interface.h +stopwatch.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/stopwatch.h +event.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/event.h +mpi_manager.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/mpi_manager.h +nest_time.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/nest_time.h +nest_types.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/nest_types.h +node.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/node.h +per_thread_bool_indicator.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/per_thread_bool_indicator.h +target_table.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/target_table.h +spike_data.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/spike_data.h +vp_manager.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/vp_manager.h +dictdatum.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/dictdatum.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/exceptions.h +nest_time.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/nest_time.h +name.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/name.h +sliexceptions.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/sliexceptions.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/genericdatum.h +datum.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/datum.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/genericmodel.h +new +- +model.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/model.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/genericmodel_impl.h +genericmodel.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/genericmodel.h +kernel_manager.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/kernel_manager.h +logging_manager.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/logging_manager.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/gid_collection.h +ostream +- +stdexcept +- +utility +- +vector +- +nest_types.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/nest_types.h +arraydatum.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/arraydatum.h +tokenarray.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/tokenarray.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/growth_curve.h +nest_types.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/nest_types.h +exceptions.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/exceptions.h +dictdatum.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/dictdatum.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/growth_curve_factory.h +growth_curve.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/growth_curve.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/gslrandomgen.h +cassert +- +list +- +string +- +config.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/config.h +random_datums.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/random_datums.h +randomgen.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/randomgen.h +dictdatum.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/dictdatum.h +gsl/gsl_rng.h +- + +/home/pedroernesto/anaconda3/build/NEST/include/nest/histentry.h +nest_types.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/nest_types.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/integerdatum.h +interpret.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/interpret.h +numericdatum.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/numericdatum.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/interpret.h +list +- +typeinfo +- +sliactions.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/sliactions.h +slibuiltins.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/slibuiltins.h +slimodule.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/slimodule.h +slitype.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/slitype.h +token.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/token.h +tokenstack.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/tokenstack.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/io_manager.h +string +- +manager_interface.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/manager_interface.h +dictdatum.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/dictdatum.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/iterator_pair.h +boost/iterator/iterator_adaptor.hpp +- +boost/tuple/tuple.hpp +- +source.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/source.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/kernel_manager.h +connection_manager.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/connection_manager.h +event_delivery_manager.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/event_delivery_manager.h +io_manager.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/io_manager.h +logging_manager.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/logging_manager.h +model_manager.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/model_manager.h +modelrange_manager.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/modelrange_manager.h +mpi_manager.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/mpi_manager.h +music_manager.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/music_manager.h +node_manager.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/node_manager.h +rng_manager.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/rng_manager.h +simulation_manager.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/simulation_manager.h +sp_manager.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/sp_manager.h +vp_manager.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/vp_manager.h +dictdatum.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/dictdatum.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/librandom_exceptions.h +sliexceptions.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/sliexceptions.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/librandom_names.h +name.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/name.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/lockptr.h +cassert +- +cstddef +- + +/home/pedroernesto/anaconda3/build/NEST/include/nest/lockptrdatum.h +lockptr.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/lockptr.h +datum.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/datum.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/lockptrdatum_impl.h +lockptrdatum.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/lockptrdatum.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/logging.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/logging_manager.h +string +- +vector +- +logging.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/logging.h +manager_interface.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/manager_interface.h +dictdatum.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/dictdatum.h +nest_names.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/nest_names.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/manager_interface.h +dictdatum.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/dictdatum.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/model.h +new +- +string +- +vector +- +allocator.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/allocator.h +node.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/node.h +dictutils.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/dictutils.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/model_manager.h +string +- +connector_model.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/connector_model.h +genericmodel.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/genericmodel.h +manager_interface.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/manager_interface.h +model.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/model.h +nest.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/nest.h +nest_time.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/nest_time.h +nest_timeconverter.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/nest_timeconverter.h +nest_types.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/nest_types.h +node.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/node.h +dictutils.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/dictutils.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/model_manager_impl.h +model_manager.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/model_manager.h +compose.hpp +/home/pedroernesto/anaconda3/build/NEST/include/nest/compose.hpp +string_utils.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/string_utils.h +connection_label.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/connection_label.h +kernel_manager.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/kernel_manager.h +nest.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/nest.h +target_identifier.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/target_identifier.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/modelrange.h +nest_types.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/nest_types.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/modelrange_manager.h +vector +- +manager_interface.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/manager_interface.h +modelrange.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/modelrange.h +nest_types.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/nest_types.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/mpi_manager.h +config.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/config.h +unistd.h +- +mpi.h +- +cassert +- +cmath +- +iostream +- +limits +- +numeric +- +vector +- +manager_interface.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/manager_interface.h +nest_types.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/nest_types.h +spike_data.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/spike_data.h +target_data.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/target_data.h +dictdatum.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/dictdatum.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/mpi_manager_impl.h +config.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/config.h +mpi.h +- +mpi_manager.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/mpi_manager.h +kernel_manager.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/kernel_manager.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/music_event_handler.h +config.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/config.h +music.hh +- +queue +- +nest_types.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/nest_types.h +node.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/node.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/music_manager.h +config.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/config.h +music.hh +- +string +- +manager_interface.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/manager_interface.h +nest_types.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/nest_types.h +dict.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/dict.h +music_event_handler.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/music_event_handler.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/name.h +cassert +- +deque +- +iostream +- +map +- +string +- + +/home/pedroernesto/anaconda3/build/NEST/include/nest/namedatum.h +string +- +typeinfo +- +config.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/config.h +aggregatedatum.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/aggregatedatum.h +interpret.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/interpret.h +name.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/name.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/nest.h +ostream +- +enum_bitfield.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/enum_bitfield.h +logging.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/logging.h +randomgen.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/randomgen.h +nest_datums.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/nest_datums.h +nest_time.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/nest_time.h +nest_types.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/nest_types.h +arraydatum.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/arraydatum.h +dictdatum.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/dictdatum.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/nest_datums.h +connection_id.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/connection_id.h +gid_collection.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/gid_collection.h +nestmodule.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/nestmodule.h +aggregatedatum.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/aggregatedatum.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/nest_impl.h +kernel_manager.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/kernel_manager.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/nest_names.h +name.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/name.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/nest_time.h +cassert +- +cfloat +- +cmath +- +cstdlib +- +iostream +- +limits +- +string +- +numerics.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/numerics.h +nest_types.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/nest_types.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/nest_timeconverter.h +nest_types.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/nest_types.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/nest_types.h +cfloat +- +climits +- +cstddef +- +limits +- +config.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/config.h +stdint.h +- +cstdint +- + +/home/pedroernesto/anaconda3/build/NEST/include/nest/nestmodule.h +event.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/event.h +exceptions.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/exceptions.h +dict.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/dict.h +slifunction.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/slifunction.h +slimodule.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/slimodule.h +slitype.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/slitype.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/node.h +bitset +- +deque +- +sstream +- +string +- +utility +- +vector +- +event.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/event.h +histentry.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/histentry.h +nest_names.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/nest_names.h +nest_time.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/nest_time.h +nest_types.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/nest_types.h +dictdatum.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/dictdatum.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/node_manager.h +vector +- +manager_interface.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/manager_interface.h +conn_builder.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/conn_builder.h +nest_types.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/nest_types.h +sparse_node_array.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/sparse_node_array.h +arraydatum.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/arraydatum.h +dictdatum.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/dictdatum.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/numericdatum.h +allocator.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/allocator.h +genericdatum.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/genericdatum.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/numerics.h +config.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/config.h +cassert +- +cmath +- +limits +- +math.h +- +cmath +- +math.h +- + +/home/pedroernesto/anaconda3/build/NEST/include/nest/per_thread_bool_indicator.h +cassert +- +cstddef +- +cstdint +- +nest_types.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/nest_types.h +vp_manager.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/vp_manager.h +dictdatum.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/dictdatum.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/random_datums.h +random_numbers.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/random_numbers.h +randomdev.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/randomdev.h +randomgen.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/randomgen.h +lockptrdatum.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/lockptrdatum.h +lockptrdatum_impl.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/lockptrdatum_impl.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/random_numbers.h +string +- +slimodule.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/slimodule.h +slitype.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/slitype.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/randomdev.h +cassert +- +librandom_exceptions.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/librandom_exceptions.h +randomgen.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/randomgen.h +dictdatum.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/dictdatum.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/randomgen.h +cmath +- +vector +- +lockptr.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/lockptr.h +librandom_names.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/librandom_names.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/rng_manager.h +vector +- +manager_interface.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/manager_interface.h +randomgen.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/randomgen.h +mpi_manager.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/mpi_manager.h +nest_types.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/nest_types.h +dictdatum.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/dictdatum.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/sibling_container.h +string +- +vector +- +nest_types.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/nest_types.h +node.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/node.h +dictdatum.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/dictdatum.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/simulation_manager.h +sys/time.h +- +vector +- +manager_interface.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/manager_interface.h +nest_time.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/nest_time.h +nest_types.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/nest_types.h +dictdatum.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/dictdatum.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/sliactions.h +slifunction.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/slifunction.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/slibuiltins.h +typeinfo +- +slifunction.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/slifunction.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/sliexceptions.h +iostream +- +string +- +vector +- +name.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/name.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/slifunction.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/slimodule.h +iostream +- +string +- + +/home/pedroernesto/anaconda3/build/NEST/include/nest/slitype.h +iostream +- +typeinfo +- +name.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/name.h +slifunction.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/slifunction.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/sort.h +algorithm +- +cstddef +- +vector +- +config.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/config.h +block_vector.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/block_vector.h +boost/sort/spreadsort/spreadsort.hpp +- +iterator_pair.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/iterator_pair.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/source.h +cassert +- +nest_types.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/nest_types.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/source_table.h +algorithm +- +cassert +- +iostream +- +map +- +set +- +vector +- +mpi_manager.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/mpi_manager.h +nest_types.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/nest_types.h +per_thread_bool_indicator.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/per_thread_bool_indicator.h +source.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/source.h +source_table_position.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/source_table_position.h +block_vector.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/block_vector.h +vector_util.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/vector_util.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/source_table_position.h +cassert +- +iostream +- +vector +- +block_vector.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/block_vector.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/sp_manager.h +vector +- +manager_interface.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/manager_interface.h +gid_collection.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/gid_collection.h +growth_curve_factory.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/growth_curve_factory.h +nest_time.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/nest_time.h +nest_types.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/nest_types.h +arraydatum.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/arraydatum.h +dict.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/dict.h +dictdatum.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/dictdatum.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/sparse_node_array.h +cassert +- +map +- +vector +- +nest_types.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/nest_types.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/spike_data.h +cassert +- +nest_types.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/nest_types.h +target.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/target.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/spikecounter.h +nest_types.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/nest_types.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/static_assert.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/stopwatch.h +sys/time.h +- +cassert +- +iostream +- + +/home/pedroernesto/anaconda3/build/NEST/include/nest/string_utils.h +algorithm +- +string +- + +/home/pedroernesto/anaconda3/build/NEST/include/nest/syn_id_delay.h +nest_time.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/nest_time.h +nest_types.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/nest_types.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/target.h +cassert +- +nest_types.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/nest_types.h +static_assert.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/static_assert.h +exceptions.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/exceptions.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/target_data.h +limits +- +nest_types.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/nest_types.h +static_assert.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/static_assert.h +target.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/target.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/target_identifier.h +kernel_manager.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/kernel_manager.h +compose.hpp +/home/pedroernesto/anaconda3/build/NEST/include/nest/compose.hpp + +/home/pedroernesto/anaconda3/build/NEST/include/nest/target_table.h +cassert +- +iostream +- +map +- +vector +- +nest_types.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/nest_types.h +spike_data.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/spike_data.h +target.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/target.h +target_data.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/target_data.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/target_table_devices.h +cassert +- +map +- +vector +- +connection_id.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/connection_id.h +connector_base.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/connector_base.h +event.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/event.h +nest_types.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/nest_types.h +arraydatum.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/arraydatum.h +dictdatum.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/dictdatum.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/target_table_devices_impl.h +connector_base.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/connector_base.h +kernel_manager.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/kernel_manager.h +model_manager.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/model_manager.h +node.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/node.h +target_table_devices.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/target_table_devices.h +vp_manager_impl.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/vp_manager_impl.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/tarrayobj.h +cstddef +- +typeinfo +- +token.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/token.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/token.h +iomanip +- +iostream +- +string +- +typeinfo +- +vector +- +config.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/config.h +datum.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/datum.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/tokenarray.h +algorithm +- +cstddef +- +typeinfo +- +vector +- +sliexceptions.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/sliexceptions.h +tarrayobj.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/tarrayobj.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/tokenstack.h +tarrayobj.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/tarrayobj.h +token.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/token.h +tokenarray.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/tokenarray.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/tokenutils.h +string +- +config.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/config.h +namedatum.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/namedatum.h +sliexceptions.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/sliexceptions.h +token.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/token.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/vector_util.h +vector +- +cstddef +- + +/home/pedroernesto/anaconda3/build/NEST/include/nest/vp_manager.h +manager_interface.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/manager_interface.h +nest_types.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/nest_types.h +dictdatum.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/dictdatum.h +omp.h +- + +/home/pedroernesto/anaconda3/build/NEST/include/nest/vp_manager_impl.h +vp_manager.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/vp_manager.h +kernel_manager.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/kernel_manager.h +mpi_manager.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/mpi_manager.h +mpi_manager_impl.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/mpi_manager_impl.h + +/home/pedroernesto/anaconda3/include/boost/config.hpp +boost/config/user.hpp +- +boost/config/detail/select_compiler_config.hpp +- +boost/config/detail/select_stdlib_config.hpp +- +boost/config/detail/select_platform_config.hpp +- +boost/config/detail/suffix.hpp +- + +/home/pedroernesto/anaconda3/include/boost/config/compiler/borland.hpp +climits +- +cwchar +- +limits.h +- +wchar.h +- +cstring +- +errno.h +- +float.h +- + +/home/pedroernesto/anaconda3/include/boost/config/compiler/clang.hpp + +/home/pedroernesto/anaconda3/include/boost/config/compiler/codegear.hpp +cstring +- +errno.h +- + +/home/pedroernesto/anaconda3/include/boost/config/compiler/comeau.hpp +boost/config/compiler/common_edg.hpp +- + +/home/pedroernesto/anaconda3/include/boost/config/compiler/common_edg.hpp + +/home/pedroernesto/anaconda3/include/boost/config/compiler/compaq_cxx.hpp +boost/config/compiler/common_edg.hpp +- + +/home/pedroernesto/anaconda3/include/boost/config/compiler/cray.hpp +boost/config/compiler/common_edg.hpp +- + +/home/pedroernesto/anaconda3/include/boost/config/compiler/digitalmars.hpp +cstddef +- + +/home/pedroernesto/anaconda3/include/boost/config/compiler/gcc.hpp +cstddef +- +stddef.h +- + +/home/pedroernesto/anaconda3/include/boost/config/compiler/gcc_xml.hpp + +/home/pedroernesto/anaconda3/include/boost/config/compiler/greenhills.hpp +boost/config/compiler/common_edg.hpp +- + +/home/pedroernesto/anaconda3/include/boost/config/compiler/hp_acc.hpp +boost/config/compiler/common_edg.hpp +- + +/home/pedroernesto/anaconda3/include/boost/config/compiler/intel.hpp +boost/config/compiler/visualc.hpp +- +boost/config/compiler/gcc.hpp +- +boost/config/compiler/common_edg.hpp +- +cwchar +- + +/home/pedroernesto/anaconda3/include/boost/config/compiler/kai.hpp +boost/config/compiler/common_edg.hpp +- + +/home/pedroernesto/anaconda3/include/boost/config/compiler/metrowerks.hpp + +/home/pedroernesto/anaconda3/include/boost/config/compiler/mpw.hpp + +/home/pedroernesto/anaconda3/include/boost/config/compiler/nvcc.hpp + +/home/pedroernesto/anaconda3/include/boost/config/compiler/pathscale.hpp +boost/config/compiler/clang.hpp +/home/pedroernesto/anaconda3/include/boost/config/compiler/boost/config/compiler/clang.hpp + +/home/pedroernesto/anaconda3/include/boost/config/compiler/pgi.hpp +boost/config/compiler/gcc.hpp +- + +/home/pedroernesto/anaconda3/include/boost/config/compiler/sgi_mipspro.hpp +boost/config/compiler/common_edg.hpp +- + +/home/pedroernesto/anaconda3/include/boost/config/compiler/sunpro_cc.hpp + +/home/pedroernesto/anaconda3/include/boost/config/compiler/vacpp.hpp + +/home/pedroernesto/anaconda3/include/boost/config/compiler/visualc.hpp +boost/config/pragma_message.hpp +- + +/home/pedroernesto/anaconda3/include/boost/config/compiler/xlcpp.hpp + +/home/pedroernesto/anaconda3/include/boost/config/compiler/xlcpp_zos.hpp +features.h +- + +/home/pedroernesto/anaconda3/include/boost/config/detail/posix_features.hpp +unistd.h +- + +/home/pedroernesto/anaconda3/include/boost/config/detail/select_compiler_config.hpp +boost/config/compiler/nvcc.hpp +/home/pedroernesto/anaconda3/include/boost/config/detail/boost/config/compiler/nvcc.hpp +boost/config/compiler/gcc_xml.hpp +- +boost/config/compiler/cray.hpp +- +boost/config/compiler/comeau.hpp +- +boost/config/compiler/pathscale.hpp +- +boost/config/compiler/intel.hpp +- +boost/config/compiler/clang.hpp +- +boost/config/compiler/digitalmars.hpp +- +boost/config/compiler/gcc.hpp +- +boost/config/compiler/kai.hpp +- +boost/config/compiler/sgi_mipspro.hpp +- +boost/config/compiler/compaq_cxx.hpp +- +boost/config/compiler/greenhills.hpp +- +boost/config/compiler/codegear.hpp +- +boost/config/compiler/borland.hpp +- +boost/config/compiler/metrowerks.hpp +- +boost/config/compiler/sunpro_cc.hpp +- +boost/config/compiler/hp_acc.hpp +- +boost/config/compiler/mpw.hpp +- +boost/config/compiler/xlcpp_zos.hpp +- +boost/config/compiler/xlcpp.hpp +- +boost/config/compiler/vacpp.hpp +- +boost/config/compiler/pgi.hpp +- +boost/config/compiler/visualc.hpp +- + +/home/pedroernesto/anaconda3/include/boost/config/detail/select_platform_config.hpp +boost/config/detail/posix_features.hpp +- +boost/config/platform/linux.hpp +/home/pedroernesto/anaconda3/include/boost/config/detail/boost/config/platform/linux.hpp +boost/config/platform/bsd.hpp +/home/pedroernesto/anaconda3/include/boost/config/detail/boost/config/platform/bsd.hpp +boost/config/platform/solaris.hpp +/home/pedroernesto/anaconda3/include/boost/config/detail/boost/config/platform/solaris.hpp +boost/config/platform/irix.hpp +/home/pedroernesto/anaconda3/include/boost/config/detail/boost/config/platform/irix.hpp +boost/config/platform/hpux.hpp +/home/pedroernesto/anaconda3/include/boost/config/detail/boost/config/platform/hpux.hpp +boost/config/platform/cygwin.hpp +/home/pedroernesto/anaconda3/include/boost/config/detail/boost/config/platform/cygwin.hpp +boost/config/platform/win32.hpp +/home/pedroernesto/anaconda3/include/boost/config/detail/boost/config/platform/win32.hpp +boost/config/platform/beos.hpp +/home/pedroernesto/anaconda3/include/boost/config/detail/boost/config/platform/beos.hpp +boost/config/platform/macos.hpp +/home/pedroernesto/anaconda3/include/boost/config/detail/boost/config/platform/macos.hpp +boost/config/platform/zos.hpp +/home/pedroernesto/anaconda3/include/boost/config/detail/boost/config/platform/zos.hpp +boost/config/platform/aix.hpp +/home/pedroernesto/anaconda3/include/boost/config/detail/boost/config/platform/aix.hpp +boost/config/platform/amigaos.hpp +/home/pedroernesto/anaconda3/include/boost/config/detail/boost/config/platform/amigaos.hpp +boost/config/platform/qnxnto.hpp +/home/pedroernesto/anaconda3/include/boost/config/detail/boost/config/platform/qnxnto.hpp +boost/config/platform/vxworks.hpp +/home/pedroernesto/anaconda3/include/boost/config/detail/boost/config/platform/vxworks.hpp +boost/config/platform/symbian.hpp +/home/pedroernesto/anaconda3/include/boost/config/detail/boost/config/platform/symbian.hpp +boost/config/platform/cray.hpp +/home/pedroernesto/anaconda3/include/boost/config/detail/boost/config/platform/cray.hpp +boost/config/platform/vms.hpp +/home/pedroernesto/anaconda3/include/boost/config/detail/boost/config/platform/vms.hpp +boost/config/detail/posix_features.hpp +- + +/home/pedroernesto/anaconda3/include/boost/config/detail/select_stdlib_config.hpp +cstddef +- +stddef.h +- +utility +- +boost/config/stdlib/stlport.hpp +/home/pedroernesto/anaconda3/include/boost/config/detail/boost/config/stdlib/stlport.hpp +boost/config/stdlib/libcomo.hpp +/home/pedroernesto/anaconda3/include/boost/config/detail/boost/config/stdlib/libcomo.hpp +boost/config/stdlib/roguewave.hpp +/home/pedroernesto/anaconda3/include/boost/config/detail/boost/config/stdlib/roguewave.hpp +boost/config/stdlib/libcpp.hpp +/home/pedroernesto/anaconda3/include/boost/config/detail/boost/config/stdlib/libcpp.hpp +boost/config/stdlib/libstdcpp3.hpp +/home/pedroernesto/anaconda3/include/boost/config/detail/boost/config/stdlib/libstdcpp3.hpp +boost/config/stdlib/sgi.hpp +/home/pedroernesto/anaconda3/include/boost/config/detail/boost/config/stdlib/sgi.hpp +boost/config/stdlib/msl.hpp +/home/pedroernesto/anaconda3/include/boost/config/detail/boost/config/stdlib/msl.hpp +boost/config/stdlib/xlcpp_zos.hpp +/home/pedroernesto/anaconda3/include/boost/config/detail/boost/config/stdlib/xlcpp_zos.hpp +boost/config/stdlib/vacpp.hpp +/home/pedroernesto/anaconda3/include/boost/config/detail/boost/config/stdlib/vacpp.hpp +boost/config/stdlib/modena.hpp +/home/pedroernesto/anaconda3/include/boost/config/detail/boost/config/stdlib/modena.hpp +boost/config/stdlib/dinkumware.hpp +/home/pedroernesto/anaconda3/include/boost/config/detail/boost/config/stdlib/dinkumware.hpp + +/home/pedroernesto/anaconda3/include/boost/config/detail/suffix.hpp +limits.h +- +cstddef +- +typeinfo +- +boost/config/helper_macros.hpp +- + +/home/pedroernesto/anaconda3/include/boost/config/helper_macros.hpp + +/home/pedroernesto/anaconda3/include/boost/config/no_tr1/utility.hpp +utility +- + +/home/pedroernesto/anaconda3/include/boost/config/platform/aix.hpp +boost/config/detail/posix_features.hpp +- + +/home/pedroernesto/anaconda3/include/boost/config/platform/amigaos.hpp + +/home/pedroernesto/anaconda3/include/boost/config/platform/beos.hpp +boost/config/detail/posix_features.hpp +- + +/home/pedroernesto/anaconda3/include/boost/config/platform/bsd.hpp +boost/config/detail/posix_features.hpp +- + +/home/pedroernesto/anaconda3/include/boost/config/platform/cray.hpp +boost/config/detail/posix_features.hpp +- + +/home/pedroernesto/anaconda3/include/boost/config/platform/cygwin.hpp +unistd.h +- +sys/types.h +- +pthread.h +- +boost/config/detail/posix_features.hpp +- + +/home/pedroernesto/anaconda3/include/boost/config/platform/hpux.hpp +boost/config/detail/posix_features.hpp +- + +/home/pedroernesto/anaconda3/include/boost/config/platform/irix.hpp +boost/config/detail/posix_features.hpp +- + +/home/pedroernesto/anaconda3/include/boost/config/platform/linux.hpp +cstdlib +- +stdlib.h +- +boost/config/detail/posix_features.hpp +- + +/home/pedroernesto/anaconda3/include/boost/config/platform/macos.hpp +boost/config/detail/posix_features.hpp +- + +/home/pedroernesto/anaconda3/include/boost/config/platform/qnxnto.hpp +boost/config/detail/posix_features.hpp +- + +/home/pedroernesto/anaconda3/include/boost/config/platform/solaris.hpp +boost/config/detail/posix_features.hpp +- + +/home/pedroernesto/anaconda3/include/boost/config/platform/symbian.hpp +cstdlib +- +stdlib.h +- +boost/config/detail/posix_features.hpp +- +sys/endian.h +- + +/home/pedroernesto/anaconda3/include/boost/config/platform/vms.hpp + +/home/pedroernesto/anaconda3/include/boost/config/platform/vxworks.hpp +version.h +- +time.h +- +sysLib.h +- +cstdint +- +sys/time.h +- +ioLib.h +- +tickLib.h +- +signal.h +- +boost/config/detail/posix_features.hpp +- + +/home/pedroernesto/anaconda3/include/boost/config/platform/win32.hpp +_mingw.h +- + +/home/pedroernesto/anaconda3/include/boost/config/platform/zos.hpp +features.h +- + +/home/pedroernesto/anaconda3/include/boost/config/pragma_message.hpp +boost/config/helper_macros.hpp +- + +/home/pedroernesto/anaconda3/include/boost/config/stdlib/dinkumware.hpp +boost/config/no_tr1/utility.hpp +- +exception +- +typeinfo +- + +/home/pedroernesto/anaconda3/include/boost/config/stdlib/libcomo.hpp +boost/config/no_tr1/utility.hpp +- + +/home/pedroernesto/anaconda3/include/boost/config/stdlib/libcpp.hpp +ciso646 +- + +/home/pedroernesto/anaconda3/include/boost/config/stdlib/libstdcpp3.hpp +unistd.h +- + +/home/pedroernesto/anaconda3/include/boost/config/stdlib/modena.hpp +boost/config/no_tr1/utility.hpp +- + +/home/pedroernesto/anaconda3/include/boost/config/stdlib/msl.hpp +boost/config/no_tr1/utility.hpp +- +cstddef +- +boost/config/detail/posix_features.hpp +- + +/home/pedroernesto/anaconda3/include/boost/config/stdlib/roguewave.hpp +boost/config/no_tr1/utility.hpp +- + +/home/pedroernesto/anaconda3/include/boost/config/stdlib/sgi.hpp +boost/config/no_tr1/utility.hpp +- +unistd.h +- +string +- + +/home/pedroernesto/anaconda3/include/boost/config/stdlib/stlport.hpp +cstddef +- +unistd.h +- +stdlib.h +- +string.h +- +algorithm +- + +/home/pedroernesto/anaconda3/include/boost/config/stdlib/vacpp.hpp +unistd.h +- + +/home/pedroernesto/anaconda3/include/boost/config/stdlib/xlcpp_zos.hpp + +/home/pedroernesto/anaconda3/include/boost/config/user.hpp + +/home/pedroernesto/anaconda3/include/boost/config/workaround.hpp +boost/config.hpp +- + +/home/pedroernesto/anaconda3/include/boost/core/addressof.hpp +boost/config.hpp +- +boost/config/workaround.hpp +- +cstddef +- + +/home/pedroernesto/anaconda3/include/boost/core/enable_if.hpp +boost/config.hpp +/home/pedroernesto/anaconda3/include/boost/core/boost/config.hpp + +/home/pedroernesto/anaconda3/include/boost/core/noncopyable.hpp +boost/config.hpp +- + +/home/pedroernesto/anaconda3/include/boost/core/ref.hpp +boost/config.hpp +- +boost/config/workaround.hpp +- +boost/core/addressof.hpp +- + +/home/pedroernesto/anaconda3/include/boost/core/swap.hpp +utility +- +algorithm +- +cstddef +- +boost/config.hpp +- + +/home/pedroernesto/anaconda3/include/boost/cstdint.hpp +boost/config.hpp +- +inttypes.h +- +inttypes.h +- +stdint.h +- +inttypes.h +- +boost/limits.hpp +- +limits.h +- +stddef.h +- +limits.h +- + +/home/pedroernesto/anaconda3/include/boost/detail/indirect_traits.hpp +boost/type_traits/is_function.hpp +- +boost/type_traits/is_reference.hpp +- +boost/type_traits/is_pointer.hpp +- +boost/type_traits/is_class.hpp +- +boost/type_traits/is_const.hpp +- +boost/type_traits/is_volatile.hpp +- +boost/type_traits/is_member_function_pointer.hpp +- +boost/type_traits/is_member_pointer.hpp +- +boost/type_traits/remove_cv.hpp +- +boost/type_traits/remove_reference.hpp +- +boost/type_traits/remove_pointer.hpp +- +boost/detail/workaround.hpp +- +boost/mpl/eval_if.hpp +- +boost/mpl/if.hpp +- +boost/mpl/bool.hpp +- +boost/mpl/and.hpp +- +boost/mpl/not.hpp +- +boost/mpl/aux_/lambda_support.hpp +- + +/home/pedroernesto/anaconda3/include/boost/detail/workaround.hpp +boost/config/workaround.hpp +- + +/home/pedroernesto/anaconda3/include/boost/iterator/detail/config_def.hpp +boost/config.hpp +- +boost/detail/workaround.hpp +- +boost/type_traits/is_convertible.hpp +- + +/home/pedroernesto/anaconda3/include/boost/iterator/detail/config_undef.hpp + +/home/pedroernesto/anaconda3/include/boost/iterator/detail/enable_if.hpp +boost/detail/workaround.hpp +- +boost/mpl/identity.hpp +- +boost/iterator/detail/config_def.hpp +- +boost/iterator/detail/config_undef.hpp +- + +/home/pedroernesto/anaconda3/include/boost/iterator/detail/facade_iterator_category.hpp +boost/iterator/iterator_categories.hpp +- +boost/mpl/or.hpp +- +boost/mpl/and.hpp +- +boost/mpl/if.hpp +- +boost/mpl/eval_if.hpp +- +boost/mpl/identity.hpp +- +boost/mpl/assert.hpp +- +boost/type_traits/is_same.hpp +- +boost/type_traits/is_const.hpp +- +boost/type_traits/is_reference.hpp +- +boost/type_traits/is_convertible.hpp +- +boost/type_traits/is_same.hpp +- +boost/iterator/detail/config_def.hpp +- +boost/detail/indirect_traits.hpp +- +boost/iterator/detail/config_undef.hpp +- + +/home/pedroernesto/anaconda3/include/boost/iterator/interoperable.hpp +boost/mpl/bool.hpp +- +boost/mpl/or.hpp +- +boost/type_traits/is_convertible.hpp +- +boost/iterator/detail/config_def.hpp +- +boost/iterator/detail/config_undef.hpp +- + +/home/pedroernesto/anaconda3/include/boost/iterator/iterator_adaptor.hpp +boost/static_assert.hpp +- +boost/iterator/iterator_categories.hpp +- +boost/iterator/iterator_facade.hpp +- +boost/iterator/detail/enable_if.hpp +- +boost/mpl/and.hpp +- +boost/mpl/not.hpp +- +boost/mpl/or.hpp +- +boost/type_traits/is_same.hpp +- +boost/type_traits/is_convertible.hpp +- +boost/type_traits/remove_reference.hpp +- +boost/type_traits/add_reference.hpp +- +boost/iterator/detail/config_def.hpp +- +boost/iterator/iterator_traits.hpp +- +boost/iterator/detail/config_undef.hpp +- + +/home/pedroernesto/anaconda3/include/boost/iterator/iterator_categories.hpp +boost/config.hpp +- +boost/iterator/detail/config_def.hpp +- +boost/detail/workaround.hpp +- +boost/mpl/eval_if.hpp +- +boost/mpl/identity.hpp +- +boost/mpl/placeholders.hpp +- +boost/mpl/aux_/lambda_support.hpp +- +boost/type_traits/is_convertible.hpp +- +boost/static_assert.hpp +- +iterator +- +boost/iterator/detail/config_undef.hpp +- + +/home/pedroernesto/anaconda3/include/boost/iterator/iterator_facade.hpp +boost/config.hpp +- +boost/iterator/interoperable.hpp +- +boost/iterator/iterator_traits.hpp +- +boost/iterator/iterator_categories.hpp +- +boost/iterator/detail/facade_iterator_category.hpp +- +boost/iterator/detail/enable_if.hpp +- +boost/static_assert.hpp +- +boost/utility/addressof.hpp +- +boost/type_traits/is_same.hpp +- +boost/type_traits/add_const.hpp +- +boost/type_traits/add_pointer.hpp +- +boost/type_traits/add_lvalue_reference.hpp +- +boost/type_traits/remove_const.hpp +- +boost/type_traits/remove_reference.hpp +- +boost/type_traits/is_convertible.hpp +- +boost/type_traits/is_pod.hpp +- +boost/mpl/eval_if.hpp +- +boost/mpl/if.hpp +- +boost/mpl/or.hpp +- +boost/mpl/and.hpp +- +boost/mpl/not.hpp +- +boost/mpl/always.hpp +- +boost/mpl/apply.hpp +- +boost/mpl/identity.hpp +- +cstddef +- +boost/iterator/detail/config_def.hpp +- +boost/iterator/detail/config_undef.hpp +- + +/home/pedroernesto/anaconda3/include/boost/iterator/iterator_traits.hpp +boost/detail/workaround.hpp +- +iterator +- + +/home/pedroernesto/anaconda3/include/boost/limits.hpp +boost/config.hpp +- +limits +- +climits +- + +/home/pedroernesto/anaconda3/include/boost/mpl/always.hpp +boost/mpl/aux_/preprocessor/default_params.hpp +- +boost/mpl/aux_/na.hpp +- +boost/mpl/aux_/arity_spec.hpp +- + +/home/pedroernesto/anaconda3/include/boost/mpl/and.hpp +boost/mpl/aux_/config/use_preprocessed.hpp +- +boost/mpl/bool.hpp +- +boost/mpl/aux_/nested_type_wknd.hpp +- +boost/mpl/aux_/na_spec.hpp +- +boost/mpl/aux_/lambda_support.hpp +- +boost/mpl/aux_/include_preprocessed.hpp +- +boost/mpl/aux_/logical_op.hpp +- + +/home/pedroernesto/anaconda3/include/boost/mpl/apply.hpp +boost/mpl/apply_fwd.hpp +- +boost/mpl/apply_wrap.hpp +- +boost/mpl/placeholders.hpp +- +boost/mpl/lambda.hpp +- +boost/mpl/aux_/na.hpp +- +boost/mpl/aux_/lambda_support.hpp +- +boost/mpl/aux_/config/use_preprocessed.hpp +- +boost/mpl/aux_/include_preprocessed.hpp +- +boost/mpl/limits/arity.hpp +- +boost/mpl/aux_/preprocessor/params.hpp +- +boost/mpl/aux_/preprocessor/default_params.hpp +- +boost/mpl/aux_/preprocessor/partial_spec_params.hpp +- +boost/mpl/aux_/preprocessor/enum.hpp +- +boost/mpl/aux_/config/lambda.hpp +- +boost/mpl/aux_/config/dtp.hpp +- +boost/mpl/aux_/nttp_decl.hpp +- +boost/mpl/aux_/config/eti.hpp +- +boost/mpl/aux_/config/msvc.hpp +- +boost/mpl/aux_/config/workaround.hpp +- +boost/preprocessor/comma_if.hpp +- +boost/preprocessor/inc.hpp +- +boost/preprocessor/iterate.hpp +- +boost/preprocessor/cat.hpp +- +boost/mpl/aux_/count_args.hpp +- + +/home/pedroernesto/anaconda3/include/boost/mpl/apply_fwd.hpp +boost/mpl/aux_/na.hpp +- +boost/mpl/aux_/config/use_preprocessed.hpp +- +boost/mpl/aux_/include_preprocessed.hpp +- +boost/mpl/limits/arity.hpp +- +boost/mpl/aux_/preprocessor/params.hpp +- +boost/mpl/aux_/preprocessor/default_params.hpp +- +boost/mpl/aux_/config/ctps.hpp +- +boost/mpl/aux_/nttp_decl.hpp +- +boost/preprocessor/comma_if.hpp +- +boost/preprocessor/iterate.hpp +- +boost/preprocessor/cat.hpp +- + +/home/pedroernesto/anaconda3/include/boost/mpl/apply_wrap.hpp +boost/mpl/aux_/arity.hpp +- +boost/mpl/aux_/has_apply.hpp +- +boost/mpl/aux_/na.hpp +- +boost/mpl/aux_/msvc_never_true.hpp +- +boost/mpl/aux_/config/use_preprocessed.hpp +- +boost/mpl/aux_/include_preprocessed.hpp +- +boost/mpl/limits/arity.hpp +- +boost/mpl/aux_/preprocessor/params.hpp +- +boost/mpl/aux_/preprocessor/enum.hpp +- +boost/mpl/aux_/preprocessor/add.hpp +- +boost/mpl/aux_/config/bcc.hpp +- +boost/mpl/aux_/config/ctps.hpp +- +boost/mpl/aux_/config/dtp.hpp +- +boost/mpl/aux_/config/eti.hpp +- +boost/mpl/aux_/config/msvc.hpp +- +boost/mpl/aux_/config/workaround.hpp +- +boost/preprocessor/comma_if.hpp +- +boost/preprocessor/logical/and.hpp +- +boost/preprocessor/inc.hpp +- +boost/preprocessor/iterate.hpp +- +boost/mpl/aux_/msvc_dtw.hpp +- + +/home/pedroernesto/anaconda3/include/boost/mpl/arg.hpp +boost/mpl/arg_fwd.hpp +- +boost/mpl/aux_/na.hpp +- +boost/mpl/aux_/na_assert.hpp +- +boost/mpl/aux_/arity_spec.hpp +- +boost/mpl/aux_/arg_typedef.hpp +- +boost/mpl/aux_/config/static_constant.hpp +- +boost/mpl/aux_/config/use_preprocessed.hpp +- +boost/mpl/aux_/include_preprocessed.hpp +- +boost/mpl/limits/arity.hpp +- +boost/mpl/aux_/preprocessor/default_params.hpp +- +boost/mpl/aux_/preprocessor/params.hpp +- +boost/mpl/aux_/config/lambda.hpp +- +boost/mpl/aux_/config/dtp.hpp +- +boost/mpl/aux_/nttp_decl.hpp +- +boost/preprocessor/iterate.hpp +- +boost/preprocessor/inc.hpp +- +boost/preprocessor/cat.hpp +- + +/home/pedroernesto/anaconda3/include/boost/mpl/arg_fwd.hpp +boost/mpl/aux_/adl_barrier.hpp +- +boost/mpl/aux_/nttp_decl.hpp +- + +/home/pedroernesto/anaconda3/include/boost/mpl/assert.hpp +boost/mpl/not.hpp +- +boost/mpl/aux_/value_wknd.hpp +- +boost/mpl/aux_/nested_type_wknd.hpp +- +boost/mpl/aux_/yes_no.hpp +- +boost/mpl/aux_/na.hpp +- +boost/mpl/aux_/adl_barrier.hpp +- +boost/mpl/aux_/config/nttp.hpp +- +boost/mpl/aux_/config/dtp.hpp +- +boost/mpl/aux_/config/gcc.hpp +- +boost/mpl/aux_/config/msvc.hpp +- +boost/mpl/aux_/config/gpu.hpp +- +boost/mpl/aux_/config/static_constant.hpp +- +boost/mpl/aux_/config/pp_counter.hpp +- +boost/mpl/aux_/config/workaround.hpp +- +boost/preprocessor/cat.hpp +- +boost/config.hpp +- +cstddef +- +boost/mpl/if.hpp +- + +/home/pedroernesto/anaconda3/include/boost/mpl/aux_/adl_barrier.hpp +boost/mpl/aux_/config/adl.hpp +- +boost/mpl/aux_/config/gcc.hpp +- +boost/mpl/aux_/config/workaround.hpp +- + +/home/pedroernesto/anaconda3/include/boost/mpl/aux_/arg_typedef.hpp +boost/mpl/aux_/config/lambda.hpp +- +boost/mpl/aux_/config/workaround.hpp +- + +/home/pedroernesto/anaconda3/include/boost/mpl/aux_/arity.hpp +boost/mpl/aux_/config/dtp.hpp +- +boost/mpl/aux_/nttp_decl.hpp +- +boost/mpl/aux_/config/static_constant.hpp +- + +/home/pedroernesto/anaconda3/include/boost/mpl/aux_/arity_spec.hpp +boost/mpl/int.hpp +- +boost/mpl/limits/arity.hpp +- +boost/mpl/aux_/config/dtp.hpp +- +boost/mpl/aux_/preprocessor/params.hpp +- +boost/mpl/aux_/arity.hpp +- +boost/mpl/aux_/template_arity_fwd.hpp +- +boost/mpl/aux_/config/ttp.hpp +- +boost/mpl/aux_/config/lambda.hpp +- +boost/mpl/aux_/config/static_constant.hpp +- + +/home/pedroernesto/anaconda3/include/boost/mpl/aux_/common_name_wknd.hpp +boost/mpl/aux_/config/workaround.hpp +- + +/home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/adl.hpp +boost/mpl/aux_/config/msvc.hpp +- +boost/mpl/aux_/config/intel.hpp +- +boost/mpl/aux_/config/gcc.hpp +- +boost/mpl/aux_/config/workaround.hpp +- + +/home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/arrays.hpp +boost/mpl/aux_/config/msvc.hpp +- +boost/mpl/aux_/config/workaround.hpp +- + +/home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/bcc.hpp +boost/mpl/aux_/config/workaround.hpp +- + +/home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/bind.hpp +boost/mpl/aux_/config/msvc.hpp +- +boost/mpl/aux_/config/workaround.hpp +- + +/home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/compiler.hpp +boost/mpl/aux_/config/dtp.hpp +- +boost/mpl/aux_/config/ttp.hpp +- +boost/mpl/aux_/config/ctps.hpp +- +boost/mpl/aux_/config/msvc.hpp +- +boost/mpl/aux_/config/gcc.hpp +- +boost/mpl/aux_/config/workaround.hpp +- + +/home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/ctps.hpp +boost/mpl/aux_/config/workaround.hpp +- +boost/config.hpp +- + +/home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/dmc_ambiguous_ctps.hpp +boost/mpl/aux_/config/workaround.hpp +- + +/home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/dtp.hpp +boost/mpl/aux_/config/workaround.hpp +- + +/home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/eti.hpp +boost/mpl/aux_/config/msvc.hpp +- +boost/mpl/aux_/config/workaround.hpp +- + +/home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/gcc.hpp + +/home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/gpu.hpp +boost/config.hpp +- + +/home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/has_apply.hpp +boost/mpl/aux_/config/has_xxx.hpp +- +boost/mpl/aux_/config/msvc.hpp +- +boost/mpl/aux_/config/workaround.hpp +- + +/home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/has_xxx.hpp +boost/mpl/aux_/config/overload_resolution.hpp +- +boost/mpl/aux_/config/workaround.hpp +- + +/home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/integral.hpp +boost/mpl/aux_/config/msvc.hpp +- +boost/mpl/aux_/config/workaround.hpp +- + +/home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/intel.hpp +boost/config.hpp +- + +/home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/lambda.hpp +boost/mpl/aux_/config/ttp.hpp +- +boost/mpl/aux_/config/ctps.hpp +- + +/home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/msvc.hpp +boost/config.hpp +- + +/home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/msvc_typename.hpp +boost/mpl/aux_/config/msvc.hpp +- +boost/mpl/aux_/config/workaround.hpp +- + +/home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/nttp.hpp +boost/mpl/aux_/config/msvc.hpp +- +boost/mpl/aux_/config/workaround.hpp +- + +/home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/overload_resolution.hpp +boost/mpl/aux_/config/workaround.hpp +- + +/home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/pp_counter.hpp +boost/mpl/aux_/config/msvc.hpp +- + +/home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/preprocessor.hpp +boost/mpl/aux_/config/workaround.hpp +- + +/home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/static_constant.hpp +boost/config.hpp +- + +/home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/ttp.hpp +boost/mpl/aux_/config/msvc.hpp +- +boost/mpl/aux_/config/gcc.hpp +- +boost/mpl/aux_/config/workaround.hpp +- + +/home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/use_preprocessed.hpp + +/home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/workaround.hpp +boost/detail/workaround.hpp +- + +/home/pedroernesto/anaconda3/include/boost/mpl/aux_/count_args.hpp +boost/preprocessor/expr_if.hpp +- +boost/preprocessor/inc.hpp +- +boost/preprocessor/cat.hpp +- +boost/mpl/aux_/preprocessor/repeat.hpp +- +boost/mpl/aux_/preprocessor/params.hpp +- +boost/preprocessor/enum_shifted_params.hpp +- +boost/preprocessor/repeat.hpp +- +boost/preprocessor/inc.hpp +- + +/home/pedroernesto/anaconda3/include/boost/mpl/aux_/full_lambda.hpp +boost/mpl/lambda_fwd.hpp +- +boost/mpl/bind_fwd.hpp +- +boost/mpl/protect.hpp +- +boost/mpl/quote.hpp +- +boost/mpl/arg.hpp +- +boost/mpl/bool.hpp +- +boost/mpl/int_fwd.hpp +- +boost/mpl/aux_/template_arity.hpp +- +boost/mpl/aux_/na_spec.hpp +- +boost/mpl/aux_/config/ttp.hpp +- +boost/mpl/if.hpp +- +boost/mpl/aux_/lambda_arity_param.hpp +- +boost/mpl/aux_/config/use_preprocessed.hpp +- +boost/mpl/aux_/include_preprocessed.hpp +- +boost/mpl/limits/arity.hpp +- +boost/mpl/aux_/preprocessor/default_params.hpp +- +boost/mpl/aux_/preprocessor/params.hpp +- +boost/mpl/aux_/preprocessor/enum.hpp +- +boost/mpl/aux_/preprocessor/repeat.hpp +- +boost/mpl/aux_/config/dmc_ambiguous_ctps.hpp +- +boost/preprocessor/iterate.hpp +- +boost/preprocessor/comma_if.hpp +- +boost/preprocessor/inc.hpp +- +boost/preprocessor/cat.hpp +- + +/home/pedroernesto/anaconda3/include/boost/mpl/aux_/has_apply.hpp +boost/mpl/has_xxx.hpp +- +boost/mpl/aux_/config/has_apply.hpp +- + +/home/pedroernesto/anaconda3/include/boost/mpl/aux_/has_rebind.hpp +boost/mpl/aux_/config/msvc.hpp +- +boost/mpl/aux_/config/intel.hpp +- +boost/mpl/aux_/config/workaround.hpp +- +boost/mpl/has_xxx.hpp +- +boost/mpl/has_xxx.hpp +- +boost/mpl/if.hpp +- +boost/mpl/bool.hpp +- +boost/mpl/aux_/msvc_is_class.hpp +- +boost/mpl/if.hpp +- +boost/mpl/bool.hpp +- +boost/mpl/aux_/yes_no.hpp +- +boost/mpl/aux_/config/static_constant.hpp +- +boost/type_traits/is_class.hpp +- +boost/mpl/aux_/type_wrapper.hpp +- +boost/mpl/aux_/yes_no.hpp +- +boost/mpl/aux_/config/static_constant.hpp +- + +/home/pedroernesto/anaconda3/include/boost/mpl/aux_/has_type.hpp +boost/mpl/has_xxx.hpp +- + +/home/pedroernesto/anaconda3/include/boost/mpl/aux_/include_preprocessed.hpp +boost/mpl/aux_/config/compiler.hpp +- +boost/mpl/aux_/config/preprocessor.hpp +- +boost/mpl/aux_/config/workaround.hpp +- +boost/preprocessor/cat.hpp +- +boost/preprocessor/stringize.hpp +- + +/home/pedroernesto/anaconda3/include/boost/mpl/aux_/integral_wrapper.hpp +boost/mpl/integral_c_tag.hpp +- +boost/mpl/aux_/static_cast.hpp +- +boost/mpl/aux_/nttp_decl.hpp +- +boost/mpl/aux_/config/static_constant.hpp +- +boost/mpl/aux_/config/workaround.hpp +- +boost/preprocessor/cat.hpp +- + +/home/pedroernesto/anaconda3/include/boost/mpl/aux_/lambda_arity_param.hpp +boost/mpl/aux_/config/ttp.hpp +- + +/home/pedroernesto/anaconda3/include/boost/mpl/aux_/lambda_no_ctps.hpp +boost/mpl/lambda_fwd.hpp +- +boost/mpl/bind_fwd.hpp +- +boost/mpl/protect.hpp +- +boost/mpl/is_placeholder.hpp +- +boost/mpl/if.hpp +- +boost/mpl/identity.hpp +- +boost/mpl/bool.hpp +- +boost/mpl/aux_/na_spec.hpp +- +boost/mpl/aux_/lambda_support.hpp +- +boost/mpl/aux_/template_arity.hpp +- +boost/mpl/aux_/value_wknd.hpp +- +boost/mpl/aux_/config/use_preprocessed.hpp +- +boost/mpl/aux_/include_preprocessed.hpp +- +boost/mpl/limits/arity.hpp +- +boost/mpl/aux_/preprocessor/params.hpp +- +boost/mpl/aux_/preprocessor/default_params.hpp +- +boost/mpl/aux_/preprocessor/repeat.hpp +- +boost/mpl/aux_/preprocessor/enum.hpp +- +boost/mpl/aux_/config/msvc.hpp +- +boost/mpl/aux_/config/workaround.hpp +- +boost/preprocessor/comma_if.hpp +- +boost/preprocessor/iterate.hpp +- +boost/preprocessor/inc.hpp +- +boost/preprocessor/cat.hpp +- + +/home/pedroernesto/anaconda3/include/boost/mpl/aux_/lambda_support.hpp +boost/mpl/aux_/config/lambda.hpp +- +boost/mpl/int_fwd.hpp +- +boost/mpl/aux_/yes_no.hpp +- +boost/mpl/aux_/na_fwd.hpp +- +boost/mpl/aux_/preprocessor/params.hpp +- +boost/mpl/aux_/preprocessor/enum.hpp +- +boost/mpl/aux_/config/msvc.hpp +- +boost/mpl/aux_/config/workaround.hpp +- +boost/preprocessor/tuple/to_list.hpp +- +boost/preprocessor/list/for_each_i.hpp +- +boost/preprocessor/inc.hpp +- +boost/preprocessor/cat.hpp +- + +/home/pedroernesto/anaconda3/include/boost/mpl/aux_/logical_op.hpp +boost/mpl/bool.hpp +- +boost/mpl/aux_/nested_type_wknd.hpp +- +boost/mpl/aux_/na_spec.hpp +- +boost/mpl/aux_/lambda_support.hpp +- +boost/mpl/limits/arity.hpp +- +boost/mpl/aux_/preprocessor/params.hpp +- +boost/mpl/aux_/preprocessor/ext_params.hpp +- +boost/mpl/aux_/preprocessor/def_params_tail.hpp +- +boost/mpl/aux_/preprocessor/enum.hpp +- +boost/mpl/aux_/preprocessor/sub.hpp +- +boost/mpl/aux_/config/ctps.hpp +- +boost/mpl/aux_/config/workaround.hpp +- +boost/preprocessor/dec.hpp +- +boost/preprocessor/inc.hpp +- +boost/preprocessor/cat.hpp +- + +/home/pedroernesto/anaconda3/include/boost/mpl/aux_/msvc_dtw.hpp +boost/mpl/aux_/preprocessor/params.hpp +- + +/home/pedroernesto/anaconda3/include/boost/mpl/aux_/msvc_is_class.hpp +boost/mpl/if.hpp +- +boost/mpl/bool.hpp +- +boost/mpl/aux_/type_wrapper.hpp +- +boost/mpl/aux_/yes_no.hpp +- +boost/type_traits/is_reference.hpp +- + +/home/pedroernesto/anaconda3/include/boost/mpl/aux_/msvc_never_true.hpp +boost/mpl/aux_/config/msvc.hpp +- +boost/mpl/aux_/config/workaround.hpp +- + +/home/pedroernesto/anaconda3/include/boost/mpl/aux_/na.hpp +boost/mpl/bool.hpp +- +boost/mpl/aux_/na_fwd.hpp +- +boost/mpl/aux_/config/msvc.hpp +- +boost/mpl/aux_/config/ctps.hpp +- + +/home/pedroernesto/anaconda3/include/boost/mpl/aux_/na_assert.hpp +boost/mpl/aux_/na.hpp +- +boost/mpl/aux_/config/msvc.hpp +- +boost/mpl/aux_/config/workaround.hpp +- +boost/mpl/assert.hpp +- +boost/static_assert.hpp +- + +/home/pedroernesto/anaconda3/include/boost/mpl/aux_/na_fwd.hpp +boost/mpl/aux_/adl_barrier.hpp +- + +/home/pedroernesto/anaconda3/include/boost/mpl/aux_/na_spec.hpp +boost/mpl/lambda_fwd.hpp +- +boost/mpl/int.hpp +- +boost/mpl/bool.hpp +- +boost/mpl/aux_/na.hpp +- +boost/mpl/aux_/arity.hpp +- +boost/mpl/aux_/template_arity_fwd.hpp +- +boost/mpl/aux_/preprocessor/params.hpp +- +boost/mpl/aux_/preprocessor/enum.hpp +- +boost/mpl/aux_/preprocessor/def_params_tail.hpp +- +boost/mpl/aux_/lambda_arity_param.hpp +- +boost/mpl/aux_/config/dtp.hpp +- +boost/mpl/aux_/config/eti.hpp +- +boost/mpl/aux_/nttp_decl.hpp +- +boost/mpl/aux_/config/ttp.hpp +- +boost/mpl/aux_/config/lambda.hpp +- +boost/mpl/aux_/config/overload_resolution.hpp +- + +/home/pedroernesto/anaconda3/include/boost/mpl/aux_/nested_type_wknd.hpp +boost/mpl/aux_/config/gcc.hpp +- +boost/mpl/aux_/config/workaround.hpp +- + +/home/pedroernesto/anaconda3/include/boost/mpl/aux_/nttp_decl.hpp +boost/mpl/aux_/config/nttp.hpp +- +boost/preprocessor/cat.hpp +- + +/home/pedroernesto/anaconda3/include/boost/mpl/aux_/preprocessor/add.hpp +boost/mpl/aux_/config/preprocessor.hpp +- +boost/mpl/aux_/preprocessor/tuple.hpp +- +boost/preprocessor/cat.hpp +- +boost/preprocessor/arithmetic/add.hpp +- + +/home/pedroernesto/anaconda3/include/boost/mpl/aux_/preprocessor/def_params_tail.hpp +boost/mpl/limits/arity.hpp +- +boost/mpl/aux_/config/dtp.hpp +- +boost/mpl/aux_/config/preprocessor.hpp +- +boost/preprocessor/comma_if.hpp +- +boost/preprocessor/logical/and.hpp +- +boost/preprocessor/identity.hpp +- +boost/preprocessor/empty.hpp +- +boost/mpl/aux_/preprocessor/filter_params.hpp +- +boost/mpl/aux_/preprocessor/sub.hpp +- +boost/preprocessor/arithmetic/add.hpp +- +boost/preprocessor/arithmetic/sub.hpp +- +boost/preprocessor/inc.hpp +- +boost/preprocessor/tuple/elem.hpp +- +boost/preprocessor/repeat.hpp +- +boost/preprocessor/cat.hpp +- + +/home/pedroernesto/anaconda3/include/boost/mpl/aux_/preprocessor/default_params.hpp +boost/mpl/aux_/config/preprocessor.hpp +- +boost/preprocessor/cat.hpp +- +boost/preprocessor/tuple/elem.hpp +- +boost/preprocessor/comma_if.hpp +- +boost/preprocessor/repeat.hpp +- +boost/preprocessor/inc.hpp +- +boost/preprocessor/cat.hpp +- + +/home/pedroernesto/anaconda3/include/boost/mpl/aux_/preprocessor/enum.hpp +boost/mpl/aux_/config/preprocessor.hpp +- +boost/preprocessor/cat.hpp +- +boost/preprocessor/comma_if.hpp +- +boost/preprocessor/repeat.hpp +- + +/home/pedroernesto/anaconda3/include/boost/mpl/aux_/preprocessor/ext_params.hpp +boost/mpl/aux_/config/preprocessor.hpp +- +boost/mpl/aux_/preprocessor/filter_params.hpp +- +boost/mpl/aux_/preprocessor/sub.hpp +- +boost/preprocessor/arithmetic/add.hpp +- +boost/preprocessor/arithmetic/sub.hpp +- +boost/preprocessor/comma_if.hpp +- +boost/preprocessor/repeat.hpp +- +boost/preprocessor/tuple/elem.hpp +- +boost/preprocessor/cat.hpp +- + +/home/pedroernesto/anaconda3/include/boost/mpl/aux_/preprocessor/filter_params.hpp + +/home/pedroernesto/anaconda3/include/boost/mpl/aux_/preprocessor/params.hpp +boost/mpl/aux_/config/preprocessor.hpp +- +boost/preprocessor/cat.hpp +- +boost/preprocessor/comma_if.hpp +- +boost/preprocessor/repeat.hpp +- +boost/preprocessor/inc.hpp +- +boost/preprocessor/cat.hpp +- + +/home/pedroernesto/anaconda3/include/boost/mpl/aux_/preprocessor/partial_spec_params.hpp +boost/mpl/limits/arity.hpp +- +boost/mpl/aux_/preprocessor/params.hpp +- +boost/mpl/aux_/preprocessor/enum.hpp +- +boost/mpl/aux_/preprocessor/sub.hpp +- +boost/preprocessor/comma_if.hpp +- + +/home/pedroernesto/anaconda3/include/boost/mpl/aux_/preprocessor/range.hpp +boost/preprocessor/seq/subseq.hpp +- +boost/preprocessor/repetition/repeat.hpp +- +boost/preprocessor/arithmetic/add.hpp +- + +/home/pedroernesto/anaconda3/include/boost/mpl/aux_/preprocessor/repeat.hpp +boost/mpl/aux_/config/preprocessor.hpp +- +boost/preprocessor/cat.hpp +- +boost/preprocessor/repeat.hpp +- + +/home/pedroernesto/anaconda3/include/boost/mpl/aux_/preprocessor/sub.hpp +boost/mpl/aux_/config/preprocessor.hpp +- +boost/mpl/aux_/preprocessor/tuple.hpp +- +boost/preprocessor/cat.hpp +- +boost/preprocessor/arithmetic/sub.hpp +- + +/home/pedroernesto/anaconda3/include/boost/mpl/aux_/preprocessor/tuple.hpp + +/home/pedroernesto/anaconda3/include/boost/mpl/aux_/static_cast.hpp +boost/mpl/aux_/config/workaround.hpp +- + +/home/pedroernesto/anaconda3/include/boost/mpl/aux_/template_arity.hpp +boost/mpl/aux_/config/ttp.hpp +- +boost/mpl/aux_/config/lambda.hpp +- +boost/mpl/aux_/template_arity_fwd.hpp +- +boost/mpl/int.hpp +- +boost/mpl/aux_/type_wrapper.hpp +- +boost/mpl/aux_/has_rebind.hpp +- +boost/mpl/aux_/config/static_constant.hpp +- +boost/mpl/aux_/config/use_preprocessed.hpp +- +boost/mpl/aux_/include_preprocessed.hpp +- +boost/mpl/limits/arity.hpp +- +boost/mpl/aux_/preprocessor/range.hpp +- +boost/mpl/aux_/preprocessor/repeat.hpp +- +boost/mpl/aux_/preprocessor/params.hpp +- +boost/mpl/aux_/nttp_decl.hpp +- +boost/preprocessor/seq/fold_left.hpp +- +boost/preprocessor/comma_if.hpp +- +boost/preprocessor/iterate.hpp +- +boost/preprocessor/inc.hpp +- +boost/preprocessor/cat.hpp +- +boost/mpl/aux_/config/eti.hpp +- + +/home/pedroernesto/anaconda3/include/boost/mpl/aux_/template_arity_fwd.hpp + +/home/pedroernesto/anaconda3/include/boost/mpl/aux_/type_wrapper.hpp +boost/mpl/aux_/config/ctps.hpp +- + +/home/pedroernesto/anaconda3/include/boost/mpl/aux_/value_wknd.hpp +boost/mpl/aux_/static_cast.hpp +- +boost/mpl/aux_/config/integral.hpp +- +boost/mpl/aux_/config/eti.hpp +- +boost/mpl/aux_/config/workaround.hpp +- +boost/mpl/int.hpp +- + +/home/pedroernesto/anaconda3/include/boost/mpl/aux_/yes_no.hpp +boost/mpl/aux_/nttp_decl.hpp +- +boost/mpl/aux_/config/arrays.hpp +- +boost/mpl/aux_/config/msvc.hpp +- +boost/mpl/aux_/config/workaround.hpp +- + +/home/pedroernesto/anaconda3/include/boost/mpl/bind.hpp +boost/mpl/bind_fwd.hpp +- +boost/mpl/placeholders.hpp +- +boost/mpl/next.hpp +- +boost/mpl/protect.hpp +- +boost/mpl/apply_wrap.hpp +- +boost/mpl/limits/arity.hpp +- +boost/mpl/aux_/na.hpp +- +boost/mpl/aux_/arity_spec.hpp +- +boost/mpl/aux_/type_wrapper.hpp +- +boost/mpl/aux_/yes_no.hpp +- +boost/type_traits/is_reference.hpp +- +boost/mpl/aux_/config/bind.hpp +- +boost/mpl/aux_/config/static_constant.hpp +- +boost/mpl/aux_/config/use_preprocessed.hpp +- +boost/mpl/aux_/include_preprocessed.hpp +- +boost/mpl/aux_/preprocessor/params.hpp +- +boost/mpl/aux_/preprocessor/default_params.hpp +- +boost/mpl/aux_/preprocessor/def_params_tail.hpp +- +boost/mpl/aux_/preprocessor/partial_spec_params.hpp +- +boost/mpl/aux_/preprocessor/ext_params.hpp +- +boost/mpl/aux_/preprocessor/repeat.hpp +- +boost/mpl/aux_/preprocessor/enum.hpp +- +boost/mpl/aux_/preprocessor/add.hpp +- +boost/mpl/aux_/config/dmc_ambiguous_ctps.hpp +- +boost/mpl/aux_/config/ctps.hpp +- +boost/mpl/aux_/config/ttp.hpp +- +boost/mpl/aux_/config/dtp.hpp +- +boost/mpl/aux_/nttp_decl.hpp +- +boost/preprocessor/iterate.hpp +- +boost/preprocessor/comma_if.hpp +- +boost/preprocessor/cat.hpp +- +boost/preprocessor/inc.hpp +- +boost/mpl/aux_/count_args.hpp +- + +/home/pedroernesto/anaconda3/include/boost/mpl/bind_fwd.hpp +boost/mpl/aux_/na.hpp +- +boost/mpl/aux_/config/bind.hpp +- +boost/mpl/aux_/config/use_preprocessed.hpp +- +boost/mpl/aux_/include_preprocessed.hpp +- +boost/mpl/limits/arity.hpp +- +boost/mpl/aux_/preprocessor/params.hpp +- +boost/mpl/aux_/preprocessor/default_params.hpp +- +boost/mpl/aux_/config/dmc_ambiguous_ctps.hpp +- +boost/preprocessor/comma_if.hpp +- +boost/preprocessor/iterate.hpp +- +boost/preprocessor/cat.hpp +- + +/home/pedroernesto/anaconda3/include/boost/mpl/bool.hpp +boost/mpl/bool_fwd.hpp +- +boost/mpl/integral_c_tag.hpp +- +boost/mpl/aux_/config/static_constant.hpp +- + +/home/pedroernesto/anaconda3/include/boost/mpl/bool_fwd.hpp +boost/mpl/aux_/adl_barrier.hpp +- + +/home/pedroernesto/anaconda3/include/boost/mpl/eval_if.hpp +boost/mpl/if.hpp +- +boost/mpl/aux_/na_spec.hpp +- +boost/mpl/aux_/lambda_support.hpp +- +boost/mpl/aux_/config/msvc.hpp +- +boost/mpl/aux_/config/gcc.hpp +- +boost/mpl/aux_/config/workaround.hpp +- + +/home/pedroernesto/anaconda3/include/boost/mpl/has_xxx.hpp +boost/mpl/bool.hpp +- +boost/mpl/aux_/na_spec.hpp +- +boost/mpl/aux_/type_wrapper.hpp +- +boost/mpl/aux_/yes_no.hpp +- +boost/mpl/aux_/config/gcc.hpp +- +boost/mpl/aux_/config/has_xxx.hpp +- +boost/mpl/aux_/config/msvc_typename.hpp +- +boost/mpl/aux_/config/msvc.hpp +- +boost/mpl/aux_/config/static_constant.hpp +- +boost/mpl/aux_/config/workaround.hpp +- +boost/preprocessor/array/elem.hpp +- +boost/preprocessor/cat.hpp +- +boost/preprocessor/control/if.hpp +- +boost/preprocessor/repetition/enum_params.hpp +- +boost/preprocessor/repetition/enum_trailing_params.hpp +- +boost/type_traits/is_class.hpp +- +boost/mpl/if.hpp +- +boost/mpl/bool.hpp +- + +/home/pedroernesto/anaconda3/include/boost/mpl/identity.hpp +boost/mpl/aux_/na_spec.hpp +- +boost/mpl/aux_/lambda_support.hpp +- + +/home/pedroernesto/anaconda3/include/boost/mpl/if.hpp +boost/mpl/aux_/value_wknd.hpp +- +boost/mpl/aux_/static_cast.hpp +- +boost/mpl/aux_/na_spec.hpp +- +boost/mpl/aux_/lambda_support.hpp +- +boost/mpl/aux_/config/integral.hpp +- +boost/mpl/aux_/config/ctps.hpp +- +boost/mpl/aux_/config/workaround.hpp +- + +/home/pedroernesto/anaconda3/include/boost/mpl/int.hpp +boost/mpl/int_fwd.hpp +- +boost/mpl/aux_/integral_wrapper.hpp +- + +/home/pedroernesto/anaconda3/include/boost/mpl/int_fwd.hpp +boost/mpl/aux_/adl_barrier.hpp +- +boost/mpl/aux_/nttp_decl.hpp +- + +/home/pedroernesto/anaconda3/include/boost/mpl/integral_c_tag.hpp +boost/mpl/aux_/adl_barrier.hpp +- +boost/mpl/aux_/config/static_constant.hpp +- + +/home/pedroernesto/anaconda3/include/boost/mpl/is_placeholder.hpp +boost/mpl/arg_fwd.hpp +- +boost/mpl/bool.hpp +- +boost/mpl/aux_/yes_no.hpp +- +boost/mpl/aux_/type_wrapper.hpp +- +boost/mpl/aux_/nttp_decl.hpp +- +boost/mpl/aux_/config/ctps.hpp +- +boost/mpl/aux_/config/static_constant.hpp +- + +/home/pedroernesto/anaconda3/include/boost/mpl/lambda.hpp +boost/mpl/lambda_fwd.hpp +- +boost/mpl/bind.hpp +- +boost/mpl/aux_/config/lambda.hpp +- +boost/mpl/aux_/full_lambda.hpp +- +boost/mpl/aux_/lambda_no_ctps.hpp +- +boost/mpl/aux_/lambda_support.hpp +- + +/home/pedroernesto/anaconda3/include/boost/mpl/lambda_fwd.hpp +boost/mpl/void_fwd.hpp +- +boost/mpl/aux_/na.hpp +- +boost/mpl/aux_/config/lambda.hpp +- +boost/mpl/int.hpp +- +boost/mpl/aux_/lambda_arity_param.hpp +- +boost/mpl/aux_/template_arity_fwd.hpp +- +boost/mpl/bool.hpp +- + +/home/pedroernesto/anaconda3/include/boost/mpl/limits/arity.hpp + +/home/pedroernesto/anaconda3/include/boost/mpl/next.hpp +boost/mpl/next_prior.hpp +- + +/home/pedroernesto/anaconda3/include/boost/mpl/next_prior.hpp +boost/mpl/aux_/common_name_wknd.hpp +- +boost/mpl/aux_/na_spec.hpp +- +boost/mpl/aux_/lambda_support.hpp +- + +/home/pedroernesto/anaconda3/include/boost/mpl/not.hpp +boost/mpl/bool.hpp +- +boost/mpl/aux_/nttp_decl.hpp +- +boost/mpl/aux_/nested_type_wknd.hpp +- +boost/mpl/aux_/na_spec.hpp +- +boost/mpl/aux_/lambda_support.hpp +- + +/home/pedroernesto/anaconda3/include/boost/mpl/or.hpp +boost/mpl/aux_/config/use_preprocessed.hpp +- +boost/mpl/bool.hpp +- +boost/mpl/aux_/nested_type_wknd.hpp +- +boost/mpl/aux_/na_spec.hpp +- +boost/mpl/aux_/lambda_support.hpp +- +boost/mpl/aux_/config/msvc.hpp +- +boost/mpl/aux_/include_preprocessed.hpp +- +boost/mpl/aux_/logical_op.hpp +- + +/home/pedroernesto/anaconda3/include/boost/mpl/placeholders.hpp +boost/mpl/arg.hpp +- +boost/mpl/aux_/adl_barrier.hpp +- +boost/mpl/aux_/config/use_preprocessed.hpp +- +boost/mpl/aux_/include_preprocessed.hpp +- +boost/mpl/aux_/nttp_decl.hpp +- +boost/mpl/limits/arity.hpp +- +boost/preprocessor/iterate.hpp +- +boost/preprocessor/cat.hpp +- + +/home/pedroernesto/anaconda3/include/boost/mpl/print.hpp +boost/mpl/aux_/config/msvc.hpp +- +boost/mpl/identity.hpp +- + +/home/pedroernesto/anaconda3/include/boost/mpl/protect.hpp +boost/mpl/aux_/arity.hpp +- +boost/mpl/aux_/config/dtp.hpp +- +boost/mpl/aux_/nttp_decl.hpp +- +boost/mpl/aux_/na_spec.hpp +- + +/home/pedroernesto/anaconda3/include/boost/mpl/quote.hpp +boost/mpl/void.hpp +- +boost/mpl/aux_/has_type.hpp +- +boost/mpl/aux_/config/bcc.hpp +- +boost/mpl/aux_/config/ttp.hpp +- +boost/mpl/aux_/config/use_preprocessed.hpp +- +boost/mpl/aux_/include_preprocessed.hpp +- +boost/mpl/limits/arity.hpp +- +boost/mpl/aux_/preprocessor/params.hpp +- +boost/mpl/aux_/config/ctps.hpp +- +boost/mpl/aux_/config/workaround.hpp +- +boost/preprocessor/iterate.hpp +- +boost/preprocessor/cat.hpp +- + +/home/pedroernesto/anaconda3/include/boost/mpl/void.hpp +boost/mpl/void_fwd.hpp +- +boost/mpl/bool.hpp +- +boost/mpl/aux_/na_spec.hpp +- +boost/mpl/aux_/config/msvc.hpp +- +boost/mpl/aux_/config/workaround.hpp +- + +/home/pedroernesto/anaconda3/include/boost/mpl/void_fwd.hpp +boost/mpl/aux_/adl_barrier.hpp +- + +/home/pedroernesto/anaconda3/include/boost/noncopyable.hpp +boost/core/noncopyable.hpp +- + +/home/pedroernesto/anaconda3/include/boost/preprocessor/arithmetic/add.hpp +boost/preprocessor/arithmetic/dec.hpp +- +boost/preprocessor/arithmetic/inc.hpp +- +boost/preprocessor/config/config.hpp +- +boost/preprocessor/control/while.hpp +- +boost/preprocessor/tuple/elem.hpp +- + +/home/pedroernesto/anaconda3/include/boost/preprocessor/arithmetic/dec.hpp +boost/preprocessor/config/config.hpp +- + +/home/pedroernesto/anaconda3/include/boost/preprocessor/arithmetic/inc.hpp +boost/preprocessor/config/config.hpp +- + +/home/pedroernesto/anaconda3/include/boost/preprocessor/arithmetic/sub.hpp +boost/preprocessor/arithmetic/dec.hpp +- +boost/preprocessor/config/config.hpp +- +boost/preprocessor/control/while.hpp +- +boost/preprocessor/tuple/elem.hpp +- + +/home/pedroernesto/anaconda3/include/boost/preprocessor/array/data.hpp +boost/preprocessor/config/config.hpp +- +boost/preprocessor/tuple/elem.hpp +- + +/home/pedroernesto/anaconda3/include/boost/preprocessor/array/elem.hpp +boost/preprocessor/array/data.hpp +- +boost/preprocessor/array/size.hpp +- +boost/preprocessor/config/config.hpp +- +boost/preprocessor/tuple/elem.hpp +- + +/home/pedroernesto/anaconda3/include/boost/preprocessor/array/size.hpp +boost/preprocessor/config/config.hpp +- +boost/preprocessor/tuple/elem.hpp +- + +/home/pedroernesto/anaconda3/include/boost/preprocessor/cat.hpp +boost/preprocessor/config/config.hpp +- + +/home/pedroernesto/anaconda3/include/boost/preprocessor/comma_if.hpp +boost/preprocessor/punctuation/comma_if.hpp +- + +/home/pedroernesto/anaconda3/include/boost/preprocessor/comparison/not_equal.hpp +boost/preprocessor/cat.hpp +- +boost/preprocessor/config/config.hpp +- +boost/preprocessor/control/iif.hpp +- + +/home/pedroernesto/anaconda3/include/boost/preprocessor/config/config.hpp + +/home/pedroernesto/anaconda3/include/boost/preprocessor/control/detail/dmc/while.hpp +boost/preprocessor/control/iif.hpp +- +boost/preprocessor/logical/bool.hpp +- +boost/preprocessor/tuple/eat.hpp +- + +/home/pedroernesto/anaconda3/include/boost/preprocessor/control/detail/edg/while.hpp +boost/preprocessor/control/if.hpp +- +boost/preprocessor/tuple/eat.hpp +- + +/home/pedroernesto/anaconda3/include/boost/preprocessor/control/detail/msvc/while.hpp +boost/preprocessor/control/if.hpp +- +boost/preprocessor/tuple/eat.hpp +- + +/home/pedroernesto/anaconda3/include/boost/preprocessor/control/detail/while.hpp +boost/preprocessor/control/iif.hpp +- +boost/preprocessor/logical/bool.hpp +- +boost/preprocessor/tuple/eat.hpp +- + +/home/pedroernesto/anaconda3/include/boost/preprocessor/control/expr_if.hpp +boost/preprocessor/config/config.hpp +- +boost/preprocessor/control/expr_iif.hpp +- +boost/preprocessor/logical/bool.hpp +- + +/home/pedroernesto/anaconda3/include/boost/preprocessor/control/expr_iif.hpp +boost/preprocessor/config/config.hpp +- + +/home/pedroernesto/anaconda3/include/boost/preprocessor/control/if.hpp +boost/preprocessor/config/config.hpp +- +boost/preprocessor/control/iif.hpp +- +boost/preprocessor/logical/bool.hpp +- + +/home/pedroernesto/anaconda3/include/boost/preprocessor/control/iif.hpp +boost/preprocessor/config/config.hpp +- + +/home/pedroernesto/anaconda3/include/boost/preprocessor/control/while.hpp +boost/preprocessor/cat.hpp +- +boost/preprocessor/config/config.hpp +- +boost/preprocessor/debug/error.hpp +- +boost/preprocessor/detail/auto_rec.hpp +- +boost/preprocessor/list/fold_left.hpp +- +boost/preprocessor/list/fold_right.hpp +- +boost/preprocessor/logical/bitand.hpp +- +boost/preprocessor/control/detail/edg/while.hpp +- +boost/preprocessor/control/detail/msvc/while.hpp +- +boost/preprocessor/control/detail/dmc/while.hpp +- +boost/preprocessor/control/detail/while.hpp +- + +/home/pedroernesto/anaconda3/include/boost/preprocessor/debug/error.hpp +boost/preprocessor/cat.hpp +- +boost/preprocessor/config/config.hpp +- + +/home/pedroernesto/anaconda3/include/boost/preprocessor/dec.hpp +boost/preprocessor/arithmetic/dec.hpp +- + +/home/pedroernesto/anaconda3/include/boost/preprocessor/detail/auto_rec.hpp +boost/preprocessor/config/config.hpp +- +boost/preprocessor/detail/dmc/auto_rec.hpp +- +boost/preprocessor/control/iif.hpp +- + +/home/pedroernesto/anaconda3/include/boost/preprocessor/detail/check.hpp +boost/preprocessor/cat.hpp +- +boost/preprocessor/config/config.hpp +- + +/home/pedroernesto/anaconda3/include/boost/preprocessor/detail/dmc/auto_rec.hpp +boost/preprocessor/control/iif.hpp +- + +/home/pedroernesto/anaconda3/include/boost/preprocessor/detail/is_binary.hpp +boost/preprocessor/config/config.hpp +- +boost/preprocessor/detail/check.hpp +- + +/home/pedroernesto/anaconda3/include/boost/preprocessor/detail/split.hpp +boost/preprocessor/config/config.hpp +- + +/home/pedroernesto/anaconda3/include/boost/preprocessor/empty.hpp +boost/preprocessor/facilities/empty.hpp +- + +/home/pedroernesto/anaconda3/include/boost/preprocessor/enum_shifted_params.hpp +boost/preprocessor/repetition/enum_shifted_params.hpp +- + +/home/pedroernesto/anaconda3/include/boost/preprocessor/expr_if.hpp +boost/preprocessor/control/expr_if.hpp +- + +/home/pedroernesto/anaconda3/include/boost/preprocessor/facilities/detail/is_empty.hpp +boost/preprocessor/punctuation/is_begin_parens.hpp +- + +/home/pedroernesto/anaconda3/include/boost/preprocessor/facilities/empty.hpp +boost/preprocessor/config/config.hpp +- + +/home/pedroernesto/anaconda3/include/boost/preprocessor/facilities/expand.hpp +boost/preprocessor/config/config.hpp +- + +/home/pedroernesto/anaconda3/include/boost/preprocessor/facilities/identity.hpp +boost/preprocessor/facilities/empty.hpp +- +boost/preprocessor/tuple/eat.hpp +- + +/home/pedroernesto/anaconda3/include/boost/preprocessor/facilities/is_1.hpp +boost/preprocessor/cat.hpp +- +boost/preprocessor/facilities/is_empty.hpp +- + +/home/pedroernesto/anaconda3/include/boost/preprocessor/facilities/is_empty.hpp +boost/preprocessor/config/config.hpp +- +boost/preprocessor/facilities/is_empty_variadic.hpp +- +boost/preprocessor/tuple/elem.hpp +- +boost/preprocessor/facilities/identity.hpp +- +boost/preprocessor/cat.hpp +- +boost/preprocessor/detail/split.hpp +- + +/home/pedroernesto/anaconda3/include/boost/preprocessor/facilities/is_empty_variadic.hpp +boost/preprocessor/config/config.hpp +- +boost/preprocessor/punctuation/is_begin_parens.hpp +- +boost/preprocessor/facilities/detail/is_empty.hpp +- + +/home/pedroernesto/anaconda3/include/boost/preprocessor/facilities/overload.hpp +boost/preprocessor/cat.hpp +- +boost/preprocessor/variadic/size.hpp +- + +/home/pedroernesto/anaconda3/include/boost/preprocessor/identity.hpp +boost/preprocessor/facilities/identity.hpp +- + +/home/pedroernesto/anaconda3/include/boost/preprocessor/inc.hpp +boost/preprocessor/arithmetic/inc.hpp +- + +/home/pedroernesto/anaconda3/include/boost/preprocessor/iterate.hpp +boost/preprocessor/iteration/iterate.hpp +- + +/home/pedroernesto/anaconda3/include/boost/preprocessor/iteration/iterate.hpp +boost/preprocessor/arithmetic/dec.hpp +- +boost/preprocessor/arithmetic/inc.hpp +- +boost/preprocessor/array/elem.hpp +- +boost/preprocessor/array/size.hpp +- +boost/preprocessor/cat.hpp +- +boost/preprocessor/slot/slot.hpp +- +boost/preprocessor/tuple/elem.hpp +- + +/home/pedroernesto/anaconda3/include/boost/preprocessor/list/adt.hpp +boost/preprocessor/config/config.hpp +- +boost/preprocessor/detail/is_binary.hpp +- +boost/preprocessor/logical/compl.hpp +- +boost/preprocessor/tuple/eat.hpp +- + +/home/pedroernesto/anaconda3/include/boost/preprocessor/list/detail/dmc/fold_left.hpp +boost/preprocessor/control/expr_iif.hpp +- +boost/preprocessor/control/iif.hpp +- +boost/preprocessor/list/adt.hpp +- +boost/preprocessor/tuple/elem.hpp +- + +/home/pedroernesto/anaconda3/include/boost/preprocessor/list/detail/edg/fold_left.hpp +boost/preprocessor/control/expr_iif.hpp +- +boost/preprocessor/control/iif.hpp +- +boost/preprocessor/list/adt.hpp +- +boost/preprocessor/tuple/eat.hpp +- + +/home/pedroernesto/anaconda3/include/boost/preprocessor/list/detail/edg/fold_right.hpp +boost/preprocessor/control/iif.hpp +- +boost/preprocessor/list/adt.hpp +- +boost/preprocessor/tuple/eat.hpp +- + +/home/pedroernesto/anaconda3/include/boost/preprocessor/list/detail/fold_left.hpp +boost/preprocessor/control/expr_iif.hpp +- +boost/preprocessor/control/iif.hpp +- +boost/preprocessor/list/adt.hpp +- +boost/preprocessor/tuple/eat.hpp +- + +/home/pedroernesto/anaconda3/include/boost/preprocessor/list/detail/fold_right.hpp +boost/preprocessor/list/fold_left.hpp +- +boost/preprocessor/list/reverse.hpp +- + +/home/pedroernesto/anaconda3/include/boost/preprocessor/list/fold_left.hpp +boost/preprocessor/cat.hpp +- +boost/preprocessor/control/while.hpp +- +boost/preprocessor/debug/error.hpp +- +boost/preprocessor/detail/auto_rec.hpp +- +boost/preprocessor/list/detail/edg/fold_left.hpp +- +boost/preprocessor/list/detail/dmc/fold_left.hpp +- +boost/preprocessor/list/detail/fold_left.hpp +- + +/home/pedroernesto/anaconda3/include/boost/preprocessor/list/fold_right.hpp +boost/preprocessor/cat.hpp +- +boost/preprocessor/control/while.hpp +- +boost/preprocessor/debug/error.hpp +- +boost/preprocessor/detail/auto_rec.hpp +- +boost/preprocessor/list/detail/edg/fold_right.hpp +- +boost/preprocessor/list/detail/fold_right.hpp +- + +/home/pedroernesto/anaconda3/include/boost/preprocessor/list/for_each_i.hpp +boost/preprocessor/arithmetic/inc.hpp +- +boost/preprocessor/config/config.hpp +- +boost/preprocessor/list/adt.hpp +- +boost/preprocessor/repetition/for.hpp +- +boost/preprocessor/tuple/elem.hpp +- +boost/preprocessor/tuple/rem.hpp +- + +/home/pedroernesto/anaconda3/include/boost/preprocessor/list/reverse.hpp +boost/preprocessor/config/config.hpp +- +boost/preprocessor/list/fold_left.hpp +- + +/home/pedroernesto/anaconda3/include/boost/preprocessor/logical/and.hpp +boost/preprocessor/config/config.hpp +- +boost/preprocessor/logical/bool.hpp +- +boost/preprocessor/logical/bitand.hpp +- + +/home/pedroernesto/anaconda3/include/boost/preprocessor/logical/bitand.hpp +boost/preprocessor/config/config.hpp +- + +/home/pedroernesto/anaconda3/include/boost/preprocessor/logical/bool.hpp +boost/preprocessor/config/config.hpp +- + +/home/pedroernesto/anaconda3/include/boost/preprocessor/logical/compl.hpp +boost/preprocessor/config/config.hpp +- + +/home/pedroernesto/anaconda3/include/boost/preprocessor/punctuation/comma.hpp + +/home/pedroernesto/anaconda3/include/boost/preprocessor/punctuation/comma_if.hpp +boost/preprocessor/config/config.hpp +- +boost/preprocessor/control/if.hpp +- +boost/preprocessor/facilities/empty.hpp +- +boost/preprocessor/punctuation/comma.hpp +- + +/home/pedroernesto/anaconda3/include/boost/preprocessor/punctuation/detail/is_begin_parens.hpp +boost/preprocessor/facilities/empty.hpp +- + +/home/pedroernesto/anaconda3/include/boost/preprocessor/punctuation/is_begin_parens.hpp +boost/preprocessor/config/config.hpp +- +boost/preprocessor/punctuation/detail/is_begin_parens.hpp +- + +/home/pedroernesto/anaconda3/include/boost/preprocessor/repeat.hpp +boost/preprocessor/repetition/repeat.hpp +- + +/home/pedroernesto/anaconda3/include/boost/preprocessor/repetition/detail/dmc/for.hpp +boost/preprocessor/control/expr_iif.hpp +- +boost/preprocessor/control/iif.hpp +- +boost/preprocessor/logical/bool.hpp +- +boost/preprocessor/tuple/eat.hpp +- + +/home/pedroernesto/anaconda3/include/boost/preprocessor/repetition/detail/edg/for.hpp +boost/preprocessor/control/if.hpp +- +boost/preprocessor/tuple/eat.hpp +- + +/home/pedroernesto/anaconda3/include/boost/preprocessor/repetition/detail/for.hpp +boost/preprocessor/control/expr_iif.hpp +- +boost/preprocessor/control/iif.hpp +- +boost/preprocessor/logical/bool.hpp +- +boost/preprocessor/tuple/eat.hpp +- + +/home/pedroernesto/anaconda3/include/boost/preprocessor/repetition/detail/msvc/for.hpp +boost/preprocessor/control/if.hpp +- +boost/preprocessor/tuple/eat.hpp +- + +/home/pedroernesto/anaconda3/include/boost/preprocessor/repetition/enum_params.hpp +boost/preprocessor/config/config.hpp +- +boost/preprocessor/punctuation/comma_if.hpp +- +boost/preprocessor/repetition/repeat.hpp +- + +/home/pedroernesto/anaconda3/include/boost/preprocessor/repetition/enum_shifted_params.hpp +boost/preprocessor/arithmetic/dec.hpp +- +boost/preprocessor/arithmetic/inc.hpp +- +boost/preprocessor/cat.hpp +- +boost/preprocessor/config/config.hpp +- +boost/preprocessor/punctuation/comma_if.hpp +- +boost/preprocessor/repetition/repeat.hpp +- + +/home/pedroernesto/anaconda3/include/boost/preprocessor/repetition/enum_trailing_params.hpp +boost/preprocessor/config/config.hpp +- +boost/preprocessor/repetition/repeat.hpp +- + +/home/pedroernesto/anaconda3/include/boost/preprocessor/repetition/for.hpp +boost/preprocessor/cat.hpp +- +boost/preprocessor/debug/error.hpp +- +boost/preprocessor/facilities/empty.hpp +- +boost/preprocessor/logical/bool.hpp +- +boost/preprocessor/detail/auto_rec.hpp +- +boost/preprocessor/repetition/detail/edg/for.hpp +- +boost/preprocessor/repetition/detail/msvc/for.hpp +- +boost/preprocessor/repetition/detail/dmc/for.hpp +- +boost/preprocessor/repetition/detail/for.hpp +- + +/home/pedroernesto/anaconda3/include/boost/preprocessor/repetition/repeat.hpp +boost/preprocessor/cat.hpp +- +boost/preprocessor/config/config.hpp +- +boost/preprocessor/debug/error.hpp +- +boost/preprocessor/detail/auto_rec.hpp +- +boost/preprocessor/tuple/eat.hpp +- + +/home/pedroernesto/anaconda3/include/boost/preprocessor/seq/detail/is_empty.hpp +boost/preprocessor/config/config.hpp +- +boost/preprocessor/arithmetic/dec.hpp +- +boost/preprocessor/logical/bool.hpp +- +boost/preprocessor/logical/compl.hpp +- +boost/preprocessor/seq/size.hpp +- + +/home/pedroernesto/anaconda3/include/boost/preprocessor/seq/detail/split.hpp +boost/preprocessor/config/config.hpp +- + +/home/pedroernesto/anaconda3/include/boost/preprocessor/seq/elem.hpp +boost/preprocessor/cat.hpp +- +boost/preprocessor/config/config.hpp +- +boost/preprocessor/facilities/empty.hpp +- + +/home/pedroernesto/anaconda3/include/boost/preprocessor/seq/first_n.hpp +boost/preprocessor/config/config.hpp +- +boost/preprocessor/control/if.hpp +- +boost/preprocessor/seq/detail/split.hpp +- +boost/preprocessor/tuple/eat.hpp +- +boost/preprocessor/tuple/elem.hpp +- + +/home/pedroernesto/anaconda3/include/boost/preprocessor/seq/fold_left.hpp +boost/preprocessor/arithmetic/dec.hpp +- +boost/preprocessor/cat.hpp +- +boost/preprocessor/control/if.hpp +- +boost/preprocessor/debug/error.hpp +- +boost/preprocessor/detail/auto_rec.hpp +- +boost/preprocessor/seq/seq.hpp +- +boost/preprocessor/seq/size.hpp +- + +/home/pedroernesto/anaconda3/include/boost/preprocessor/seq/rest_n.hpp +boost/preprocessor/arithmetic/inc.hpp +- +boost/preprocessor/comparison/not_equal.hpp +- +boost/preprocessor/config/config.hpp +- +boost/preprocessor/control/expr_iif.hpp +- +boost/preprocessor/facilities/identity.hpp +- +boost/preprocessor/logical/bitand.hpp +- +boost/preprocessor/seq/detail/is_empty.hpp +- +boost/preprocessor/seq/detail/split.hpp +- +boost/preprocessor/tuple/elem.hpp +- + +/home/pedroernesto/anaconda3/include/boost/preprocessor/seq/seq.hpp +boost/preprocessor/config/config.hpp +- +boost/preprocessor/seq/elem.hpp +- + +/home/pedroernesto/anaconda3/include/boost/preprocessor/seq/size.hpp +boost/preprocessor/cat.hpp +- +boost/preprocessor/config/config.hpp +- + +/home/pedroernesto/anaconda3/include/boost/preprocessor/seq/subseq.hpp +boost/preprocessor/config/config.hpp +- +boost/preprocessor/seq/first_n.hpp +- +boost/preprocessor/seq/rest_n.hpp +- + +/home/pedroernesto/anaconda3/include/boost/preprocessor/slot/detail/def.hpp + +/home/pedroernesto/anaconda3/include/boost/preprocessor/slot/slot.hpp +boost/preprocessor/cat.hpp +- +boost/preprocessor/slot/detail/def.hpp +- + +/home/pedroernesto/anaconda3/include/boost/preprocessor/stringize.hpp +boost/preprocessor/config/config.hpp +- + +/home/pedroernesto/anaconda3/include/boost/preprocessor/tuple/detail/is_single_return.hpp +boost/preprocessor/config/config.hpp +- +boost/preprocessor/control/iif.hpp +- +boost/preprocessor/facilities/is_1.hpp +- +boost/preprocessor/tuple/size.hpp +- + +/home/pedroernesto/anaconda3/include/boost/preprocessor/tuple/eat.hpp +boost/preprocessor/config/config.hpp +- + +/home/pedroernesto/anaconda3/include/boost/preprocessor/tuple/elem.hpp +boost/preprocessor/cat.hpp +- +boost/preprocessor/config/config.hpp +- +boost/preprocessor/facilities/expand.hpp +- +boost/preprocessor/facilities/overload.hpp +- +boost/preprocessor/tuple/rem.hpp +- +boost/preprocessor/variadic/elem.hpp +- +boost/preprocessor/tuple/detail/is_single_return.hpp +- + +/home/pedroernesto/anaconda3/include/boost/preprocessor/tuple/rem.hpp +boost/preprocessor/cat.hpp +- +boost/preprocessor/config/config.hpp +- +boost/preprocessor/facilities/expand.hpp +- +boost/preprocessor/facilities/overload.hpp +- +boost/preprocessor/tuple/detail/is_single_return.hpp +- + +/home/pedroernesto/anaconda3/include/boost/preprocessor/tuple/size.hpp +boost/preprocessor/cat.hpp +- +boost/preprocessor/config/config.hpp +- +boost/preprocessor/variadic/size.hpp +- + +/home/pedroernesto/anaconda3/include/boost/preprocessor/tuple/to_list.hpp +boost/preprocessor/cat.hpp +- +boost/preprocessor/config/config.hpp +- +boost/preprocessor/facilities/overload.hpp +- +boost/preprocessor/tuple/size.hpp +- +boost/preprocessor/variadic/size.hpp +- + +/home/pedroernesto/anaconda3/include/boost/preprocessor/variadic/elem.hpp +boost/preprocessor/cat.hpp +- +boost/preprocessor/config/config.hpp +- + +/home/pedroernesto/anaconda3/include/boost/preprocessor/variadic/size.hpp +boost/preprocessor/cat.hpp +- +boost/preprocessor/config/config.hpp +- + +/home/pedroernesto/anaconda3/include/boost/range/begin.hpp +boost/range/config.hpp +- +boost/range/detail/begin.hpp +- +boost/range/iterator.hpp +- + +/home/pedroernesto/anaconda3/include/boost/range/config.hpp +boost/detail/workaround.hpp +- +boost/config.hpp +- + +/home/pedroernesto/anaconda3/include/boost/range/const_iterator.hpp +boost/range/config.hpp +- +boost/range/range_fwd.hpp +- +boost/range/detail/extract_optional_type.hpp +- +boost/type_traits/remove_const.hpp +- +boost/type_traits/remove_reference.hpp +- +cstddef +- +utility +- + +/home/pedroernesto/anaconda3/include/boost/range/detail/begin.hpp +boost/config.hpp +- +boost/detail/workaround.hpp +- +boost/range/iterator.hpp +- +boost/range/detail/common.hpp +- + +/home/pedroernesto/anaconda3/include/boost/range/detail/common.hpp +boost/range/config.hpp +- +boost/range/detail/sfinae.hpp +- +boost/type_traits/is_void.hpp +- +boost/mpl/bool.hpp +- +boost/mpl/if.hpp +- +boost/mpl/int.hpp +- +boost/mpl/or.hpp +- +cstddef +- + +/home/pedroernesto/anaconda3/include/boost/range/detail/end.hpp +boost/config.hpp +- +boost/detail/workaround.hpp +- +boost/range/detail/implementation_help.hpp +- +boost/range/iterator.hpp +- +boost/range/detail/common.hpp +- + +/home/pedroernesto/anaconda3/include/boost/range/detail/extract_optional_type.hpp +boost/config.hpp +- +boost/preprocessor/cat.hpp +- +boost/mpl/has_xxx.hpp +- + +/home/pedroernesto/anaconda3/include/boost/range/detail/implementation_help.hpp +boost/range/config.hpp +- +boost/range/detail/common.hpp +- +boost/type_traits/is_same.hpp +- +cstddef +- +string.h +- +wchar.h +- + +/home/pedroernesto/anaconda3/include/boost/range/detail/msvc_has_iterator_workaround.hpp + +/home/pedroernesto/anaconda3/include/boost/range/detail/sfinae.hpp +boost/range/config.hpp +- +boost/type_traits/is_array.hpp +- +boost/type_traits/detail/yes_no_type.hpp +- +utility +- + +/home/pedroernesto/anaconda3/include/boost/range/end.hpp +boost/range/config.hpp +- +boost/range/detail/end.hpp +- +boost/range/detail/implementation_help.hpp +- +boost/range/iterator.hpp +- +boost/range/const_iterator.hpp +- + +/home/pedroernesto/anaconda3/include/boost/range/iterator.hpp +boost/range/config.hpp +- +boost/range/range_fwd.hpp +- +boost/range/mutable_iterator.hpp +- +boost/range/const_iterator.hpp +- +boost/type_traits/is_const.hpp +- +boost/type_traits/remove_const.hpp +- +boost/mpl/eval_if.hpp +- + +/home/pedroernesto/anaconda3/include/boost/range/mutable_iterator.hpp +boost/range/config.hpp +- +boost/range/range_fwd.hpp +- +boost/range/detail/extract_optional_type.hpp +- +boost/type_traits/remove_reference.hpp +- +boost/iterator/iterator_traits.hpp +- +cstddef +- +utility +- +boost/range/detail/msvc_has_iterator_workaround.hpp +- + +/home/pedroernesto/anaconda3/include/boost/range/range_fwd.hpp + +/home/pedroernesto/anaconda3/include/boost/ref.hpp +boost/core/ref.hpp +- + +/home/pedroernesto/anaconda3/include/boost/serialization/static_warning.hpp +boost/config.hpp +- +boost/mpl/bool.hpp +- +boost/mpl/print.hpp +- +boost/mpl/eval_if.hpp +- +boost/mpl/bool_fwd.hpp +- +boost/static_assert.hpp +- + +/home/pedroernesto/anaconda3/include/boost/sort/spreadsort/detail/constants.hpp + +/home/pedroernesto/anaconda3/include/boost/sort/spreadsort/detail/float_sort.hpp +algorithm +- +vector +- +limits +- +functional +- +boost/static_assert.hpp +- +boost/serialization/static_warning.hpp +- +boost/utility/enable_if.hpp +- +boost/sort/spreadsort/detail/constants.hpp +- +boost/sort/spreadsort/detail/integer_sort.hpp +- +boost/sort/spreadsort/detail/spreadsort_common.hpp +- +boost/cstdint.hpp +- + +/home/pedroernesto/anaconda3/include/boost/sort/spreadsort/detail/integer_sort.hpp +algorithm +- +vector +- +limits +- +functional +- +boost/static_assert.hpp +- +boost/serialization/static_warning.hpp +- +boost/utility/enable_if.hpp +- +boost/sort/spreadsort/detail/constants.hpp +- +boost/sort/spreadsort/detail/spreadsort_common.hpp +- +boost/cstdint.hpp +- + +/home/pedroernesto/anaconda3/include/boost/sort/spreadsort/detail/spreadsort_common.hpp +algorithm +- +vector +- +cstring +- +limits +- +functional +- +boost/static_assert.hpp +- +boost/serialization/static_warning.hpp +- +boost/sort/spreadsort/detail/constants.hpp +- +boost/cstdint.hpp +- + +/home/pedroernesto/anaconda3/include/boost/sort/spreadsort/detail/string_sort.hpp +algorithm +- +vector +- +cstring +- +limits +- +functional +- +boost/static_assert.hpp +- +boost/serialization/static_warning.hpp +- +boost/utility/enable_if.hpp +- +boost/sort/spreadsort/detail/constants.hpp +- +boost/sort/spreadsort/detail/spreadsort_common.hpp +- +boost/cstdint.hpp +- + +/home/pedroernesto/anaconda3/include/boost/sort/spreadsort/float_sort.hpp +algorithm +- +vector +- +cstring +- +limits +- +boost/static_assert.hpp +- +boost/sort/spreadsort/detail/constants.hpp +- +boost/sort/spreadsort/detail/float_sort.hpp +- +boost/range/begin.hpp +- +boost/range/end.hpp +- + +/home/pedroernesto/anaconda3/include/boost/sort/spreadsort/integer_sort.hpp +algorithm +- +vector +- +cstring +- +limits +- +boost/static_assert.hpp +- +boost/sort/spreadsort/detail/constants.hpp +- +boost/sort/spreadsort/detail/integer_sort.hpp +- +boost/range/begin.hpp +- +boost/range/end.hpp +- + +/home/pedroernesto/anaconda3/include/boost/sort/spreadsort/spreadsort.hpp +algorithm +- +vector +- +cstring +- +string +- +limits +- +boost/type_traits.hpp +- +boost/sort/spreadsort/integer_sort.hpp +- +boost/sort/spreadsort/float_sort.hpp +- +boost/sort/spreadsort/string_sort.hpp +- +boost/range/begin.hpp +- +boost/range/end.hpp +- + +/home/pedroernesto/anaconda3/include/boost/sort/spreadsort/string_sort.hpp +algorithm +- +vector +- +cstring +- +limits +- +boost/static_assert.hpp +- +boost/sort/spreadsort/detail/constants.hpp +- +boost/sort/spreadsort/detail/string_sort.hpp +- +boost/range/begin.hpp +- +boost/range/end.hpp +- + +/home/pedroernesto/anaconda3/include/boost/static_assert.hpp +boost/config.hpp +- +boost/detail/workaround.hpp +- + +/home/pedroernesto/anaconda3/include/boost/tuple/detail/tuple_basic.hpp +utility +- +boost/type_traits/cv_traits.hpp +- +boost/type_traits/function_traits.hpp +- +boost/utility/swap.hpp +- +boost/detail/workaround.hpp +- + +/home/pedroernesto/anaconda3/include/boost/tuple/tuple.hpp +boost/config.hpp +- +boost/static_assert.hpp +- +boost/ref.hpp +- +boost/tuple/detail/tuple_basic.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits.hpp +boost/type_traits/add_const.hpp +- +boost/type_traits/add_cv.hpp +- +boost/type_traits/add_lvalue_reference.hpp +- +boost/type_traits/add_pointer.hpp +- +boost/type_traits/add_reference.hpp +- +boost/type_traits/add_rvalue_reference.hpp +- +boost/type_traits/add_volatile.hpp +- +boost/type_traits/aligned_storage.hpp +- +boost/type_traits/alignment_of.hpp +- +boost/type_traits/common_type.hpp +- +boost/type_traits/conditional.hpp +- +boost/type_traits/copy_cv.hpp +- +boost/type_traits/decay.hpp +- +boost/type_traits/declval.hpp +- +boost/type_traits/extent.hpp +- +boost/type_traits/floating_point_promotion.hpp +- +boost/type_traits/function_traits.hpp +- +boost/type_traits/has_bit_and.hpp +- +boost/type_traits/has_bit_and_assign.hpp +- +boost/type_traits/has_bit_or.hpp +- +boost/type_traits/has_bit_or_assign.hpp +- +boost/type_traits/has_bit_xor.hpp +- +boost/type_traits/has_bit_xor_assign.hpp +- +boost/type_traits/has_complement.hpp +- +boost/type_traits/has_dereference.hpp +- +boost/type_traits/has_divides.hpp +- +boost/type_traits/has_divides_assign.hpp +- +boost/type_traits/has_equal_to.hpp +- +boost/type_traits/has_greater.hpp +- +boost/type_traits/has_greater_equal.hpp +- +boost/type_traits/has_left_shift.hpp +- +boost/type_traits/has_left_shift_assign.hpp +- +boost/type_traits/has_less.hpp +- +boost/type_traits/has_less_equal.hpp +- +boost/type_traits/has_logical_and.hpp +- +boost/type_traits/has_logical_not.hpp +- +boost/type_traits/has_logical_or.hpp +- +boost/type_traits/has_minus.hpp +- +boost/type_traits/has_minus_assign.hpp +- +boost/type_traits/has_modulus.hpp +- +boost/type_traits/has_modulus_assign.hpp +- +boost/type_traits/has_multiplies.hpp +- +boost/type_traits/has_multiplies_assign.hpp +- +boost/type_traits/has_negate.hpp +- +boost/type_traits/has_new_operator.hpp +- +boost/type_traits/has_not_equal_to.hpp +- +boost/type_traits/has_nothrow_assign.hpp +- +boost/type_traits/has_nothrow_constructor.hpp +- +boost/type_traits/has_nothrow_copy.hpp +- +boost/type_traits/has_nothrow_destructor.hpp +- +boost/type_traits/has_plus.hpp +- +boost/type_traits/has_plus_assign.hpp +- +boost/type_traits/has_post_decrement.hpp +- +boost/type_traits/has_post_increment.hpp +- +boost/type_traits/has_pre_decrement.hpp +- +boost/type_traits/has_pre_increment.hpp +- +boost/type_traits/has_right_shift.hpp +- +boost/type_traits/has_right_shift_assign.hpp +- +boost/type_traits/has_trivial_assign.hpp +- +boost/type_traits/has_trivial_constructor.hpp +- +boost/type_traits/has_trivial_copy.hpp +- +boost/type_traits/has_trivial_destructor.hpp +- +boost/type_traits/has_trivial_move_assign.hpp +- +boost/type_traits/has_trivial_move_constructor.hpp +- +boost/type_traits/has_unary_minus.hpp +- +boost/type_traits/has_unary_plus.hpp +- +boost/type_traits/has_virtual_destructor.hpp +- +boost/type_traits/integral_constant.hpp +- +boost/type_traits/is_abstract.hpp +- +boost/type_traits/is_arithmetic.hpp +- +boost/type_traits/is_array.hpp +- +boost/type_traits/is_assignable.hpp +- +boost/type_traits/is_base_and_derived.hpp +- +boost/type_traits/is_base_of.hpp +- +boost/type_traits/is_class.hpp +- +boost/type_traits/is_complex.hpp +- +boost/type_traits/is_compound.hpp +- +boost/type_traits/is_const.hpp +- +boost/type_traits/is_constructible.hpp +- +boost/type_traits/is_convertible.hpp +- +boost/type_traits/is_copy_assignable.hpp +- +boost/type_traits/is_copy_constructible.hpp +- +boost/type_traits/is_default_constructible.hpp +- +boost/type_traits/is_destructible.hpp +- +boost/type_traits/is_empty.hpp +- +boost/type_traits/is_enum.hpp +- +boost/type_traits/is_final.hpp +- +boost/type_traits/is_float.hpp +- +boost/type_traits/is_floating_point.hpp +- +boost/type_traits/is_function.hpp +- +boost/type_traits/is_fundamental.hpp +- +boost/type_traits/is_integral.hpp +- +boost/type_traits/is_list_constructible.hpp +- +boost/type_traits/is_lvalue_reference.hpp +- +boost/type_traits/is_member_function_pointer.hpp +- +boost/type_traits/is_member_object_pointer.hpp +- +boost/type_traits/is_member_pointer.hpp +- +boost/type_traits/is_nothrow_move_assignable.hpp +- +boost/type_traits/is_nothrow_move_constructible.hpp +- +boost/type_traits/is_nothrow_swappable.hpp +- +boost/type_traits/is_object.hpp +- +boost/type_traits/is_pod.hpp +- +boost/type_traits/is_pointer.hpp +- +boost/type_traits/is_polymorphic.hpp +- +boost/type_traits/is_reference.hpp +- +boost/type_traits/is_rvalue_reference.hpp +- +boost/type_traits/is_same.hpp +- +boost/type_traits/is_scalar.hpp +- +boost/type_traits/is_signed.hpp +- +boost/type_traits/is_stateless.hpp +- +boost/type_traits/is_union.hpp +- +boost/type_traits/is_unsigned.hpp +- +boost/type_traits/is_virtual_base_of.hpp +- +boost/type_traits/is_void.hpp +- +boost/type_traits/is_volatile.hpp +- +boost/type_traits/make_signed.hpp +- +boost/type_traits/make_unsigned.hpp +- +boost/type_traits/make_void.hpp +- +boost/type_traits/rank.hpp +- +boost/type_traits/remove_all_extents.hpp +- +boost/type_traits/remove_bounds.hpp +- +boost/type_traits/remove_const.hpp +- +boost/type_traits/remove_cv.hpp +- +boost/type_traits/remove_cv_ref.hpp +- +boost/type_traits/remove_extent.hpp +- +boost/type_traits/remove_pointer.hpp +- +boost/type_traits/remove_reference.hpp +- +boost/type_traits/remove_volatile.hpp +- +boost/type_traits/type_identity.hpp +- +boost/type_traits/type_with_alignment.hpp +- +boost/type_traits/integral_promotion.hpp +- +boost/type_traits/promote.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/add_const.hpp +boost/type_traits/detail/config.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/add_cv.hpp +boost/config.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/add_lvalue_reference.hpp +boost/type_traits/add_reference.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/add_pointer.hpp +boost/type_traits/remove_reference.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/add_reference.hpp +boost/detail/workaround.hpp +- +boost/config.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/add_rvalue_reference.hpp +boost/config.hpp +- +boost/type_traits/is_void.hpp +- +boost/type_traits/is_reference.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/add_volatile.hpp +boost/config.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/aligned_storage.hpp +cstddef +- +boost/config.hpp +- +boost/detail/workaround.hpp +- +boost/type_traits/alignment_of.hpp +- +boost/type_traits/type_with_alignment.hpp +- +boost/type_traits/is_pod.hpp +- +boost/type_traits/conditional.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/alignment_of.hpp +boost/config.hpp +- +cstddef +- +boost/type_traits/intrinsics.hpp +- +boost/type_traits/integral_constant.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/common_type.hpp +boost/config.hpp +- +boost/type_traits/decay.hpp +- +boost/type_traits/declval.hpp +- +boost/detail/workaround.hpp +- +boost/type_traits/is_complete.hpp +- +boost/type_traits/is_void.hpp +- +boost/type_traits/is_array.hpp +- +boost/static_assert.hpp +- +boost/type_traits/detail/common_type_impl.hpp +- +boost/type_traits/detail/mp_defer.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/conditional.hpp +boost/config.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/copy_cv.hpp +boost/type_traits/is_const.hpp +- +boost/type_traits/is_volatile.hpp +- +boost/type_traits/add_const.hpp +- +boost/type_traits/add_volatile.hpp +- +boost/type_traits/conditional.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/cv_traits.hpp +boost/type_traits/add_const.hpp +- +boost/type_traits/add_volatile.hpp +- +boost/type_traits/add_cv.hpp +- +boost/type_traits/is_const.hpp +- +boost/type_traits/is_volatile.hpp +- +boost/type_traits/remove_const.hpp +- +boost/type_traits/remove_volatile.hpp +- +boost/type_traits/remove_cv.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/decay.hpp +boost/type_traits/is_array.hpp +- +boost/type_traits/is_function.hpp +- +boost/type_traits/remove_bounds.hpp +- +boost/type_traits/add_pointer.hpp +- +boost/type_traits/remove_reference.hpp +- +boost/type_traits/remove_cv.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/declval.hpp +boost/config.hpp +- +boost/type_traits/add_rvalue_reference.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/detail/common_arithmetic_type.hpp +boost/config.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/detail/common_type_impl.hpp +boost/type_traits/detail/common_arithmetic_type.hpp +- +boost/type_traits/detail/composite_pointer_type.hpp +- +boost/type_traits/detail/composite_member_pointer_type.hpp +- +boost/type_traits/type_identity.hpp +- +boost/type_traits/is_class.hpp +- +boost/type_traits/is_union.hpp +- +boost/type_traits/is_convertible.hpp +- +boost/type_traits/is_pointer.hpp +- +boost/type_traits/is_member_pointer.hpp +- +boost/type_traits/conditional.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/detail/composite_member_pointer_type.hpp +boost/type_traits/detail/composite_pointer_type.hpp +- +boost/type_traits/remove_pointer.hpp +- +boost/type_traits/is_base_of.hpp +- +boost/type_traits/conditional.hpp +- +boost/config.hpp +- +cstddef +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/detail/composite_pointer_type.hpp +boost/type_traits/copy_cv.hpp +- +boost/type_traits/remove_cv.hpp +- +boost/type_traits/is_same.hpp +- +boost/type_traits/is_void.hpp +- +boost/type_traits/is_base_of.hpp +- +boost/config.hpp +- +cstddef +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/detail/config.hpp +boost/config.hpp +- +boost/version.hpp +- +boost/config/workaround.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/detail/has_binary_operator.hpp +boost/config.hpp +- +boost/type_traits/detail/config.hpp +- +boost/type_traits/integral_constant.hpp +- +boost/type_traits/make_void.hpp +- +boost/type_traits/is_convertible.hpp +- +boost/type_traits/is_void.hpp +- +boost/type_traits/add_reference.hpp +- +utility +- +boost/type_traits/detail/yes_no_type.hpp +- +boost/type_traits/integral_constant.hpp +- +boost/type_traits/is_base_of.hpp +- +boost/type_traits/is_const.hpp +- +boost/type_traits/is_convertible.hpp +- +boost/type_traits/is_fundamental.hpp +- +boost/type_traits/is_integral.hpp +- +boost/type_traits/is_pointer.hpp +- +boost/type_traits/is_same.hpp +- +boost/type_traits/is_void.hpp +- +boost/type_traits/remove_cv.hpp +- +boost/type_traits/remove_pointer.hpp +- +boost/type_traits/remove_reference.hpp +- +boost/type_traits/detail/is_likely_lambda.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/detail/has_postfix_operator.hpp +boost/config.hpp +- +boost/type_traits/detail/yes_no_type.hpp +- +boost/type_traits/integral_constant.hpp +- +boost/type_traits/is_const.hpp +- +boost/type_traits/is_fundamental.hpp +- +boost/type_traits/is_pointer.hpp +- +boost/type_traits/is_same.hpp +- +boost/type_traits/is_void.hpp +- +boost/type_traits/remove_cv.hpp +- +boost/type_traits/remove_pointer.hpp +- +boost/type_traits/remove_reference.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/detail/has_prefix_operator.hpp +boost/config.hpp +- +boost/type_traits/detail/yes_no_type.hpp +- +boost/type_traits/integral_constant.hpp +- +boost/type_traits/is_const.hpp +- +boost/type_traits/is_fundamental.hpp +- +boost/type_traits/is_integral.hpp +- +boost/type_traits/is_pointer.hpp +- +boost/type_traits/is_same.hpp +- +boost/type_traits/is_void.hpp +- +boost/type_traits/remove_cv.hpp +- +boost/type_traits/remove_pointer.hpp +- +boost/type_traits/remove_reference.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/detail/is_function_ptr_helper.hpp + +/home/pedroernesto/anaconda3/include/boost/type_traits/detail/is_function_ptr_tester.hpp +boost/type_traits/detail/yes_no_type.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/detail/is_likely_lambda.hpp +boost/type_traits/detail/config.hpp +- +boost/type_traits/integral_constant.hpp +- +boost/type_traits/is_convertible.hpp +- +boost/core/enable_if.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/detail/is_mem_fun_pointer_impl.hpp +boost/config.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/detail/is_mem_fun_pointer_tester.hpp +boost/type_traits/detail/yes_no_type.hpp +- +boost/type_traits/detail/config.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/detail/mp_defer.hpp +boost/type_traits/integral_constant.hpp +- +boost/type_traits/conditional.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/detail/yes_no_type.hpp + +/home/pedroernesto/anaconda3/include/boost/type_traits/extent.hpp +cstddef +- +boost/type_traits/integral_constant.hpp +- +boost/detail/workaround.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/floating_point_promotion.hpp +boost/config.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/function_traits.hpp +boost/config.hpp +- +boost/type_traits/is_function.hpp +- +boost/type_traits/add_pointer.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/has_bit_and.hpp +boost/type_traits/detail/has_binary_operator.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/has_bit_and_assign.hpp +boost/type_traits/detail/has_binary_operator.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/has_bit_or.hpp +boost/type_traits/detail/has_binary_operator.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/has_bit_or_assign.hpp +boost/type_traits/detail/has_binary_operator.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/has_bit_xor.hpp +boost/type_traits/detail/has_binary_operator.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/has_bit_xor_assign.hpp +boost/type_traits/detail/has_binary_operator.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/has_complement.hpp +boost/type_traits/detail/has_prefix_operator.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/has_dereference.hpp +boost/type_traits/detail/has_prefix_operator.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/has_divides.hpp +boost/type_traits/detail/has_binary_operator.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/has_divides_assign.hpp +boost/type_traits/detail/has_binary_operator.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/has_equal_to.hpp +boost/type_traits/detail/has_binary_operator.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/has_greater.hpp +boost/type_traits/detail/has_binary_operator.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/has_greater_equal.hpp +boost/type_traits/detail/has_binary_operator.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/has_left_shift.hpp +boost/type_traits/detail/has_binary_operator.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/has_left_shift_assign.hpp +boost/type_traits/detail/has_binary_operator.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/has_less.hpp +boost/type_traits/detail/has_binary_operator.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/has_less_equal.hpp +boost/type_traits/detail/has_binary_operator.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/has_logical_and.hpp +boost/type_traits/detail/has_binary_operator.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/has_logical_not.hpp +boost/type_traits/detail/has_prefix_operator.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/has_logical_or.hpp +boost/type_traits/detail/has_binary_operator.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/has_minus.hpp +boost/config.hpp +- +boost/type_traits/detail/config.hpp +- +boost/type_traits/integral_constant.hpp +- +boost/type_traits/make_void.hpp +- +boost/type_traits/is_convertible.hpp +- +boost/type_traits/is_void.hpp +- +boost/type_traits/add_reference.hpp +- +boost/type_traits/remove_pointer.hpp +- +boost/type_traits/remove_reference.hpp +- +utility +- +boost/type_traits/detail/has_binary_operator.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/has_minus_assign.hpp +boost/config.hpp +- +boost/type_traits/detail/config.hpp +- +boost/type_traits/integral_constant.hpp +- +boost/type_traits/make_void.hpp +- +boost/type_traits/is_convertible.hpp +- +boost/type_traits/is_void.hpp +- +boost/type_traits/is_pointer.hpp +- +boost/type_traits/add_reference.hpp +- +boost/type_traits/remove_pointer.hpp +- +boost/type_traits/remove_reference.hpp +- +utility +- +boost/type_traits/detail/has_binary_operator.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/has_modulus.hpp +boost/type_traits/detail/has_binary_operator.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/has_modulus_assign.hpp +boost/type_traits/detail/has_binary_operator.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/has_multiplies.hpp +boost/type_traits/detail/has_binary_operator.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/has_multiplies_assign.hpp +boost/type_traits/detail/has_binary_operator.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/has_negate.hpp +boost/type_traits/detail/has_prefix_operator.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/has_new_operator.hpp +new +- +cstddef +- +boost/type_traits/integral_constant.hpp +- +boost/type_traits/detail/yes_no_type.hpp +- +boost/detail/workaround.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/has_not_equal_to.hpp +boost/type_traits/detail/has_binary_operator.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/has_nothrow_assign.hpp +cstddef +- +boost/type_traits/integral_constant.hpp +- +boost/type_traits/intrinsics.hpp +- +boost/type_traits/has_trivial_assign.hpp +- +boost/type_traits/declval.hpp +- +boost/type_traits/is_const.hpp +- +boost/type_traits/is_volatile.hpp +- +boost/type_traits/is_reference.hpp +- +boost/type_traits/is_assignable.hpp +- +boost/type_traits/add_reference.hpp +- +boost/type_traits/remove_reference.hpp +- +boost/type_traits/is_const.hpp +- +boost/type_traits/is_volatile.hpp +- +boost/type_traits/is_assignable.hpp +- +boost/type_traits/is_array.hpp +- +boost/type_traits/is_pod.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/has_nothrow_constructor.hpp +cstddef +- +boost/type_traits/intrinsics.hpp +- +boost/type_traits/integral_constant.hpp +- +boost/type_traits/has_trivial_constructor.hpp +- +boost/type_traits/is_default_constructible.hpp +- +boost/type_traits/is_default_constructible.hpp +- +boost/type_traits/remove_all_extents.hpp +- +boost/type_traits/has_trivial_constructor.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/has_nothrow_copy.hpp +boost/type_traits/intrinsics.hpp +- +boost/type_traits/integral_constant.hpp +- +boost/type_traits/is_volatile.hpp +- +boost/type_traits/is_copy_constructible.hpp +- +boost/type_traits/is_reference.hpp +- +boost/type_traits/is_array.hpp +- +boost/type_traits/is_pod.hpp +- +boost/type_traits/has_trivial_copy.hpp +- +boost/type_traits/is_array.hpp +- +boost/type_traits/add_lvalue_reference.hpp +- +boost/type_traits/add_const.hpp +- +boost/type_traits/declval.hpp +- +boost/type_traits/is_copy_constructible.hpp +- +boost/type_traits/has_trivial_copy.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/has_nothrow_destructor.hpp +boost/type_traits/has_trivial_destructor.hpp +- +boost/type_traits/declval.hpp +- +boost/type_traits/is_destructible.hpp +- +boost/type_traits/is_complete.hpp +- +boost/static_assert.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/has_plus.hpp +boost/type_traits/detail/has_binary_operator.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/has_plus_assign.hpp +boost/config.hpp +- +boost/type_traits/detail/config.hpp +- +boost/type_traits/integral_constant.hpp +- +boost/type_traits/make_void.hpp +- +boost/type_traits/is_convertible.hpp +- +boost/type_traits/is_void.hpp +- +boost/type_traits/is_same.hpp +- +boost/type_traits/is_pointer.hpp +- +boost/type_traits/is_arithmetic.hpp +- +boost/type_traits/add_reference.hpp +- +boost/type_traits/remove_pointer.hpp +- +boost/type_traits/remove_reference.hpp +- +boost/type_traits/remove_cv.hpp +- +utility +- +boost/type_traits/detail/has_binary_operator.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/has_post_decrement.hpp +boost/type_traits/is_array.hpp +- +boost/type_traits/detail/has_postfix_operator.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/has_post_increment.hpp +boost/type_traits/is_array.hpp +- +boost/type_traits/detail/has_postfix_operator.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/has_pre_decrement.hpp +boost/type_traits/is_array.hpp +- +boost/type_traits/detail/has_prefix_operator.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/has_pre_increment.hpp +boost/type_traits/is_array.hpp +- +boost/type_traits/detail/has_prefix_operator.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/has_right_shift.hpp +boost/type_traits/detail/has_binary_operator.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/has_right_shift_assign.hpp +boost/type_traits/detail/has_binary_operator.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/has_trivial_assign.hpp +cstddef +- +boost/type_traits/detail/config.hpp +- +boost/type_traits/intrinsics.hpp +- +boost/type_traits/integral_constant.hpp +- +boost/type_traits/is_pod.hpp +- +boost/type_traits/is_const.hpp +- +boost/type_traits/is_volatile.hpp +- +boost/type_traits/is_assignable.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/has_trivial_constructor.hpp +boost/type_traits/intrinsics.hpp +- +boost/type_traits/is_pod.hpp +- +boost/type_traits/is_default_constructible.hpp +- +boost/type_traits/is_same.hpp +- +boost/type_traits/is_volatile.hpp +- +boost/type_traits/is_pod.hpp +- +boost/type_traits/is_default_constructible.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/has_trivial_copy.hpp +cstddef +- +boost/type_traits/intrinsics.hpp +- +boost/type_traits/is_pod.hpp +- +boost/type_traits/is_reference.hpp +- +boost/type_traits/is_copy_constructible.hpp +- +boost/type_traits/add_const.hpp +- +boost/type_traits/add_lvalue_reference.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/has_trivial_destructor.hpp +boost/type_traits/intrinsics.hpp +- +boost/type_traits/integral_constant.hpp +- +boost/type_traits/is_pod.hpp +- +boost/type_traits/is_same.hpp +- +boost/type_traits/is_destructible.hpp +- +boost/type_traits/is_pod.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/has_trivial_move_assign.hpp +cstddef +- +boost/type_traits/intrinsics.hpp +- +boost/type_traits/integral_constant.hpp +- +boost/type_traits/is_pod.hpp +- +boost/type_traits/is_const.hpp +- +boost/type_traits/is_volatile.hpp +- +boost/type_traits/is_reference.hpp +- +boost/type_traits/is_assignable.hpp +- +boost/type_traits/is_volatile.hpp +- +boost/type_traits/is_assignable.hpp +- +boost/type_traits/remove_const.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/has_trivial_move_constructor.hpp +cstddef +- +boost/type_traits/intrinsics.hpp +- +boost/type_traits/integral_constant.hpp +- +boost/type_traits/is_pod.hpp +- +boost/type_traits/is_volatile.hpp +- +boost/type_traits/is_constructible.hpp +- +boost/type_traits/is_volatile.hpp +- +boost/type_traits/is_constructible.hpp +- +boost/type_traits/remove_const.hpp +- +boost/type_traits/is_pod.hpp +- +boost/type_traits/is_volatile.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/has_unary_minus.hpp +boost/type_traits/detail/has_prefix_operator.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/has_unary_plus.hpp +boost/type_traits/detail/has_prefix_operator.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/has_virtual_destructor.hpp +boost/type_traits/intrinsics.hpp +- +boost/type_traits/integral_constant.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/integral_constant.hpp +boost/config.hpp +- +boost/detail/workaround.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/integral_promotion.hpp +boost/config.hpp +- +boost/type_traits/integral_constant.hpp +- +boost/type_traits/is_const.hpp +- +boost/type_traits/is_enum.hpp +- +boost/type_traits/is_volatile.hpp +- +boost/type_traits/remove_cv.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/intrinsics.hpp +boost/config.hpp +- +boost/type_traits/detail/config.hpp +- +boost/type_traits/is_same.hpp +- +algorithm +- +type_traits.h +- +msl_utility +- +cstddef +- +boost/type_traits/is_same.hpp +- +boost/type_traits/is_reference.hpp +- +boost/type_traits/is_volatile.hpp +- +boost/type_traits/is_same.hpp +- +boost/type_traits/is_reference.hpp +- +boost/type_traits/is_volatile.hpp +- +boost/type_traits/is_void.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/is_abstract.hpp +cstddef +- +boost/type_traits/intrinsics.hpp +- +boost/type_traits/integral_constant.hpp +- +boost/static_assert.hpp +- +boost/type_traits/detail/yes_no_type.hpp +- +boost/type_traits/is_class.hpp +- +boost/type_traits/is_polymorphic.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/is_arithmetic.hpp +boost/type_traits/is_integral.hpp +- +boost/type_traits/is_floating_point.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/is_array.hpp +boost/type_traits/integral_constant.hpp +- +cstddef +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/is_assignable.hpp +cstddef +- +boost/type_traits/integral_constant.hpp +- +boost/detail/workaround.hpp +- +boost/type_traits/is_complete.hpp +- +boost/static_assert.hpp +- +boost/type_traits/detail/yes_no_type.hpp +- +boost/type_traits/declval.hpp +- +boost/type_traits/has_trivial_assign.hpp +- +boost/type_traits/remove_reference.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/is_base_and_derived.hpp +boost/type_traits/intrinsics.hpp +- +boost/type_traits/integral_constant.hpp +- +boost/type_traits/is_class.hpp +- +boost/type_traits/is_same.hpp +- +boost/type_traits/is_convertible.hpp +- +boost/config.hpp +- +boost/static_assert.hpp +- +boost/type_traits/remove_cv.hpp +- +boost/type_traits/is_same.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/is_base_of.hpp +boost/type_traits/is_base_and_derived.hpp +- +boost/type_traits/is_same.hpp +- +boost/type_traits/is_class.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/is_class.hpp +boost/type_traits/detail/config.hpp +- +boost/type_traits/intrinsics.hpp +- +boost/type_traits/integral_constant.hpp +- +boost/type_traits/is_union.hpp +- +boost/type_traits/detail/yes_no_type.hpp +- +boost/type_traits/is_scalar.hpp +- +boost/type_traits/is_array.hpp +- +boost/type_traits/is_reference.hpp +- +boost/type_traits/is_void.hpp +- +boost/type_traits/is_function.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/is_complete.hpp +boost/type_traits/integral_constant.hpp +- +boost/type_traits/remove_reference.hpp +- +boost/type_traits/is_function.hpp +- +boost/config/workaround.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/is_complex.hpp +boost/config.hpp +- +complex +- +boost/type_traits/integral_constant.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/is_compound.hpp +boost/type_traits/is_fundamental.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/is_const.hpp +cstddef +- +boost/type_traits/integral_constant.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/is_constructible.hpp +boost/type_traits/integral_constant.hpp +- +boost/detail/workaround.hpp +- +boost/type_traits/is_destructible.hpp +- +boost/type_traits/is_default_constructible.hpp +- +boost/type_traits/detail/yes_no_type.hpp +- +boost/type_traits/declval.hpp +- +boost/type_traits/is_complete.hpp +- +boost/static_assert.hpp +- +boost/type_traits/is_convertible.hpp +- +boost/type_traits/is_default_constructible.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/is_convertible.hpp +boost/type_traits/intrinsics.hpp +- +boost/type_traits/integral_constant.hpp +- +boost/type_traits/is_complete.hpp +- +boost/type_traits/is_void.hpp +- +boost/type_traits/is_array.hpp +- +boost/static_assert.hpp +- +boost/type_traits/detail/yes_no_type.hpp +- +boost/type_traits/detail/config.hpp +- +boost/type_traits/is_array.hpp +- +boost/type_traits/is_arithmetic.hpp +- +boost/type_traits/is_void.hpp +- +boost/type_traits/is_abstract.hpp +- +boost/type_traits/add_lvalue_reference.hpp +- +boost/type_traits/add_rvalue_reference.hpp +- +boost/type_traits/is_function.hpp +- +boost/type_traits/remove_reference.hpp +- +boost/type_traits/declval.hpp +- +boost/type_traits/is_function.hpp +- +boost/type_traits/is_same.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/is_copy_assignable.hpp +boost/config.hpp +- +boost/type_traits/detail/yes_no_type.hpp +- +boost/type_traits/is_base_and_derived.hpp +- +boost/noncopyable.hpp +- +boost/type_traits/declval.hpp +- +boost/type_traits/is_const.hpp +- +boost/type_traits/is_array.hpp +- +boost/type_traits/add_reference.hpp +- +boost/type_traits/remove_reference.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/is_copy_constructible.hpp +boost/config.hpp +- +boost/detail/workaround.hpp +- +boost/type_traits/is_constructible.hpp +- +boost/type_traits/is_base_and_derived.hpp +- +boost/noncopyable.hpp +- +boost/type_traits/detail/yes_no_type.hpp +- +boost/type_traits/is_base_and_derived.hpp +- +boost/type_traits/add_reference.hpp +- +boost/type_traits/is_rvalue_reference.hpp +- +boost/type_traits/declval.hpp +- +boost/type_traits/is_array.hpp +- +boost/type_traits/declval.hpp +- +boost/noncopyable.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/is_default_constructible.hpp +cstddef +- +boost/type_traits/integral_constant.hpp +- +boost/detail/workaround.hpp +- +boost/type_traits/is_complete.hpp +- +boost/static_assert.hpp +- +boost/type_traits/is_abstract.hpp +- +utility +- +boost/type_traits/detail/yes_no_type.hpp +- +boost/type_traits/is_pod.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/is_destructible.hpp +cstddef +- +boost/type_traits/integral_constant.hpp +- +boost/detail/workaround.hpp +- +boost/type_traits/is_complete.hpp +- +boost/static_assert.hpp +- +boost/type_traits/detail/yes_no_type.hpp +- +boost/type_traits/declval.hpp +- +boost/type_traits/is_pod.hpp +- +boost/type_traits/is_class.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/is_empty.hpp +boost/type_traits/is_convertible.hpp +- +boost/type_traits/detail/config.hpp +- +boost/type_traits/intrinsics.hpp +- +boost/type_traits/remove_cv.hpp +- +boost/type_traits/is_class.hpp +- +boost/type_traits/add_reference.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/is_enum.hpp +boost/type_traits/intrinsics.hpp +- +boost/type_traits/integral_constant.hpp +- +boost/type_traits/add_reference.hpp +- +boost/type_traits/is_arithmetic.hpp +- +boost/type_traits/is_reference.hpp +- +boost/type_traits/is_convertible.hpp +- +boost/type_traits/is_array.hpp +- +boost/type_traits/is_function.hpp +- +boost/type_traits/detail/config.hpp +- +boost/type_traits/is_class.hpp +- +boost/type_traits/is_union.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/is_final.hpp +boost/type_traits/intrinsics.hpp +- +boost/type_traits/integral_constant.hpp +- +boost/type_traits/remove_cv.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/is_float.hpp +boost/type_traits/is_floating_point.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/is_floating_point.hpp +boost/type_traits/integral_constant.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/is_function.hpp +boost/type_traits/is_reference.hpp +- +boost/type_traits/detail/config.hpp +- +boost/type_traits/detail/is_function_ptr_helper.hpp +- +boost/type_traits/detail/is_function_ptr_tester.hpp +- +boost/type_traits/detail/yes_no_type.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/is_fundamental.hpp +boost/type_traits/is_arithmetic.hpp +- +boost/type_traits/is_void.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/is_integral.hpp +boost/config.hpp +- +boost/type_traits/integral_constant.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/is_list_constructible.hpp +boost/config.hpp +- +boost/config/workaround.hpp +- +boost/type_traits/integral_constant.hpp +- +boost/type_traits/declval.hpp +- +boost/type_traits/is_complete.hpp +- +boost/static_assert.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/is_lvalue_reference.hpp +boost/type_traits/integral_constant.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/is_member_function_pointer.hpp +boost/type_traits/detail/config.hpp +- +boost/detail/workaround.hpp +- +boost/type_traits/detail/is_mem_fun_pointer_impl.hpp +- +boost/type_traits/remove_cv.hpp +- +boost/type_traits/integral_constant.hpp +- +boost/type_traits/is_reference.hpp +- +boost/type_traits/is_array.hpp +- +boost/type_traits/detail/yes_no_type.hpp +- +boost/type_traits/detail/is_mem_fun_pointer_tester.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/is_member_object_pointer.hpp +boost/type_traits/is_member_pointer.hpp +- +boost/type_traits/is_member_function_pointer.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/is_member_pointer.hpp +boost/detail/workaround.hpp +- +boost/type_traits/is_member_function_pointer.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/is_nothrow_move_assignable.hpp +boost/config.hpp +- +boost/type_traits/has_trivial_move_assign.hpp +- +boost/type_traits/has_nothrow_assign.hpp +- +boost/type_traits/is_array.hpp +- +boost/type_traits/is_reference.hpp +- +boost/utility/enable_if.hpp +- +boost/type_traits/declval.hpp +- +boost/type_traits/is_complete.hpp +- +boost/static_assert.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/is_nothrow_move_constructible.hpp +cstddef +- +boost/config.hpp +- +boost/type_traits/intrinsics.hpp +- +boost/type_traits/integral_constant.hpp +- +boost/detail/workaround.hpp +- +boost/type_traits/is_complete.hpp +- +boost/static_assert.hpp +- +boost/type_traits/declval.hpp +- +boost/utility/enable_if.hpp +- +boost/type_traits/has_trivial_move_constructor.hpp +- +boost/type_traits/has_nothrow_copy.hpp +- +boost/type_traits/is_array.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/is_nothrow_swappable.hpp +boost/config.hpp +- +boost/config/workaround.hpp +- +boost/type_traits/is_scalar.hpp +- +boost/type_traits/is_const.hpp +- +boost/type_traits/integral_constant.hpp +- +boost/type_traits/declval.hpp +- +boost/type_traits/integral_constant.hpp +- +algorithm +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/is_object.hpp +boost/config.hpp +- +boost/type_traits/is_reference.hpp +- +boost/type_traits/is_void.hpp +- +boost/type_traits/is_function.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/is_pod.hpp +cstddef +- +boost/type_traits/detail/config.hpp +- +boost/type_traits/is_void.hpp +- +boost/type_traits/is_scalar.hpp +- +boost/type_traits/intrinsics.hpp +- +boost/type_traits/is_function.hpp +- +cstddef +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/is_pointer.hpp +boost/type_traits/integral_constant.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/is_polymorphic.hpp +boost/type_traits/intrinsics.hpp +- +boost/type_traits/integral_constant.hpp +- +boost/type_traits/is_class.hpp +- +boost/detail/workaround.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/is_reference.hpp +boost/type_traits/is_lvalue_reference.hpp +- +boost/type_traits/is_rvalue_reference.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/is_rvalue_reference.hpp +boost/config.hpp +- +boost/type_traits/integral_constant.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/is_same.hpp +boost/type_traits/integral_constant.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/is_scalar.hpp +boost/type_traits/is_arithmetic.hpp +- +boost/type_traits/is_enum.hpp +- +boost/type_traits/is_pointer.hpp +- +boost/type_traits/is_member_pointer.hpp +- +boost/config.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/is_signed.hpp +boost/type_traits/is_integral.hpp +- +boost/type_traits/remove_cv.hpp +- +boost/type_traits/is_enum.hpp +- +climits +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/is_stateless.hpp +boost/type_traits/has_trivial_constructor.hpp +- +boost/type_traits/has_trivial_copy.hpp +- +boost/type_traits/has_trivial_destructor.hpp +- +boost/type_traits/is_class.hpp +- +boost/type_traits/is_empty.hpp +- +boost/config.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/is_union.hpp +boost/type_traits/intrinsics.hpp +- +boost/type_traits/integral_constant.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/is_unsigned.hpp +boost/type_traits/is_integral.hpp +- +boost/type_traits/is_enum.hpp +- +boost/type_traits/remove_cv.hpp +- +climits +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/is_virtual_base_of.hpp +boost/type_traits/is_base_of.hpp +- +boost/type_traits/is_same.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/is_void.hpp +boost/type_traits/integral_constant.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/is_volatile.hpp +cstddef +- +boost/type_traits/integral_constant.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/make_signed.hpp +boost/type_traits/conditional.hpp +- +boost/type_traits/is_integral.hpp +- +boost/type_traits/is_signed.hpp +- +boost/type_traits/is_unsigned.hpp +- +boost/type_traits/is_enum.hpp +- +boost/type_traits/is_same.hpp +- +boost/type_traits/remove_cv.hpp +- +boost/type_traits/is_const.hpp +- +boost/type_traits/is_volatile.hpp +- +boost/type_traits/add_const.hpp +- +boost/type_traits/add_volatile.hpp +- +boost/static_assert.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/make_unsigned.hpp +boost/type_traits/conditional.hpp +- +boost/type_traits/is_integral.hpp +- +boost/type_traits/is_signed.hpp +- +boost/type_traits/is_unsigned.hpp +- +boost/type_traits/is_enum.hpp +- +boost/type_traits/is_same.hpp +- +boost/type_traits/remove_cv.hpp +- +boost/type_traits/is_const.hpp +- +boost/type_traits/is_volatile.hpp +- +boost/type_traits/add_const.hpp +- +boost/type_traits/add_volatile.hpp +- +boost/static_assert.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/make_void.hpp +boost/config.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/promote.hpp +boost/config.hpp +- +boost/type_traits/integral_promotion.hpp +- +boost/type_traits/floating_point_promotion.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/rank.hpp +cstddef +- +boost/type_traits/integral_constant.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/remove_all_extents.hpp +boost/config.hpp +- +cstddef +- +boost/detail/workaround.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/remove_bounds.hpp +boost/type_traits/remove_extent.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/remove_const.hpp +boost/config.hpp +- +cstddef +- +boost/detail/workaround.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/remove_cv.hpp +boost/config.hpp +- +boost/detail/workaround.hpp +- +cstddef +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/remove_cv_ref.hpp +boost/config.hpp +- +boost/type_traits/remove_cv.hpp +- +boost/type_traits/remove_reference.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/remove_extent.hpp +boost/config.hpp +- +boost/detail/workaround.hpp +- +cstddef +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/remove_pointer.hpp +boost/config.hpp +- +boost/config/workaround.hpp +- +boost/type_traits/remove_cv.hpp +- +boost/type_traits/is_pointer.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/remove_reference.hpp +boost/config.hpp +- +boost/detail/workaround.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/remove_volatile.hpp +boost/config.hpp +- +boost/detail/workaround.hpp +- +cstddef +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/type_identity.hpp +boost/config.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/type_with_alignment.hpp +boost/type_traits/alignment_of.hpp +- +boost/type_traits/is_pod.hpp +- +boost/static_assert.hpp +- +boost/config.hpp +- +cstddef +- +boost/detail/workaround.hpp +- +boost/type_traits/conditional.hpp +- + +/home/pedroernesto/anaconda3/include/boost/utility/addressof.hpp +boost/core/addressof.hpp +- + +/home/pedroernesto/anaconda3/include/boost/utility/enable_if.hpp +boost/core/enable_if.hpp +- + +/home/pedroernesto/anaconda3/include/boost/utility/swap.hpp +boost/core/swap.hpp +- + +/home/pedroernesto/anaconda3/include/boost/version.hpp + +/home/pedroernesto/anaconda3/include/gsl/gsl_errno.h +stdio.h +- +errno.h +- +gsl/gsl_types.h +- + +/home/pedroernesto/anaconda3/include/gsl/gsl_inline.h + +/home/pedroernesto/anaconda3/include/gsl/gsl_rng.h +stdlib.h +- +gsl/gsl_types.h +- +gsl/gsl_errno.h +- +gsl/gsl_inline.h +- + +/home/pedroernesto/anaconda3/include/gsl/gsl_types.h + +/home/pedroernesto/anaconda3/include/mpi.h +stddef.h +- +mpi_portable_platform.h +/home/pedroernesto/anaconda3/include/mpi_portable_platform.h +openmpi/ompi/mpi/cxx/mpicxx.h +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/mpicxx.h + +/home/pedroernesto/anaconda3/include/mpi_portable_platform.h +omp.h +/home/pedroernesto/anaconda3/include/omp.h +omp.h +/home/pedroernesto/anaconda3/include/omp.h + +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/comm.h + +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/comm_inln.h + +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/constants.h + +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/datatype.h + +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/datatype_inln.h + +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/errhandler.h + +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/errhandler_inln.h + +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/exception.h + +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/file.h + +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/file_inln.h + +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/functions.h + +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/functions_inln.h +string.h +- + +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/group.h + +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/group_inln.h + +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/info.h + +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/info_inln.h + +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/intercomm.h + +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/intercomm_inln.h + +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/intracomm.h + +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/intracomm_inln.h + +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/mpicxx.h +mpi.h +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/mpi.h +map +- +utility +- +stdarg.h +- +stdio.h +- +iostream +- +sys/synch.h +- +ompi/mpi/cxx/pmpicxx.h +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/ompi/mpi/cxx/pmpicxx.h +ompi/mpi/cxx/constants.h +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/ompi/mpi/cxx/constants.h +ompi/mpi/cxx/functions.h +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/ompi/mpi/cxx/functions.h +ompi/mpi/cxx/datatype.h +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/ompi/mpi/cxx/datatype.h +openmpi/ompi/mpi/cxx/constants.h +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/openmpi/ompi/mpi/cxx/constants.h +openmpi/ompi/mpi/cxx/functions.h +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/openmpi/ompi/mpi/cxx/functions.h +openmpi/ompi/mpi/cxx/datatype.h +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/openmpi/ompi/mpi/cxx/datatype.h +ompi/mpi/cxx/exception.h +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/ompi/mpi/cxx/exception.h +ompi/mpi/cxx/op.h +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/ompi/mpi/cxx/op.h +ompi/mpi/cxx/status.h +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/ompi/mpi/cxx/status.h +ompi/mpi/cxx/request.h +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/ompi/mpi/cxx/request.h +ompi/mpi/cxx/group.h +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/ompi/mpi/cxx/group.h +ompi/mpi/cxx/comm.h +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/ompi/mpi/cxx/comm.h +ompi/mpi/cxx/win.h +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/ompi/mpi/cxx/win.h +ompi/mpi/cxx/file.h +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/ompi/mpi/cxx/file.h +ompi/mpi/cxx/errhandler.h +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/ompi/mpi/cxx/errhandler.h +ompi/mpi/cxx/intracomm.h +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/ompi/mpi/cxx/intracomm.h +ompi/mpi/cxx/topology.h +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/ompi/mpi/cxx/topology.h +ompi/mpi/cxx/intercomm.h +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/ompi/mpi/cxx/intercomm.h +ompi/mpi/cxx/info.h +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/ompi/mpi/cxx/info.h +openmpi/ompi/mpi/cxx/exception.h +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/openmpi/ompi/mpi/cxx/exception.h +openmpi/ompi/mpi/cxx/op.h +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/openmpi/ompi/mpi/cxx/op.h +openmpi/ompi/mpi/cxx/status.h +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/openmpi/ompi/mpi/cxx/status.h +openmpi/ompi/mpi/cxx/request.h +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/openmpi/ompi/mpi/cxx/request.h +openmpi/ompi/mpi/cxx/group.h +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/openmpi/ompi/mpi/cxx/group.h +openmpi/ompi/mpi/cxx/comm.h +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/openmpi/ompi/mpi/cxx/comm.h +openmpi/ompi/mpi/cxx/win.h +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/openmpi/ompi/mpi/cxx/win.h +openmpi/ompi/mpi/cxx/file.h +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/openmpi/ompi/mpi/cxx/file.h +openmpi/ompi/mpi/cxx/errhandler.h +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/openmpi/ompi/mpi/cxx/errhandler.h +openmpi/ompi/mpi/cxx/intracomm.h +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/openmpi/ompi/mpi/cxx/intracomm.h +openmpi/ompi/mpi/cxx/topology.h +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/openmpi/ompi/mpi/cxx/topology.h +openmpi/ompi/mpi/cxx/intercomm.h +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/openmpi/ompi/mpi/cxx/intercomm.h +openmpi/ompi/mpi/cxx/info.h +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/openmpi/ompi/mpi/cxx/info.h +ompi/mpi/cxx/pop_inln.h +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/ompi/mpi/cxx/pop_inln.h +ompi/mpi/cxx/pgroup_inln.h +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/ompi/mpi/cxx/pgroup_inln.h +ompi/mpi/cxx/pstatus_inln.h +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/ompi/mpi/cxx/pstatus_inln.h +ompi/mpi/cxx/prequest_inln.h +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/ompi/mpi/cxx/prequest_inln.h +ompi/mpi/cxx/datatype_inln.h +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/ompi/mpi/cxx/datatype_inln.h +ompi/mpi/cxx/functions_inln.h +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/ompi/mpi/cxx/functions_inln.h +ompi/mpi/cxx/request_inln.h +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/ompi/mpi/cxx/request_inln.h +ompi/mpi/cxx/comm_inln.h +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/ompi/mpi/cxx/comm_inln.h +ompi/mpi/cxx/intracomm_inln.h +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/ompi/mpi/cxx/intracomm_inln.h +ompi/mpi/cxx/topology_inln.h +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/ompi/mpi/cxx/topology_inln.h +ompi/mpi/cxx/intercomm_inln.h +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/ompi/mpi/cxx/intercomm_inln.h +ompi/mpi/cxx/group_inln.h +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/ompi/mpi/cxx/group_inln.h +ompi/mpi/cxx/op_inln.h +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/ompi/mpi/cxx/op_inln.h +ompi/mpi/cxx/errhandler_inln.h +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/ompi/mpi/cxx/errhandler_inln.h +ompi/mpi/cxx/status_inln.h +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/ompi/mpi/cxx/status_inln.h +ompi/mpi/cxx/info_inln.h +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/ompi/mpi/cxx/info_inln.h +ompi/mpi/cxx/win_inln.h +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/ompi/mpi/cxx/win_inln.h +ompi/mpi/cxx/file_inln.h +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/ompi/mpi/cxx/file_inln.h +openmpi/ompi/mpi/cxx/datatype_inln.h +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/openmpi/ompi/mpi/cxx/datatype_inln.h +openmpi/ompi/mpi/cxx/functions_inln.h +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/openmpi/ompi/mpi/cxx/functions_inln.h +openmpi/ompi/mpi/cxx/request_inln.h +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/openmpi/ompi/mpi/cxx/request_inln.h +openmpi/ompi/mpi/cxx/comm_inln.h +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/openmpi/ompi/mpi/cxx/comm_inln.h +openmpi/ompi/mpi/cxx/intracomm_inln.h +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/openmpi/ompi/mpi/cxx/intracomm_inln.h +openmpi/ompi/mpi/cxx/topology_inln.h +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/openmpi/ompi/mpi/cxx/topology_inln.h +openmpi/ompi/mpi/cxx/intercomm_inln.h +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/openmpi/ompi/mpi/cxx/intercomm_inln.h +openmpi/ompi/mpi/cxx/group_inln.h +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/openmpi/ompi/mpi/cxx/group_inln.h +openmpi/ompi/mpi/cxx/op_inln.h +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/openmpi/ompi/mpi/cxx/op_inln.h +openmpi/ompi/mpi/cxx/errhandler_inln.h +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/openmpi/ompi/mpi/cxx/errhandler_inln.h +openmpi/ompi/mpi/cxx/status_inln.h +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/openmpi/ompi/mpi/cxx/status_inln.h +openmpi/ompi/mpi/cxx/info_inln.h +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/openmpi/ompi/mpi/cxx/info_inln.h +openmpi/ompi/mpi/cxx/win_inln.h +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/openmpi/ompi/mpi/cxx/win_inln.h +openmpi/ompi/mpi/cxx/file_inln.h +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/openmpi/ompi/mpi/cxx/file_inln.h + +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/op.h + +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/op_inln.h + +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/request.h + +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/request_inln.h + +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/status.h + +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/status_inln.h + +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/topology.h + +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/topology_inln.h + +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/win.h + +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/win_inln.h + diff --git a/examples/NEST_nineml_models/StdpSongAbbott/compile/CMakeFiles/StdpSongAbbottmodule_lib.dir/DependInfo.cmake b/examples/NEST_nineml_models/StdpSongAbbott/compile/CMakeFiles/StdpSongAbbottmodule_lib.dir/DependInfo.cmake new file mode 100644 index 000000000..054bc2e27 --- /dev/null +++ b/examples/NEST_nineml_models/StdpSongAbbott/compile/CMakeFiles/StdpSongAbbottmodule_lib.dir/DependInfo.cmake @@ -0,0 +1,30 @@ +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + "CXX" + ) +# The set of files for implicit dependencies of each language: +set(CMAKE_DEPENDS_CHECK_CXX + "/home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/src/StdpSongAbbott.cpp" "/home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/compile/CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o" + "/home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/src/StdpSongAbbottmodule.cpp" "/home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/compile/CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o" + ) +set(CMAKE_CXX_COMPILER_ID "GNU") + +# Preprocessor definitions for this target. +set(CMAKE_TARGET_DEFINITIONS_CXX + "LINKED_MODULE" + "StdpSongAbbottmodule_lib_EXPORTS" + ) + +# The include file search paths: +set(CMAKE_CXX_TARGET_INCLUDE_PATH + "/home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/simulators-source/NEST_install/nest-simulator-2.18.0/conngen" + "/home/pedroernesto/anaconda3/build/NEST/include/nest" + "/home/pedroernesto/anaconda3/include" + ) + +# Targets to which this target links. +set(CMAKE_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/examples/NEST_nineml_models/StdpSongAbbott/compile/CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o b/examples/NEST_nineml_models/StdpSongAbbott/compile/CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o new file mode 100644 index 000000000..6a7e51f25 Binary files /dev/null and b/examples/NEST_nineml_models/StdpSongAbbott/compile/CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o differ diff --git a/examples/NEST_nineml_models/StdpSongAbbott/compile/CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o b/examples/NEST_nineml_models/StdpSongAbbott/compile/CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o new file mode 100644 index 000000000..43c85e2ed Binary files /dev/null and b/examples/NEST_nineml_models/StdpSongAbbott/compile/CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o differ diff --git a/examples/NEST_nineml_models/StdpSongAbbott/compile/CMakeFiles/StdpSongAbbottmodule_lib.dir/build.make b/examples/NEST_nineml_models/StdpSongAbbott/compile/CMakeFiles/StdpSongAbbottmodule_lib.dir/build.make new file mode 100644 index 000000000..72a2cc292 --- /dev/null +++ b/examples/NEST_nineml_models/StdpSongAbbott/compile/CMakeFiles/StdpSongAbbottmodule_lib.dir/build.make @@ -0,0 +1,132 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.18 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + + +# Disable VCS-based implicit rules. +% : %,v + + +# Disable VCS-based implicit rules. +% : RCS/% + + +# Disable VCS-based implicit rules. +% : RCS/%,v + + +# Disable VCS-based implicit rules. +% : SCCS/s.% + + +# Disable VCS-based implicit rules. +% : s.% + + +.SUFFIXES: .hpux_make_needs_suffix_list + + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: + +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /home/pedroernesto/anaconda3/lib/python3.7/site-packages/cmake/data/bin/cmake + +# The command to remove a file. +RM = /home/pedroernesto/anaconda3/lib/python3.7/site-packages/cmake/data/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/src + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/compile + +# Include any dependencies generated for this target. +include CMakeFiles/StdpSongAbbottmodule_lib.dir/depend.make + +# Include the progress variables for this target. +include CMakeFiles/StdpSongAbbottmodule_lib.dir/progress.make + +# Include the compile flags for this target's objects. +include CMakeFiles/StdpSongAbbottmodule_lib.dir/flags.make + +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: CMakeFiles/StdpSongAbbottmodule_lib.dir/flags.make +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/src/StdpSongAbbottmodule.cpp + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/compile/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building CXX object CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o" + /home/pedroernesto/anaconda3/bin/x86_64-conda_cos6-linux-gnu-c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -o CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o -c /home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/src/StdpSongAbbottmodule.cpp + +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.i" + /home/pedroernesto/anaconda3/bin/x86_64-conda_cos6-linux-gnu-c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/src/StdpSongAbbottmodule.cpp > CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.i + +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.s" + /home/pedroernesto/anaconda3/bin/x86_64-conda_cos6-linux-gnu-c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/src/StdpSongAbbottmodule.cpp -o CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.s + +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: CMakeFiles/StdpSongAbbottmodule_lib.dir/flags.make +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/src/StdpSongAbbott.cpp + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/compile/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Building CXX object CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o" + /home/pedroernesto/anaconda3/bin/x86_64-conda_cos6-linux-gnu-c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -o CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o -c /home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/src/StdpSongAbbott.cpp + +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.i" + /home/pedroernesto/anaconda3/bin/x86_64-conda_cos6-linux-gnu-c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/src/StdpSongAbbott.cpp > CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.i + +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.s" + /home/pedroernesto/anaconda3/bin/x86_64-conda_cos6-linux-gnu-c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/src/StdpSongAbbott.cpp -o CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.s + +# Object files for target StdpSongAbbottmodule_lib +StdpSongAbbottmodule_lib_OBJECTS = \ +"CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o" \ +"CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o" + +# External object files for target StdpSongAbbottmodule_lib +StdpSongAbbottmodule_lib_EXTERNAL_OBJECTS = + +libStdpSongAbbottmodule.so: CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o +libStdpSongAbbottmodule.so: CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o +libStdpSongAbbottmodule.so: CMakeFiles/StdpSongAbbottmodule_lib.dir/build.make +libStdpSongAbbottmodule.so: CMakeFiles/StdpSongAbbottmodule_lib.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/compile/CMakeFiles --progress-num=$(CMAKE_PROGRESS_3) "Linking CXX shared library libStdpSongAbbottmodule.so" + $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/StdpSongAbbottmodule_lib.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +CMakeFiles/StdpSongAbbottmodule_lib.dir/build: libStdpSongAbbottmodule.so + +.PHONY : CMakeFiles/StdpSongAbbottmodule_lib.dir/build + +CMakeFiles/StdpSongAbbottmodule_lib.dir/clean: + $(CMAKE_COMMAND) -P CMakeFiles/StdpSongAbbottmodule_lib.dir/cmake_clean.cmake +.PHONY : CMakeFiles/StdpSongAbbottmodule_lib.dir/clean + +CMakeFiles/StdpSongAbbottmodule_lib.dir/depend: + cd /home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/compile && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/src /home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/src /home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/compile /home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/compile /home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/compile/CMakeFiles/StdpSongAbbottmodule_lib.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : CMakeFiles/StdpSongAbbottmodule_lib.dir/depend + diff --git a/examples/NEST_nineml_models/StdpSongAbbott/compile/CMakeFiles/StdpSongAbbottmodule_lib.dir/cmake_clean.cmake b/examples/NEST_nineml_models/StdpSongAbbott/compile/CMakeFiles/StdpSongAbbottmodule_lib.dir/cmake_clean.cmake new file mode 100644 index 000000000..52d1562ed --- /dev/null +++ b/examples/NEST_nineml_models/StdpSongAbbott/compile/CMakeFiles/StdpSongAbbottmodule_lib.dir/cmake_clean.cmake @@ -0,0 +1,11 @@ +file(REMOVE_RECURSE + "CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o" + "CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o" + "libStdpSongAbbottmodule.pdb" + "libStdpSongAbbottmodule.so" +) + +# Per-language clean rules from dependency scanning. +foreach(lang CXX) + include(CMakeFiles/StdpSongAbbottmodule_lib.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/examples/NEST_nineml_models/StdpSongAbbott/compile/CMakeFiles/StdpSongAbbottmodule_lib.dir/depend.internal b/examples/NEST_nineml_models/StdpSongAbbott/compile/CMakeFiles/StdpSongAbbottmodule_lib.dir/depend.internal new file mode 100644 index 000000000..9174c376c --- /dev/null +++ b/examples/NEST_nineml_models/StdpSongAbbott/compile/CMakeFiles/StdpSongAbbottmodule_lib.dir/depend.internal @@ -0,0 +1,1217 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.18 + +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o + /home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/src/StdpSongAbbott.cpp + /home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/src/StdpSongAbbott.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/aggregatedatum.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/allocator.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/arraydatum.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/block_vector.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/common_synapse_properties.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/compose.hpp + /home/pedroernesto/anaconda3/build/NEST/include/nest/config.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/conn_builder.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/conn_parameter.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/connection.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/connection_id.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/connection_label.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/connection_manager.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/connector_base.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/connector_base_impl.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/connector_model.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/datum.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/delay_checker.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/dict.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/dictdatum.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/dictutils.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/doubledatum.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/enum_bitfield.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/event.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/event_delivery_manager.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/exceptions.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/genericdatum.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/genericmodel.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/gid_collection.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/growth_curve.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/growth_curve_factory.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/gslrandomgen.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/histentry.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/integerdatum.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/interpret.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/io_manager.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/iterator_pair.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/kernel_manager.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/librandom_exceptions.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/librandom_names.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/lockptr.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/lockptrdatum.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/lockptrdatum_impl.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/logging.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/logging_manager.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/manager_interface.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/model.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/model_manager.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/modelrange.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/modelrange_manager.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/mpi_manager.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/music_event_handler.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/music_manager.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/name.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/namedatum.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/nest.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/nest_datums.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/nest_names.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/nest_time.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/nest_timeconverter.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/nest_types.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/nestmodule.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/node.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/node_manager.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/numericdatum.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/numerics.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/per_thread_bool_indicator.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/random_datums.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/random_numbers.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/randomdev.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/randomgen.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/rng_manager.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/sibling_container.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/simulation_manager.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/sliactions.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/slibuiltins.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/sliexceptions.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/slifunction.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/slimodule.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/slitype.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/sort.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/source.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/source_table.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/source_table_position.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/sp_manager.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/sparse_node_array.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/spike_data.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/spikecounter.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/static_assert.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/stopwatch.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/syn_id_delay.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/target.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/target_data.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/target_table.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/target_table_devices.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/tarrayobj.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/token.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/tokenarray.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/tokenstack.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/tokenutils.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/vector_util.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/vp_manager.h + /home/pedroernesto/anaconda3/include/boost/config.hpp + /home/pedroernesto/anaconda3/include/boost/config/compiler/borland.hpp + /home/pedroernesto/anaconda3/include/boost/config/compiler/clang.hpp + /home/pedroernesto/anaconda3/include/boost/config/compiler/codegear.hpp + /home/pedroernesto/anaconda3/include/boost/config/compiler/comeau.hpp + /home/pedroernesto/anaconda3/include/boost/config/compiler/common_edg.hpp + /home/pedroernesto/anaconda3/include/boost/config/compiler/compaq_cxx.hpp + /home/pedroernesto/anaconda3/include/boost/config/compiler/cray.hpp + /home/pedroernesto/anaconda3/include/boost/config/compiler/digitalmars.hpp + /home/pedroernesto/anaconda3/include/boost/config/compiler/gcc.hpp + /home/pedroernesto/anaconda3/include/boost/config/compiler/gcc_xml.hpp + /home/pedroernesto/anaconda3/include/boost/config/compiler/greenhills.hpp + /home/pedroernesto/anaconda3/include/boost/config/compiler/hp_acc.hpp + /home/pedroernesto/anaconda3/include/boost/config/compiler/intel.hpp + /home/pedroernesto/anaconda3/include/boost/config/compiler/kai.hpp + /home/pedroernesto/anaconda3/include/boost/config/compiler/metrowerks.hpp + /home/pedroernesto/anaconda3/include/boost/config/compiler/mpw.hpp + /home/pedroernesto/anaconda3/include/boost/config/compiler/nvcc.hpp + /home/pedroernesto/anaconda3/include/boost/config/compiler/pathscale.hpp + /home/pedroernesto/anaconda3/include/boost/config/compiler/pgi.hpp + /home/pedroernesto/anaconda3/include/boost/config/compiler/sgi_mipspro.hpp + /home/pedroernesto/anaconda3/include/boost/config/compiler/sunpro_cc.hpp + /home/pedroernesto/anaconda3/include/boost/config/compiler/vacpp.hpp + /home/pedroernesto/anaconda3/include/boost/config/compiler/visualc.hpp + /home/pedroernesto/anaconda3/include/boost/config/compiler/xlcpp.hpp + /home/pedroernesto/anaconda3/include/boost/config/compiler/xlcpp_zos.hpp + /home/pedroernesto/anaconda3/include/boost/config/detail/posix_features.hpp + /home/pedroernesto/anaconda3/include/boost/config/detail/select_compiler_config.hpp + /home/pedroernesto/anaconda3/include/boost/config/detail/select_platform_config.hpp + /home/pedroernesto/anaconda3/include/boost/config/detail/select_stdlib_config.hpp + /home/pedroernesto/anaconda3/include/boost/config/detail/suffix.hpp + /home/pedroernesto/anaconda3/include/boost/config/helper_macros.hpp + /home/pedroernesto/anaconda3/include/boost/config/no_tr1/utility.hpp + /home/pedroernesto/anaconda3/include/boost/config/platform/aix.hpp + /home/pedroernesto/anaconda3/include/boost/config/platform/amigaos.hpp + /home/pedroernesto/anaconda3/include/boost/config/platform/beos.hpp + /home/pedroernesto/anaconda3/include/boost/config/platform/bsd.hpp + /home/pedroernesto/anaconda3/include/boost/config/platform/cray.hpp + /home/pedroernesto/anaconda3/include/boost/config/platform/cygwin.hpp + /home/pedroernesto/anaconda3/include/boost/config/platform/hpux.hpp + /home/pedroernesto/anaconda3/include/boost/config/platform/irix.hpp + /home/pedroernesto/anaconda3/include/boost/config/platform/linux.hpp + /home/pedroernesto/anaconda3/include/boost/config/platform/macos.hpp + /home/pedroernesto/anaconda3/include/boost/config/platform/qnxnto.hpp + /home/pedroernesto/anaconda3/include/boost/config/platform/solaris.hpp + /home/pedroernesto/anaconda3/include/boost/config/platform/symbian.hpp + /home/pedroernesto/anaconda3/include/boost/config/platform/vms.hpp + /home/pedroernesto/anaconda3/include/boost/config/platform/vxworks.hpp + /home/pedroernesto/anaconda3/include/boost/config/platform/win32.hpp + /home/pedroernesto/anaconda3/include/boost/config/platform/zos.hpp + /home/pedroernesto/anaconda3/include/boost/config/pragma_message.hpp + /home/pedroernesto/anaconda3/include/boost/config/stdlib/dinkumware.hpp + /home/pedroernesto/anaconda3/include/boost/config/stdlib/libcomo.hpp + /home/pedroernesto/anaconda3/include/boost/config/stdlib/libcpp.hpp + /home/pedroernesto/anaconda3/include/boost/config/stdlib/libstdcpp3.hpp + /home/pedroernesto/anaconda3/include/boost/config/stdlib/modena.hpp + /home/pedroernesto/anaconda3/include/boost/config/stdlib/msl.hpp + /home/pedroernesto/anaconda3/include/boost/config/stdlib/roguewave.hpp + /home/pedroernesto/anaconda3/include/boost/config/stdlib/sgi.hpp + /home/pedroernesto/anaconda3/include/boost/config/stdlib/stlport.hpp + /home/pedroernesto/anaconda3/include/boost/config/stdlib/vacpp.hpp + /home/pedroernesto/anaconda3/include/boost/config/stdlib/xlcpp_zos.hpp + /home/pedroernesto/anaconda3/include/boost/config/user.hpp + /home/pedroernesto/anaconda3/include/boost/config/workaround.hpp + /home/pedroernesto/anaconda3/include/boost/core/addressof.hpp + /home/pedroernesto/anaconda3/include/boost/core/enable_if.hpp + /home/pedroernesto/anaconda3/include/boost/core/noncopyable.hpp + /home/pedroernesto/anaconda3/include/boost/core/ref.hpp + /home/pedroernesto/anaconda3/include/boost/core/swap.hpp + /home/pedroernesto/anaconda3/include/boost/cstdint.hpp + /home/pedroernesto/anaconda3/include/boost/detail/indirect_traits.hpp + /home/pedroernesto/anaconda3/include/boost/detail/workaround.hpp + /home/pedroernesto/anaconda3/include/boost/iterator/detail/config_def.hpp + /home/pedroernesto/anaconda3/include/boost/iterator/detail/config_undef.hpp + /home/pedroernesto/anaconda3/include/boost/iterator/detail/enable_if.hpp + /home/pedroernesto/anaconda3/include/boost/iterator/detail/facade_iterator_category.hpp + /home/pedroernesto/anaconda3/include/boost/iterator/interoperable.hpp + /home/pedroernesto/anaconda3/include/boost/iterator/iterator_adaptor.hpp + /home/pedroernesto/anaconda3/include/boost/iterator/iterator_categories.hpp + /home/pedroernesto/anaconda3/include/boost/iterator/iterator_facade.hpp + /home/pedroernesto/anaconda3/include/boost/iterator/iterator_traits.hpp + /home/pedroernesto/anaconda3/include/boost/limits.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/always.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/and.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/apply.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/apply_fwd.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/apply_wrap.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/arg.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/arg_fwd.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/assert.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/adl_barrier.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/arg_typedef.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/arity.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/arity_spec.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/common_name_wknd.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/adl.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/arrays.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/bcc.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/bind.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/compiler.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/ctps.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/dmc_ambiguous_ctps.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/dtp.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/eti.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/gcc.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/gpu.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/has_apply.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/has_xxx.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/integral.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/intel.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/lambda.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/msvc.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/msvc_typename.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/nttp.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/overload_resolution.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/pp_counter.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/preprocessor.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/static_constant.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/ttp.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/use_preprocessed.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/workaround.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/count_args.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/full_lambda.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/has_apply.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/has_rebind.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/has_type.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/include_preprocessed.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/integral_wrapper.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/lambda_arity_param.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/lambda_no_ctps.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/lambda_support.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/logical_op.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/msvc_dtw.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/msvc_is_class.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/msvc_never_true.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/na.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/na_assert.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/na_fwd.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/na_spec.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/nested_type_wknd.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/nttp_decl.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/preprocessor/add.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/preprocessor/def_params_tail.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/preprocessor/default_params.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/preprocessor/enum.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/preprocessor/ext_params.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/preprocessor/filter_params.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/preprocessor/params.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/preprocessor/partial_spec_params.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/preprocessor/range.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/preprocessor/repeat.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/preprocessor/sub.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/preprocessor/tuple.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/static_cast.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/template_arity.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/template_arity_fwd.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/type_wrapper.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/value_wknd.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/yes_no.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/bind.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/bind_fwd.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/bool.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/bool_fwd.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/eval_if.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/has_xxx.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/identity.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/if.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/int.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/int_fwd.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/integral_c_tag.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/is_placeholder.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/lambda.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/lambda_fwd.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/limits/arity.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/next.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/next_prior.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/not.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/or.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/placeholders.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/print.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/protect.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/quote.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/void.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/void_fwd.hpp + /home/pedroernesto/anaconda3/include/boost/noncopyable.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/arithmetic/add.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/arithmetic/dec.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/arithmetic/inc.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/arithmetic/sub.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/array/data.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/array/elem.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/array/size.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/cat.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/comma_if.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/comparison/not_equal.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/config/config.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/control/detail/dmc/while.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/control/detail/edg/while.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/control/detail/msvc/while.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/control/detail/while.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/control/expr_if.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/control/expr_iif.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/control/if.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/control/iif.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/control/while.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/debug/error.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/dec.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/detail/auto_rec.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/detail/check.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/detail/dmc/auto_rec.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/detail/is_binary.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/detail/split.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/empty.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/enum_shifted_params.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/expr_if.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/facilities/detail/is_empty.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/facilities/empty.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/facilities/expand.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/facilities/identity.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/facilities/is_1.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/facilities/is_empty.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/facilities/is_empty_variadic.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/facilities/overload.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/identity.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/inc.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/iterate.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/iteration/iterate.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/list/adt.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/list/detail/dmc/fold_left.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/list/detail/edg/fold_left.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/list/detail/edg/fold_right.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/list/detail/fold_left.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/list/detail/fold_right.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/list/fold_left.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/list/fold_right.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/list/for_each_i.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/list/reverse.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/logical/and.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/logical/bitand.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/logical/bool.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/logical/compl.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/punctuation/comma.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/punctuation/comma_if.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/punctuation/detail/is_begin_parens.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/punctuation/is_begin_parens.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/repeat.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/repetition/detail/dmc/for.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/repetition/detail/edg/for.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/repetition/detail/for.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/repetition/detail/msvc/for.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/repetition/enum_params.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/repetition/enum_shifted_params.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/repetition/enum_trailing_params.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/repetition/for.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/repetition/repeat.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/seq/detail/is_empty.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/seq/detail/split.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/seq/elem.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/seq/first_n.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/seq/fold_left.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/seq/rest_n.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/seq/seq.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/seq/size.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/seq/subseq.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/slot/detail/def.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/slot/slot.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/stringize.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/tuple/detail/is_single_return.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/tuple/eat.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/tuple/elem.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/tuple/rem.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/tuple/size.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/tuple/to_list.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/variadic/elem.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/variadic/size.hpp + /home/pedroernesto/anaconda3/include/boost/range/begin.hpp + /home/pedroernesto/anaconda3/include/boost/range/config.hpp + /home/pedroernesto/anaconda3/include/boost/range/const_iterator.hpp + /home/pedroernesto/anaconda3/include/boost/range/detail/begin.hpp + /home/pedroernesto/anaconda3/include/boost/range/detail/common.hpp + /home/pedroernesto/anaconda3/include/boost/range/detail/end.hpp + /home/pedroernesto/anaconda3/include/boost/range/detail/extract_optional_type.hpp + /home/pedroernesto/anaconda3/include/boost/range/detail/implementation_help.hpp + /home/pedroernesto/anaconda3/include/boost/range/detail/msvc_has_iterator_workaround.hpp + /home/pedroernesto/anaconda3/include/boost/range/detail/sfinae.hpp + /home/pedroernesto/anaconda3/include/boost/range/end.hpp + /home/pedroernesto/anaconda3/include/boost/range/iterator.hpp + /home/pedroernesto/anaconda3/include/boost/range/mutable_iterator.hpp + /home/pedroernesto/anaconda3/include/boost/range/range_fwd.hpp + /home/pedroernesto/anaconda3/include/boost/ref.hpp + /home/pedroernesto/anaconda3/include/boost/serialization/static_warning.hpp + /home/pedroernesto/anaconda3/include/boost/sort/spreadsort/detail/constants.hpp + /home/pedroernesto/anaconda3/include/boost/sort/spreadsort/detail/float_sort.hpp + /home/pedroernesto/anaconda3/include/boost/sort/spreadsort/detail/integer_sort.hpp + /home/pedroernesto/anaconda3/include/boost/sort/spreadsort/detail/spreadsort_common.hpp + /home/pedroernesto/anaconda3/include/boost/sort/spreadsort/detail/string_sort.hpp + /home/pedroernesto/anaconda3/include/boost/sort/spreadsort/float_sort.hpp + /home/pedroernesto/anaconda3/include/boost/sort/spreadsort/integer_sort.hpp + /home/pedroernesto/anaconda3/include/boost/sort/spreadsort/spreadsort.hpp + /home/pedroernesto/anaconda3/include/boost/sort/spreadsort/string_sort.hpp + /home/pedroernesto/anaconda3/include/boost/static_assert.hpp + /home/pedroernesto/anaconda3/include/boost/tuple/detail/tuple_basic.hpp + /home/pedroernesto/anaconda3/include/boost/tuple/tuple.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/add_const.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/add_cv.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/add_lvalue_reference.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/add_pointer.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/add_reference.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/add_rvalue_reference.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/add_volatile.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/aligned_storage.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/alignment_of.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/common_type.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/conditional.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/copy_cv.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/cv_traits.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/decay.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/declval.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/detail/common_arithmetic_type.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/detail/common_type_impl.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/detail/composite_member_pointer_type.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/detail/composite_pointer_type.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/detail/config.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/detail/has_binary_operator.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/detail/has_postfix_operator.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/detail/has_prefix_operator.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/detail/is_function_ptr_helper.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/detail/is_function_ptr_tester.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/detail/is_likely_lambda.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/detail/is_mem_fun_pointer_impl.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/detail/is_mem_fun_pointer_tester.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/detail/mp_defer.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/detail/yes_no_type.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/extent.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/floating_point_promotion.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/function_traits.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_bit_and.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_bit_and_assign.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_bit_or.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_bit_or_assign.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_bit_xor.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_bit_xor_assign.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_complement.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_dereference.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_divides.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_divides_assign.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_equal_to.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_greater.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_greater_equal.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_left_shift.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_left_shift_assign.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_less.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_less_equal.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_logical_and.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_logical_not.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_logical_or.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_minus.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_minus_assign.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_modulus.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_modulus_assign.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_multiplies.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_multiplies_assign.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_negate.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_new_operator.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_not_equal_to.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_nothrow_assign.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_nothrow_constructor.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_nothrow_copy.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_nothrow_destructor.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_plus.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_plus_assign.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_post_decrement.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_post_increment.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_pre_decrement.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_pre_increment.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_right_shift.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_right_shift_assign.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_trivial_assign.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_trivial_constructor.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_trivial_copy.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_trivial_destructor.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_trivial_move_assign.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_trivial_move_constructor.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_unary_minus.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_unary_plus.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_virtual_destructor.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/integral_constant.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/integral_promotion.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/intrinsics.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_abstract.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_arithmetic.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_array.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_assignable.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_base_and_derived.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_base_of.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_class.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_complete.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_complex.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_compound.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_const.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_constructible.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_convertible.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_copy_assignable.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_copy_constructible.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_default_constructible.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_destructible.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_empty.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_enum.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_final.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_float.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_floating_point.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_function.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_fundamental.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_integral.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_list_constructible.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_lvalue_reference.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_member_function_pointer.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_member_object_pointer.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_member_pointer.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_nothrow_move_assignable.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_nothrow_move_constructible.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_nothrow_swappable.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_object.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_pod.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_pointer.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_polymorphic.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_reference.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_rvalue_reference.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_same.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_scalar.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_signed.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_stateless.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_union.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_unsigned.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_virtual_base_of.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_void.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_volatile.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/make_signed.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/make_unsigned.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/make_void.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/promote.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/rank.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/remove_all_extents.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/remove_bounds.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/remove_const.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/remove_cv.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/remove_cv_ref.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/remove_extent.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/remove_pointer.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/remove_reference.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/remove_volatile.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/type_identity.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/type_with_alignment.hpp + /home/pedroernesto/anaconda3/include/boost/utility/addressof.hpp + /home/pedroernesto/anaconda3/include/boost/utility/enable_if.hpp + /home/pedroernesto/anaconda3/include/boost/utility/swap.hpp + /home/pedroernesto/anaconda3/include/boost/version.hpp + /home/pedroernesto/anaconda3/include/gsl/gsl_errno.h + /home/pedroernesto/anaconda3/include/gsl/gsl_inline.h + /home/pedroernesto/anaconda3/include/gsl/gsl_rng.h + /home/pedroernesto/anaconda3/include/gsl/gsl_types.h + /home/pedroernesto/anaconda3/include/mpi.h + /home/pedroernesto/anaconda3/include/mpi_portable_platform.h + /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/comm.h + /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/comm_inln.h + /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/constants.h + /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/datatype.h + /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/datatype_inln.h + /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/errhandler.h + /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/errhandler_inln.h + /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/exception.h + /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/file.h + /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/file_inln.h + /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/functions.h + /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/functions_inln.h + /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/group.h + /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/group_inln.h + /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/info.h + /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/info_inln.h + /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/intercomm.h + /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/intercomm_inln.h + /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/intracomm.h + /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/intracomm_inln.h + /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/mpicxx.h + /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/op.h + /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/op_inln.h + /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/request.h + /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/request_inln.h + /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/status.h + /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/status_inln.h + /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/topology.h + /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/topology_inln.h + /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/win.h + /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/win_inln.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o + /home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/src/StdpSongAbbott.h + /home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/src/StdpSongAbbottmodule.cpp + /home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/src/StdpSongAbbottmodule.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/aggregatedatum.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/allocator.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/arraydatum.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/block_vector.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/booldatum.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/common_synapse_properties.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/compose.hpp + /home/pedroernesto/anaconda3/build/NEST/include/nest/config.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/conn_builder.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/conn_builder_factory.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/conn_parameter.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/connection.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/connection_id.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/connection_label.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/connection_manager.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/connection_manager_impl.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/connector_base.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/connector_base_impl.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/connector_model.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/connector_model_impl.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/datum.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/delay_checker.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/dict.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/dictdatum.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/dictutils.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/doubledatum.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/dynamicloader.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/enum_bitfield.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/event.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/event_delivery_manager.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/exceptions.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/genericdatum.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/genericmodel.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/genericmodel_impl.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/gid_collection.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/growth_curve.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/growth_curve_factory.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/gslrandomgen.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/histentry.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/integerdatum.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/interpret.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/io_manager.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/iterator_pair.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/kernel_manager.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/librandom_exceptions.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/librandom_names.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/lockptr.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/lockptrdatum.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/lockptrdatum_impl.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/logging.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/logging_manager.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/manager_interface.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/model.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/model_manager.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/model_manager_impl.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/modelrange.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/modelrange_manager.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/mpi_manager.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/mpi_manager_impl.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/music_event_handler.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/music_manager.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/name.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/namedatum.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/nest.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/nest_datums.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/nest_impl.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/nest_names.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/nest_time.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/nest_timeconverter.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/nest_types.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/nestmodule.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/node.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/node_manager.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/numericdatum.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/numerics.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/per_thread_bool_indicator.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/random_datums.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/random_numbers.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/randomdev.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/randomgen.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/rng_manager.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/sibling_container.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/simulation_manager.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/sliactions.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/slibuiltins.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/sliexceptions.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/slifunction.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/slimodule.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/slitype.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/sort.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/source.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/source_table.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/source_table_position.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/sp_manager.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/sparse_node_array.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/spike_data.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/spikecounter.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/static_assert.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/stopwatch.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/string_utils.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/syn_id_delay.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/target.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/target_data.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/target_identifier.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/target_table.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/target_table_devices.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/target_table_devices_impl.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/tarrayobj.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/token.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/tokenarray.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/tokenstack.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/tokenutils.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/vector_util.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/vp_manager.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/vp_manager_impl.h + /home/pedroernesto/anaconda3/include/boost/config.hpp + /home/pedroernesto/anaconda3/include/boost/config/compiler/borland.hpp + /home/pedroernesto/anaconda3/include/boost/config/compiler/clang.hpp + /home/pedroernesto/anaconda3/include/boost/config/compiler/codegear.hpp + /home/pedroernesto/anaconda3/include/boost/config/compiler/comeau.hpp + /home/pedroernesto/anaconda3/include/boost/config/compiler/common_edg.hpp + /home/pedroernesto/anaconda3/include/boost/config/compiler/compaq_cxx.hpp + /home/pedroernesto/anaconda3/include/boost/config/compiler/cray.hpp + /home/pedroernesto/anaconda3/include/boost/config/compiler/digitalmars.hpp + /home/pedroernesto/anaconda3/include/boost/config/compiler/gcc.hpp + /home/pedroernesto/anaconda3/include/boost/config/compiler/gcc_xml.hpp + /home/pedroernesto/anaconda3/include/boost/config/compiler/greenhills.hpp + /home/pedroernesto/anaconda3/include/boost/config/compiler/hp_acc.hpp + /home/pedroernesto/anaconda3/include/boost/config/compiler/intel.hpp + /home/pedroernesto/anaconda3/include/boost/config/compiler/kai.hpp + /home/pedroernesto/anaconda3/include/boost/config/compiler/metrowerks.hpp + /home/pedroernesto/anaconda3/include/boost/config/compiler/mpw.hpp + /home/pedroernesto/anaconda3/include/boost/config/compiler/nvcc.hpp + /home/pedroernesto/anaconda3/include/boost/config/compiler/pathscale.hpp + /home/pedroernesto/anaconda3/include/boost/config/compiler/pgi.hpp + /home/pedroernesto/anaconda3/include/boost/config/compiler/sgi_mipspro.hpp + /home/pedroernesto/anaconda3/include/boost/config/compiler/sunpro_cc.hpp + /home/pedroernesto/anaconda3/include/boost/config/compiler/vacpp.hpp + /home/pedroernesto/anaconda3/include/boost/config/compiler/visualc.hpp + /home/pedroernesto/anaconda3/include/boost/config/compiler/xlcpp.hpp + /home/pedroernesto/anaconda3/include/boost/config/compiler/xlcpp_zos.hpp + /home/pedroernesto/anaconda3/include/boost/config/detail/posix_features.hpp + /home/pedroernesto/anaconda3/include/boost/config/detail/select_compiler_config.hpp + /home/pedroernesto/anaconda3/include/boost/config/detail/select_platform_config.hpp + /home/pedroernesto/anaconda3/include/boost/config/detail/select_stdlib_config.hpp + /home/pedroernesto/anaconda3/include/boost/config/detail/suffix.hpp + /home/pedroernesto/anaconda3/include/boost/config/helper_macros.hpp + /home/pedroernesto/anaconda3/include/boost/config/no_tr1/utility.hpp + /home/pedroernesto/anaconda3/include/boost/config/platform/aix.hpp + /home/pedroernesto/anaconda3/include/boost/config/platform/amigaos.hpp + /home/pedroernesto/anaconda3/include/boost/config/platform/beos.hpp + /home/pedroernesto/anaconda3/include/boost/config/platform/bsd.hpp + /home/pedroernesto/anaconda3/include/boost/config/platform/cray.hpp + /home/pedroernesto/anaconda3/include/boost/config/platform/cygwin.hpp + /home/pedroernesto/anaconda3/include/boost/config/platform/hpux.hpp + /home/pedroernesto/anaconda3/include/boost/config/platform/irix.hpp + /home/pedroernesto/anaconda3/include/boost/config/platform/linux.hpp + /home/pedroernesto/anaconda3/include/boost/config/platform/macos.hpp + /home/pedroernesto/anaconda3/include/boost/config/platform/qnxnto.hpp + /home/pedroernesto/anaconda3/include/boost/config/platform/solaris.hpp + /home/pedroernesto/anaconda3/include/boost/config/platform/symbian.hpp + /home/pedroernesto/anaconda3/include/boost/config/platform/vms.hpp + /home/pedroernesto/anaconda3/include/boost/config/platform/vxworks.hpp + /home/pedroernesto/anaconda3/include/boost/config/platform/win32.hpp + /home/pedroernesto/anaconda3/include/boost/config/platform/zos.hpp + /home/pedroernesto/anaconda3/include/boost/config/pragma_message.hpp + /home/pedroernesto/anaconda3/include/boost/config/stdlib/dinkumware.hpp + /home/pedroernesto/anaconda3/include/boost/config/stdlib/libcomo.hpp + /home/pedroernesto/anaconda3/include/boost/config/stdlib/libcpp.hpp + /home/pedroernesto/anaconda3/include/boost/config/stdlib/libstdcpp3.hpp + /home/pedroernesto/anaconda3/include/boost/config/stdlib/modena.hpp + /home/pedroernesto/anaconda3/include/boost/config/stdlib/msl.hpp + /home/pedroernesto/anaconda3/include/boost/config/stdlib/roguewave.hpp + /home/pedroernesto/anaconda3/include/boost/config/stdlib/sgi.hpp + /home/pedroernesto/anaconda3/include/boost/config/stdlib/stlport.hpp + /home/pedroernesto/anaconda3/include/boost/config/stdlib/vacpp.hpp + /home/pedroernesto/anaconda3/include/boost/config/stdlib/xlcpp_zos.hpp + /home/pedroernesto/anaconda3/include/boost/config/user.hpp + /home/pedroernesto/anaconda3/include/boost/config/workaround.hpp + /home/pedroernesto/anaconda3/include/boost/core/addressof.hpp + /home/pedroernesto/anaconda3/include/boost/core/enable_if.hpp + /home/pedroernesto/anaconda3/include/boost/core/noncopyable.hpp + /home/pedroernesto/anaconda3/include/boost/core/ref.hpp + /home/pedroernesto/anaconda3/include/boost/core/swap.hpp + /home/pedroernesto/anaconda3/include/boost/cstdint.hpp + /home/pedroernesto/anaconda3/include/boost/detail/indirect_traits.hpp + /home/pedroernesto/anaconda3/include/boost/detail/workaround.hpp + /home/pedroernesto/anaconda3/include/boost/iterator/detail/config_def.hpp + /home/pedroernesto/anaconda3/include/boost/iterator/detail/config_undef.hpp + /home/pedroernesto/anaconda3/include/boost/iterator/detail/enable_if.hpp + /home/pedroernesto/anaconda3/include/boost/iterator/detail/facade_iterator_category.hpp + /home/pedroernesto/anaconda3/include/boost/iterator/interoperable.hpp + /home/pedroernesto/anaconda3/include/boost/iterator/iterator_adaptor.hpp + /home/pedroernesto/anaconda3/include/boost/iterator/iterator_categories.hpp + /home/pedroernesto/anaconda3/include/boost/iterator/iterator_facade.hpp + /home/pedroernesto/anaconda3/include/boost/iterator/iterator_traits.hpp + /home/pedroernesto/anaconda3/include/boost/limits.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/always.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/and.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/apply.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/apply_fwd.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/apply_wrap.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/arg.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/arg_fwd.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/assert.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/adl_barrier.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/arg_typedef.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/arity.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/arity_spec.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/common_name_wknd.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/adl.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/arrays.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/bcc.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/bind.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/compiler.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/ctps.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/dmc_ambiguous_ctps.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/dtp.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/eti.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/gcc.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/gpu.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/has_apply.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/has_xxx.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/integral.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/intel.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/lambda.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/msvc.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/msvc_typename.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/nttp.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/overload_resolution.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/pp_counter.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/preprocessor.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/static_constant.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/ttp.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/use_preprocessed.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/workaround.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/count_args.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/full_lambda.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/has_apply.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/has_rebind.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/has_type.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/include_preprocessed.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/integral_wrapper.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/lambda_arity_param.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/lambda_no_ctps.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/lambda_support.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/logical_op.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/msvc_dtw.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/msvc_is_class.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/msvc_never_true.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/na.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/na_assert.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/na_fwd.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/na_spec.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/nested_type_wknd.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/nttp_decl.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/preprocessor/add.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/preprocessor/def_params_tail.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/preprocessor/default_params.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/preprocessor/enum.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/preprocessor/ext_params.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/preprocessor/filter_params.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/preprocessor/params.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/preprocessor/partial_spec_params.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/preprocessor/range.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/preprocessor/repeat.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/preprocessor/sub.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/preprocessor/tuple.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/static_cast.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/template_arity.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/template_arity_fwd.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/type_wrapper.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/value_wknd.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/yes_no.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/bind.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/bind_fwd.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/bool.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/bool_fwd.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/eval_if.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/has_xxx.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/identity.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/if.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/int.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/int_fwd.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/integral_c_tag.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/is_placeholder.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/lambda.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/lambda_fwd.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/limits/arity.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/next.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/next_prior.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/not.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/or.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/placeholders.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/print.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/protect.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/quote.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/void.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/void_fwd.hpp + /home/pedroernesto/anaconda3/include/boost/noncopyable.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/arithmetic/add.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/arithmetic/dec.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/arithmetic/inc.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/arithmetic/sub.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/array/data.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/array/elem.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/array/size.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/cat.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/comma_if.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/comparison/not_equal.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/config/config.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/control/detail/dmc/while.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/control/detail/edg/while.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/control/detail/msvc/while.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/control/detail/while.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/control/expr_if.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/control/expr_iif.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/control/if.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/control/iif.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/control/while.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/debug/error.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/dec.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/detail/auto_rec.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/detail/check.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/detail/dmc/auto_rec.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/detail/is_binary.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/detail/split.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/empty.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/enum_shifted_params.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/expr_if.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/facilities/detail/is_empty.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/facilities/empty.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/facilities/expand.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/facilities/identity.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/facilities/is_1.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/facilities/is_empty.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/facilities/is_empty_variadic.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/facilities/overload.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/identity.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/inc.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/iterate.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/iteration/iterate.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/list/adt.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/list/detail/dmc/fold_left.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/list/detail/edg/fold_left.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/list/detail/edg/fold_right.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/list/detail/fold_left.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/list/detail/fold_right.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/list/fold_left.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/list/fold_right.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/list/for_each_i.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/list/reverse.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/logical/and.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/logical/bitand.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/logical/bool.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/logical/compl.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/punctuation/comma.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/punctuation/comma_if.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/punctuation/detail/is_begin_parens.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/punctuation/is_begin_parens.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/repeat.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/repetition/detail/dmc/for.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/repetition/detail/edg/for.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/repetition/detail/for.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/repetition/detail/msvc/for.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/repetition/enum_params.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/repetition/enum_shifted_params.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/repetition/enum_trailing_params.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/repetition/for.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/repetition/repeat.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/seq/detail/is_empty.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/seq/detail/split.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/seq/elem.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/seq/first_n.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/seq/fold_left.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/seq/rest_n.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/seq/seq.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/seq/size.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/seq/subseq.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/slot/detail/def.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/slot/slot.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/stringize.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/tuple/detail/is_single_return.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/tuple/eat.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/tuple/elem.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/tuple/rem.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/tuple/size.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/tuple/to_list.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/variadic/elem.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/variadic/size.hpp + /home/pedroernesto/anaconda3/include/boost/range/begin.hpp + /home/pedroernesto/anaconda3/include/boost/range/config.hpp + /home/pedroernesto/anaconda3/include/boost/range/const_iterator.hpp + /home/pedroernesto/anaconda3/include/boost/range/detail/begin.hpp + /home/pedroernesto/anaconda3/include/boost/range/detail/common.hpp + /home/pedroernesto/anaconda3/include/boost/range/detail/end.hpp + /home/pedroernesto/anaconda3/include/boost/range/detail/extract_optional_type.hpp + /home/pedroernesto/anaconda3/include/boost/range/detail/implementation_help.hpp + /home/pedroernesto/anaconda3/include/boost/range/detail/msvc_has_iterator_workaround.hpp + /home/pedroernesto/anaconda3/include/boost/range/detail/sfinae.hpp + /home/pedroernesto/anaconda3/include/boost/range/end.hpp + /home/pedroernesto/anaconda3/include/boost/range/iterator.hpp + /home/pedroernesto/anaconda3/include/boost/range/mutable_iterator.hpp + /home/pedroernesto/anaconda3/include/boost/range/range_fwd.hpp + /home/pedroernesto/anaconda3/include/boost/ref.hpp + /home/pedroernesto/anaconda3/include/boost/serialization/static_warning.hpp + /home/pedroernesto/anaconda3/include/boost/sort/spreadsort/detail/constants.hpp + /home/pedroernesto/anaconda3/include/boost/sort/spreadsort/detail/float_sort.hpp + /home/pedroernesto/anaconda3/include/boost/sort/spreadsort/detail/integer_sort.hpp + /home/pedroernesto/anaconda3/include/boost/sort/spreadsort/detail/spreadsort_common.hpp + /home/pedroernesto/anaconda3/include/boost/sort/spreadsort/detail/string_sort.hpp + /home/pedroernesto/anaconda3/include/boost/sort/spreadsort/float_sort.hpp + /home/pedroernesto/anaconda3/include/boost/sort/spreadsort/integer_sort.hpp + /home/pedroernesto/anaconda3/include/boost/sort/spreadsort/spreadsort.hpp + /home/pedroernesto/anaconda3/include/boost/sort/spreadsort/string_sort.hpp + /home/pedroernesto/anaconda3/include/boost/static_assert.hpp + /home/pedroernesto/anaconda3/include/boost/tuple/detail/tuple_basic.hpp + /home/pedroernesto/anaconda3/include/boost/tuple/tuple.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/add_const.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/add_cv.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/add_lvalue_reference.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/add_pointer.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/add_reference.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/add_rvalue_reference.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/add_volatile.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/aligned_storage.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/alignment_of.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/common_type.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/conditional.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/copy_cv.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/cv_traits.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/decay.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/declval.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/detail/common_arithmetic_type.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/detail/common_type_impl.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/detail/composite_member_pointer_type.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/detail/composite_pointer_type.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/detail/config.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/detail/has_binary_operator.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/detail/has_postfix_operator.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/detail/has_prefix_operator.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/detail/is_function_ptr_helper.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/detail/is_function_ptr_tester.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/detail/is_likely_lambda.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/detail/is_mem_fun_pointer_impl.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/detail/is_mem_fun_pointer_tester.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/detail/mp_defer.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/detail/yes_no_type.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/extent.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/floating_point_promotion.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/function_traits.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_bit_and.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_bit_and_assign.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_bit_or.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_bit_or_assign.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_bit_xor.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_bit_xor_assign.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_complement.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_dereference.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_divides.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_divides_assign.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_equal_to.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_greater.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_greater_equal.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_left_shift.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_left_shift_assign.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_less.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_less_equal.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_logical_and.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_logical_not.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_logical_or.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_minus.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_minus_assign.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_modulus.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_modulus_assign.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_multiplies.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_multiplies_assign.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_negate.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_new_operator.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_not_equal_to.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_nothrow_assign.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_nothrow_constructor.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_nothrow_copy.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_nothrow_destructor.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_plus.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_plus_assign.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_post_decrement.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_post_increment.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_pre_decrement.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_pre_increment.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_right_shift.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_right_shift_assign.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_trivial_assign.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_trivial_constructor.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_trivial_copy.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_trivial_destructor.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_trivial_move_assign.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_trivial_move_constructor.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_unary_minus.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_unary_plus.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_virtual_destructor.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/integral_constant.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/integral_promotion.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/intrinsics.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_abstract.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_arithmetic.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_array.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_assignable.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_base_and_derived.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_base_of.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_class.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_complete.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_complex.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_compound.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_const.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_constructible.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_convertible.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_copy_assignable.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_copy_constructible.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_default_constructible.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_destructible.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_empty.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_enum.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_final.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_float.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_floating_point.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_function.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_fundamental.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_integral.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_list_constructible.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_lvalue_reference.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_member_function_pointer.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_member_object_pointer.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_member_pointer.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_nothrow_move_assignable.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_nothrow_move_constructible.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_nothrow_swappable.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_object.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_pod.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_pointer.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_polymorphic.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_reference.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_rvalue_reference.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_same.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_scalar.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_signed.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_stateless.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_union.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_unsigned.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_virtual_base_of.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_void.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_volatile.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/make_signed.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/make_unsigned.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/make_void.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/promote.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/rank.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/remove_all_extents.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/remove_bounds.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/remove_const.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/remove_cv.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/remove_cv_ref.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/remove_extent.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/remove_pointer.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/remove_reference.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/remove_volatile.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/type_identity.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/type_with_alignment.hpp + /home/pedroernesto/anaconda3/include/boost/utility/addressof.hpp + /home/pedroernesto/anaconda3/include/boost/utility/enable_if.hpp + /home/pedroernesto/anaconda3/include/boost/utility/swap.hpp + /home/pedroernesto/anaconda3/include/boost/version.hpp + /home/pedroernesto/anaconda3/include/gsl/gsl_errno.h + /home/pedroernesto/anaconda3/include/gsl/gsl_inline.h + /home/pedroernesto/anaconda3/include/gsl/gsl_rng.h + /home/pedroernesto/anaconda3/include/gsl/gsl_types.h + /home/pedroernesto/anaconda3/include/mpi.h + /home/pedroernesto/anaconda3/include/mpi_portable_platform.h + /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/comm.h + /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/comm_inln.h + /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/constants.h + /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/datatype.h + /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/datatype_inln.h + /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/errhandler.h + /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/errhandler_inln.h + /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/exception.h + /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/file.h + /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/file_inln.h + /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/functions.h + /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/functions_inln.h + /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/group.h + /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/group_inln.h + /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/info.h + /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/info_inln.h + /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/intercomm.h + /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/intercomm_inln.h + /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/intracomm.h + /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/intracomm_inln.h + /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/mpicxx.h + /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/op.h + /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/op_inln.h + /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/request.h + /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/request_inln.h + /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/status.h + /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/status_inln.h + /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/topology.h + /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/topology_inln.h + /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/win.h + /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/win_inln.h diff --git a/examples/NEST_nineml_models/StdpSongAbbott/compile/CMakeFiles/StdpSongAbbottmodule_lib.dir/depend.make b/examples/NEST_nineml_models/StdpSongAbbott/compile/CMakeFiles/StdpSongAbbottmodule_lib.dir/depend.make new file mode 100644 index 000000000..c1a1e517d --- /dev/null +++ b/examples/NEST_nineml_models/StdpSongAbbott/compile/CMakeFiles/StdpSongAbbottmodule_lib.dir/depend.make @@ -0,0 +1,1217 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.18 + +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/src/StdpSongAbbott.cpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/src/StdpSongAbbott.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/aggregatedatum.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/allocator.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/arraydatum.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/block_vector.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/common_synapse_properties.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/compose.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/config.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/conn_builder.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/conn_parameter.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/connection.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/connection_id.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/connection_label.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/connection_manager.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/connector_base.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/connector_base_impl.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/connector_model.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/datum.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/delay_checker.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/dict.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/dictdatum.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/dictutils.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/doubledatum.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/enum_bitfield.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/event.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/event_delivery_manager.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/exceptions.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/genericdatum.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/genericmodel.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/gid_collection.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/growth_curve.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/growth_curve_factory.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/gslrandomgen.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/histentry.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/integerdatum.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/interpret.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/io_manager.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/iterator_pair.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/kernel_manager.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/librandom_exceptions.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/librandom_names.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/lockptr.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/lockptrdatum.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/lockptrdatum_impl.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/logging.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/logging_manager.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/manager_interface.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/model.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/model_manager.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/modelrange.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/modelrange_manager.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/mpi_manager.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/music_event_handler.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/music_manager.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/name.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/namedatum.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/nest.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/nest_datums.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/nest_names.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/nest_time.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/nest_timeconverter.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/nest_types.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/nestmodule.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/node.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/node_manager.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/numericdatum.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/numerics.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/per_thread_bool_indicator.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/random_datums.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/random_numbers.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/randomdev.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/randomgen.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/rng_manager.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/sibling_container.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/simulation_manager.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/sliactions.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/slibuiltins.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/sliexceptions.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/slifunction.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/slimodule.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/slitype.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/sort.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/source.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/source_table.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/source_table_position.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/sp_manager.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/sparse_node_array.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/spike_data.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/spikecounter.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/static_assert.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/stopwatch.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/syn_id_delay.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/target.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/target_data.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/target_table.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/target_table_devices.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/tarrayobj.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/token.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/tokenarray.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/tokenstack.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/tokenutils.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/vector_util.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/vp_manager.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/config.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/compiler/borland.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/compiler/clang.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/compiler/codegear.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/compiler/comeau.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/compiler/common_edg.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/compiler/compaq_cxx.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/compiler/cray.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/compiler/digitalmars.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/compiler/gcc.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/compiler/gcc_xml.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/compiler/greenhills.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/compiler/hp_acc.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/compiler/intel.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/compiler/kai.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/compiler/metrowerks.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/compiler/mpw.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/compiler/nvcc.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/compiler/pathscale.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/compiler/pgi.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/compiler/sgi_mipspro.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/compiler/sunpro_cc.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/compiler/vacpp.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/compiler/visualc.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/compiler/xlcpp.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/compiler/xlcpp_zos.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/detail/posix_features.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/detail/select_compiler_config.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/detail/select_platform_config.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/detail/select_stdlib_config.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/detail/suffix.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/helper_macros.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/no_tr1/utility.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/platform/aix.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/platform/amigaos.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/platform/beos.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/platform/bsd.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/platform/cray.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/platform/cygwin.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/platform/hpux.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/platform/irix.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/platform/linux.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/platform/macos.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/platform/qnxnto.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/platform/solaris.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/platform/symbian.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/platform/vms.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/platform/vxworks.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/platform/win32.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/platform/zos.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/pragma_message.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/stdlib/dinkumware.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/stdlib/libcomo.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/stdlib/libcpp.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/stdlib/libstdcpp3.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/stdlib/modena.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/stdlib/msl.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/stdlib/roguewave.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/stdlib/sgi.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/stdlib/stlport.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/stdlib/vacpp.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/stdlib/xlcpp_zos.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/user.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/workaround.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/core/addressof.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/core/enable_if.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/core/noncopyable.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/core/ref.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/core/swap.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/cstdint.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/detail/indirect_traits.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/detail/workaround.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/iterator/detail/config_def.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/iterator/detail/config_undef.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/iterator/detail/enable_if.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/iterator/detail/facade_iterator_category.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/iterator/interoperable.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/iterator/iterator_adaptor.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/iterator/iterator_categories.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/iterator/iterator_facade.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/iterator/iterator_traits.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/limits.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/always.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/and.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/apply.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/apply_fwd.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/apply_wrap.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/arg.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/arg_fwd.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/assert.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/adl_barrier.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/arg_typedef.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/arity.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/arity_spec.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/common_name_wknd.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/adl.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/arrays.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/bcc.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/bind.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/compiler.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/ctps.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/dmc_ambiguous_ctps.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/dtp.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/eti.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/gcc.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/gpu.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/has_apply.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/has_xxx.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/integral.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/intel.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/lambda.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/msvc.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/msvc_typename.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/nttp.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/overload_resolution.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/pp_counter.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/preprocessor.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/static_constant.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/ttp.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/use_preprocessed.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/workaround.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/count_args.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/full_lambda.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/has_apply.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/has_rebind.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/has_type.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/include_preprocessed.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/integral_wrapper.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/lambda_arity_param.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/lambda_no_ctps.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/lambda_support.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/logical_op.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/msvc_dtw.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/msvc_is_class.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/msvc_never_true.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/na.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/na_assert.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/na_fwd.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/na_spec.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/nested_type_wknd.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/nttp_decl.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/preprocessor/add.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/preprocessor/def_params_tail.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/preprocessor/default_params.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/preprocessor/enum.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/preprocessor/ext_params.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/preprocessor/filter_params.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/preprocessor/params.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/preprocessor/partial_spec_params.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/preprocessor/range.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/preprocessor/repeat.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/preprocessor/sub.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/preprocessor/tuple.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/static_cast.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/template_arity.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/template_arity_fwd.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/type_wrapper.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/value_wknd.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/yes_no.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/bind.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/bind_fwd.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/bool.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/bool_fwd.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/eval_if.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/has_xxx.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/identity.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/if.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/int.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/int_fwd.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/integral_c_tag.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/is_placeholder.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/lambda.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/lambda_fwd.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/limits/arity.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/next.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/next_prior.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/not.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/or.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/placeholders.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/print.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/protect.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/quote.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/void.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/void_fwd.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/noncopyable.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/arithmetic/add.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/arithmetic/dec.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/arithmetic/inc.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/arithmetic/sub.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/array/data.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/array/elem.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/array/size.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/cat.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/comma_if.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/comparison/not_equal.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/config/config.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/control/detail/dmc/while.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/control/detail/edg/while.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/control/detail/msvc/while.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/control/detail/while.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/control/expr_if.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/control/expr_iif.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/control/if.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/control/iif.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/control/while.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/debug/error.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/dec.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/detail/auto_rec.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/detail/check.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/detail/dmc/auto_rec.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/detail/is_binary.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/detail/split.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/empty.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/enum_shifted_params.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/expr_if.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/facilities/detail/is_empty.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/facilities/empty.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/facilities/expand.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/facilities/identity.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/facilities/is_1.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/facilities/is_empty.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/facilities/is_empty_variadic.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/facilities/overload.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/identity.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/inc.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/iterate.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/iteration/iterate.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/list/adt.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/list/detail/dmc/fold_left.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/list/detail/edg/fold_left.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/list/detail/edg/fold_right.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/list/detail/fold_left.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/list/detail/fold_right.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/list/fold_left.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/list/fold_right.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/list/for_each_i.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/list/reverse.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/logical/and.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/logical/bitand.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/logical/bool.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/logical/compl.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/punctuation/comma.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/punctuation/comma_if.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/punctuation/detail/is_begin_parens.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/punctuation/is_begin_parens.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/repeat.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/repetition/detail/dmc/for.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/repetition/detail/edg/for.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/repetition/detail/for.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/repetition/detail/msvc/for.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/repetition/enum_params.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/repetition/enum_shifted_params.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/repetition/enum_trailing_params.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/repetition/for.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/repetition/repeat.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/seq/detail/is_empty.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/seq/detail/split.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/seq/elem.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/seq/first_n.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/seq/fold_left.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/seq/rest_n.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/seq/seq.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/seq/size.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/seq/subseq.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/slot/detail/def.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/slot/slot.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/stringize.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/tuple/detail/is_single_return.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/tuple/eat.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/tuple/elem.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/tuple/rem.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/tuple/size.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/tuple/to_list.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/variadic/elem.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/variadic/size.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/range/begin.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/range/config.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/range/const_iterator.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/range/detail/begin.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/range/detail/common.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/range/detail/end.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/range/detail/extract_optional_type.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/range/detail/implementation_help.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/range/detail/msvc_has_iterator_workaround.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/range/detail/sfinae.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/range/end.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/range/iterator.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/range/mutable_iterator.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/range/range_fwd.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/ref.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/serialization/static_warning.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/sort/spreadsort/detail/constants.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/sort/spreadsort/detail/float_sort.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/sort/spreadsort/detail/integer_sort.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/sort/spreadsort/detail/spreadsort_common.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/sort/spreadsort/detail/string_sort.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/sort/spreadsort/float_sort.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/sort/spreadsort/integer_sort.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/sort/spreadsort/spreadsort.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/sort/spreadsort/string_sort.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/static_assert.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/tuple/detail/tuple_basic.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/tuple/tuple.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/add_const.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/add_cv.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/add_lvalue_reference.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/add_pointer.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/add_reference.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/add_rvalue_reference.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/add_volatile.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/aligned_storage.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/alignment_of.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/common_type.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/conditional.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/copy_cv.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/cv_traits.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/decay.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/declval.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/detail/common_arithmetic_type.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/detail/common_type_impl.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/detail/composite_member_pointer_type.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/detail/composite_pointer_type.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/detail/config.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/detail/has_binary_operator.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/detail/has_postfix_operator.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/detail/has_prefix_operator.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/detail/is_function_ptr_helper.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/detail/is_function_ptr_tester.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/detail/is_likely_lambda.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/detail/is_mem_fun_pointer_impl.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/detail/is_mem_fun_pointer_tester.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/detail/mp_defer.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/detail/yes_no_type.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/extent.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/floating_point_promotion.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/function_traits.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_bit_and.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_bit_and_assign.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_bit_or.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_bit_or_assign.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_bit_xor.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_bit_xor_assign.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_complement.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_dereference.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_divides.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_divides_assign.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_equal_to.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_greater.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_greater_equal.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_left_shift.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_left_shift_assign.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_less.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_less_equal.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_logical_and.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_logical_not.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_logical_or.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_minus.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_minus_assign.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_modulus.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_modulus_assign.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_multiplies.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_multiplies_assign.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_negate.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_new_operator.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_not_equal_to.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_nothrow_assign.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_nothrow_constructor.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_nothrow_copy.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_nothrow_destructor.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_plus.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_plus_assign.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_post_decrement.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_post_increment.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_pre_decrement.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_pre_increment.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_right_shift.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_right_shift_assign.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_trivial_assign.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_trivial_constructor.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_trivial_copy.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_trivial_destructor.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_trivial_move_assign.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_trivial_move_constructor.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_unary_minus.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_unary_plus.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_virtual_destructor.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/integral_constant.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/integral_promotion.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/intrinsics.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_abstract.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_arithmetic.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_array.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_assignable.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_base_and_derived.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_base_of.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_class.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_complete.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_complex.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_compound.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_const.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_constructible.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_convertible.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_copy_assignable.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_copy_constructible.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_default_constructible.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_destructible.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_empty.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_enum.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_final.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_float.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_floating_point.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_function.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_fundamental.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_integral.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_list_constructible.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_lvalue_reference.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_member_function_pointer.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_member_object_pointer.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_member_pointer.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_nothrow_move_assignable.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_nothrow_move_constructible.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_nothrow_swappable.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_object.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_pod.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_pointer.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_polymorphic.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_reference.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_rvalue_reference.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_same.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_scalar.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_signed.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_stateless.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_union.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_unsigned.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_virtual_base_of.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_void.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_volatile.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/make_signed.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/make_unsigned.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/make_void.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/promote.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/rank.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/remove_all_extents.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/remove_bounds.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/remove_const.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/remove_cv.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/remove_cv_ref.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/remove_extent.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/remove_pointer.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/remove_reference.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/remove_volatile.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/type_identity.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/type_with_alignment.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/utility/addressof.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/utility/enable_if.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/utility/swap.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/version.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/gsl/gsl_errno.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/gsl/gsl_inline.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/gsl/gsl_rng.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/gsl/gsl_types.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/mpi.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/mpi_portable_platform.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/comm.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/comm_inln.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/constants.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/datatype.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/datatype_inln.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/errhandler.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/errhandler_inln.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/exception.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/file.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/file_inln.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/functions.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/functions_inln.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/group.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/group_inln.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/info.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/info_inln.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/intercomm.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/intercomm_inln.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/intracomm.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/intracomm_inln.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/mpicxx.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/op.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/op_inln.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/request.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/request_inln.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/status.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/status_inln.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/topology.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/topology_inln.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/win.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/win_inln.h + +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/src/StdpSongAbbott.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/src/StdpSongAbbottmodule.cpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/src/StdpSongAbbottmodule.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/aggregatedatum.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/allocator.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/arraydatum.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/block_vector.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/booldatum.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/common_synapse_properties.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/compose.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/config.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/conn_builder.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/conn_builder_factory.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/conn_parameter.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/connection.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/connection_id.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/connection_label.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/connection_manager.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/connection_manager_impl.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/connector_base.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/connector_base_impl.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/connector_model.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/connector_model_impl.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/datum.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/delay_checker.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/dict.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/dictdatum.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/dictutils.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/doubledatum.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/dynamicloader.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/enum_bitfield.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/event.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/event_delivery_manager.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/exceptions.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/genericdatum.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/genericmodel.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/genericmodel_impl.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/gid_collection.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/growth_curve.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/growth_curve_factory.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/gslrandomgen.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/histentry.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/integerdatum.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/interpret.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/io_manager.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/iterator_pair.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/kernel_manager.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/librandom_exceptions.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/librandom_names.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/lockptr.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/lockptrdatum.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/lockptrdatum_impl.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/logging.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/logging_manager.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/manager_interface.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/model.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/model_manager.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/model_manager_impl.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/modelrange.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/modelrange_manager.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/mpi_manager.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/mpi_manager_impl.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/music_event_handler.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/music_manager.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/name.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/namedatum.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/nest.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/nest_datums.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/nest_impl.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/nest_names.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/nest_time.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/nest_timeconverter.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/nest_types.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/nestmodule.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/node.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/node_manager.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/numericdatum.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/numerics.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/per_thread_bool_indicator.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/random_datums.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/random_numbers.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/randomdev.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/randomgen.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/rng_manager.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/sibling_container.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/simulation_manager.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/sliactions.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/slibuiltins.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/sliexceptions.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/slifunction.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/slimodule.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/slitype.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/sort.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/source.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/source_table.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/source_table_position.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/sp_manager.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/sparse_node_array.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/spike_data.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/spikecounter.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/static_assert.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/stopwatch.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/string_utils.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/syn_id_delay.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/target.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/target_data.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/target_identifier.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/target_table.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/target_table_devices.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/target_table_devices_impl.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/tarrayobj.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/token.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/tokenarray.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/tokenstack.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/tokenutils.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/vector_util.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/vp_manager.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/vp_manager_impl.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/config.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/compiler/borland.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/compiler/clang.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/compiler/codegear.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/compiler/comeau.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/compiler/common_edg.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/compiler/compaq_cxx.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/compiler/cray.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/compiler/digitalmars.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/compiler/gcc.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/compiler/gcc_xml.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/compiler/greenhills.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/compiler/hp_acc.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/compiler/intel.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/compiler/kai.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/compiler/metrowerks.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/compiler/mpw.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/compiler/nvcc.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/compiler/pathscale.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/compiler/pgi.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/compiler/sgi_mipspro.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/compiler/sunpro_cc.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/compiler/vacpp.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/compiler/visualc.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/compiler/xlcpp.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/compiler/xlcpp_zos.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/detail/posix_features.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/detail/select_compiler_config.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/detail/select_platform_config.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/detail/select_stdlib_config.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/detail/suffix.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/helper_macros.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/no_tr1/utility.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/platform/aix.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/platform/amigaos.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/platform/beos.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/platform/bsd.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/platform/cray.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/platform/cygwin.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/platform/hpux.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/platform/irix.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/platform/linux.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/platform/macos.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/platform/qnxnto.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/platform/solaris.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/platform/symbian.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/platform/vms.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/platform/vxworks.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/platform/win32.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/platform/zos.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/pragma_message.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/stdlib/dinkumware.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/stdlib/libcomo.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/stdlib/libcpp.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/stdlib/libstdcpp3.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/stdlib/modena.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/stdlib/msl.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/stdlib/roguewave.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/stdlib/sgi.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/stdlib/stlport.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/stdlib/vacpp.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/stdlib/xlcpp_zos.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/user.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/workaround.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/core/addressof.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/core/enable_if.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/core/noncopyable.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/core/ref.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/core/swap.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/cstdint.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/detail/indirect_traits.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/detail/workaround.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/iterator/detail/config_def.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/iterator/detail/config_undef.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/iterator/detail/enable_if.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/iterator/detail/facade_iterator_category.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/iterator/interoperable.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/iterator/iterator_adaptor.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/iterator/iterator_categories.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/iterator/iterator_facade.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/iterator/iterator_traits.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/limits.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/always.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/and.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/apply.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/apply_fwd.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/apply_wrap.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/arg.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/arg_fwd.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/assert.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/adl_barrier.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/arg_typedef.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/arity.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/arity_spec.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/common_name_wknd.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/adl.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/arrays.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/bcc.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/bind.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/compiler.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/ctps.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/dmc_ambiguous_ctps.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/dtp.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/eti.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/gcc.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/gpu.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/has_apply.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/has_xxx.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/integral.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/intel.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/lambda.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/msvc.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/msvc_typename.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/nttp.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/overload_resolution.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/pp_counter.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/preprocessor.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/static_constant.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/ttp.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/use_preprocessed.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/workaround.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/count_args.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/full_lambda.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/has_apply.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/has_rebind.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/has_type.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/include_preprocessed.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/integral_wrapper.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/lambda_arity_param.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/lambda_no_ctps.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/lambda_support.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/logical_op.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/msvc_dtw.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/msvc_is_class.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/msvc_never_true.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/na.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/na_assert.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/na_fwd.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/na_spec.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/nested_type_wknd.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/nttp_decl.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/preprocessor/add.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/preprocessor/def_params_tail.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/preprocessor/default_params.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/preprocessor/enum.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/preprocessor/ext_params.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/preprocessor/filter_params.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/preprocessor/params.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/preprocessor/partial_spec_params.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/preprocessor/range.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/preprocessor/repeat.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/preprocessor/sub.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/preprocessor/tuple.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/static_cast.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/template_arity.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/template_arity_fwd.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/type_wrapper.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/value_wknd.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/yes_no.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/bind.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/bind_fwd.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/bool.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/bool_fwd.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/eval_if.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/has_xxx.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/identity.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/if.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/int.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/int_fwd.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/integral_c_tag.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/is_placeholder.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/lambda.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/lambda_fwd.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/limits/arity.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/next.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/next_prior.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/not.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/or.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/placeholders.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/print.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/protect.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/quote.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/void.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/void_fwd.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/noncopyable.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/arithmetic/add.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/arithmetic/dec.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/arithmetic/inc.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/arithmetic/sub.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/array/data.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/array/elem.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/array/size.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/cat.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/comma_if.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/comparison/not_equal.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/config/config.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/control/detail/dmc/while.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/control/detail/edg/while.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/control/detail/msvc/while.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/control/detail/while.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/control/expr_if.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/control/expr_iif.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/control/if.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/control/iif.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/control/while.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/debug/error.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/dec.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/detail/auto_rec.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/detail/check.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/detail/dmc/auto_rec.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/detail/is_binary.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/detail/split.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/empty.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/enum_shifted_params.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/expr_if.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/facilities/detail/is_empty.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/facilities/empty.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/facilities/expand.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/facilities/identity.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/facilities/is_1.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/facilities/is_empty.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/facilities/is_empty_variadic.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/facilities/overload.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/identity.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/inc.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/iterate.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/iteration/iterate.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/list/adt.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/list/detail/dmc/fold_left.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/list/detail/edg/fold_left.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/list/detail/edg/fold_right.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/list/detail/fold_left.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/list/detail/fold_right.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/list/fold_left.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/list/fold_right.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/list/for_each_i.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/list/reverse.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/logical/and.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/logical/bitand.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/logical/bool.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/logical/compl.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/punctuation/comma.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/punctuation/comma_if.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/punctuation/detail/is_begin_parens.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/punctuation/is_begin_parens.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/repeat.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/repetition/detail/dmc/for.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/repetition/detail/edg/for.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/repetition/detail/for.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/repetition/detail/msvc/for.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/repetition/enum_params.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/repetition/enum_shifted_params.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/repetition/enum_trailing_params.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/repetition/for.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/repetition/repeat.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/seq/detail/is_empty.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/seq/detail/split.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/seq/elem.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/seq/first_n.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/seq/fold_left.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/seq/rest_n.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/seq/seq.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/seq/size.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/seq/subseq.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/slot/detail/def.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/slot/slot.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/stringize.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/tuple/detail/is_single_return.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/tuple/eat.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/tuple/elem.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/tuple/rem.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/tuple/size.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/tuple/to_list.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/variadic/elem.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/variadic/size.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/range/begin.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/range/config.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/range/const_iterator.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/range/detail/begin.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/range/detail/common.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/range/detail/end.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/range/detail/extract_optional_type.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/range/detail/implementation_help.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/range/detail/msvc_has_iterator_workaround.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/range/detail/sfinae.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/range/end.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/range/iterator.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/range/mutable_iterator.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/range/range_fwd.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/ref.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/serialization/static_warning.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/sort/spreadsort/detail/constants.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/sort/spreadsort/detail/float_sort.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/sort/spreadsort/detail/integer_sort.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/sort/spreadsort/detail/spreadsort_common.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/sort/spreadsort/detail/string_sort.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/sort/spreadsort/float_sort.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/sort/spreadsort/integer_sort.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/sort/spreadsort/spreadsort.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/sort/spreadsort/string_sort.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/static_assert.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/tuple/detail/tuple_basic.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/tuple/tuple.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/add_const.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/add_cv.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/add_lvalue_reference.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/add_pointer.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/add_reference.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/add_rvalue_reference.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/add_volatile.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/aligned_storage.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/alignment_of.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/common_type.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/conditional.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/copy_cv.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/cv_traits.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/decay.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/declval.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/detail/common_arithmetic_type.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/detail/common_type_impl.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/detail/composite_member_pointer_type.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/detail/composite_pointer_type.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/detail/config.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/detail/has_binary_operator.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/detail/has_postfix_operator.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/detail/has_prefix_operator.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/detail/is_function_ptr_helper.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/detail/is_function_ptr_tester.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/detail/is_likely_lambda.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/detail/is_mem_fun_pointer_impl.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/detail/is_mem_fun_pointer_tester.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/detail/mp_defer.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/detail/yes_no_type.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/extent.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/floating_point_promotion.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/function_traits.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_bit_and.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_bit_and_assign.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_bit_or.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_bit_or_assign.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_bit_xor.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_bit_xor_assign.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_complement.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_dereference.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_divides.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_divides_assign.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_equal_to.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_greater.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_greater_equal.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_left_shift.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_left_shift_assign.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_less.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_less_equal.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_logical_and.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_logical_not.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_logical_or.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_minus.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_minus_assign.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_modulus.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_modulus_assign.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_multiplies.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_multiplies_assign.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_negate.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_new_operator.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_not_equal_to.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_nothrow_assign.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_nothrow_constructor.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_nothrow_copy.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_nothrow_destructor.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_plus.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_plus_assign.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_post_decrement.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_post_increment.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_pre_decrement.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_pre_increment.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_right_shift.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_right_shift_assign.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_trivial_assign.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_trivial_constructor.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_trivial_copy.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_trivial_destructor.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_trivial_move_assign.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_trivial_move_constructor.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_unary_minus.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_unary_plus.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_virtual_destructor.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/integral_constant.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/integral_promotion.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/intrinsics.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_abstract.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_arithmetic.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_array.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_assignable.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_base_and_derived.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_base_of.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_class.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_complete.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_complex.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_compound.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_const.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_constructible.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_convertible.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_copy_assignable.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_copy_constructible.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_default_constructible.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_destructible.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_empty.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_enum.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_final.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_float.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_floating_point.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_function.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_fundamental.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_integral.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_list_constructible.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_lvalue_reference.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_member_function_pointer.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_member_object_pointer.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_member_pointer.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_nothrow_move_assignable.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_nothrow_move_constructible.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_nothrow_swappable.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_object.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_pod.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_pointer.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_polymorphic.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_reference.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_rvalue_reference.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_same.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_scalar.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_signed.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_stateless.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_union.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_unsigned.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_virtual_base_of.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_void.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_volatile.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/make_signed.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/make_unsigned.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/make_void.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/promote.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/rank.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/remove_all_extents.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/remove_bounds.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/remove_const.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/remove_cv.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/remove_cv_ref.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/remove_extent.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/remove_pointer.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/remove_reference.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/remove_volatile.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/type_identity.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/type_with_alignment.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/utility/addressof.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/utility/enable_if.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/utility/swap.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/version.hpp +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/gsl/gsl_errno.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/gsl/gsl_inline.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/gsl/gsl_rng.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/gsl/gsl_types.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/mpi.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/mpi_portable_platform.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/comm.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/comm_inln.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/constants.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/datatype.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/datatype_inln.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/errhandler.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/errhandler_inln.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/exception.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/file.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/file_inln.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/functions.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/functions_inln.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/group.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/group_inln.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/info.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/info_inln.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/intercomm.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/intercomm_inln.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/intracomm.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/intracomm_inln.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/mpicxx.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/op.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/op_inln.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/request.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/request_inln.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/status.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/status_inln.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/topology.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/topology_inln.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/win.h +CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/win_inln.h + diff --git a/examples/NEST_nineml_models/StdpSongAbbott/compile/CMakeFiles/StdpSongAbbottmodule_lib.dir/flags.make b/examples/NEST_nineml_models/StdpSongAbbott/compile/CMakeFiles/StdpSongAbbottmodule_lib.dir/flags.make new file mode 100644 index 000000000..20493bb03 --- /dev/null +++ b/examples/NEST_nineml_models/StdpSongAbbott/compile/CMakeFiles/StdpSongAbbottmodule_lib.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.18 + +# compile CXX with /home/pedroernesto/anaconda3/bin/x86_64-conda_cos6-linux-gnu-c++ +CXX_DEFINES = -DLINKED_MODULE -DStdpSongAbbottmodule_lib_EXPORTS + +CXX_INCLUDES = -I/home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/simulators-source/NEST_install/nest-simulator-2.18.0/conngen -I/home/pedroernesto/anaconda3/build/NEST/include/nest -I/home/pedroernesto/anaconda3/include + +CXX_FLAGS = -fPIC -fvisibility-inlines-hidden -std=c++17 -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem /home/pedroernesto/anaconda3/include -std=c++11 -O2 -Wall -fopenmp -pthread -fdiagnostics-color=auto + diff --git a/examples/NEST_nineml_models/StdpSongAbbott/compile/CMakeFiles/StdpSongAbbottmodule_lib.dir/link.txt b/examples/NEST_nineml_models/StdpSongAbbott/compile/CMakeFiles/StdpSongAbbottmodule_lib.dir/link.txt new file mode 100644 index 000000000..4ea23ea6a --- /dev/null +++ b/examples/NEST_nineml_models/StdpSongAbbott/compile/CMakeFiles/StdpSongAbbottmodule_lib.dir/link.txt @@ -0,0 +1 @@ +/home/pedroernesto/anaconda3/bin/x86_64-conda_cos6-linux-gnu-c++ -fPIC -L/home/pedroernesto/anaconda3/build/NEST/lib -lconngen -lnestutil -lnest -lrandom -lsli -lnestkernel -ltopology -fopenmp /home/pedroernesto/anaconda3/lib/libltdl.so /home/pedroernesto/anaconda3/lib/libreadline.so /home/pedroernesto/anaconda3/lib/libncurses.so /home/pedroernesto/anaconda3/lib/libgsl.so /home/pedroernesto/anaconda3/lib/libgslcblas.so /home/pedroernesto/anaconda3/lib/libneurosim.so.0 /home/pedroernesto/anaconda3/lib/libpy3neurosim.so.0 /home/pedroernesto/anaconda3/lib/libmpi_cxx.so /home/pedroernesto/anaconda3/lib/libmpi.so -shared -Wl,-soname,libStdpSongAbbottmodule.so -o libStdpSongAbbottmodule.so CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o diff --git a/examples/NEST_nineml_models/StdpSongAbbott/compile/CMakeFiles/StdpSongAbbottmodule_lib.dir/progress.make b/examples/NEST_nineml_models/StdpSongAbbott/compile/CMakeFiles/StdpSongAbbottmodule_lib.dir/progress.make new file mode 100644 index 000000000..6a9dc74f4 --- /dev/null +++ b/examples/NEST_nineml_models/StdpSongAbbott/compile/CMakeFiles/StdpSongAbbottmodule_lib.dir/progress.make @@ -0,0 +1,4 @@ +CMAKE_PROGRESS_1 = 1 +CMAKE_PROGRESS_2 = 2 +CMAKE_PROGRESS_3 = 3 + diff --git a/examples/NEST_nineml_models/StdpSongAbbott/compile/CMakeFiles/StdpSongAbbottmodule_module.dir/CXX.includecache b/examples/NEST_nineml_models/StdpSongAbbott/compile/CMakeFiles/StdpSongAbbottmodule_module.dir/CXX.includecache new file mode 100644 index 000000000..a4ca4e9f4 --- /dev/null +++ b/examples/NEST_nineml_models/StdpSongAbbott/compile/CMakeFiles/StdpSongAbbottmodule_module.dir/CXX.includecache @@ -0,0 +1,6658 @@ +#IncludeRegexLine: ^[ ]*[#%][ ]*(include|import)[ ]*[<"]([^">]+)([">]) + +#IncludeRegexScan: ^.*$ + +#IncludeRegexComplain: ^$ + +#IncludeRegexTransform: + +/home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/src/StdpSongAbbott.cpp +StdpSongAbbott.h +/home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/src/StdpSongAbbott.h +common_synapse_properties.h +/home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/src/common_synapse_properties.h +connector_model.h +/home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/src/connector_model.h +event.h +/home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/src/event.h +dictdatum.h +/home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/src/dictdatum.h + +/home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/src/StdpSongAbbott.h +cmath +- +common_synapse_properties.h +/home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/src/common_synapse_properties.h +connection.h +/home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/src/connection.h +connector_model.h +/home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/src/connector_model.h +event.h +/home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/src/event.h +dictdatum.h +/home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/src/dictdatum.h +dictutils.h +/home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/src/dictutils.h + +/home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/src/StdpSongAbbottmodule.cpp +StdpSongAbbottmodule.h +/home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/src/StdpSongAbbottmodule.h +StdpSongAbbott.h +/home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/src/StdpSongAbbott.h +config.h +/home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/src/config.h +connection_manager_impl.h +/home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/src/connection_manager_impl.h +connector_model_impl.h +/home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/src/connector_model_impl.h +dynamicloader.h +/home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/src/dynamicloader.h +exceptions.h +/home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/src/exceptions.h +genericmodel.h +/home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/src/genericmodel.h +genericmodel_impl.h +/home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/src/genericmodel_impl.h +kernel_manager.h +/home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/src/kernel_manager.h +model.h +/home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/src/model.h +model_manager_impl.h +/home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/src/model_manager_impl.h +nest.h +/home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/src/nest.h +nest_impl.h +/home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/src/nest_impl.h +nestmodule.h +/home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/src/nestmodule.h +target_identifier.h +/home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/src/target_identifier.h +booldatum.h +/home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/src/booldatum.h +integerdatum.h +/home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/src/integerdatum.h +sliexceptions.h +/home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/src/sliexceptions.h +tokenarray.h +/home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/src/tokenarray.h + +/home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/src/StdpSongAbbottmodule.h +slimodule.h +/home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/src/slimodule.h +slifunction.h +/home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/src/slifunction.h + +/home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/simulators-source/NEST_install/nest-simulator-2.18.0/nestkernel/source.h +cassert +- +nest_types.h +/home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/simulators-source/NEST_install/nest-simulator-2.18.0/nestkernel/nest_types.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/aggregatedatum.h +config.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/config.h +allocator.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/allocator.h +datum.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/datum.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/allocator.h +config.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/config.h +cassert +- +cstdlib +- +string +- + +/home/pedroernesto/anaconda3/build/NEST/include/nest/arraydatum.h +vector +- +aggregatedatum.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/aggregatedatum.h +interpret.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/interpret.h +lockptrdatum.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/lockptrdatum.h +tokenarray.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/tokenarray.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/block_vector.h +cmath +- +vector +- +iostream +- +iterator +- +cassert +- + +/home/pedroernesto/anaconda3/build/NEST/include/nest/booldatum.h +string +- +allocator.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/allocator.h +genericdatum.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/genericdatum.h +interpret.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/interpret.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/common_synapse_properties.h +connector_model.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/connector_model.h +nest_types.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/nest_types.h +node.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/node.h +sibling_container.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/sibling_container.h +dictdatum.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/dictdatum.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/compose.hpp +sstream +- +string +- +list +- +map +- + +/home/pedroernesto/anaconda3/build/NEST/include/nest/config.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/conn_builder.h +map +- +vector +- +lockptr.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/lockptr.h +gslrandomgen.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/gslrandomgen.h +conn_parameter.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/conn_parameter.h +gid_collection.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/gid_collection.h +nest_time.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/nest_time.h +dictdatum.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/dictdatum.h +sliexceptions.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/sliexceptions.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/conn_builder_factory.h +map +- +conn_builder.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/conn_builder.h +dictdatum.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/dictdatum.h +lockptrdatum.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/lockptrdatum.h +name.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/name.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/conn_parameter.h +limits +- +vector +- +randomdev.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/randomdev.h +randomgen.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/randomgen.h +exceptions.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/exceptions.h +token.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/token.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/connection.h +common_synapse_properties.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/common_synapse_properties.h +connection_label.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/connection_label.h +connector_base_impl.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/connector_base_impl.h +delay_checker.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/delay_checker.h +event.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/event.h +kernel_manager.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/kernel_manager.h +nest_names.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/nest_names.h +nest_time.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/nest_time.h +nest_timeconverter.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/nest_timeconverter.h +nest_types.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/nest_types.h +node.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/node.h +spikecounter.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/spikecounter.h +syn_id_delay.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/syn_id_delay.h +arraydatum.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/arraydatum.h +dict.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/dict.h +dictutils.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/dictutils.h +doubledatum.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/doubledatum.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/connection_id.h +arraydatum.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/arraydatum.h +dictutils.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/dictutils.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/connection_label.h +nest.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/nest.h +nest_names.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/nest_names.h +dictdatum.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/dictdatum.h +dictutils.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/dictutils.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/connection_manager.h +string +- +vector +- +manager_interface.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/manager_interface.h +completed_checker.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/completed_checker.h +conn_builder.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/conn_builder.h +connection_id.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/connection_id.h +connector_base.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/connector_base.h +gid_collection.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/gid_collection.h +nest_time.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/nest_time.h +nest_timeconverter.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/nest_timeconverter.h +nest_types.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/nest_types.h +source_table.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/source_table.h +target_table.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/target_table.h +target_table_devices.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/target_table_devices.h +arraydatum.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/arraydatum.h +dict.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/dict.h +dictdatum.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/dictdatum.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/connection_manager_impl.h +connection_manager.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/connection_manager.h +string +- +conn_builder.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/conn_builder.h +conn_builder_factory.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/conn_builder_factory.h +connector_base.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/connector_base.h +kernel_manager.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/kernel_manager.h +target_table_devices_impl.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/target_table_devices_impl.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/connector_base.h +config.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/config.h +cstdlib +- +vector +- +compose.hpp +/home/pedroernesto/anaconda3/build/NEST/include/nest/compose.hpp +sort.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/sort.h +vector_util.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/vector_util.h +common_synapse_properties.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/common_synapse_properties.h +connection_label.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/connection_label.h +connector_model.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/connector_model.h +event.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/event.h +nest_datums.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/nest_datums.h +nest_names.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/nest_names.h +node.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/node.h +source.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/source.h +spikecounter.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/spikecounter.h +arraydatum.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/arraydatum.h +dictutils.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/dictutils.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/connector_base_impl.h +connector_base.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/connector_base.h +kernel_manager.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/kernel_manager.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/connector_model.h +cmath +- +string +- +numerics.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/numerics.h +event.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/event.h +nest_time.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/nest_time.h +nest_types.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/nest_types.h +dictutils.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/dictutils.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/connector_model_impl.h +connector_model.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/connector_model.h +config.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/config.h +compose.hpp +/home/pedroernesto/anaconda3/build/NEST/include/nest/compose.hpp +connector_base.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/connector_base.h +delay_checker.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/delay_checker.h +kernel_manager.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/kernel_manager.h +nest_time.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/nest_time.h +nest_timeconverter.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/nest_timeconverter.h +dictutils.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/dictutils.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/datum.h +slitype.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/slitype.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/delay_checker.h +nest_time.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/nest_time.h +dictdatum.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/dictdatum.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/dict.h +map +- +name.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/name.h +sliexceptions.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/sliexceptions.h +token.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/token.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/dictdatum.h +dict.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/dict.h +interpret.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/interpret.h +lockptrdatum.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/lockptrdatum.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/dictutils.h +algorithm +- +functional +- +string +- +arraydatum.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/arraydatum.h +dictdatum.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/dictdatum.h +doubledatum.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/doubledatum.h +integerdatum.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/integerdatum.h +namedatum.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/namedatum.h +tokenutils.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/tokenutils.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/doubledatum.h +datum.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/datum.h +interpret.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/interpret.h +numericdatum.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/numericdatum.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/dynamicloader.h +config.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/config.h +vector +- +slifunction.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/slifunction.h +slimodule.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/slimodule.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/event.h +cassert +- +cstring +- +algorithm +- +vector +- +lockptr.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/lockptr.h +exceptions.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/exceptions.h +nest_time.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/nest_time.h +nest_types.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/nest_types.h +vp_manager.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/vp_manager.h +name.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/name.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/event_delivery_manager.h +cassert +- +limits +- +vector +- +manager_interface.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/manager_interface.h +stopwatch.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/stopwatch.h +completed_checker.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/completed_checker.h +event.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/event.h +mpi_manager.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/mpi_manager.h +nest_time.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/nest_time.h +nest_types.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/nest_types.h +node.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/node.h +target_table.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/target_table.h +spike_data.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/spike_data.h +vp_manager.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/vp_manager.h +dictdatum.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/dictdatum.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/exceptions.h +nest_time.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/nest_time.h +name.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/name.h +sliexceptions.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/sliexceptions.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/genericdatum.h +datum.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/datum.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/genericmodel.h +new +- +model.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/model.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/genericmodel_impl.h +genericmodel.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/genericmodel.h +kernel_manager.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/kernel_manager.h +logging_manager.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/logging_manager.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/gid_collection.h +ostream +- +stdexcept +- +utility +- +vector +- +nest_types.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/nest_types.h +arraydatum.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/arraydatum.h +tokenarray.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/tokenarray.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/growth_curve.h +nest_types.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/nest_types.h +exceptions.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/exceptions.h +dictdatum.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/dictdatum.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/growth_curve_factory.h +growth_curve.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/growth_curve.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/gslrandomgen.h +cassert +- +list +- +string +- +config.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/config.h +random_datums.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/random_datums.h +randomgen.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/randomgen.h +dictdatum.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/dictdatum.h +gsl/gsl_rng.h +- + +/home/pedroernesto/anaconda3/build/NEST/include/nest/histentry.h +nest_types.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/nest_types.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/integerdatum.h +interpret.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/interpret.h +numericdatum.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/numericdatum.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/interpret.h +list +- +typeinfo +- +sliactions.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/sliactions.h +slibuiltins.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/slibuiltins.h +slimodule.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/slimodule.h +slitype.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/slitype.h +token.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/token.h +tokenstack.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/tokenstack.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/io_manager.h +string +- +manager_interface.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/manager_interface.h +dictdatum.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/dictdatum.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/iterator_pair.h +boost/iterator/iterator_adaptor.hpp +- +boost/tuple/tuple.hpp +- +../nestkernel/source.h +/home/pedroernesto/anaconda3/build/NEST/include/nestkernel/source.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/kernel_manager.h +connection_manager.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/connection_manager.h +event_delivery_manager.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/event_delivery_manager.h +io_manager.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/io_manager.h +logging_manager.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/logging_manager.h +model_manager.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/model_manager.h +modelrange_manager.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/modelrange_manager.h +mpi_manager.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/mpi_manager.h +music_manager.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/music_manager.h +node_manager.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/node_manager.h +rng_manager.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/rng_manager.h +simulation_manager.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/simulation_manager.h +sp_manager.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/sp_manager.h +vp_manager.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/vp_manager.h +dictdatum.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/dictdatum.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/librandom_exceptions.h +sliexceptions.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/sliexceptions.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/librandom_names.h +name.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/name.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/lockptr.h +cassert +- +cstddef +- + +/home/pedroernesto/anaconda3/build/NEST/include/nest/lockptrdatum.h +lockptr.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/lockptr.h +datum.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/datum.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/lockptrdatum_impl.h +lockptrdatum.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/lockptrdatum.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/logging.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/logging_manager.h +string +- +vector +- +logging.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/logging.h +manager_interface.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/manager_interface.h +dictdatum.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/dictdatum.h +nest_names.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/nest_names.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/manager_interface.h +dictdatum.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/dictdatum.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/model.h +new +- +string +- +vector +- +allocator.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/allocator.h +node.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/node.h +dictutils.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/dictutils.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/model_manager.h +string +- +connector_model.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/connector_model.h +genericmodel.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/genericmodel.h +manager_interface.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/manager_interface.h +model.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/model.h +nest_time.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/nest_time.h +nest_timeconverter.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/nest_timeconverter.h +nest_types.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/nest_types.h +node.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/node.h +dictutils.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/dictutils.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/model_manager_impl.h +model_manager.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/model_manager.h +compose.hpp +/home/pedroernesto/anaconda3/build/NEST/include/nest/compose.hpp +string_utils.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/string_utils.h +connection_label.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/connection_label.h +kernel_manager.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/kernel_manager.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/modelrange.h +nest_types.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/nest_types.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/modelrange_manager.h +vector +- +manager_interface.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/manager_interface.h +modelrange.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/modelrange.h +nest_types.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/nest_types.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/mpi_manager.h +config.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/config.h +unistd.h +- +mpi.h +- +cassert +- +cmath +- +iostream +- +limits +- +numeric +- +vector +- +manager_interface.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/manager_interface.h +nest_types.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/nest_types.h +spike_data.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/spike_data.h +target_data.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/target_data.h +dictdatum.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/dictdatum.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/mpi_manager_impl.h +config.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/config.h +mpi.h +- +mpi_manager.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/mpi_manager.h +kernel_manager.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/kernel_manager.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/music_event_handler.h +config.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/config.h +music.hh +- +queue +- +nest_types.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/nest_types.h +node.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/node.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/music_manager.h +config.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/config.h +music.hh +- +string +- +manager_interface.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/manager_interface.h +nest_types.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/nest_types.h +dict.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/dict.h +music_event_handler.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/music_event_handler.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/name.h +cassert +- +deque +- +iostream +- +map +- +string +- + +/home/pedroernesto/anaconda3/build/NEST/include/nest/namedatum.h +string +- +typeinfo +- +config.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/config.h +aggregatedatum.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/aggregatedatum.h +interpret.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/interpret.h +name.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/name.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/nest.h +ostream +- +logging.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/logging.h +randomgen.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/randomgen.h +nest_datums.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/nest_datums.h +nest_time.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/nest_time.h +nest_types.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/nest_types.h +arraydatum.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/arraydatum.h +dictdatum.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/dictdatum.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/nest_datums.h +connection_id.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/connection_id.h +gid_collection.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/gid_collection.h +nestmodule.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/nestmodule.h +aggregatedatum.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/aggregatedatum.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/nest_impl.h +kernel_manager.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/kernel_manager.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/nest_names.h +name.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/name.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/nest_time.h +cassert +- +cfloat +- +cmath +- +cstdlib +- +iostream +- +limits +- +string +- +numerics.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/numerics.h +nest_types.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/nest_types.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/nest_timeconverter.h +nest_types.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/nest_types.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/nest_types.h +cfloat +- +climits +- +cstddef +- +limits +- +config.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/config.h +stdint.h +- +cstdint +- + +/home/pedroernesto/anaconda3/build/NEST/include/nest/nestmodule.h +event.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/event.h +exceptions.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/exceptions.h +dict.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/dict.h +slifunction.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/slifunction.h +slimodule.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/slimodule.h +slitype.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/slitype.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/node.h +bitset +- +deque +- +sstream +- +string +- +utility +- +vector +- +event.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/event.h +histentry.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/histentry.h +nest_names.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/nest_names.h +nest_time.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/nest_time.h +nest_types.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/nest_types.h +dictdatum.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/dictdatum.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/node_manager.h +vector +- +manager_interface.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/manager_interface.h +conn_builder.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/conn_builder.h +nest_types.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/nest_types.h +sparse_node_array.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/sparse_node_array.h +arraydatum.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/arraydatum.h +dictdatum.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/dictdatum.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/numericdatum.h +allocator.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/allocator.h +genericdatum.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/genericdatum.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/numerics.h +config.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/config.h +cassert +- +cmath +- +limits +- +math.h +- +cmath +- +math.h +- + +/home/pedroernesto/anaconda3/build/NEST/include/nest/random_datums.h +random_numbers.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/random_numbers.h +randomdev.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/randomdev.h +randomgen.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/randomgen.h +lockptrdatum.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/lockptrdatum.h +lockptrdatum_impl.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/lockptrdatum_impl.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/random_numbers.h +string +- +slimodule.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/slimodule.h +slitype.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/slitype.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/randomdev.h +cassert +- +librandom_exceptions.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/librandom_exceptions.h +randomgen.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/randomgen.h +dictdatum.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/dictdatum.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/randomgen.h +cmath +- +vector +- +lockptr.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/lockptr.h +librandom_names.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/librandom_names.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/rng_manager.h +vector +- +manager_interface.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/manager_interface.h +randomgen.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/randomgen.h +mpi_manager.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/mpi_manager.h +nest_types.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/nest_types.h +dictdatum.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/dictdatum.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/sibling_container.h +string +- +vector +- +nest_types.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/nest_types.h +node.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/node.h +dictdatum.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/dictdatum.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/simulation_manager.h +vector +- +manager_interface.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/manager_interface.h +nest_time.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/nest_time.h +nest_types.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/nest_types.h +dictdatum.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/dictdatum.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/sliactions.h +slifunction.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/slifunction.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/slibuiltins.h +typeinfo +- +slifunction.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/slifunction.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/sliexceptions.h +iostream +- +string +- +vector +- +name.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/name.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/slifunction.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/slimodule.h +iostream +- +string +- + +/home/pedroernesto/anaconda3/build/NEST/include/nest/slitype.h +iostream +- +typeinfo +- +name.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/name.h +slifunction.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/slifunction.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/sort.h +algorithm +- +cstddef +- +vector +- +config.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/config.h +block_vector.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/block_vector.h +boost/sort/spreadsort/spreadsort.hpp +- +iterator_pair.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/iterator_pair.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/source.h +cassert +- +nest_types.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/nest_types.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/source_table.h +algorithm +- +cassert +- +iostream +- +map +- +set +- +vector +- +mpi_manager.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/mpi_manager.h +nest_types.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/nest_types.h +source.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/source.h +source_table_position.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/source_table_position.h +block_vector.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/block_vector.h +vector_util.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/vector_util.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/source_table_position.h +cassert +- +iostream +- +vector +- +block_vector.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/block_vector.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/sp_manager.h +vector +- +manager_interface.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/manager_interface.h +gid_collection.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/gid_collection.h +growth_curve_factory.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/growth_curve_factory.h +nest_time.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/nest_time.h +nest_types.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/nest_types.h +arraydatum.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/arraydatum.h +dict.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/dict.h +dictdatum.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/dictdatum.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/sparse_node_array.h +cassert +- +map +- +vector +- +nest_types.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/nest_types.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/spike_data.h +cassert +- +nest_types.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/nest_types.h +target.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/target.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/spikecounter.h +nest_types.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/nest_types.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/static_assert.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/stopwatch.h +sys/time.h +- +cassert +- +iostream +- + +/home/pedroernesto/anaconda3/build/NEST/include/nest/string_utils.h +algorithm +- +string +- + +/home/pedroernesto/anaconda3/build/NEST/include/nest/syn_id_delay.h +nest_time.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/nest_time.h +nest_types.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/nest_types.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/target.h +cassert +- +nest_types.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/nest_types.h +static_assert.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/static_assert.h +exceptions.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/exceptions.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/target_data.h +limits +- +nest_types.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/nest_types.h +static_assert.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/static_assert.h +target.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/target.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/target_identifier.h +kernel_manager.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/kernel_manager.h +compose.hpp +/home/pedroernesto/anaconda3/build/NEST/include/nest/compose.hpp + +/home/pedroernesto/anaconda3/build/NEST/include/nest/target_table.h +cassert +- +iostream +- +map +- +vector +- +nest_types.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/nest_types.h +spike_data.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/spike_data.h +target.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/target.h +target_data.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/target_data.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/target_table_devices.h +cassert +- +map +- +vector +- +connection_id.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/connection_id.h +connector_base.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/connector_base.h +event.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/event.h +nest_types.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/nest_types.h +arraydatum.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/arraydatum.h +dictdatum.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/dictdatum.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/target_table_devices_impl.h +connector_base.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/connector_base.h +kernel_manager.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/kernel_manager.h +model_manager.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/model_manager.h +node.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/node.h +target_table_devices.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/target_table_devices.h +vp_manager_impl.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/vp_manager_impl.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/tarrayobj.h +cstddef +- +typeinfo +- +token.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/token.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/token.h +iomanip +- +iostream +- +string +- +typeinfo +- +vector +- +config.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/config.h +datum.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/datum.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/tokenarray.h +algorithm +- +cstddef +- +typeinfo +- +vector +- +sliexceptions.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/sliexceptions.h +tarrayobj.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/tarrayobj.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/tokenstack.h +tarrayobj.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/tarrayobj.h +token.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/token.h +tokenarray.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/tokenarray.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/tokenutils.h +string +- +config.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/config.h +namedatum.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/namedatum.h +sliexceptions.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/sliexceptions.h +token.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/token.h + +/home/pedroernesto/anaconda3/build/NEST/include/nest/vector_util.h +vector +- +cstddef +- + +/home/pedroernesto/anaconda3/build/NEST/include/nest/vp_manager.h +manager_interface.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/manager_interface.h +nest_types.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/nest_types.h +dictdatum.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/dictdatum.h +omp.h +- + +/home/pedroernesto/anaconda3/build/NEST/include/nest/vp_manager_impl.h +vp_manager.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/vp_manager.h +kernel_manager.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/kernel_manager.h +mpi_manager.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/mpi_manager.h +mpi_manager_impl.h +/home/pedroernesto/anaconda3/build/NEST/include/nest/mpi_manager_impl.h + +/home/pedroernesto/anaconda3/include/boost/config.hpp +boost/config/user.hpp +- +boost/config/detail/select_compiler_config.hpp +- +boost/config/detail/select_stdlib_config.hpp +- +boost/config/detail/select_platform_config.hpp +- +boost/config/detail/suffix.hpp +- + +/home/pedroernesto/anaconda3/include/boost/config/compiler/borland.hpp +climits +- +cwchar +- +limits.h +- +wchar.h +- +cstring +- +errno.h +- +float.h +- + +/home/pedroernesto/anaconda3/include/boost/config/compiler/clang.hpp + +/home/pedroernesto/anaconda3/include/boost/config/compiler/codegear.hpp +cstring +- +errno.h +- + +/home/pedroernesto/anaconda3/include/boost/config/compiler/comeau.hpp +boost/config/compiler/common_edg.hpp +- + +/home/pedroernesto/anaconda3/include/boost/config/compiler/common_edg.hpp + +/home/pedroernesto/anaconda3/include/boost/config/compiler/compaq_cxx.hpp +boost/config/compiler/common_edg.hpp +- + +/home/pedroernesto/anaconda3/include/boost/config/compiler/cray.hpp +boost/config/compiler/common_edg.hpp +- + +/home/pedroernesto/anaconda3/include/boost/config/compiler/digitalmars.hpp +cstddef +- + +/home/pedroernesto/anaconda3/include/boost/config/compiler/gcc.hpp +cstddef +- +stddef.h +- + +/home/pedroernesto/anaconda3/include/boost/config/compiler/gcc_xml.hpp + +/home/pedroernesto/anaconda3/include/boost/config/compiler/greenhills.hpp +boost/config/compiler/common_edg.hpp +- + +/home/pedroernesto/anaconda3/include/boost/config/compiler/hp_acc.hpp +boost/config/compiler/common_edg.hpp +- + +/home/pedroernesto/anaconda3/include/boost/config/compiler/intel.hpp +boost/config/compiler/visualc.hpp +- +boost/config/compiler/gcc.hpp +- +boost/config/compiler/common_edg.hpp +- +cwchar +- + +/home/pedroernesto/anaconda3/include/boost/config/compiler/kai.hpp +boost/config/compiler/common_edg.hpp +- + +/home/pedroernesto/anaconda3/include/boost/config/compiler/metrowerks.hpp + +/home/pedroernesto/anaconda3/include/boost/config/compiler/mpw.hpp + +/home/pedroernesto/anaconda3/include/boost/config/compiler/nvcc.hpp + +/home/pedroernesto/anaconda3/include/boost/config/compiler/pathscale.hpp +boost/config/compiler/clang.hpp +/home/pedroernesto/anaconda3/include/boost/config/compiler/boost/config/compiler/clang.hpp + +/home/pedroernesto/anaconda3/include/boost/config/compiler/pgi.hpp +boost/config/compiler/gcc.hpp +- + +/home/pedroernesto/anaconda3/include/boost/config/compiler/sgi_mipspro.hpp +boost/config/compiler/common_edg.hpp +- + +/home/pedroernesto/anaconda3/include/boost/config/compiler/sunpro_cc.hpp + +/home/pedroernesto/anaconda3/include/boost/config/compiler/vacpp.hpp + +/home/pedroernesto/anaconda3/include/boost/config/compiler/visualc.hpp +boost/config/pragma_message.hpp +- + +/home/pedroernesto/anaconda3/include/boost/config/compiler/xlcpp.hpp + +/home/pedroernesto/anaconda3/include/boost/config/compiler/xlcpp_zos.hpp +features.h +- + +/home/pedroernesto/anaconda3/include/boost/config/detail/posix_features.hpp +unistd.h +- + +/home/pedroernesto/anaconda3/include/boost/config/detail/select_compiler_config.hpp +boost/config/compiler/nvcc.hpp +/home/pedroernesto/anaconda3/include/boost/config/detail/boost/config/compiler/nvcc.hpp +boost/config/compiler/gcc_xml.hpp +- +boost/config/compiler/cray.hpp +- +boost/config/compiler/comeau.hpp +- +boost/config/compiler/pathscale.hpp +- +boost/config/compiler/intel.hpp +- +boost/config/compiler/clang.hpp +- +boost/config/compiler/digitalmars.hpp +- +boost/config/compiler/gcc.hpp +- +boost/config/compiler/kai.hpp +- +boost/config/compiler/sgi_mipspro.hpp +- +boost/config/compiler/compaq_cxx.hpp +- +boost/config/compiler/greenhills.hpp +- +boost/config/compiler/codegear.hpp +- +boost/config/compiler/borland.hpp +- +boost/config/compiler/metrowerks.hpp +- +boost/config/compiler/sunpro_cc.hpp +- +boost/config/compiler/hp_acc.hpp +- +boost/config/compiler/mpw.hpp +- +boost/config/compiler/xlcpp_zos.hpp +- +boost/config/compiler/xlcpp.hpp +- +boost/config/compiler/vacpp.hpp +- +boost/config/compiler/pgi.hpp +- +boost/config/compiler/visualc.hpp +- + +/home/pedroernesto/anaconda3/include/boost/config/detail/select_platform_config.hpp +boost/config/detail/posix_features.hpp +- +boost/config/platform/linux.hpp +/home/pedroernesto/anaconda3/include/boost/config/detail/boost/config/platform/linux.hpp +boost/config/platform/bsd.hpp +/home/pedroernesto/anaconda3/include/boost/config/detail/boost/config/platform/bsd.hpp +boost/config/platform/solaris.hpp +/home/pedroernesto/anaconda3/include/boost/config/detail/boost/config/platform/solaris.hpp +boost/config/platform/irix.hpp +/home/pedroernesto/anaconda3/include/boost/config/detail/boost/config/platform/irix.hpp +boost/config/platform/hpux.hpp +/home/pedroernesto/anaconda3/include/boost/config/detail/boost/config/platform/hpux.hpp +boost/config/platform/cygwin.hpp +/home/pedroernesto/anaconda3/include/boost/config/detail/boost/config/platform/cygwin.hpp +boost/config/platform/win32.hpp +/home/pedroernesto/anaconda3/include/boost/config/detail/boost/config/platform/win32.hpp +boost/config/platform/beos.hpp +/home/pedroernesto/anaconda3/include/boost/config/detail/boost/config/platform/beos.hpp +boost/config/platform/macos.hpp +/home/pedroernesto/anaconda3/include/boost/config/detail/boost/config/platform/macos.hpp +boost/config/platform/zos.hpp +/home/pedroernesto/anaconda3/include/boost/config/detail/boost/config/platform/zos.hpp +boost/config/platform/aix.hpp +/home/pedroernesto/anaconda3/include/boost/config/detail/boost/config/platform/aix.hpp +boost/config/platform/amigaos.hpp +/home/pedroernesto/anaconda3/include/boost/config/detail/boost/config/platform/amigaos.hpp +boost/config/platform/qnxnto.hpp +/home/pedroernesto/anaconda3/include/boost/config/detail/boost/config/platform/qnxnto.hpp +boost/config/platform/vxworks.hpp +/home/pedroernesto/anaconda3/include/boost/config/detail/boost/config/platform/vxworks.hpp +boost/config/platform/symbian.hpp +/home/pedroernesto/anaconda3/include/boost/config/detail/boost/config/platform/symbian.hpp +boost/config/platform/cray.hpp +/home/pedroernesto/anaconda3/include/boost/config/detail/boost/config/platform/cray.hpp +boost/config/platform/vms.hpp +/home/pedroernesto/anaconda3/include/boost/config/detail/boost/config/platform/vms.hpp +boost/config/detail/posix_features.hpp +- + +/home/pedroernesto/anaconda3/include/boost/config/detail/select_stdlib_config.hpp +cstddef +- +stddef.h +- +utility +- +boost/config/stdlib/stlport.hpp +/home/pedroernesto/anaconda3/include/boost/config/detail/boost/config/stdlib/stlport.hpp +boost/config/stdlib/libcomo.hpp +/home/pedroernesto/anaconda3/include/boost/config/detail/boost/config/stdlib/libcomo.hpp +boost/config/stdlib/roguewave.hpp +/home/pedroernesto/anaconda3/include/boost/config/detail/boost/config/stdlib/roguewave.hpp +boost/config/stdlib/libcpp.hpp +/home/pedroernesto/anaconda3/include/boost/config/detail/boost/config/stdlib/libcpp.hpp +boost/config/stdlib/libstdcpp3.hpp +/home/pedroernesto/anaconda3/include/boost/config/detail/boost/config/stdlib/libstdcpp3.hpp +boost/config/stdlib/sgi.hpp +/home/pedroernesto/anaconda3/include/boost/config/detail/boost/config/stdlib/sgi.hpp +boost/config/stdlib/msl.hpp +/home/pedroernesto/anaconda3/include/boost/config/detail/boost/config/stdlib/msl.hpp +boost/config/stdlib/xlcpp_zos.hpp +/home/pedroernesto/anaconda3/include/boost/config/detail/boost/config/stdlib/xlcpp_zos.hpp +boost/config/stdlib/vacpp.hpp +/home/pedroernesto/anaconda3/include/boost/config/detail/boost/config/stdlib/vacpp.hpp +boost/config/stdlib/modena.hpp +/home/pedroernesto/anaconda3/include/boost/config/detail/boost/config/stdlib/modena.hpp +boost/config/stdlib/dinkumware.hpp +/home/pedroernesto/anaconda3/include/boost/config/detail/boost/config/stdlib/dinkumware.hpp + +/home/pedroernesto/anaconda3/include/boost/config/detail/suffix.hpp +limits.h +- +cstddef +- +typeinfo +- +boost/config/helper_macros.hpp +- + +/home/pedroernesto/anaconda3/include/boost/config/helper_macros.hpp + +/home/pedroernesto/anaconda3/include/boost/config/no_tr1/utility.hpp +utility +- + +/home/pedroernesto/anaconda3/include/boost/config/platform/aix.hpp +boost/config/detail/posix_features.hpp +- + +/home/pedroernesto/anaconda3/include/boost/config/platform/amigaos.hpp + +/home/pedroernesto/anaconda3/include/boost/config/platform/beos.hpp +boost/config/detail/posix_features.hpp +- + +/home/pedroernesto/anaconda3/include/boost/config/platform/bsd.hpp +boost/config/detail/posix_features.hpp +- + +/home/pedroernesto/anaconda3/include/boost/config/platform/cray.hpp +boost/config/detail/posix_features.hpp +- + +/home/pedroernesto/anaconda3/include/boost/config/platform/cygwin.hpp +unistd.h +- +sys/types.h +- +pthread.h +- +boost/config/detail/posix_features.hpp +- + +/home/pedroernesto/anaconda3/include/boost/config/platform/hpux.hpp +boost/config/detail/posix_features.hpp +- + +/home/pedroernesto/anaconda3/include/boost/config/platform/irix.hpp +boost/config/detail/posix_features.hpp +- + +/home/pedroernesto/anaconda3/include/boost/config/platform/linux.hpp +cstdlib +- +stdlib.h +- +boost/config/detail/posix_features.hpp +- + +/home/pedroernesto/anaconda3/include/boost/config/platform/macos.hpp +boost/config/detail/posix_features.hpp +- + +/home/pedroernesto/anaconda3/include/boost/config/platform/qnxnto.hpp +boost/config/detail/posix_features.hpp +- + +/home/pedroernesto/anaconda3/include/boost/config/platform/solaris.hpp +boost/config/detail/posix_features.hpp +- + +/home/pedroernesto/anaconda3/include/boost/config/platform/symbian.hpp +cstdlib +- +stdlib.h +- +boost/config/detail/posix_features.hpp +- +sys/endian.h +- + +/home/pedroernesto/anaconda3/include/boost/config/platform/vms.hpp + +/home/pedroernesto/anaconda3/include/boost/config/platform/vxworks.hpp +version.h +- +time.h +- +sysLib.h +- +cstdint +- +sys/time.h +- +ioLib.h +- +tickLib.h +- +signal.h +- +boost/config/detail/posix_features.hpp +- + +/home/pedroernesto/anaconda3/include/boost/config/platform/win32.hpp +_mingw.h +- + +/home/pedroernesto/anaconda3/include/boost/config/platform/zos.hpp +features.h +- + +/home/pedroernesto/anaconda3/include/boost/config/pragma_message.hpp +boost/config/helper_macros.hpp +- + +/home/pedroernesto/anaconda3/include/boost/config/stdlib/dinkumware.hpp +boost/config/no_tr1/utility.hpp +- +exception +- +typeinfo +- + +/home/pedroernesto/anaconda3/include/boost/config/stdlib/libcomo.hpp +boost/config/no_tr1/utility.hpp +- + +/home/pedroernesto/anaconda3/include/boost/config/stdlib/libcpp.hpp +ciso646 +- + +/home/pedroernesto/anaconda3/include/boost/config/stdlib/libstdcpp3.hpp +unistd.h +- + +/home/pedroernesto/anaconda3/include/boost/config/stdlib/modena.hpp +boost/config/no_tr1/utility.hpp +- + +/home/pedroernesto/anaconda3/include/boost/config/stdlib/msl.hpp +boost/config/no_tr1/utility.hpp +- +cstddef +- +boost/config/detail/posix_features.hpp +- + +/home/pedroernesto/anaconda3/include/boost/config/stdlib/roguewave.hpp +boost/config/no_tr1/utility.hpp +- + +/home/pedroernesto/anaconda3/include/boost/config/stdlib/sgi.hpp +boost/config/no_tr1/utility.hpp +- +unistd.h +- +string +- + +/home/pedroernesto/anaconda3/include/boost/config/stdlib/stlport.hpp +cstddef +- +unistd.h +- +stdlib.h +- +string.h +- +algorithm +- + +/home/pedroernesto/anaconda3/include/boost/config/stdlib/vacpp.hpp +unistd.h +- + +/home/pedroernesto/anaconda3/include/boost/config/stdlib/xlcpp_zos.hpp + +/home/pedroernesto/anaconda3/include/boost/config/user.hpp + +/home/pedroernesto/anaconda3/include/boost/config/workaround.hpp +boost/config.hpp +- + +/home/pedroernesto/anaconda3/include/boost/core/addressof.hpp +boost/config.hpp +- +boost/config/workaround.hpp +- +cstddef +- + +/home/pedroernesto/anaconda3/include/boost/core/enable_if.hpp +boost/config.hpp +/home/pedroernesto/anaconda3/include/boost/core/boost/config.hpp + +/home/pedroernesto/anaconda3/include/boost/core/noncopyable.hpp +boost/config.hpp +- + +/home/pedroernesto/anaconda3/include/boost/core/ref.hpp +boost/config.hpp +- +boost/config/workaround.hpp +- +boost/core/addressof.hpp +- + +/home/pedroernesto/anaconda3/include/boost/core/swap.hpp +utility +- +algorithm +- +cstddef +- +boost/config.hpp +- + +/home/pedroernesto/anaconda3/include/boost/cstdint.hpp +boost/config.hpp +- +inttypes.h +- +inttypes.h +- +stdint.h +- +inttypes.h +- +boost/limits.hpp +- +limits.h +- +stddef.h +- +limits.h +- + +/home/pedroernesto/anaconda3/include/boost/detail/indirect_traits.hpp +boost/type_traits/is_function.hpp +- +boost/type_traits/is_reference.hpp +- +boost/type_traits/is_pointer.hpp +- +boost/type_traits/is_class.hpp +- +boost/type_traits/is_const.hpp +- +boost/type_traits/is_volatile.hpp +- +boost/type_traits/is_member_function_pointer.hpp +- +boost/type_traits/is_member_pointer.hpp +- +boost/type_traits/remove_cv.hpp +- +boost/type_traits/remove_reference.hpp +- +boost/type_traits/remove_pointer.hpp +- +boost/detail/workaround.hpp +- +boost/mpl/eval_if.hpp +- +boost/mpl/if.hpp +- +boost/mpl/bool.hpp +- +boost/mpl/and.hpp +- +boost/mpl/not.hpp +- +boost/mpl/aux_/lambda_support.hpp +- + +/home/pedroernesto/anaconda3/include/boost/detail/workaround.hpp +boost/config/workaround.hpp +- + +/home/pedroernesto/anaconda3/include/boost/iterator/detail/config_def.hpp +boost/config.hpp +- +boost/detail/workaround.hpp +- +boost/type_traits/is_convertible.hpp +- + +/home/pedroernesto/anaconda3/include/boost/iterator/detail/config_undef.hpp + +/home/pedroernesto/anaconda3/include/boost/iterator/detail/enable_if.hpp +boost/detail/workaround.hpp +- +boost/mpl/identity.hpp +- +boost/iterator/detail/config_def.hpp +- +boost/iterator/detail/config_undef.hpp +- + +/home/pedroernesto/anaconda3/include/boost/iterator/detail/facade_iterator_category.hpp +boost/iterator/iterator_categories.hpp +- +boost/mpl/or.hpp +- +boost/mpl/and.hpp +- +boost/mpl/if.hpp +- +boost/mpl/eval_if.hpp +- +boost/mpl/identity.hpp +- +boost/mpl/assert.hpp +- +boost/type_traits/is_same.hpp +- +boost/type_traits/is_const.hpp +- +boost/type_traits/is_reference.hpp +- +boost/type_traits/is_convertible.hpp +- +boost/type_traits/is_same.hpp +- +boost/iterator/detail/config_def.hpp +- +boost/detail/indirect_traits.hpp +- +boost/iterator/detail/config_undef.hpp +- + +/home/pedroernesto/anaconda3/include/boost/iterator/interoperable.hpp +boost/mpl/bool.hpp +- +boost/mpl/or.hpp +- +boost/type_traits/is_convertible.hpp +- +boost/iterator/detail/config_def.hpp +- +boost/iterator/detail/config_undef.hpp +- + +/home/pedroernesto/anaconda3/include/boost/iterator/iterator_adaptor.hpp +boost/static_assert.hpp +- +boost/iterator/iterator_categories.hpp +- +boost/iterator/iterator_facade.hpp +- +boost/iterator/detail/enable_if.hpp +- +boost/mpl/and.hpp +- +boost/mpl/not.hpp +- +boost/mpl/or.hpp +- +boost/type_traits/is_same.hpp +- +boost/type_traits/is_convertible.hpp +- +boost/type_traits/remove_reference.hpp +- +boost/type_traits/add_reference.hpp +- +boost/iterator/detail/config_def.hpp +- +boost/iterator/iterator_traits.hpp +- +boost/iterator/detail/config_undef.hpp +- + +/home/pedroernesto/anaconda3/include/boost/iterator/iterator_categories.hpp +boost/config.hpp +- +boost/iterator/detail/config_def.hpp +- +boost/detail/workaround.hpp +- +boost/mpl/eval_if.hpp +- +boost/mpl/identity.hpp +- +boost/mpl/placeholders.hpp +- +boost/mpl/aux_/lambda_support.hpp +- +boost/type_traits/is_convertible.hpp +- +boost/static_assert.hpp +- +iterator +- +boost/iterator/detail/config_undef.hpp +- + +/home/pedroernesto/anaconda3/include/boost/iterator/iterator_facade.hpp +boost/config.hpp +- +boost/iterator/interoperable.hpp +- +boost/iterator/iterator_traits.hpp +- +boost/iterator/iterator_categories.hpp +- +boost/iterator/detail/facade_iterator_category.hpp +- +boost/iterator/detail/enable_if.hpp +- +boost/static_assert.hpp +- +boost/utility/addressof.hpp +- +boost/type_traits/is_same.hpp +- +boost/type_traits/add_const.hpp +- +boost/type_traits/add_pointer.hpp +- +boost/type_traits/add_lvalue_reference.hpp +- +boost/type_traits/remove_const.hpp +- +boost/type_traits/remove_reference.hpp +- +boost/type_traits/is_convertible.hpp +- +boost/type_traits/is_pod.hpp +- +boost/mpl/eval_if.hpp +- +boost/mpl/if.hpp +- +boost/mpl/or.hpp +- +boost/mpl/and.hpp +- +boost/mpl/not.hpp +- +boost/mpl/always.hpp +- +boost/mpl/apply.hpp +- +boost/mpl/identity.hpp +- +cstddef +- +boost/iterator/detail/config_def.hpp +- +boost/iterator/detail/config_undef.hpp +- + +/home/pedroernesto/anaconda3/include/boost/iterator/iterator_traits.hpp +boost/detail/workaround.hpp +- +iterator +- + +/home/pedroernesto/anaconda3/include/boost/limits.hpp +boost/config.hpp +- +limits +- +climits +- + +/home/pedroernesto/anaconda3/include/boost/mpl/always.hpp +boost/mpl/aux_/preprocessor/default_params.hpp +- +boost/mpl/aux_/na.hpp +- +boost/mpl/aux_/arity_spec.hpp +- + +/home/pedroernesto/anaconda3/include/boost/mpl/and.hpp +boost/mpl/aux_/config/use_preprocessed.hpp +- +boost/mpl/bool.hpp +- +boost/mpl/aux_/nested_type_wknd.hpp +- +boost/mpl/aux_/na_spec.hpp +- +boost/mpl/aux_/lambda_support.hpp +- +boost/mpl/aux_/include_preprocessed.hpp +- +boost/mpl/aux_/logical_op.hpp +- + +/home/pedroernesto/anaconda3/include/boost/mpl/apply.hpp +boost/mpl/apply_fwd.hpp +- +boost/mpl/apply_wrap.hpp +- +boost/mpl/placeholders.hpp +- +boost/mpl/lambda.hpp +- +boost/mpl/aux_/na.hpp +- +boost/mpl/aux_/lambda_support.hpp +- +boost/mpl/aux_/config/use_preprocessed.hpp +- +boost/mpl/aux_/include_preprocessed.hpp +- +boost/mpl/limits/arity.hpp +- +boost/mpl/aux_/preprocessor/params.hpp +- +boost/mpl/aux_/preprocessor/default_params.hpp +- +boost/mpl/aux_/preprocessor/partial_spec_params.hpp +- +boost/mpl/aux_/preprocessor/enum.hpp +- +boost/mpl/aux_/config/lambda.hpp +- +boost/mpl/aux_/config/dtp.hpp +- +boost/mpl/aux_/nttp_decl.hpp +- +boost/mpl/aux_/config/eti.hpp +- +boost/mpl/aux_/config/msvc.hpp +- +boost/mpl/aux_/config/workaround.hpp +- +boost/preprocessor/comma_if.hpp +- +boost/preprocessor/inc.hpp +- +boost/preprocessor/iterate.hpp +- +boost/preprocessor/cat.hpp +- +boost/mpl/aux_/count_args.hpp +- + +/home/pedroernesto/anaconda3/include/boost/mpl/apply_fwd.hpp +boost/mpl/aux_/na.hpp +- +boost/mpl/aux_/config/use_preprocessed.hpp +- +boost/mpl/aux_/include_preprocessed.hpp +- +boost/mpl/limits/arity.hpp +- +boost/mpl/aux_/preprocessor/params.hpp +- +boost/mpl/aux_/preprocessor/default_params.hpp +- +boost/mpl/aux_/config/ctps.hpp +- +boost/mpl/aux_/nttp_decl.hpp +- +boost/preprocessor/comma_if.hpp +- +boost/preprocessor/iterate.hpp +- +boost/preprocessor/cat.hpp +- + +/home/pedroernesto/anaconda3/include/boost/mpl/apply_wrap.hpp +boost/mpl/aux_/arity.hpp +- +boost/mpl/aux_/has_apply.hpp +- +boost/mpl/aux_/na.hpp +- +boost/mpl/aux_/msvc_never_true.hpp +- +boost/mpl/aux_/config/use_preprocessed.hpp +- +boost/mpl/aux_/include_preprocessed.hpp +- +boost/mpl/limits/arity.hpp +- +boost/mpl/aux_/preprocessor/params.hpp +- +boost/mpl/aux_/preprocessor/enum.hpp +- +boost/mpl/aux_/preprocessor/add.hpp +- +boost/mpl/aux_/config/bcc.hpp +- +boost/mpl/aux_/config/ctps.hpp +- +boost/mpl/aux_/config/dtp.hpp +- +boost/mpl/aux_/config/eti.hpp +- +boost/mpl/aux_/config/msvc.hpp +- +boost/mpl/aux_/config/workaround.hpp +- +boost/preprocessor/comma_if.hpp +- +boost/preprocessor/logical/and.hpp +- +boost/preprocessor/inc.hpp +- +boost/preprocessor/iterate.hpp +- +boost/mpl/aux_/msvc_dtw.hpp +- + +/home/pedroernesto/anaconda3/include/boost/mpl/arg.hpp +boost/mpl/arg_fwd.hpp +- +boost/mpl/aux_/na.hpp +- +boost/mpl/aux_/na_assert.hpp +- +boost/mpl/aux_/arity_spec.hpp +- +boost/mpl/aux_/arg_typedef.hpp +- +boost/mpl/aux_/config/static_constant.hpp +- +boost/mpl/aux_/config/use_preprocessed.hpp +- +boost/mpl/aux_/include_preprocessed.hpp +- +boost/mpl/limits/arity.hpp +- +boost/mpl/aux_/preprocessor/default_params.hpp +- +boost/mpl/aux_/preprocessor/params.hpp +- +boost/mpl/aux_/config/lambda.hpp +- +boost/mpl/aux_/config/dtp.hpp +- +boost/mpl/aux_/nttp_decl.hpp +- +boost/preprocessor/iterate.hpp +- +boost/preprocessor/inc.hpp +- +boost/preprocessor/cat.hpp +- + +/home/pedroernesto/anaconda3/include/boost/mpl/arg_fwd.hpp +boost/mpl/aux_/adl_barrier.hpp +- +boost/mpl/aux_/nttp_decl.hpp +- + +/home/pedroernesto/anaconda3/include/boost/mpl/assert.hpp +boost/mpl/not.hpp +- +boost/mpl/aux_/value_wknd.hpp +- +boost/mpl/aux_/nested_type_wknd.hpp +- +boost/mpl/aux_/yes_no.hpp +- +boost/mpl/aux_/na.hpp +- +boost/mpl/aux_/adl_barrier.hpp +- +boost/mpl/aux_/config/nttp.hpp +- +boost/mpl/aux_/config/dtp.hpp +- +boost/mpl/aux_/config/gcc.hpp +- +boost/mpl/aux_/config/msvc.hpp +- +boost/mpl/aux_/config/gpu.hpp +- +boost/mpl/aux_/config/static_constant.hpp +- +boost/mpl/aux_/config/pp_counter.hpp +- +boost/mpl/aux_/config/workaround.hpp +- +boost/preprocessor/cat.hpp +- +boost/config.hpp +- +cstddef +- +boost/mpl/if.hpp +- + +/home/pedroernesto/anaconda3/include/boost/mpl/aux_/adl_barrier.hpp +boost/mpl/aux_/config/adl.hpp +- +boost/mpl/aux_/config/gcc.hpp +- +boost/mpl/aux_/config/workaround.hpp +- + +/home/pedroernesto/anaconda3/include/boost/mpl/aux_/arg_typedef.hpp +boost/mpl/aux_/config/lambda.hpp +- +boost/mpl/aux_/config/workaround.hpp +- + +/home/pedroernesto/anaconda3/include/boost/mpl/aux_/arity.hpp +boost/mpl/aux_/config/dtp.hpp +- +boost/mpl/aux_/nttp_decl.hpp +- +boost/mpl/aux_/config/static_constant.hpp +- + +/home/pedroernesto/anaconda3/include/boost/mpl/aux_/arity_spec.hpp +boost/mpl/int.hpp +- +boost/mpl/limits/arity.hpp +- +boost/mpl/aux_/config/dtp.hpp +- +boost/mpl/aux_/preprocessor/params.hpp +- +boost/mpl/aux_/arity.hpp +- +boost/mpl/aux_/template_arity_fwd.hpp +- +boost/mpl/aux_/config/ttp.hpp +- +boost/mpl/aux_/config/lambda.hpp +- +boost/mpl/aux_/config/static_constant.hpp +- + +/home/pedroernesto/anaconda3/include/boost/mpl/aux_/common_name_wknd.hpp +boost/mpl/aux_/config/workaround.hpp +- + +/home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/adl.hpp +boost/mpl/aux_/config/msvc.hpp +- +boost/mpl/aux_/config/intel.hpp +- +boost/mpl/aux_/config/gcc.hpp +- +boost/mpl/aux_/config/workaround.hpp +- + +/home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/arrays.hpp +boost/mpl/aux_/config/msvc.hpp +- +boost/mpl/aux_/config/workaround.hpp +- + +/home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/bcc.hpp +boost/mpl/aux_/config/workaround.hpp +- + +/home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/bind.hpp +boost/mpl/aux_/config/msvc.hpp +- +boost/mpl/aux_/config/workaround.hpp +- + +/home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/compiler.hpp +boost/mpl/aux_/config/dtp.hpp +- +boost/mpl/aux_/config/ttp.hpp +- +boost/mpl/aux_/config/ctps.hpp +- +boost/mpl/aux_/config/msvc.hpp +- +boost/mpl/aux_/config/gcc.hpp +- +boost/mpl/aux_/config/workaround.hpp +- + +/home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/ctps.hpp +boost/mpl/aux_/config/workaround.hpp +- +boost/config.hpp +- + +/home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/dmc_ambiguous_ctps.hpp +boost/mpl/aux_/config/workaround.hpp +- + +/home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/dtp.hpp +boost/mpl/aux_/config/workaround.hpp +- + +/home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/eti.hpp +boost/mpl/aux_/config/msvc.hpp +- +boost/mpl/aux_/config/workaround.hpp +- + +/home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/gcc.hpp + +/home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/gpu.hpp +boost/config.hpp +- + +/home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/has_apply.hpp +boost/mpl/aux_/config/has_xxx.hpp +- +boost/mpl/aux_/config/msvc.hpp +- +boost/mpl/aux_/config/workaround.hpp +- + +/home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/has_xxx.hpp +boost/mpl/aux_/config/overload_resolution.hpp +- +boost/mpl/aux_/config/workaround.hpp +- + +/home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/integral.hpp +boost/mpl/aux_/config/msvc.hpp +- +boost/mpl/aux_/config/workaround.hpp +- + +/home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/intel.hpp +boost/config.hpp +- + +/home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/lambda.hpp +boost/mpl/aux_/config/ttp.hpp +- +boost/mpl/aux_/config/ctps.hpp +- + +/home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/msvc.hpp +boost/config.hpp +- + +/home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/msvc_typename.hpp +boost/mpl/aux_/config/msvc.hpp +- +boost/mpl/aux_/config/workaround.hpp +- + +/home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/nttp.hpp +boost/mpl/aux_/config/msvc.hpp +- +boost/mpl/aux_/config/workaround.hpp +- + +/home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/overload_resolution.hpp +boost/mpl/aux_/config/workaround.hpp +- + +/home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/pp_counter.hpp +boost/mpl/aux_/config/msvc.hpp +- + +/home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/preprocessor.hpp +boost/mpl/aux_/config/workaround.hpp +- + +/home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/static_constant.hpp +boost/config.hpp +- + +/home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/ttp.hpp +boost/mpl/aux_/config/msvc.hpp +- +boost/mpl/aux_/config/gcc.hpp +- +boost/mpl/aux_/config/workaround.hpp +- + +/home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/use_preprocessed.hpp + +/home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/workaround.hpp +boost/detail/workaround.hpp +- + +/home/pedroernesto/anaconda3/include/boost/mpl/aux_/count_args.hpp +boost/preprocessor/expr_if.hpp +- +boost/preprocessor/inc.hpp +- +boost/preprocessor/cat.hpp +- +boost/mpl/aux_/preprocessor/repeat.hpp +- +boost/mpl/aux_/preprocessor/params.hpp +- +boost/preprocessor/enum_shifted_params.hpp +- +boost/preprocessor/repeat.hpp +- +boost/preprocessor/inc.hpp +- + +/home/pedroernesto/anaconda3/include/boost/mpl/aux_/full_lambda.hpp +boost/mpl/lambda_fwd.hpp +- +boost/mpl/bind_fwd.hpp +- +boost/mpl/protect.hpp +- +boost/mpl/quote.hpp +- +boost/mpl/arg.hpp +- +boost/mpl/bool.hpp +- +boost/mpl/int_fwd.hpp +- +boost/mpl/aux_/template_arity.hpp +- +boost/mpl/aux_/na_spec.hpp +- +boost/mpl/aux_/config/ttp.hpp +- +boost/mpl/if.hpp +- +boost/mpl/aux_/lambda_arity_param.hpp +- +boost/mpl/aux_/config/use_preprocessed.hpp +- +boost/mpl/aux_/include_preprocessed.hpp +- +boost/mpl/limits/arity.hpp +- +boost/mpl/aux_/preprocessor/default_params.hpp +- +boost/mpl/aux_/preprocessor/params.hpp +- +boost/mpl/aux_/preprocessor/enum.hpp +- +boost/mpl/aux_/preprocessor/repeat.hpp +- +boost/mpl/aux_/config/dmc_ambiguous_ctps.hpp +- +boost/preprocessor/iterate.hpp +- +boost/preprocessor/comma_if.hpp +- +boost/preprocessor/inc.hpp +- +boost/preprocessor/cat.hpp +- + +/home/pedroernesto/anaconda3/include/boost/mpl/aux_/has_apply.hpp +boost/mpl/has_xxx.hpp +- +boost/mpl/aux_/config/has_apply.hpp +- + +/home/pedroernesto/anaconda3/include/boost/mpl/aux_/has_rebind.hpp +boost/mpl/aux_/config/msvc.hpp +- +boost/mpl/aux_/config/intel.hpp +- +boost/mpl/aux_/config/workaround.hpp +- +boost/mpl/has_xxx.hpp +- +boost/mpl/has_xxx.hpp +- +boost/mpl/if.hpp +- +boost/mpl/bool.hpp +- +boost/mpl/aux_/msvc_is_class.hpp +- +boost/mpl/if.hpp +- +boost/mpl/bool.hpp +- +boost/mpl/aux_/yes_no.hpp +- +boost/mpl/aux_/config/static_constant.hpp +- +boost/type_traits/is_class.hpp +- +boost/mpl/aux_/type_wrapper.hpp +- +boost/mpl/aux_/yes_no.hpp +- +boost/mpl/aux_/config/static_constant.hpp +- + +/home/pedroernesto/anaconda3/include/boost/mpl/aux_/has_type.hpp +boost/mpl/has_xxx.hpp +- + +/home/pedroernesto/anaconda3/include/boost/mpl/aux_/include_preprocessed.hpp +boost/mpl/aux_/config/compiler.hpp +- +boost/mpl/aux_/config/preprocessor.hpp +- +boost/mpl/aux_/config/workaround.hpp +- +boost/preprocessor/cat.hpp +- +boost/preprocessor/stringize.hpp +- + +/home/pedroernesto/anaconda3/include/boost/mpl/aux_/integral_wrapper.hpp +boost/mpl/integral_c_tag.hpp +- +boost/mpl/aux_/static_cast.hpp +- +boost/mpl/aux_/nttp_decl.hpp +- +boost/mpl/aux_/config/static_constant.hpp +- +boost/mpl/aux_/config/workaround.hpp +- +boost/preprocessor/cat.hpp +- + +/home/pedroernesto/anaconda3/include/boost/mpl/aux_/lambda_arity_param.hpp +boost/mpl/aux_/config/ttp.hpp +- + +/home/pedroernesto/anaconda3/include/boost/mpl/aux_/lambda_no_ctps.hpp +boost/mpl/lambda_fwd.hpp +- +boost/mpl/bind_fwd.hpp +- +boost/mpl/protect.hpp +- +boost/mpl/is_placeholder.hpp +- +boost/mpl/if.hpp +- +boost/mpl/identity.hpp +- +boost/mpl/bool.hpp +- +boost/mpl/aux_/na_spec.hpp +- +boost/mpl/aux_/lambda_support.hpp +- +boost/mpl/aux_/template_arity.hpp +- +boost/mpl/aux_/value_wknd.hpp +- +boost/mpl/aux_/config/use_preprocessed.hpp +- +boost/mpl/aux_/include_preprocessed.hpp +- +boost/mpl/limits/arity.hpp +- +boost/mpl/aux_/preprocessor/params.hpp +- +boost/mpl/aux_/preprocessor/default_params.hpp +- +boost/mpl/aux_/preprocessor/repeat.hpp +- +boost/mpl/aux_/preprocessor/enum.hpp +- +boost/mpl/aux_/config/msvc.hpp +- +boost/mpl/aux_/config/workaround.hpp +- +boost/preprocessor/comma_if.hpp +- +boost/preprocessor/iterate.hpp +- +boost/preprocessor/inc.hpp +- +boost/preprocessor/cat.hpp +- + +/home/pedroernesto/anaconda3/include/boost/mpl/aux_/lambda_support.hpp +boost/mpl/aux_/config/lambda.hpp +- +boost/mpl/int_fwd.hpp +- +boost/mpl/aux_/yes_no.hpp +- +boost/mpl/aux_/na_fwd.hpp +- +boost/mpl/aux_/preprocessor/params.hpp +- +boost/mpl/aux_/preprocessor/enum.hpp +- +boost/mpl/aux_/config/msvc.hpp +- +boost/mpl/aux_/config/workaround.hpp +- +boost/preprocessor/tuple/to_list.hpp +- +boost/preprocessor/list/for_each_i.hpp +- +boost/preprocessor/inc.hpp +- +boost/preprocessor/cat.hpp +- + +/home/pedroernesto/anaconda3/include/boost/mpl/aux_/logical_op.hpp +boost/mpl/bool.hpp +- +boost/mpl/aux_/nested_type_wknd.hpp +- +boost/mpl/aux_/na_spec.hpp +- +boost/mpl/aux_/lambda_support.hpp +- +boost/mpl/limits/arity.hpp +- +boost/mpl/aux_/preprocessor/params.hpp +- +boost/mpl/aux_/preprocessor/ext_params.hpp +- +boost/mpl/aux_/preprocessor/def_params_tail.hpp +- +boost/mpl/aux_/preprocessor/enum.hpp +- +boost/mpl/aux_/preprocessor/sub.hpp +- +boost/mpl/aux_/config/ctps.hpp +- +boost/mpl/aux_/config/workaround.hpp +- +boost/preprocessor/dec.hpp +- +boost/preprocessor/inc.hpp +- +boost/preprocessor/cat.hpp +- + +/home/pedroernesto/anaconda3/include/boost/mpl/aux_/msvc_dtw.hpp +boost/mpl/aux_/preprocessor/params.hpp +- + +/home/pedroernesto/anaconda3/include/boost/mpl/aux_/msvc_is_class.hpp +boost/mpl/if.hpp +- +boost/mpl/bool.hpp +- +boost/mpl/aux_/type_wrapper.hpp +- +boost/mpl/aux_/yes_no.hpp +- +boost/type_traits/is_reference.hpp +- + +/home/pedroernesto/anaconda3/include/boost/mpl/aux_/msvc_never_true.hpp +boost/mpl/aux_/config/msvc.hpp +- +boost/mpl/aux_/config/workaround.hpp +- + +/home/pedroernesto/anaconda3/include/boost/mpl/aux_/na.hpp +boost/mpl/bool.hpp +- +boost/mpl/aux_/na_fwd.hpp +- +boost/mpl/aux_/config/msvc.hpp +- +boost/mpl/aux_/config/ctps.hpp +- + +/home/pedroernesto/anaconda3/include/boost/mpl/aux_/na_assert.hpp +boost/mpl/aux_/na.hpp +- +boost/mpl/aux_/config/msvc.hpp +- +boost/mpl/aux_/config/workaround.hpp +- +boost/mpl/assert.hpp +- +boost/static_assert.hpp +- + +/home/pedroernesto/anaconda3/include/boost/mpl/aux_/na_fwd.hpp +boost/mpl/aux_/adl_barrier.hpp +- + +/home/pedroernesto/anaconda3/include/boost/mpl/aux_/na_spec.hpp +boost/mpl/lambda_fwd.hpp +- +boost/mpl/int.hpp +- +boost/mpl/bool.hpp +- +boost/mpl/aux_/na.hpp +- +boost/mpl/aux_/arity.hpp +- +boost/mpl/aux_/template_arity_fwd.hpp +- +boost/mpl/aux_/preprocessor/params.hpp +- +boost/mpl/aux_/preprocessor/enum.hpp +- +boost/mpl/aux_/preprocessor/def_params_tail.hpp +- +boost/mpl/aux_/lambda_arity_param.hpp +- +boost/mpl/aux_/config/dtp.hpp +- +boost/mpl/aux_/config/eti.hpp +- +boost/mpl/aux_/nttp_decl.hpp +- +boost/mpl/aux_/config/ttp.hpp +- +boost/mpl/aux_/config/lambda.hpp +- +boost/mpl/aux_/config/overload_resolution.hpp +- + +/home/pedroernesto/anaconda3/include/boost/mpl/aux_/nested_type_wknd.hpp +boost/mpl/aux_/config/gcc.hpp +- +boost/mpl/aux_/config/workaround.hpp +- + +/home/pedroernesto/anaconda3/include/boost/mpl/aux_/nttp_decl.hpp +boost/mpl/aux_/config/nttp.hpp +- +boost/preprocessor/cat.hpp +- + +/home/pedroernesto/anaconda3/include/boost/mpl/aux_/preprocessor/add.hpp +boost/mpl/aux_/config/preprocessor.hpp +- +boost/mpl/aux_/preprocessor/tuple.hpp +- +boost/preprocessor/cat.hpp +- +boost/preprocessor/arithmetic/add.hpp +- + +/home/pedroernesto/anaconda3/include/boost/mpl/aux_/preprocessor/def_params_tail.hpp +boost/mpl/limits/arity.hpp +- +boost/mpl/aux_/config/dtp.hpp +- +boost/mpl/aux_/config/preprocessor.hpp +- +boost/preprocessor/comma_if.hpp +- +boost/preprocessor/logical/and.hpp +- +boost/preprocessor/identity.hpp +- +boost/preprocessor/empty.hpp +- +boost/mpl/aux_/preprocessor/filter_params.hpp +- +boost/mpl/aux_/preprocessor/sub.hpp +- +boost/preprocessor/arithmetic/add.hpp +- +boost/preprocessor/arithmetic/sub.hpp +- +boost/preprocessor/inc.hpp +- +boost/preprocessor/tuple/elem.hpp +- +boost/preprocessor/repeat.hpp +- +boost/preprocessor/cat.hpp +- + +/home/pedroernesto/anaconda3/include/boost/mpl/aux_/preprocessor/default_params.hpp +boost/mpl/aux_/config/preprocessor.hpp +- +boost/preprocessor/cat.hpp +- +boost/preprocessor/tuple/elem.hpp +- +boost/preprocessor/comma_if.hpp +- +boost/preprocessor/repeat.hpp +- +boost/preprocessor/inc.hpp +- +boost/preprocessor/cat.hpp +- + +/home/pedroernesto/anaconda3/include/boost/mpl/aux_/preprocessor/enum.hpp +boost/mpl/aux_/config/preprocessor.hpp +- +boost/preprocessor/cat.hpp +- +boost/preprocessor/comma_if.hpp +- +boost/preprocessor/repeat.hpp +- + +/home/pedroernesto/anaconda3/include/boost/mpl/aux_/preprocessor/ext_params.hpp +boost/mpl/aux_/config/preprocessor.hpp +- +boost/mpl/aux_/preprocessor/filter_params.hpp +- +boost/mpl/aux_/preprocessor/sub.hpp +- +boost/preprocessor/arithmetic/add.hpp +- +boost/preprocessor/arithmetic/sub.hpp +- +boost/preprocessor/comma_if.hpp +- +boost/preprocessor/repeat.hpp +- +boost/preprocessor/tuple/elem.hpp +- +boost/preprocessor/cat.hpp +- + +/home/pedroernesto/anaconda3/include/boost/mpl/aux_/preprocessor/filter_params.hpp + +/home/pedroernesto/anaconda3/include/boost/mpl/aux_/preprocessor/params.hpp +boost/mpl/aux_/config/preprocessor.hpp +- +boost/preprocessor/cat.hpp +- +boost/preprocessor/comma_if.hpp +- +boost/preprocessor/repeat.hpp +- +boost/preprocessor/inc.hpp +- +boost/preprocessor/cat.hpp +- + +/home/pedroernesto/anaconda3/include/boost/mpl/aux_/preprocessor/partial_spec_params.hpp +boost/mpl/limits/arity.hpp +- +boost/mpl/aux_/preprocessor/params.hpp +- +boost/mpl/aux_/preprocessor/enum.hpp +- +boost/mpl/aux_/preprocessor/sub.hpp +- +boost/preprocessor/comma_if.hpp +- + +/home/pedroernesto/anaconda3/include/boost/mpl/aux_/preprocessor/range.hpp +boost/preprocessor/seq/subseq.hpp +- +boost/preprocessor/repetition/repeat.hpp +- +boost/preprocessor/arithmetic/add.hpp +- + +/home/pedroernesto/anaconda3/include/boost/mpl/aux_/preprocessor/repeat.hpp +boost/mpl/aux_/config/preprocessor.hpp +- +boost/preprocessor/cat.hpp +- +boost/preprocessor/repeat.hpp +- + +/home/pedroernesto/anaconda3/include/boost/mpl/aux_/preprocessor/sub.hpp +boost/mpl/aux_/config/preprocessor.hpp +- +boost/mpl/aux_/preprocessor/tuple.hpp +- +boost/preprocessor/cat.hpp +- +boost/preprocessor/arithmetic/sub.hpp +- + +/home/pedroernesto/anaconda3/include/boost/mpl/aux_/preprocessor/tuple.hpp + +/home/pedroernesto/anaconda3/include/boost/mpl/aux_/static_cast.hpp +boost/mpl/aux_/config/workaround.hpp +- + +/home/pedroernesto/anaconda3/include/boost/mpl/aux_/template_arity.hpp +boost/mpl/aux_/config/ttp.hpp +- +boost/mpl/aux_/config/lambda.hpp +- +boost/mpl/aux_/template_arity_fwd.hpp +- +boost/mpl/int.hpp +- +boost/mpl/aux_/type_wrapper.hpp +- +boost/mpl/aux_/has_rebind.hpp +- +boost/mpl/aux_/config/static_constant.hpp +- +boost/mpl/aux_/config/use_preprocessed.hpp +- +boost/mpl/aux_/include_preprocessed.hpp +- +boost/mpl/limits/arity.hpp +- +boost/mpl/aux_/preprocessor/range.hpp +- +boost/mpl/aux_/preprocessor/repeat.hpp +- +boost/mpl/aux_/preprocessor/params.hpp +- +boost/mpl/aux_/nttp_decl.hpp +- +boost/preprocessor/seq/fold_left.hpp +- +boost/preprocessor/comma_if.hpp +- +boost/preprocessor/iterate.hpp +- +boost/preprocessor/inc.hpp +- +boost/preprocessor/cat.hpp +- +boost/mpl/aux_/config/eti.hpp +- + +/home/pedroernesto/anaconda3/include/boost/mpl/aux_/template_arity_fwd.hpp + +/home/pedroernesto/anaconda3/include/boost/mpl/aux_/type_wrapper.hpp +boost/mpl/aux_/config/ctps.hpp +- + +/home/pedroernesto/anaconda3/include/boost/mpl/aux_/value_wknd.hpp +boost/mpl/aux_/static_cast.hpp +- +boost/mpl/aux_/config/integral.hpp +- +boost/mpl/aux_/config/eti.hpp +- +boost/mpl/aux_/config/workaround.hpp +- +boost/mpl/int.hpp +- + +/home/pedroernesto/anaconda3/include/boost/mpl/aux_/yes_no.hpp +boost/mpl/aux_/nttp_decl.hpp +- +boost/mpl/aux_/config/arrays.hpp +- +boost/mpl/aux_/config/msvc.hpp +- +boost/mpl/aux_/config/workaround.hpp +- + +/home/pedroernesto/anaconda3/include/boost/mpl/bind.hpp +boost/mpl/bind_fwd.hpp +- +boost/mpl/placeholders.hpp +- +boost/mpl/next.hpp +- +boost/mpl/protect.hpp +- +boost/mpl/apply_wrap.hpp +- +boost/mpl/limits/arity.hpp +- +boost/mpl/aux_/na.hpp +- +boost/mpl/aux_/arity_spec.hpp +- +boost/mpl/aux_/type_wrapper.hpp +- +boost/mpl/aux_/yes_no.hpp +- +boost/type_traits/is_reference.hpp +- +boost/mpl/aux_/config/bind.hpp +- +boost/mpl/aux_/config/static_constant.hpp +- +boost/mpl/aux_/config/use_preprocessed.hpp +- +boost/mpl/aux_/include_preprocessed.hpp +- +boost/mpl/aux_/preprocessor/params.hpp +- +boost/mpl/aux_/preprocessor/default_params.hpp +- +boost/mpl/aux_/preprocessor/def_params_tail.hpp +- +boost/mpl/aux_/preprocessor/partial_spec_params.hpp +- +boost/mpl/aux_/preprocessor/ext_params.hpp +- +boost/mpl/aux_/preprocessor/repeat.hpp +- +boost/mpl/aux_/preprocessor/enum.hpp +- +boost/mpl/aux_/preprocessor/add.hpp +- +boost/mpl/aux_/config/dmc_ambiguous_ctps.hpp +- +boost/mpl/aux_/config/ctps.hpp +- +boost/mpl/aux_/config/ttp.hpp +- +boost/mpl/aux_/config/dtp.hpp +- +boost/mpl/aux_/nttp_decl.hpp +- +boost/preprocessor/iterate.hpp +- +boost/preprocessor/comma_if.hpp +- +boost/preprocessor/cat.hpp +- +boost/preprocessor/inc.hpp +- +boost/mpl/aux_/count_args.hpp +- + +/home/pedroernesto/anaconda3/include/boost/mpl/bind_fwd.hpp +boost/mpl/aux_/na.hpp +- +boost/mpl/aux_/config/bind.hpp +- +boost/mpl/aux_/config/use_preprocessed.hpp +- +boost/mpl/aux_/include_preprocessed.hpp +- +boost/mpl/limits/arity.hpp +- +boost/mpl/aux_/preprocessor/params.hpp +- +boost/mpl/aux_/preprocessor/default_params.hpp +- +boost/mpl/aux_/config/dmc_ambiguous_ctps.hpp +- +boost/preprocessor/comma_if.hpp +- +boost/preprocessor/iterate.hpp +- +boost/preprocessor/cat.hpp +- + +/home/pedroernesto/anaconda3/include/boost/mpl/bool.hpp +boost/mpl/bool_fwd.hpp +- +boost/mpl/integral_c_tag.hpp +- +boost/mpl/aux_/config/static_constant.hpp +- + +/home/pedroernesto/anaconda3/include/boost/mpl/bool_fwd.hpp +boost/mpl/aux_/adl_barrier.hpp +- + +/home/pedroernesto/anaconda3/include/boost/mpl/eval_if.hpp +boost/mpl/if.hpp +- +boost/mpl/aux_/na_spec.hpp +- +boost/mpl/aux_/lambda_support.hpp +- +boost/mpl/aux_/config/msvc.hpp +- +boost/mpl/aux_/config/gcc.hpp +- +boost/mpl/aux_/config/workaround.hpp +- + +/home/pedroernesto/anaconda3/include/boost/mpl/has_xxx.hpp +boost/mpl/bool.hpp +- +boost/mpl/aux_/na_spec.hpp +- +boost/mpl/aux_/type_wrapper.hpp +- +boost/mpl/aux_/yes_no.hpp +- +boost/mpl/aux_/config/gcc.hpp +- +boost/mpl/aux_/config/has_xxx.hpp +- +boost/mpl/aux_/config/msvc_typename.hpp +- +boost/mpl/aux_/config/msvc.hpp +- +boost/mpl/aux_/config/static_constant.hpp +- +boost/mpl/aux_/config/workaround.hpp +- +boost/preprocessor/array/elem.hpp +- +boost/preprocessor/cat.hpp +- +boost/preprocessor/control/if.hpp +- +boost/preprocessor/repetition/enum_params.hpp +- +boost/preprocessor/repetition/enum_trailing_params.hpp +- +boost/type_traits/is_class.hpp +- +boost/mpl/if.hpp +- +boost/mpl/bool.hpp +- + +/home/pedroernesto/anaconda3/include/boost/mpl/identity.hpp +boost/mpl/aux_/na_spec.hpp +- +boost/mpl/aux_/lambda_support.hpp +- + +/home/pedroernesto/anaconda3/include/boost/mpl/if.hpp +boost/mpl/aux_/value_wknd.hpp +- +boost/mpl/aux_/static_cast.hpp +- +boost/mpl/aux_/na_spec.hpp +- +boost/mpl/aux_/lambda_support.hpp +- +boost/mpl/aux_/config/integral.hpp +- +boost/mpl/aux_/config/ctps.hpp +- +boost/mpl/aux_/config/workaround.hpp +- + +/home/pedroernesto/anaconda3/include/boost/mpl/int.hpp +boost/mpl/int_fwd.hpp +- +boost/mpl/aux_/integral_wrapper.hpp +- + +/home/pedroernesto/anaconda3/include/boost/mpl/int_fwd.hpp +boost/mpl/aux_/adl_barrier.hpp +- +boost/mpl/aux_/nttp_decl.hpp +- + +/home/pedroernesto/anaconda3/include/boost/mpl/integral_c_tag.hpp +boost/mpl/aux_/adl_barrier.hpp +- +boost/mpl/aux_/config/static_constant.hpp +- + +/home/pedroernesto/anaconda3/include/boost/mpl/is_placeholder.hpp +boost/mpl/arg_fwd.hpp +- +boost/mpl/bool.hpp +- +boost/mpl/aux_/yes_no.hpp +- +boost/mpl/aux_/type_wrapper.hpp +- +boost/mpl/aux_/nttp_decl.hpp +- +boost/mpl/aux_/config/ctps.hpp +- +boost/mpl/aux_/config/static_constant.hpp +- + +/home/pedroernesto/anaconda3/include/boost/mpl/lambda.hpp +boost/mpl/lambda_fwd.hpp +- +boost/mpl/bind.hpp +- +boost/mpl/aux_/config/lambda.hpp +- +boost/mpl/aux_/full_lambda.hpp +- +boost/mpl/aux_/lambda_no_ctps.hpp +- +boost/mpl/aux_/lambda_support.hpp +- + +/home/pedroernesto/anaconda3/include/boost/mpl/lambda_fwd.hpp +boost/mpl/void_fwd.hpp +- +boost/mpl/aux_/na.hpp +- +boost/mpl/aux_/config/lambda.hpp +- +boost/mpl/int.hpp +- +boost/mpl/aux_/lambda_arity_param.hpp +- +boost/mpl/aux_/template_arity_fwd.hpp +- +boost/mpl/bool.hpp +- + +/home/pedroernesto/anaconda3/include/boost/mpl/limits/arity.hpp + +/home/pedroernesto/anaconda3/include/boost/mpl/next.hpp +boost/mpl/next_prior.hpp +- + +/home/pedroernesto/anaconda3/include/boost/mpl/next_prior.hpp +boost/mpl/aux_/common_name_wknd.hpp +- +boost/mpl/aux_/na_spec.hpp +- +boost/mpl/aux_/lambda_support.hpp +- + +/home/pedroernesto/anaconda3/include/boost/mpl/not.hpp +boost/mpl/bool.hpp +- +boost/mpl/aux_/nttp_decl.hpp +- +boost/mpl/aux_/nested_type_wknd.hpp +- +boost/mpl/aux_/na_spec.hpp +- +boost/mpl/aux_/lambda_support.hpp +- + +/home/pedroernesto/anaconda3/include/boost/mpl/or.hpp +boost/mpl/aux_/config/use_preprocessed.hpp +- +boost/mpl/bool.hpp +- +boost/mpl/aux_/nested_type_wknd.hpp +- +boost/mpl/aux_/na_spec.hpp +- +boost/mpl/aux_/lambda_support.hpp +- +boost/mpl/aux_/config/msvc.hpp +- +boost/mpl/aux_/include_preprocessed.hpp +- +boost/mpl/aux_/logical_op.hpp +- + +/home/pedroernesto/anaconda3/include/boost/mpl/placeholders.hpp +boost/mpl/arg.hpp +- +boost/mpl/aux_/adl_barrier.hpp +- +boost/mpl/aux_/config/use_preprocessed.hpp +- +boost/mpl/aux_/include_preprocessed.hpp +- +boost/mpl/aux_/nttp_decl.hpp +- +boost/mpl/limits/arity.hpp +- +boost/preprocessor/iterate.hpp +- +boost/preprocessor/cat.hpp +- + +/home/pedroernesto/anaconda3/include/boost/mpl/print.hpp +boost/mpl/aux_/config/msvc.hpp +- +boost/mpl/identity.hpp +- + +/home/pedroernesto/anaconda3/include/boost/mpl/protect.hpp +boost/mpl/aux_/arity.hpp +- +boost/mpl/aux_/config/dtp.hpp +- +boost/mpl/aux_/nttp_decl.hpp +- +boost/mpl/aux_/na_spec.hpp +- + +/home/pedroernesto/anaconda3/include/boost/mpl/quote.hpp +boost/mpl/void.hpp +- +boost/mpl/aux_/has_type.hpp +- +boost/mpl/aux_/config/bcc.hpp +- +boost/mpl/aux_/config/ttp.hpp +- +boost/mpl/aux_/config/use_preprocessed.hpp +- +boost/mpl/aux_/include_preprocessed.hpp +- +boost/mpl/limits/arity.hpp +- +boost/mpl/aux_/preprocessor/params.hpp +- +boost/mpl/aux_/config/ctps.hpp +- +boost/mpl/aux_/config/workaround.hpp +- +boost/preprocessor/iterate.hpp +- +boost/preprocessor/cat.hpp +- + +/home/pedroernesto/anaconda3/include/boost/mpl/void.hpp +boost/mpl/void_fwd.hpp +- +boost/mpl/bool.hpp +- +boost/mpl/aux_/na_spec.hpp +- +boost/mpl/aux_/config/msvc.hpp +- +boost/mpl/aux_/config/workaround.hpp +- + +/home/pedroernesto/anaconda3/include/boost/mpl/void_fwd.hpp +boost/mpl/aux_/adl_barrier.hpp +- + +/home/pedroernesto/anaconda3/include/boost/noncopyable.hpp +boost/core/noncopyable.hpp +- + +/home/pedroernesto/anaconda3/include/boost/preprocessor/arithmetic/add.hpp +boost/preprocessor/arithmetic/dec.hpp +- +boost/preprocessor/arithmetic/inc.hpp +- +boost/preprocessor/config/config.hpp +- +boost/preprocessor/control/while.hpp +- +boost/preprocessor/tuple/elem.hpp +- + +/home/pedroernesto/anaconda3/include/boost/preprocessor/arithmetic/dec.hpp +boost/preprocessor/config/config.hpp +- + +/home/pedroernesto/anaconda3/include/boost/preprocessor/arithmetic/inc.hpp +boost/preprocessor/config/config.hpp +- + +/home/pedroernesto/anaconda3/include/boost/preprocessor/arithmetic/sub.hpp +boost/preprocessor/arithmetic/dec.hpp +- +boost/preprocessor/config/config.hpp +- +boost/preprocessor/control/while.hpp +- +boost/preprocessor/tuple/elem.hpp +- + +/home/pedroernesto/anaconda3/include/boost/preprocessor/array/data.hpp +boost/preprocessor/config/config.hpp +- +boost/preprocessor/tuple/elem.hpp +- + +/home/pedroernesto/anaconda3/include/boost/preprocessor/array/elem.hpp +boost/preprocessor/array/data.hpp +- +boost/preprocessor/array/size.hpp +- +boost/preprocessor/config/config.hpp +- +boost/preprocessor/tuple/elem.hpp +- + +/home/pedroernesto/anaconda3/include/boost/preprocessor/array/size.hpp +boost/preprocessor/config/config.hpp +- +boost/preprocessor/tuple/elem.hpp +- + +/home/pedroernesto/anaconda3/include/boost/preprocessor/cat.hpp +boost/preprocessor/config/config.hpp +- + +/home/pedroernesto/anaconda3/include/boost/preprocessor/comma_if.hpp +boost/preprocessor/punctuation/comma_if.hpp +- + +/home/pedroernesto/anaconda3/include/boost/preprocessor/comparison/not_equal.hpp +boost/preprocessor/cat.hpp +- +boost/preprocessor/config/config.hpp +- +boost/preprocessor/control/iif.hpp +- + +/home/pedroernesto/anaconda3/include/boost/preprocessor/config/config.hpp + +/home/pedroernesto/anaconda3/include/boost/preprocessor/control/detail/dmc/while.hpp +boost/preprocessor/control/iif.hpp +- +boost/preprocessor/logical/bool.hpp +- +boost/preprocessor/tuple/eat.hpp +- + +/home/pedroernesto/anaconda3/include/boost/preprocessor/control/detail/edg/while.hpp +boost/preprocessor/control/if.hpp +- +boost/preprocessor/tuple/eat.hpp +- + +/home/pedroernesto/anaconda3/include/boost/preprocessor/control/detail/msvc/while.hpp +boost/preprocessor/control/if.hpp +- +boost/preprocessor/tuple/eat.hpp +- + +/home/pedroernesto/anaconda3/include/boost/preprocessor/control/detail/while.hpp +boost/preprocessor/control/iif.hpp +- +boost/preprocessor/logical/bool.hpp +- +boost/preprocessor/tuple/eat.hpp +- + +/home/pedroernesto/anaconda3/include/boost/preprocessor/control/expr_if.hpp +boost/preprocessor/config/config.hpp +- +boost/preprocessor/control/expr_iif.hpp +- +boost/preprocessor/logical/bool.hpp +- + +/home/pedroernesto/anaconda3/include/boost/preprocessor/control/expr_iif.hpp +boost/preprocessor/config/config.hpp +- + +/home/pedroernesto/anaconda3/include/boost/preprocessor/control/if.hpp +boost/preprocessor/config/config.hpp +- +boost/preprocessor/control/iif.hpp +- +boost/preprocessor/logical/bool.hpp +- + +/home/pedroernesto/anaconda3/include/boost/preprocessor/control/iif.hpp +boost/preprocessor/config/config.hpp +- + +/home/pedroernesto/anaconda3/include/boost/preprocessor/control/while.hpp +boost/preprocessor/cat.hpp +- +boost/preprocessor/config/config.hpp +- +boost/preprocessor/debug/error.hpp +- +boost/preprocessor/detail/auto_rec.hpp +- +boost/preprocessor/list/fold_left.hpp +- +boost/preprocessor/list/fold_right.hpp +- +boost/preprocessor/logical/bitand.hpp +- +boost/preprocessor/control/detail/edg/while.hpp +- +boost/preprocessor/control/detail/msvc/while.hpp +- +boost/preprocessor/control/detail/dmc/while.hpp +- +boost/preprocessor/control/detail/while.hpp +- + +/home/pedroernesto/anaconda3/include/boost/preprocessor/debug/error.hpp +boost/preprocessor/cat.hpp +- +boost/preprocessor/config/config.hpp +- + +/home/pedroernesto/anaconda3/include/boost/preprocessor/dec.hpp +boost/preprocessor/arithmetic/dec.hpp +- + +/home/pedroernesto/anaconda3/include/boost/preprocessor/detail/auto_rec.hpp +boost/preprocessor/config/config.hpp +- +boost/preprocessor/detail/dmc/auto_rec.hpp +- +boost/preprocessor/control/iif.hpp +- + +/home/pedroernesto/anaconda3/include/boost/preprocessor/detail/check.hpp +boost/preprocessor/cat.hpp +- +boost/preprocessor/config/config.hpp +- + +/home/pedroernesto/anaconda3/include/boost/preprocessor/detail/dmc/auto_rec.hpp +boost/preprocessor/control/iif.hpp +- + +/home/pedroernesto/anaconda3/include/boost/preprocessor/detail/is_binary.hpp +boost/preprocessor/config/config.hpp +- +boost/preprocessor/detail/check.hpp +- + +/home/pedroernesto/anaconda3/include/boost/preprocessor/detail/split.hpp +boost/preprocessor/config/config.hpp +- + +/home/pedroernesto/anaconda3/include/boost/preprocessor/empty.hpp +boost/preprocessor/facilities/empty.hpp +- + +/home/pedroernesto/anaconda3/include/boost/preprocessor/enum_shifted_params.hpp +boost/preprocessor/repetition/enum_shifted_params.hpp +- + +/home/pedroernesto/anaconda3/include/boost/preprocessor/expr_if.hpp +boost/preprocessor/control/expr_if.hpp +- + +/home/pedroernesto/anaconda3/include/boost/preprocessor/facilities/detail/is_empty.hpp +boost/preprocessor/punctuation/is_begin_parens.hpp +- + +/home/pedroernesto/anaconda3/include/boost/preprocessor/facilities/empty.hpp +boost/preprocessor/config/config.hpp +- + +/home/pedroernesto/anaconda3/include/boost/preprocessor/facilities/expand.hpp +boost/preprocessor/config/config.hpp +- + +/home/pedroernesto/anaconda3/include/boost/preprocessor/facilities/identity.hpp +boost/preprocessor/facilities/empty.hpp +- +boost/preprocessor/tuple/eat.hpp +- + +/home/pedroernesto/anaconda3/include/boost/preprocessor/facilities/is_1.hpp +boost/preprocessor/cat.hpp +- +boost/preprocessor/facilities/is_empty.hpp +- + +/home/pedroernesto/anaconda3/include/boost/preprocessor/facilities/is_empty.hpp +boost/preprocessor/config/config.hpp +- +boost/preprocessor/facilities/is_empty_variadic.hpp +- +boost/preprocessor/tuple/elem.hpp +- +boost/preprocessor/facilities/identity.hpp +- +boost/preprocessor/cat.hpp +- +boost/preprocessor/detail/split.hpp +- + +/home/pedroernesto/anaconda3/include/boost/preprocessor/facilities/is_empty_variadic.hpp +boost/preprocessor/config/config.hpp +- +boost/preprocessor/punctuation/is_begin_parens.hpp +- +boost/preprocessor/facilities/detail/is_empty.hpp +- + +/home/pedroernesto/anaconda3/include/boost/preprocessor/facilities/overload.hpp +boost/preprocessor/cat.hpp +- +boost/preprocessor/variadic/size.hpp +- + +/home/pedroernesto/anaconda3/include/boost/preprocessor/identity.hpp +boost/preprocessor/facilities/identity.hpp +- + +/home/pedroernesto/anaconda3/include/boost/preprocessor/inc.hpp +boost/preprocessor/arithmetic/inc.hpp +- + +/home/pedroernesto/anaconda3/include/boost/preprocessor/iterate.hpp +boost/preprocessor/iteration/iterate.hpp +- + +/home/pedroernesto/anaconda3/include/boost/preprocessor/iteration/iterate.hpp +boost/preprocessor/arithmetic/dec.hpp +- +boost/preprocessor/arithmetic/inc.hpp +- +boost/preprocessor/array/elem.hpp +- +boost/preprocessor/array/size.hpp +- +boost/preprocessor/cat.hpp +- +boost/preprocessor/slot/slot.hpp +- +boost/preprocessor/tuple/elem.hpp +- + +/home/pedroernesto/anaconda3/include/boost/preprocessor/list/adt.hpp +boost/preprocessor/config/config.hpp +- +boost/preprocessor/detail/is_binary.hpp +- +boost/preprocessor/logical/compl.hpp +- +boost/preprocessor/tuple/eat.hpp +- + +/home/pedroernesto/anaconda3/include/boost/preprocessor/list/detail/dmc/fold_left.hpp +boost/preprocessor/control/expr_iif.hpp +- +boost/preprocessor/control/iif.hpp +- +boost/preprocessor/list/adt.hpp +- +boost/preprocessor/tuple/elem.hpp +- + +/home/pedroernesto/anaconda3/include/boost/preprocessor/list/detail/edg/fold_left.hpp +boost/preprocessor/control/expr_iif.hpp +- +boost/preprocessor/control/iif.hpp +- +boost/preprocessor/list/adt.hpp +- +boost/preprocessor/tuple/eat.hpp +- + +/home/pedroernesto/anaconda3/include/boost/preprocessor/list/detail/edg/fold_right.hpp +boost/preprocessor/control/iif.hpp +- +boost/preprocessor/list/adt.hpp +- +boost/preprocessor/tuple/eat.hpp +- + +/home/pedroernesto/anaconda3/include/boost/preprocessor/list/detail/fold_left.hpp +boost/preprocessor/control/expr_iif.hpp +- +boost/preprocessor/control/iif.hpp +- +boost/preprocessor/list/adt.hpp +- +boost/preprocessor/tuple/eat.hpp +- + +/home/pedroernesto/anaconda3/include/boost/preprocessor/list/detail/fold_right.hpp +boost/preprocessor/list/fold_left.hpp +- +boost/preprocessor/list/reverse.hpp +- + +/home/pedroernesto/anaconda3/include/boost/preprocessor/list/fold_left.hpp +boost/preprocessor/cat.hpp +- +boost/preprocessor/control/while.hpp +- +boost/preprocessor/debug/error.hpp +- +boost/preprocessor/detail/auto_rec.hpp +- +boost/preprocessor/list/detail/edg/fold_left.hpp +- +boost/preprocessor/list/detail/dmc/fold_left.hpp +- +boost/preprocessor/list/detail/fold_left.hpp +- + +/home/pedroernesto/anaconda3/include/boost/preprocessor/list/fold_right.hpp +boost/preprocessor/cat.hpp +- +boost/preprocessor/control/while.hpp +- +boost/preprocessor/debug/error.hpp +- +boost/preprocessor/detail/auto_rec.hpp +- +boost/preprocessor/list/detail/edg/fold_right.hpp +- +boost/preprocessor/list/detail/fold_right.hpp +- + +/home/pedroernesto/anaconda3/include/boost/preprocessor/list/for_each_i.hpp +boost/preprocessor/arithmetic/inc.hpp +- +boost/preprocessor/config/config.hpp +- +boost/preprocessor/list/adt.hpp +- +boost/preprocessor/repetition/for.hpp +- +boost/preprocessor/tuple/elem.hpp +- +boost/preprocessor/tuple/rem.hpp +- + +/home/pedroernesto/anaconda3/include/boost/preprocessor/list/reverse.hpp +boost/preprocessor/config/config.hpp +- +boost/preprocessor/list/fold_left.hpp +- + +/home/pedroernesto/anaconda3/include/boost/preprocessor/logical/and.hpp +boost/preprocessor/config/config.hpp +- +boost/preprocessor/logical/bool.hpp +- +boost/preprocessor/logical/bitand.hpp +- + +/home/pedroernesto/anaconda3/include/boost/preprocessor/logical/bitand.hpp +boost/preprocessor/config/config.hpp +- + +/home/pedroernesto/anaconda3/include/boost/preprocessor/logical/bool.hpp +boost/preprocessor/config/config.hpp +- + +/home/pedroernesto/anaconda3/include/boost/preprocessor/logical/compl.hpp +boost/preprocessor/config/config.hpp +- + +/home/pedroernesto/anaconda3/include/boost/preprocessor/punctuation/comma.hpp + +/home/pedroernesto/anaconda3/include/boost/preprocessor/punctuation/comma_if.hpp +boost/preprocessor/config/config.hpp +- +boost/preprocessor/control/if.hpp +- +boost/preprocessor/facilities/empty.hpp +- +boost/preprocessor/punctuation/comma.hpp +- + +/home/pedroernesto/anaconda3/include/boost/preprocessor/punctuation/detail/is_begin_parens.hpp +boost/preprocessor/facilities/empty.hpp +- + +/home/pedroernesto/anaconda3/include/boost/preprocessor/punctuation/is_begin_parens.hpp +boost/preprocessor/config/config.hpp +- +boost/preprocessor/punctuation/detail/is_begin_parens.hpp +- + +/home/pedroernesto/anaconda3/include/boost/preprocessor/repeat.hpp +boost/preprocessor/repetition/repeat.hpp +- + +/home/pedroernesto/anaconda3/include/boost/preprocessor/repetition/detail/dmc/for.hpp +boost/preprocessor/control/expr_iif.hpp +- +boost/preprocessor/control/iif.hpp +- +boost/preprocessor/logical/bool.hpp +- +boost/preprocessor/tuple/eat.hpp +- + +/home/pedroernesto/anaconda3/include/boost/preprocessor/repetition/detail/edg/for.hpp +boost/preprocessor/control/if.hpp +- +boost/preprocessor/tuple/eat.hpp +- + +/home/pedroernesto/anaconda3/include/boost/preprocessor/repetition/detail/for.hpp +boost/preprocessor/control/expr_iif.hpp +- +boost/preprocessor/control/iif.hpp +- +boost/preprocessor/logical/bool.hpp +- +boost/preprocessor/tuple/eat.hpp +- + +/home/pedroernesto/anaconda3/include/boost/preprocessor/repetition/detail/msvc/for.hpp +boost/preprocessor/control/if.hpp +- +boost/preprocessor/tuple/eat.hpp +- + +/home/pedroernesto/anaconda3/include/boost/preprocessor/repetition/enum_params.hpp +boost/preprocessor/config/config.hpp +- +boost/preprocessor/punctuation/comma_if.hpp +- +boost/preprocessor/repetition/repeat.hpp +- + +/home/pedroernesto/anaconda3/include/boost/preprocessor/repetition/enum_shifted_params.hpp +boost/preprocessor/arithmetic/dec.hpp +- +boost/preprocessor/arithmetic/inc.hpp +- +boost/preprocessor/cat.hpp +- +boost/preprocessor/config/config.hpp +- +boost/preprocessor/punctuation/comma_if.hpp +- +boost/preprocessor/repetition/repeat.hpp +- + +/home/pedroernesto/anaconda3/include/boost/preprocessor/repetition/enum_trailing_params.hpp +boost/preprocessor/config/config.hpp +- +boost/preprocessor/repetition/repeat.hpp +- + +/home/pedroernesto/anaconda3/include/boost/preprocessor/repetition/for.hpp +boost/preprocessor/cat.hpp +- +boost/preprocessor/debug/error.hpp +- +boost/preprocessor/facilities/empty.hpp +- +boost/preprocessor/logical/bool.hpp +- +boost/preprocessor/detail/auto_rec.hpp +- +boost/preprocessor/repetition/detail/edg/for.hpp +- +boost/preprocessor/repetition/detail/msvc/for.hpp +- +boost/preprocessor/repetition/detail/dmc/for.hpp +- +boost/preprocessor/repetition/detail/for.hpp +- + +/home/pedroernesto/anaconda3/include/boost/preprocessor/repetition/repeat.hpp +boost/preprocessor/cat.hpp +- +boost/preprocessor/config/config.hpp +- +boost/preprocessor/debug/error.hpp +- +boost/preprocessor/detail/auto_rec.hpp +- +boost/preprocessor/tuple/eat.hpp +- + +/home/pedroernesto/anaconda3/include/boost/preprocessor/seq/detail/is_empty.hpp +boost/preprocessor/config/config.hpp +- +boost/preprocessor/arithmetic/dec.hpp +- +boost/preprocessor/logical/bool.hpp +- +boost/preprocessor/logical/compl.hpp +- +boost/preprocessor/seq/size.hpp +- + +/home/pedroernesto/anaconda3/include/boost/preprocessor/seq/detail/split.hpp +boost/preprocessor/config/config.hpp +- + +/home/pedroernesto/anaconda3/include/boost/preprocessor/seq/elem.hpp +boost/preprocessor/cat.hpp +- +boost/preprocessor/config/config.hpp +- +boost/preprocessor/facilities/empty.hpp +- + +/home/pedroernesto/anaconda3/include/boost/preprocessor/seq/first_n.hpp +boost/preprocessor/config/config.hpp +- +boost/preprocessor/control/if.hpp +- +boost/preprocessor/seq/detail/split.hpp +- +boost/preprocessor/tuple/eat.hpp +- +boost/preprocessor/tuple/elem.hpp +- + +/home/pedroernesto/anaconda3/include/boost/preprocessor/seq/fold_left.hpp +boost/preprocessor/arithmetic/dec.hpp +- +boost/preprocessor/cat.hpp +- +boost/preprocessor/control/if.hpp +- +boost/preprocessor/debug/error.hpp +- +boost/preprocessor/detail/auto_rec.hpp +- +boost/preprocessor/seq/seq.hpp +- +boost/preprocessor/seq/size.hpp +- + +/home/pedroernesto/anaconda3/include/boost/preprocessor/seq/rest_n.hpp +boost/preprocessor/arithmetic/inc.hpp +- +boost/preprocessor/comparison/not_equal.hpp +- +boost/preprocessor/config/config.hpp +- +boost/preprocessor/control/expr_iif.hpp +- +boost/preprocessor/facilities/identity.hpp +- +boost/preprocessor/logical/bitand.hpp +- +boost/preprocessor/seq/detail/is_empty.hpp +- +boost/preprocessor/seq/detail/split.hpp +- +boost/preprocessor/tuple/elem.hpp +- + +/home/pedroernesto/anaconda3/include/boost/preprocessor/seq/seq.hpp +boost/preprocessor/config/config.hpp +- +boost/preprocessor/seq/elem.hpp +- + +/home/pedroernesto/anaconda3/include/boost/preprocessor/seq/size.hpp +boost/preprocessor/cat.hpp +- +boost/preprocessor/config/config.hpp +- + +/home/pedroernesto/anaconda3/include/boost/preprocessor/seq/subseq.hpp +boost/preprocessor/config/config.hpp +- +boost/preprocessor/seq/first_n.hpp +- +boost/preprocessor/seq/rest_n.hpp +- + +/home/pedroernesto/anaconda3/include/boost/preprocessor/slot/detail/def.hpp + +/home/pedroernesto/anaconda3/include/boost/preprocessor/slot/slot.hpp +boost/preprocessor/cat.hpp +- +boost/preprocessor/slot/detail/def.hpp +- + +/home/pedroernesto/anaconda3/include/boost/preprocessor/stringize.hpp +boost/preprocessor/config/config.hpp +- + +/home/pedroernesto/anaconda3/include/boost/preprocessor/tuple/detail/is_single_return.hpp +boost/preprocessor/config/config.hpp +- +boost/preprocessor/control/iif.hpp +- +boost/preprocessor/facilities/is_1.hpp +- +boost/preprocessor/tuple/size.hpp +- + +/home/pedroernesto/anaconda3/include/boost/preprocessor/tuple/eat.hpp +boost/preprocessor/config/config.hpp +- + +/home/pedroernesto/anaconda3/include/boost/preprocessor/tuple/elem.hpp +boost/preprocessor/cat.hpp +- +boost/preprocessor/config/config.hpp +- +boost/preprocessor/facilities/expand.hpp +- +boost/preprocessor/facilities/overload.hpp +- +boost/preprocessor/tuple/rem.hpp +- +boost/preprocessor/variadic/elem.hpp +- +boost/preprocessor/tuple/detail/is_single_return.hpp +- + +/home/pedroernesto/anaconda3/include/boost/preprocessor/tuple/rem.hpp +boost/preprocessor/cat.hpp +- +boost/preprocessor/config/config.hpp +- +boost/preprocessor/facilities/expand.hpp +- +boost/preprocessor/facilities/overload.hpp +- +boost/preprocessor/tuple/detail/is_single_return.hpp +- + +/home/pedroernesto/anaconda3/include/boost/preprocessor/tuple/size.hpp +boost/preprocessor/cat.hpp +- +boost/preprocessor/config/config.hpp +- +boost/preprocessor/variadic/size.hpp +- + +/home/pedroernesto/anaconda3/include/boost/preprocessor/tuple/to_list.hpp +boost/preprocessor/cat.hpp +- +boost/preprocessor/config/config.hpp +- +boost/preprocessor/facilities/overload.hpp +- +boost/preprocessor/tuple/size.hpp +- +boost/preprocessor/variadic/size.hpp +- + +/home/pedroernesto/anaconda3/include/boost/preprocessor/variadic/elem.hpp +boost/preprocessor/cat.hpp +- +boost/preprocessor/config/config.hpp +- + +/home/pedroernesto/anaconda3/include/boost/preprocessor/variadic/size.hpp +boost/preprocessor/cat.hpp +- +boost/preprocessor/config/config.hpp +- + +/home/pedroernesto/anaconda3/include/boost/range/begin.hpp +boost/range/config.hpp +- +boost/range/detail/begin.hpp +- +boost/range/iterator.hpp +- + +/home/pedroernesto/anaconda3/include/boost/range/config.hpp +boost/detail/workaround.hpp +- +boost/config.hpp +- + +/home/pedroernesto/anaconda3/include/boost/range/const_iterator.hpp +boost/range/config.hpp +- +boost/range/range_fwd.hpp +- +boost/range/detail/extract_optional_type.hpp +- +boost/type_traits/remove_const.hpp +- +boost/type_traits/remove_reference.hpp +- +cstddef +- +utility +- + +/home/pedroernesto/anaconda3/include/boost/range/detail/begin.hpp +boost/config.hpp +- +boost/detail/workaround.hpp +- +boost/range/iterator.hpp +- +boost/range/detail/common.hpp +- + +/home/pedroernesto/anaconda3/include/boost/range/detail/common.hpp +boost/range/config.hpp +- +boost/range/detail/sfinae.hpp +- +boost/type_traits/is_void.hpp +- +boost/mpl/bool.hpp +- +boost/mpl/if.hpp +- +boost/mpl/int.hpp +- +boost/mpl/or.hpp +- +cstddef +- + +/home/pedroernesto/anaconda3/include/boost/range/detail/end.hpp +boost/config.hpp +- +boost/detail/workaround.hpp +- +boost/range/detail/implementation_help.hpp +- +boost/range/iterator.hpp +- +boost/range/detail/common.hpp +- + +/home/pedroernesto/anaconda3/include/boost/range/detail/extract_optional_type.hpp +boost/config.hpp +- +boost/preprocessor/cat.hpp +- +boost/mpl/has_xxx.hpp +- + +/home/pedroernesto/anaconda3/include/boost/range/detail/implementation_help.hpp +boost/range/config.hpp +- +boost/range/detail/common.hpp +- +boost/type_traits/is_same.hpp +- +cstddef +- +string.h +- +wchar.h +- + +/home/pedroernesto/anaconda3/include/boost/range/detail/msvc_has_iterator_workaround.hpp + +/home/pedroernesto/anaconda3/include/boost/range/detail/sfinae.hpp +boost/range/config.hpp +- +boost/type_traits/is_array.hpp +- +boost/type_traits/detail/yes_no_type.hpp +- +utility +- + +/home/pedroernesto/anaconda3/include/boost/range/end.hpp +boost/range/config.hpp +- +boost/range/detail/end.hpp +- +boost/range/detail/implementation_help.hpp +- +boost/range/iterator.hpp +- +boost/range/const_iterator.hpp +- + +/home/pedroernesto/anaconda3/include/boost/range/iterator.hpp +boost/range/config.hpp +- +boost/range/range_fwd.hpp +- +boost/range/mutable_iterator.hpp +- +boost/range/const_iterator.hpp +- +boost/type_traits/is_const.hpp +- +boost/type_traits/remove_const.hpp +- +boost/mpl/eval_if.hpp +- + +/home/pedroernesto/anaconda3/include/boost/range/mutable_iterator.hpp +boost/range/config.hpp +- +boost/range/range_fwd.hpp +- +boost/range/detail/extract_optional_type.hpp +- +boost/type_traits/remove_reference.hpp +- +boost/iterator/iterator_traits.hpp +- +cstddef +- +utility +- +boost/range/detail/msvc_has_iterator_workaround.hpp +- + +/home/pedroernesto/anaconda3/include/boost/range/range_fwd.hpp + +/home/pedroernesto/anaconda3/include/boost/ref.hpp +boost/core/ref.hpp +- + +/home/pedroernesto/anaconda3/include/boost/serialization/static_warning.hpp +boost/config.hpp +- +boost/mpl/bool.hpp +- +boost/mpl/print.hpp +- +boost/mpl/eval_if.hpp +- +boost/mpl/bool_fwd.hpp +- +boost/static_assert.hpp +- + +/home/pedroernesto/anaconda3/include/boost/sort/spreadsort/detail/constants.hpp + +/home/pedroernesto/anaconda3/include/boost/sort/spreadsort/detail/float_sort.hpp +algorithm +- +vector +- +limits +- +functional +- +boost/static_assert.hpp +- +boost/serialization/static_warning.hpp +- +boost/utility/enable_if.hpp +- +boost/sort/spreadsort/detail/constants.hpp +- +boost/sort/spreadsort/detail/integer_sort.hpp +- +boost/sort/spreadsort/detail/spreadsort_common.hpp +- +boost/cstdint.hpp +- + +/home/pedroernesto/anaconda3/include/boost/sort/spreadsort/detail/integer_sort.hpp +algorithm +- +vector +- +limits +- +functional +- +boost/static_assert.hpp +- +boost/serialization/static_warning.hpp +- +boost/utility/enable_if.hpp +- +boost/sort/spreadsort/detail/constants.hpp +- +boost/sort/spreadsort/detail/spreadsort_common.hpp +- +boost/cstdint.hpp +- + +/home/pedroernesto/anaconda3/include/boost/sort/spreadsort/detail/spreadsort_common.hpp +algorithm +- +vector +- +cstring +- +limits +- +functional +- +boost/static_assert.hpp +- +boost/serialization/static_warning.hpp +- +boost/sort/spreadsort/detail/constants.hpp +- +boost/cstdint.hpp +- + +/home/pedroernesto/anaconda3/include/boost/sort/spreadsort/detail/string_sort.hpp +algorithm +- +vector +- +cstring +- +limits +- +functional +- +boost/static_assert.hpp +- +boost/serialization/static_warning.hpp +- +boost/utility/enable_if.hpp +- +boost/sort/spreadsort/detail/constants.hpp +- +boost/sort/spreadsort/detail/spreadsort_common.hpp +- +boost/cstdint.hpp +- + +/home/pedroernesto/anaconda3/include/boost/sort/spreadsort/float_sort.hpp +algorithm +- +vector +- +cstring +- +limits +- +boost/static_assert.hpp +- +boost/sort/spreadsort/detail/constants.hpp +- +boost/sort/spreadsort/detail/float_sort.hpp +- +boost/range/begin.hpp +- +boost/range/end.hpp +- + +/home/pedroernesto/anaconda3/include/boost/sort/spreadsort/integer_sort.hpp +algorithm +- +vector +- +cstring +- +limits +- +boost/static_assert.hpp +- +boost/sort/spreadsort/detail/constants.hpp +- +boost/sort/spreadsort/detail/integer_sort.hpp +- +boost/range/begin.hpp +- +boost/range/end.hpp +- + +/home/pedroernesto/anaconda3/include/boost/sort/spreadsort/spreadsort.hpp +algorithm +- +vector +- +cstring +- +string +- +limits +- +boost/type_traits.hpp +- +boost/sort/spreadsort/integer_sort.hpp +- +boost/sort/spreadsort/float_sort.hpp +- +boost/sort/spreadsort/string_sort.hpp +- +boost/range/begin.hpp +- +boost/range/end.hpp +- + +/home/pedroernesto/anaconda3/include/boost/sort/spreadsort/string_sort.hpp +algorithm +- +vector +- +cstring +- +limits +- +boost/static_assert.hpp +- +boost/sort/spreadsort/detail/constants.hpp +- +boost/sort/spreadsort/detail/string_sort.hpp +- +boost/range/begin.hpp +- +boost/range/end.hpp +- + +/home/pedroernesto/anaconda3/include/boost/static_assert.hpp +boost/config.hpp +- +boost/detail/workaround.hpp +- + +/home/pedroernesto/anaconda3/include/boost/tuple/detail/tuple_basic.hpp +utility +- +boost/type_traits/cv_traits.hpp +- +boost/type_traits/function_traits.hpp +- +boost/utility/swap.hpp +- +boost/detail/workaround.hpp +- + +/home/pedroernesto/anaconda3/include/boost/tuple/tuple.hpp +boost/config.hpp +- +boost/static_assert.hpp +- +boost/ref.hpp +- +boost/tuple/detail/tuple_basic.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits.hpp +boost/type_traits/add_const.hpp +- +boost/type_traits/add_cv.hpp +- +boost/type_traits/add_lvalue_reference.hpp +- +boost/type_traits/add_pointer.hpp +- +boost/type_traits/add_reference.hpp +- +boost/type_traits/add_rvalue_reference.hpp +- +boost/type_traits/add_volatile.hpp +- +boost/type_traits/aligned_storage.hpp +- +boost/type_traits/alignment_of.hpp +- +boost/type_traits/common_type.hpp +- +boost/type_traits/conditional.hpp +- +boost/type_traits/copy_cv.hpp +- +boost/type_traits/decay.hpp +- +boost/type_traits/declval.hpp +- +boost/type_traits/extent.hpp +- +boost/type_traits/floating_point_promotion.hpp +- +boost/type_traits/function_traits.hpp +- +boost/type_traits/has_bit_and.hpp +- +boost/type_traits/has_bit_and_assign.hpp +- +boost/type_traits/has_bit_or.hpp +- +boost/type_traits/has_bit_or_assign.hpp +- +boost/type_traits/has_bit_xor.hpp +- +boost/type_traits/has_bit_xor_assign.hpp +- +boost/type_traits/has_complement.hpp +- +boost/type_traits/has_dereference.hpp +- +boost/type_traits/has_divides.hpp +- +boost/type_traits/has_divides_assign.hpp +- +boost/type_traits/has_equal_to.hpp +- +boost/type_traits/has_greater.hpp +- +boost/type_traits/has_greater_equal.hpp +- +boost/type_traits/has_left_shift.hpp +- +boost/type_traits/has_left_shift_assign.hpp +- +boost/type_traits/has_less.hpp +- +boost/type_traits/has_less_equal.hpp +- +boost/type_traits/has_logical_and.hpp +- +boost/type_traits/has_logical_not.hpp +- +boost/type_traits/has_logical_or.hpp +- +boost/type_traits/has_minus.hpp +- +boost/type_traits/has_minus_assign.hpp +- +boost/type_traits/has_modulus.hpp +- +boost/type_traits/has_modulus_assign.hpp +- +boost/type_traits/has_multiplies.hpp +- +boost/type_traits/has_multiplies_assign.hpp +- +boost/type_traits/has_negate.hpp +- +boost/type_traits/has_new_operator.hpp +- +boost/type_traits/has_not_equal_to.hpp +- +boost/type_traits/has_nothrow_assign.hpp +- +boost/type_traits/has_nothrow_constructor.hpp +- +boost/type_traits/has_nothrow_copy.hpp +- +boost/type_traits/has_nothrow_destructor.hpp +- +boost/type_traits/has_plus.hpp +- +boost/type_traits/has_plus_assign.hpp +- +boost/type_traits/has_post_decrement.hpp +- +boost/type_traits/has_post_increment.hpp +- +boost/type_traits/has_pre_decrement.hpp +- +boost/type_traits/has_pre_increment.hpp +- +boost/type_traits/has_right_shift.hpp +- +boost/type_traits/has_right_shift_assign.hpp +- +boost/type_traits/has_trivial_assign.hpp +- +boost/type_traits/has_trivial_constructor.hpp +- +boost/type_traits/has_trivial_copy.hpp +- +boost/type_traits/has_trivial_destructor.hpp +- +boost/type_traits/has_trivial_move_assign.hpp +- +boost/type_traits/has_trivial_move_constructor.hpp +- +boost/type_traits/has_unary_minus.hpp +- +boost/type_traits/has_unary_plus.hpp +- +boost/type_traits/has_virtual_destructor.hpp +- +boost/type_traits/integral_constant.hpp +- +boost/type_traits/is_abstract.hpp +- +boost/type_traits/is_arithmetic.hpp +- +boost/type_traits/is_array.hpp +- +boost/type_traits/is_assignable.hpp +- +boost/type_traits/is_base_and_derived.hpp +- +boost/type_traits/is_base_of.hpp +- +boost/type_traits/is_class.hpp +- +boost/type_traits/is_complex.hpp +- +boost/type_traits/is_compound.hpp +- +boost/type_traits/is_const.hpp +- +boost/type_traits/is_constructible.hpp +- +boost/type_traits/is_convertible.hpp +- +boost/type_traits/is_copy_assignable.hpp +- +boost/type_traits/is_copy_constructible.hpp +- +boost/type_traits/is_default_constructible.hpp +- +boost/type_traits/is_destructible.hpp +- +boost/type_traits/is_empty.hpp +- +boost/type_traits/is_enum.hpp +- +boost/type_traits/is_final.hpp +- +boost/type_traits/is_float.hpp +- +boost/type_traits/is_floating_point.hpp +- +boost/type_traits/is_function.hpp +- +boost/type_traits/is_fundamental.hpp +- +boost/type_traits/is_integral.hpp +- +boost/type_traits/is_list_constructible.hpp +- +boost/type_traits/is_lvalue_reference.hpp +- +boost/type_traits/is_member_function_pointer.hpp +- +boost/type_traits/is_member_object_pointer.hpp +- +boost/type_traits/is_member_pointer.hpp +- +boost/type_traits/is_nothrow_move_assignable.hpp +- +boost/type_traits/is_nothrow_move_constructible.hpp +- +boost/type_traits/is_nothrow_swappable.hpp +- +boost/type_traits/is_object.hpp +- +boost/type_traits/is_pod.hpp +- +boost/type_traits/is_pointer.hpp +- +boost/type_traits/is_polymorphic.hpp +- +boost/type_traits/is_reference.hpp +- +boost/type_traits/is_rvalue_reference.hpp +- +boost/type_traits/is_same.hpp +- +boost/type_traits/is_scalar.hpp +- +boost/type_traits/is_signed.hpp +- +boost/type_traits/is_stateless.hpp +- +boost/type_traits/is_union.hpp +- +boost/type_traits/is_unsigned.hpp +- +boost/type_traits/is_virtual_base_of.hpp +- +boost/type_traits/is_void.hpp +- +boost/type_traits/is_volatile.hpp +- +boost/type_traits/make_signed.hpp +- +boost/type_traits/make_unsigned.hpp +- +boost/type_traits/make_void.hpp +- +boost/type_traits/rank.hpp +- +boost/type_traits/remove_all_extents.hpp +- +boost/type_traits/remove_bounds.hpp +- +boost/type_traits/remove_const.hpp +- +boost/type_traits/remove_cv.hpp +- +boost/type_traits/remove_cv_ref.hpp +- +boost/type_traits/remove_extent.hpp +- +boost/type_traits/remove_pointer.hpp +- +boost/type_traits/remove_reference.hpp +- +boost/type_traits/remove_volatile.hpp +- +boost/type_traits/type_identity.hpp +- +boost/type_traits/type_with_alignment.hpp +- +boost/type_traits/integral_promotion.hpp +- +boost/type_traits/promote.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/add_const.hpp +boost/type_traits/detail/config.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/add_cv.hpp +boost/config.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/add_lvalue_reference.hpp +boost/type_traits/add_reference.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/add_pointer.hpp +boost/type_traits/remove_reference.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/add_reference.hpp +boost/detail/workaround.hpp +- +boost/config.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/add_rvalue_reference.hpp +boost/config.hpp +- +boost/type_traits/is_void.hpp +- +boost/type_traits/is_reference.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/add_volatile.hpp +boost/config.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/aligned_storage.hpp +cstddef +- +boost/config.hpp +- +boost/detail/workaround.hpp +- +boost/type_traits/alignment_of.hpp +- +boost/type_traits/type_with_alignment.hpp +- +boost/type_traits/is_pod.hpp +- +boost/type_traits/conditional.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/alignment_of.hpp +boost/config.hpp +- +cstddef +- +boost/type_traits/intrinsics.hpp +- +boost/type_traits/integral_constant.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/common_type.hpp +boost/config.hpp +- +boost/type_traits/decay.hpp +- +boost/type_traits/declval.hpp +- +boost/detail/workaround.hpp +- +boost/type_traits/is_complete.hpp +- +boost/type_traits/is_void.hpp +- +boost/type_traits/is_array.hpp +- +boost/static_assert.hpp +- +boost/type_traits/detail/common_type_impl.hpp +- +boost/type_traits/detail/mp_defer.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/conditional.hpp +boost/config.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/copy_cv.hpp +boost/type_traits/is_const.hpp +- +boost/type_traits/is_volatile.hpp +- +boost/type_traits/add_const.hpp +- +boost/type_traits/add_volatile.hpp +- +boost/type_traits/conditional.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/cv_traits.hpp +boost/type_traits/add_const.hpp +- +boost/type_traits/add_volatile.hpp +- +boost/type_traits/add_cv.hpp +- +boost/type_traits/is_const.hpp +- +boost/type_traits/is_volatile.hpp +- +boost/type_traits/remove_const.hpp +- +boost/type_traits/remove_volatile.hpp +- +boost/type_traits/remove_cv.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/decay.hpp +boost/type_traits/is_array.hpp +- +boost/type_traits/is_function.hpp +- +boost/type_traits/remove_bounds.hpp +- +boost/type_traits/add_pointer.hpp +- +boost/type_traits/remove_reference.hpp +- +boost/type_traits/remove_cv.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/declval.hpp +boost/config.hpp +- +boost/type_traits/add_rvalue_reference.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/detail/common_arithmetic_type.hpp +boost/config.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/detail/common_type_impl.hpp +boost/type_traits/detail/common_arithmetic_type.hpp +- +boost/type_traits/detail/composite_pointer_type.hpp +- +boost/type_traits/detail/composite_member_pointer_type.hpp +- +boost/type_traits/type_identity.hpp +- +boost/type_traits/is_class.hpp +- +boost/type_traits/is_union.hpp +- +boost/type_traits/is_convertible.hpp +- +boost/type_traits/is_pointer.hpp +- +boost/type_traits/is_member_pointer.hpp +- +boost/type_traits/conditional.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/detail/composite_member_pointer_type.hpp +boost/type_traits/detail/composite_pointer_type.hpp +- +boost/type_traits/remove_pointer.hpp +- +boost/type_traits/is_base_of.hpp +- +boost/type_traits/conditional.hpp +- +boost/config.hpp +- +cstddef +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/detail/composite_pointer_type.hpp +boost/type_traits/copy_cv.hpp +- +boost/type_traits/remove_cv.hpp +- +boost/type_traits/is_same.hpp +- +boost/type_traits/is_void.hpp +- +boost/type_traits/is_base_of.hpp +- +boost/config.hpp +- +cstddef +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/detail/config.hpp +boost/config.hpp +- +boost/version.hpp +- +boost/config/workaround.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/detail/has_binary_operator.hpp +boost/config.hpp +- +boost/type_traits/detail/config.hpp +- +boost/type_traits/integral_constant.hpp +- +boost/type_traits/make_void.hpp +- +boost/type_traits/is_convertible.hpp +- +boost/type_traits/is_void.hpp +- +boost/type_traits/add_reference.hpp +- +utility +- +boost/type_traits/detail/yes_no_type.hpp +- +boost/type_traits/integral_constant.hpp +- +boost/type_traits/is_base_of.hpp +- +boost/type_traits/is_const.hpp +- +boost/type_traits/is_convertible.hpp +- +boost/type_traits/is_fundamental.hpp +- +boost/type_traits/is_integral.hpp +- +boost/type_traits/is_pointer.hpp +- +boost/type_traits/is_same.hpp +- +boost/type_traits/is_void.hpp +- +boost/type_traits/remove_cv.hpp +- +boost/type_traits/remove_pointer.hpp +- +boost/type_traits/remove_reference.hpp +- +boost/type_traits/detail/is_likely_lambda.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/detail/has_postfix_operator.hpp +boost/config.hpp +- +boost/type_traits/detail/yes_no_type.hpp +- +boost/type_traits/integral_constant.hpp +- +boost/type_traits/is_const.hpp +- +boost/type_traits/is_fundamental.hpp +- +boost/type_traits/is_pointer.hpp +- +boost/type_traits/is_same.hpp +- +boost/type_traits/is_void.hpp +- +boost/type_traits/remove_cv.hpp +- +boost/type_traits/remove_pointer.hpp +- +boost/type_traits/remove_reference.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/detail/has_prefix_operator.hpp +boost/config.hpp +- +boost/type_traits/detail/yes_no_type.hpp +- +boost/type_traits/integral_constant.hpp +- +boost/type_traits/is_const.hpp +- +boost/type_traits/is_fundamental.hpp +- +boost/type_traits/is_integral.hpp +- +boost/type_traits/is_pointer.hpp +- +boost/type_traits/is_same.hpp +- +boost/type_traits/is_void.hpp +- +boost/type_traits/remove_cv.hpp +- +boost/type_traits/remove_pointer.hpp +- +boost/type_traits/remove_reference.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/detail/is_function_ptr_helper.hpp + +/home/pedroernesto/anaconda3/include/boost/type_traits/detail/is_function_ptr_tester.hpp +boost/type_traits/detail/yes_no_type.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/detail/is_likely_lambda.hpp +boost/type_traits/detail/config.hpp +- +boost/type_traits/integral_constant.hpp +- +boost/type_traits/is_convertible.hpp +- +boost/core/enable_if.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/detail/is_mem_fun_pointer_impl.hpp +boost/config.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/detail/is_mem_fun_pointer_tester.hpp +boost/type_traits/detail/yes_no_type.hpp +- +boost/type_traits/detail/config.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/detail/mp_defer.hpp +boost/type_traits/integral_constant.hpp +- +boost/type_traits/conditional.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/detail/yes_no_type.hpp + +/home/pedroernesto/anaconda3/include/boost/type_traits/extent.hpp +cstddef +- +boost/type_traits/integral_constant.hpp +- +boost/detail/workaround.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/floating_point_promotion.hpp +boost/config.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/function_traits.hpp +boost/config.hpp +- +boost/type_traits/is_function.hpp +- +boost/type_traits/add_pointer.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/has_bit_and.hpp +boost/type_traits/detail/has_binary_operator.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/has_bit_and_assign.hpp +boost/type_traits/detail/has_binary_operator.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/has_bit_or.hpp +boost/type_traits/detail/has_binary_operator.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/has_bit_or_assign.hpp +boost/type_traits/detail/has_binary_operator.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/has_bit_xor.hpp +boost/type_traits/detail/has_binary_operator.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/has_bit_xor_assign.hpp +boost/type_traits/detail/has_binary_operator.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/has_complement.hpp +boost/type_traits/detail/has_prefix_operator.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/has_dereference.hpp +boost/type_traits/detail/has_prefix_operator.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/has_divides.hpp +boost/type_traits/detail/has_binary_operator.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/has_divides_assign.hpp +boost/type_traits/detail/has_binary_operator.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/has_equal_to.hpp +boost/type_traits/detail/has_binary_operator.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/has_greater.hpp +boost/type_traits/detail/has_binary_operator.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/has_greater_equal.hpp +boost/type_traits/detail/has_binary_operator.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/has_left_shift.hpp +boost/type_traits/detail/has_binary_operator.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/has_left_shift_assign.hpp +boost/type_traits/detail/has_binary_operator.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/has_less.hpp +boost/type_traits/detail/has_binary_operator.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/has_less_equal.hpp +boost/type_traits/detail/has_binary_operator.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/has_logical_and.hpp +boost/type_traits/detail/has_binary_operator.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/has_logical_not.hpp +boost/type_traits/detail/has_prefix_operator.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/has_logical_or.hpp +boost/type_traits/detail/has_binary_operator.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/has_minus.hpp +boost/config.hpp +- +boost/type_traits/detail/config.hpp +- +boost/type_traits/integral_constant.hpp +- +boost/type_traits/make_void.hpp +- +boost/type_traits/is_convertible.hpp +- +boost/type_traits/is_void.hpp +- +boost/type_traits/add_reference.hpp +- +boost/type_traits/remove_pointer.hpp +- +boost/type_traits/remove_reference.hpp +- +utility +- +boost/type_traits/detail/has_binary_operator.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/has_minus_assign.hpp +boost/config.hpp +- +boost/type_traits/detail/config.hpp +- +boost/type_traits/integral_constant.hpp +- +boost/type_traits/make_void.hpp +- +boost/type_traits/is_convertible.hpp +- +boost/type_traits/is_void.hpp +- +boost/type_traits/is_pointer.hpp +- +boost/type_traits/add_reference.hpp +- +boost/type_traits/remove_pointer.hpp +- +boost/type_traits/remove_reference.hpp +- +utility +- +boost/type_traits/detail/has_binary_operator.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/has_modulus.hpp +boost/type_traits/detail/has_binary_operator.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/has_modulus_assign.hpp +boost/type_traits/detail/has_binary_operator.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/has_multiplies.hpp +boost/type_traits/detail/has_binary_operator.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/has_multiplies_assign.hpp +boost/type_traits/detail/has_binary_operator.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/has_negate.hpp +boost/type_traits/detail/has_prefix_operator.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/has_new_operator.hpp +new +- +cstddef +- +boost/type_traits/integral_constant.hpp +- +boost/type_traits/detail/yes_no_type.hpp +- +boost/detail/workaround.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/has_not_equal_to.hpp +boost/type_traits/detail/has_binary_operator.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/has_nothrow_assign.hpp +cstddef +- +boost/type_traits/integral_constant.hpp +- +boost/type_traits/intrinsics.hpp +- +boost/type_traits/has_trivial_assign.hpp +- +boost/type_traits/declval.hpp +- +boost/type_traits/is_const.hpp +- +boost/type_traits/is_volatile.hpp +- +boost/type_traits/is_reference.hpp +- +boost/type_traits/is_assignable.hpp +- +boost/type_traits/add_reference.hpp +- +boost/type_traits/remove_reference.hpp +- +boost/type_traits/is_const.hpp +- +boost/type_traits/is_volatile.hpp +- +boost/type_traits/is_assignable.hpp +- +boost/type_traits/is_array.hpp +- +boost/type_traits/is_pod.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/has_nothrow_constructor.hpp +cstddef +- +boost/type_traits/intrinsics.hpp +- +boost/type_traits/integral_constant.hpp +- +boost/type_traits/has_trivial_constructor.hpp +- +boost/type_traits/is_default_constructible.hpp +- +boost/type_traits/is_default_constructible.hpp +- +boost/type_traits/remove_all_extents.hpp +- +boost/type_traits/has_trivial_constructor.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/has_nothrow_copy.hpp +boost/type_traits/intrinsics.hpp +- +boost/type_traits/integral_constant.hpp +- +boost/type_traits/is_volatile.hpp +- +boost/type_traits/is_copy_constructible.hpp +- +boost/type_traits/is_reference.hpp +- +boost/type_traits/is_array.hpp +- +boost/type_traits/is_pod.hpp +- +boost/type_traits/has_trivial_copy.hpp +- +boost/type_traits/is_array.hpp +- +boost/type_traits/add_lvalue_reference.hpp +- +boost/type_traits/add_const.hpp +- +boost/type_traits/declval.hpp +- +boost/type_traits/is_copy_constructible.hpp +- +boost/type_traits/has_trivial_copy.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/has_nothrow_destructor.hpp +boost/type_traits/has_trivial_destructor.hpp +- +boost/type_traits/declval.hpp +- +boost/type_traits/is_destructible.hpp +- +boost/type_traits/is_complete.hpp +- +boost/static_assert.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/has_plus.hpp +boost/type_traits/detail/has_binary_operator.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/has_plus_assign.hpp +boost/config.hpp +- +boost/type_traits/detail/config.hpp +- +boost/type_traits/integral_constant.hpp +- +boost/type_traits/make_void.hpp +- +boost/type_traits/is_convertible.hpp +- +boost/type_traits/is_void.hpp +- +boost/type_traits/is_same.hpp +- +boost/type_traits/is_pointer.hpp +- +boost/type_traits/is_arithmetic.hpp +- +boost/type_traits/add_reference.hpp +- +boost/type_traits/remove_pointer.hpp +- +boost/type_traits/remove_reference.hpp +- +boost/type_traits/remove_cv.hpp +- +utility +- +boost/type_traits/detail/has_binary_operator.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/has_post_decrement.hpp +boost/type_traits/is_array.hpp +- +boost/type_traits/detail/has_postfix_operator.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/has_post_increment.hpp +boost/type_traits/is_array.hpp +- +boost/type_traits/detail/has_postfix_operator.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/has_pre_decrement.hpp +boost/type_traits/is_array.hpp +- +boost/type_traits/detail/has_prefix_operator.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/has_pre_increment.hpp +boost/type_traits/is_array.hpp +- +boost/type_traits/detail/has_prefix_operator.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/has_right_shift.hpp +boost/type_traits/detail/has_binary_operator.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/has_right_shift_assign.hpp +boost/type_traits/detail/has_binary_operator.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/has_trivial_assign.hpp +cstddef +- +boost/type_traits/detail/config.hpp +- +boost/type_traits/intrinsics.hpp +- +boost/type_traits/integral_constant.hpp +- +boost/type_traits/is_pod.hpp +- +boost/type_traits/is_const.hpp +- +boost/type_traits/is_volatile.hpp +- +boost/type_traits/is_assignable.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/has_trivial_constructor.hpp +boost/type_traits/intrinsics.hpp +- +boost/type_traits/is_pod.hpp +- +boost/type_traits/is_default_constructible.hpp +- +boost/type_traits/is_same.hpp +- +boost/type_traits/is_volatile.hpp +- +boost/type_traits/is_pod.hpp +- +boost/type_traits/is_default_constructible.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/has_trivial_copy.hpp +cstddef +- +boost/type_traits/intrinsics.hpp +- +boost/type_traits/is_pod.hpp +- +boost/type_traits/is_reference.hpp +- +boost/type_traits/is_copy_constructible.hpp +- +boost/type_traits/add_const.hpp +- +boost/type_traits/add_lvalue_reference.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/has_trivial_destructor.hpp +boost/type_traits/intrinsics.hpp +- +boost/type_traits/integral_constant.hpp +- +boost/type_traits/is_pod.hpp +- +boost/type_traits/is_same.hpp +- +boost/type_traits/is_destructible.hpp +- +boost/type_traits/is_pod.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/has_trivial_move_assign.hpp +cstddef +- +boost/type_traits/intrinsics.hpp +- +boost/type_traits/integral_constant.hpp +- +boost/type_traits/is_pod.hpp +- +boost/type_traits/is_const.hpp +- +boost/type_traits/is_volatile.hpp +- +boost/type_traits/is_reference.hpp +- +boost/type_traits/is_assignable.hpp +- +boost/type_traits/is_volatile.hpp +- +boost/type_traits/is_assignable.hpp +- +boost/type_traits/remove_const.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/has_trivial_move_constructor.hpp +cstddef +- +boost/type_traits/intrinsics.hpp +- +boost/type_traits/integral_constant.hpp +- +boost/type_traits/is_pod.hpp +- +boost/type_traits/is_volatile.hpp +- +boost/type_traits/is_constructible.hpp +- +boost/type_traits/is_volatile.hpp +- +boost/type_traits/is_constructible.hpp +- +boost/type_traits/remove_const.hpp +- +boost/type_traits/is_pod.hpp +- +boost/type_traits/is_volatile.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/has_unary_minus.hpp +boost/type_traits/detail/has_prefix_operator.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/has_unary_plus.hpp +boost/type_traits/detail/has_prefix_operator.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/has_virtual_destructor.hpp +boost/type_traits/intrinsics.hpp +- +boost/type_traits/integral_constant.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/integral_constant.hpp +boost/config.hpp +- +boost/detail/workaround.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/integral_promotion.hpp +boost/config.hpp +- +boost/type_traits/integral_constant.hpp +- +boost/type_traits/is_const.hpp +- +boost/type_traits/is_enum.hpp +- +boost/type_traits/is_volatile.hpp +- +boost/type_traits/remove_cv.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/intrinsics.hpp +boost/config.hpp +- +boost/type_traits/detail/config.hpp +- +boost/type_traits/is_same.hpp +- +algorithm +- +type_traits.h +- +msl_utility +- +cstddef +- +boost/type_traits/is_same.hpp +- +boost/type_traits/is_reference.hpp +- +boost/type_traits/is_volatile.hpp +- +boost/type_traits/is_same.hpp +- +boost/type_traits/is_reference.hpp +- +boost/type_traits/is_volatile.hpp +- +boost/type_traits/is_void.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/is_abstract.hpp +cstddef +- +boost/type_traits/intrinsics.hpp +- +boost/type_traits/integral_constant.hpp +- +boost/static_assert.hpp +- +boost/type_traits/detail/yes_no_type.hpp +- +boost/type_traits/is_class.hpp +- +boost/type_traits/is_polymorphic.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/is_arithmetic.hpp +boost/type_traits/is_integral.hpp +- +boost/type_traits/is_floating_point.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/is_array.hpp +boost/type_traits/integral_constant.hpp +- +cstddef +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/is_assignable.hpp +cstddef +- +boost/type_traits/integral_constant.hpp +- +boost/detail/workaround.hpp +- +boost/type_traits/is_complete.hpp +- +boost/static_assert.hpp +- +boost/type_traits/detail/yes_no_type.hpp +- +boost/type_traits/declval.hpp +- +boost/type_traits/has_trivial_assign.hpp +- +boost/type_traits/remove_reference.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/is_base_and_derived.hpp +boost/type_traits/intrinsics.hpp +- +boost/type_traits/integral_constant.hpp +- +boost/type_traits/is_class.hpp +- +boost/type_traits/is_same.hpp +- +boost/type_traits/is_convertible.hpp +- +boost/config.hpp +- +boost/static_assert.hpp +- +boost/type_traits/remove_cv.hpp +- +boost/type_traits/is_same.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/is_base_of.hpp +boost/type_traits/is_base_and_derived.hpp +- +boost/type_traits/is_same.hpp +- +boost/type_traits/is_class.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/is_class.hpp +boost/type_traits/detail/config.hpp +- +boost/type_traits/intrinsics.hpp +- +boost/type_traits/integral_constant.hpp +- +boost/type_traits/is_union.hpp +- +boost/type_traits/detail/yes_no_type.hpp +- +boost/type_traits/is_scalar.hpp +- +boost/type_traits/is_array.hpp +- +boost/type_traits/is_reference.hpp +- +boost/type_traits/is_void.hpp +- +boost/type_traits/is_function.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/is_complete.hpp +boost/type_traits/integral_constant.hpp +- +boost/type_traits/remove_reference.hpp +- +boost/type_traits/is_function.hpp +- +boost/config/workaround.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/is_complex.hpp +boost/config.hpp +- +complex +- +boost/type_traits/integral_constant.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/is_compound.hpp +boost/type_traits/is_fundamental.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/is_const.hpp +cstddef +- +boost/type_traits/integral_constant.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/is_constructible.hpp +boost/type_traits/integral_constant.hpp +- +boost/detail/workaround.hpp +- +boost/type_traits/is_destructible.hpp +- +boost/type_traits/is_default_constructible.hpp +- +boost/type_traits/detail/yes_no_type.hpp +- +boost/type_traits/declval.hpp +- +boost/type_traits/is_complete.hpp +- +boost/static_assert.hpp +- +boost/type_traits/is_convertible.hpp +- +boost/type_traits/is_default_constructible.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/is_convertible.hpp +boost/type_traits/intrinsics.hpp +- +boost/type_traits/integral_constant.hpp +- +boost/type_traits/is_complete.hpp +- +boost/type_traits/is_void.hpp +- +boost/type_traits/is_array.hpp +- +boost/static_assert.hpp +- +boost/type_traits/detail/yes_no_type.hpp +- +boost/type_traits/detail/config.hpp +- +boost/type_traits/is_array.hpp +- +boost/type_traits/is_arithmetic.hpp +- +boost/type_traits/is_void.hpp +- +boost/type_traits/is_abstract.hpp +- +boost/type_traits/add_lvalue_reference.hpp +- +boost/type_traits/add_rvalue_reference.hpp +- +boost/type_traits/is_function.hpp +- +boost/type_traits/remove_reference.hpp +- +boost/type_traits/declval.hpp +- +boost/type_traits/is_function.hpp +- +boost/type_traits/is_same.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/is_copy_assignable.hpp +boost/config.hpp +- +boost/type_traits/detail/yes_no_type.hpp +- +boost/type_traits/is_base_and_derived.hpp +- +boost/noncopyable.hpp +- +boost/type_traits/declval.hpp +- +boost/type_traits/is_const.hpp +- +boost/type_traits/is_array.hpp +- +boost/type_traits/add_reference.hpp +- +boost/type_traits/remove_reference.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/is_copy_constructible.hpp +boost/config.hpp +- +boost/detail/workaround.hpp +- +boost/type_traits/is_constructible.hpp +- +boost/type_traits/is_base_and_derived.hpp +- +boost/noncopyable.hpp +- +boost/type_traits/detail/yes_no_type.hpp +- +boost/type_traits/is_base_and_derived.hpp +- +boost/type_traits/add_reference.hpp +- +boost/type_traits/is_rvalue_reference.hpp +- +boost/type_traits/declval.hpp +- +boost/type_traits/is_array.hpp +- +boost/type_traits/declval.hpp +- +boost/noncopyable.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/is_default_constructible.hpp +cstddef +- +boost/type_traits/integral_constant.hpp +- +boost/detail/workaround.hpp +- +boost/type_traits/is_complete.hpp +- +boost/static_assert.hpp +- +boost/type_traits/is_abstract.hpp +- +utility +- +boost/type_traits/detail/yes_no_type.hpp +- +boost/type_traits/is_pod.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/is_destructible.hpp +cstddef +- +boost/type_traits/integral_constant.hpp +- +boost/detail/workaround.hpp +- +boost/type_traits/is_complete.hpp +- +boost/static_assert.hpp +- +boost/type_traits/detail/yes_no_type.hpp +- +boost/type_traits/declval.hpp +- +boost/type_traits/is_pod.hpp +- +boost/type_traits/is_class.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/is_empty.hpp +boost/type_traits/is_convertible.hpp +- +boost/type_traits/detail/config.hpp +- +boost/type_traits/intrinsics.hpp +- +boost/type_traits/remove_cv.hpp +- +boost/type_traits/is_class.hpp +- +boost/type_traits/add_reference.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/is_enum.hpp +boost/type_traits/intrinsics.hpp +- +boost/type_traits/integral_constant.hpp +- +boost/type_traits/add_reference.hpp +- +boost/type_traits/is_arithmetic.hpp +- +boost/type_traits/is_reference.hpp +- +boost/type_traits/is_convertible.hpp +- +boost/type_traits/is_array.hpp +- +boost/type_traits/is_function.hpp +- +boost/type_traits/detail/config.hpp +- +boost/type_traits/is_class.hpp +- +boost/type_traits/is_union.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/is_final.hpp +boost/type_traits/intrinsics.hpp +- +boost/type_traits/integral_constant.hpp +- +boost/type_traits/remove_cv.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/is_float.hpp +boost/type_traits/is_floating_point.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/is_floating_point.hpp +boost/type_traits/integral_constant.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/is_function.hpp +boost/type_traits/is_reference.hpp +- +boost/type_traits/detail/config.hpp +- +boost/type_traits/detail/is_function_ptr_helper.hpp +- +boost/type_traits/detail/is_function_ptr_tester.hpp +- +boost/type_traits/detail/yes_no_type.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/is_fundamental.hpp +boost/type_traits/is_arithmetic.hpp +- +boost/type_traits/is_void.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/is_integral.hpp +boost/config.hpp +- +boost/type_traits/integral_constant.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/is_list_constructible.hpp +boost/config.hpp +- +boost/config/workaround.hpp +- +boost/type_traits/integral_constant.hpp +- +boost/type_traits/declval.hpp +- +boost/type_traits/is_complete.hpp +- +boost/static_assert.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/is_lvalue_reference.hpp +boost/type_traits/integral_constant.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/is_member_function_pointer.hpp +boost/type_traits/detail/config.hpp +- +boost/detail/workaround.hpp +- +boost/type_traits/detail/is_mem_fun_pointer_impl.hpp +- +boost/type_traits/remove_cv.hpp +- +boost/type_traits/integral_constant.hpp +- +boost/type_traits/is_reference.hpp +- +boost/type_traits/is_array.hpp +- +boost/type_traits/detail/yes_no_type.hpp +- +boost/type_traits/detail/is_mem_fun_pointer_tester.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/is_member_object_pointer.hpp +boost/type_traits/is_member_pointer.hpp +- +boost/type_traits/is_member_function_pointer.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/is_member_pointer.hpp +boost/detail/workaround.hpp +- +boost/type_traits/is_member_function_pointer.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/is_nothrow_move_assignable.hpp +boost/config.hpp +- +boost/type_traits/has_trivial_move_assign.hpp +- +boost/type_traits/has_nothrow_assign.hpp +- +boost/type_traits/is_array.hpp +- +boost/type_traits/is_reference.hpp +- +boost/utility/enable_if.hpp +- +boost/type_traits/declval.hpp +- +boost/type_traits/is_complete.hpp +- +boost/static_assert.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/is_nothrow_move_constructible.hpp +cstddef +- +boost/config.hpp +- +boost/type_traits/intrinsics.hpp +- +boost/type_traits/integral_constant.hpp +- +boost/detail/workaround.hpp +- +boost/type_traits/is_complete.hpp +- +boost/static_assert.hpp +- +boost/type_traits/declval.hpp +- +boost/utility/enable_if.hpp +- +boost/type_traits/has_trivial_move_constructor.hpp +- +boost/type_traits/has_nothrow_copy.hpp +- +boost/type_traits/is_array.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/is_nothrow_swappable.hpp +boost/config.hpp +- +boost/config/workaround.hpp +- +boost/type_traits/is_scalar.hpp +- +boost/type_traits/is_const.hpp +- +boost/type_traits/integral_constant.hpp +- +boost/type_traits/declval.hpp +- +boost/type_traits/integral_constant.hpp +- +algorithm +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/is_object.hpp +boost/config.hpp +- +boost/type_traits/is_reference.hpp +- +boost/type_traits/is_void.hpp +- +boost/type_traits/is_function.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/is_pod.hpp +cstddef +- +boost/type_traits/detail/config.hpp +- +boost/type_traits/is_void.hpp +- +boost/type_traits/is_scalar.hpp +- +boost/type_traits/intrinsics.hpp +- +boost/type_traits/is_function.hpp +- +cstddef +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/is_pointer.hpp +boost/type_traits/integral_constant.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/is_polymorphic.hpp +boost/type_traits/intrinsics.hpp +- +boost/type_traits/integral_constant.hpp +- +boost/type_traits/is_class.hpp +- +boost/detail/workaround.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/is_reference.hpp +boost/type_traits/is_lvalue_reference.hpp +- +boost/type_traits/is_rvalue_reference.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/is_rvalue_reference.hpp +boost/config.hpp +- +boost/type_traits/integral_constant.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/is_same.hpp +boost/type_traits/integral_constant.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/is_scalar.hpp +boost/type_traits/is_arithmetic.hpp +- +boost/type_traits/is_enum.hpp +- +boost/type_traits/is_pointer.hpp +- +boost/type_traits/is_member_pointer.hpp +- +boost/config.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/is_signed.hpp +boost/type_traits/is_integral.hpp +- +boost/type_traits/remove_cv.hpp +- +boost/type_traits/is_enum.hpp +- +climits +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/is_stateless.hpp +boost/type_traits/has_trivial_constructor.hpp +- +boost/type_traits/has_trivial_copy.hpp +- +boost/type_traits/has_trivial_destructor.hpp +- +boost/type_traits/is_class.hpp +- +boost/type_traits/is_empty.hpp +- +boost/config.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/is_union.hpp +boost/type_traits/intrinsics.hpp +- +boost/type_traits/integral_constant.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/is_unsigned.hpp +boost/type_traits/is_integral.hpp +- +boost/type_traits/is_enum.hpp +- +boost/type_traits/remove_cv.hpp +- +climits +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/is_virtual_base_of.hpp +boost/type_traits/is_base_of.hpp +- +boost/type_traits/is_same.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/is_void.hpp +boost/type_traits/integral_constant.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/is_volatile.hpp +cstddef +- +boost/type_traits/integral_constant.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/make_signed.hpp +boost/type_traits/conditional.hpp +- +boost/type_traits/is_integral.hpp +- +boost/type_traits/is_signed.hpp +- +boost/type_traits/is_unsigned.hpp +- +boost/type_traits/is_enum.hpp +- +boost/type_traits/is_same.hpp +- +boost/type_traits/remove_cv.hpp +- +boost/type_traits/is_const.hpp +- +boost/type_traits/is_volatile.hpp +- +boost/type_traits/add_const.hpp +- +boost/type_traits/add_volatile.hpp +- +boost/static_assert.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/make_unsigned.hpp +boost/type_traits/conditional.hpp +- +boost/type_traits/is_integral.hpp +- +boost/type_traits/is_signed.hpp +- +boost/type_traits/is_unsigned.hpp +- +boost/type_traits/is_enum.hpp +- +boost/type_traits/is_same.hpp +- +boost/type_traits/remove_cv.hpp +- +boost/type_traits/is_const.hpp +- +boost/type_traits/is_volatile.hpp +- +boost/type_traits/add_const.hpp +- +boost/type_traits/add_volatile.hpp +- +boost/static_assert.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/make_void.hpp +boost/config.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/promote.hpp +boost/config.hpp +- +boost/type_traits/integral_promotion.hpp +- +boost/type_traits/floating_point_promotion.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/rank.hpp +cstddef +- +boost/type_traits/integral_constant.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/remove_all_extents.hpp +boost/config.hpp +- +cstddef +- +boost/detail/workaround.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/remove_bounds.hpp +boost/type_traits/remove_extent.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/remove_const.hpp +boost/config.hpp +- +cstddef +- +boost/detail/workaround.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/remove_cv.hpp +boost/config.hpp +- +boost/detail/workaround.hpp +- +cstddef +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/remove_cv_ref.hpp +boost/config.hpp +- +boost/type_traits/remove_cv.hpp +- +boost/type_traits/remove_reference.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/remove_extent.hpp +boost/config.hpp +- +boost/detail/workaround.hpp +- +cstddef +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/remove_pointer.hpp +boost/config.hpp +- +boost/config/workaround.hpp +- +boost/type_traits/remove_cv.hpp +- +boost/type_traits/is_pointer.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/remove_reference.hpp +boost/config.hpp +- +boost/detail/workaround.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/remove_volatile.hpp +boost/config.hpp +- +boost/detail/workaround.hpp +- +cstddef +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/type_identity.hpp +boost/config.hpp +- + +/home/pedroernesto/anaconda3/include/boost/type_traits/type_with_alignment.hpp +boost/type_traits/alignment_of.hpp +- +boost/type_traits/is_pod.hpp +- +boost/static_assert.hpp +- +boost/config.hpp +- +cstddef +- +boost/detail/workaround.hpp +- +boost/type_traits/conditional.hpp +- + +/home/pedroernesto/anaconda3/include/boost/utility/addressof.hpp +boost/core/addressof.hpp +- + +/home/pedroernesto/anaconda3/include/boost/utility/enable_if.hpp +boost/core/enable_if.hpp +- + +/home/pedroernesto/anaconda3/include/boost/utility/swap.hpp +boost/core/swap.hpp +- + +/home/pedroernesto/anaconda3/include/boost/version.hpp + +/home/pedroernesto/anaconda3/include/gsl/gsl_errno.h +stdio.h +- +errno.h +- +gsl/gsl_types.h +- + +/home/pedroernesto/anaconda3/include/gsl/gsl_inline.h + +/home/pedroernesto/anaconda3/include/gsl/gsl_rng.h +stdlib.h +- +gsl/gsl_types.h +- +gsl/gsl_errno.h +- +gsl/gsl_inline.h +- + +/home/pedroernesto/anaconda3/include/gsl/gsl_types.h + +/home/pedroernesto/anaconda3/include/mpi.h +stddef.h +- +mpi_portable_platform.h +/home/pedroernesto/anaconda3/include/mpi_portable_platform.h +openmpi/ompi/mpi/cxx/mpicxx.h +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/mpicxx.h + +/home/pedroernesto/anaconda3/include/mpi_portable_platform.h +omp.h +/home/pedroernesto/anaconda3/include/omp.h +omp.h +/home/pedroernesto/anaconda3/include/omp.h + +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/comm.h + +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/comm_inln.h + +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/constants.h + +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/datatype.h + +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/datatype_inln.h + +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/errhandler.h + +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/errhandler_inln.h + +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/exception.h + +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/file.h + +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/file_inln.h + +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/functions.h + +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/functions_inln.h +string.h +- + +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/group.h + +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/group_inln.h + +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/info.h + +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/info_inln.h + +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/intercomm.h + +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/intercomm_inln.h + +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/intracomm.h + +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/intracomm_inln.h + +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/mpicxx.h +mpi.h +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/mpi.h +map +- +utility +- +stdarg.h +- +stdio.h +- +iostream +- +sys/synch.h +- +ompi/mpi/cxx/pmpicxx.h +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/ompi/mpi/cxx/pmpicxx.h +ompi/mpi/cxx/constants.h +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/ompi/mpi/cxx/constants.h +ompi/mpi/cxx/functions.h +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/ompi/mpi/cxx/functions.h +ompi/mpi/cxx/datatype.h +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/ompi/mpi/cxx/datatype.h +openmpi/ompi/mpi/cxx/constants.h +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/openmpi/ompi/mpi/cxx/constants.h +openmpi/ompi/mpi/cxx/functions.h +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/openmpi/ompi/mpi/cxx/functions.h +openmpi/ompi/mpi/cxx/datatype.h +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/openmpi/ompi/mpi/cxx/datatype.h +ompi/mpi/cxx/exception.h +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/ompi/mpi/cxx/exception.h +ompi/mpi/cxx/op.h +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/ompi/mpi/cxx/op.h +ompi/mpi/cxx/status.h +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/ompi/mpi/cxx/status.h +ompi/mpi/cxx/request.h +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/ompi/mpi/cxx/request.h +ompi/mpi/cxx/group.h +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/ompi/mpi/cxx/group.h +ompi/mpi/cxx/comm.h +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/ompi/mpi/cxx/comm.h +ompi/mpi/cxx/win.h +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/ompi/mpi/cxx/win.h +ompi/mpi/cxx/file.h +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/ompi/mpi/cxx/file.h +ompi/mpi/cxx/errhandler.h +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/ompi/mpi/cxx/errhandler.h +ompi/mpi/cxx/intracomm.h +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/ompi/mpi/cxx/intracomm.h +ompi/mpi/cxx/topology.h +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/ompi/mpi/cxx/topology.h +ompi/mpi/cxx/intercomm.h +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/ompi/mpi/cxx/intercomm.h +ompi/mpi/cxx/info.h +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/ompi/mpi/cxx/info.h +openmpi/ompi/mpi/cxx/exception.h +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/openmpi/ompi/mpi/cxx/exception.h +openmpi/ompi/mpi/cxx/op.h +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/openmpi/ompi/mpi/cxx/op.h +openmpi/ompi/mpi/cxx/status.h +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/openmpi/ompi/mpi/cxx/status.h +openmpi/ompi/mpi/cxx/request.h +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/openmpi/ompi/mpi/cxx/request.h +openmpi/ompi/mpi/cxx/group.h +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/openmpi/ompi/mpi/cxx/group.h +openmpi/ompi/mpi/cxx/comm.h +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/openmpi/ompi/mpi/cxx/comm.h +openmpi/ompi/mpi/cxx/win.h +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/openmpi/ompi/mpi/cxx/win.h +openmpi/ompi/mpi/cxx/file.h +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/openmpi/ompi/mpi/cxx/file.h +openmpi/ompi/mpi/cxx/errhandler.h +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/openmpi/ompi/mpi/cxx/errhandler.h +openmpi/ompi/mpi/cxx/intracomm.h +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/openmpi/ompi/mpi/cxx/intracomm.h +openmpi/ompi/mpi/cxx/topology.h +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/openmpi/ompi/mpi/cxx/topology.h +openmpi/ompi/mpi/cxx/intercomm.h +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/openmpi/ompi/mpi/cxx/intercomm.h +openmpi/ompi/mpi/cxx/info.h +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/openmpi/ompi/mpi/cxx/info.h +ompi/mpi/cxx/pop_inln.h +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/ompi/mpi/cxx/pop_inln.h +ompi/mpi/cxx/pgroup_inln.h +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/ompi/mpi/cxx/pgroup_inln.h +ompi/mpi/cxx/pstatus_inln.h +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/ompi/mpi/cxx/pstatus_inln.h +ompi/mpi/cxx/prequest_inln.h +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/ompi/mpi/cxx/prequest_inln.h +ompi/mpi/cxx/datatype_inln.h +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/ompi/mpi/cxx/datatype_inln.h +ompi/mpi/cxx/functions_inln.h +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/ompi/mpi/cxx/functions_inln.h +ompi/mpi/cxx/request_inln.h +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/ompi/mpi/cxx/request_inln.h +ompi/mpi/cxx/comm_inln.h +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/ompi/mpi/cxx/comm_inln.h +ompi/mpi/cxx/intracomm_inln.h +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/ompi/mpi/cxx/intracomm_inln.h +ompi/mpi/cxx/topology_inln.h +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/ompi/mpi/cxx/topology_inln.h +ompi/mpi/cxx/intercomm_inln.h +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/ompi/mpi/cxx/intercomm_inln.h +ompi/mpi/cxx/group_inln.h +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/ompi/mpi/cxx/group_inln.h +ompi/mpi/cxx/op_inln.h +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/ompi/mpi/cxx/op_inln.h +ompi/mpi/cxx/errhandler_inln.h +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/ompi/mpi/cxx/errhandler_inln.h +ompi/mpi/cxx/status_inln.h +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/ompi/mpi/cxx/status_inln.h +ompi/mpi/cxx/info_inln.h +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/ompi/mpi/cxx/info_inln.h +ompi/mpi/cxx/win_inln.h +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/ompi/mpi/cxx/win_inln.h +ompi/mpi/cxx/file_inln.h +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/ompi/mpi/cxx/file_inln.h +openmpi/ompi/mpi/cxx/datatype_inln.h +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/openmpi/ompi/mpi/cxx/datatype_inln.h +openmpi/ompi/mpi/cxx/functions_inln.h +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/openmpi/ompi/mpi/cxx/functions_inln.h +openmpi/ompi/mpi/cxx/request_inln.h +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/openmpi/ompi/mpi/cxx/request_inln.h +openmpi/ompi/mpi/cxx/comm_inln.h +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/openmpi/ompi/mpi/cxx/comm_inln.h +openmpi/ompi/mpi/cxx/intracomm_inln.h +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/openmpi/ompi/mpi/cxx/intracomm_inln.h +openmpi/ompi/mpi/cxx/topology_inln.h +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/openmpi/ompi/mpi/cxx/topology_inln.h +openmpi/ompi/mpi/cxx/intercomm_inln.h +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/openmpi/ompi/mpi/cxx/intercomm_inln.h +openmpi/ompi/mpi/cxx/group_inln.h +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/openmpi/ompi/mpi/cxx/group_inln.h +openmpi/ompi/mpi/cxx/op_inln.h +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/openmpi/ompi/mpi/cxx/op_inln.h +openmpi/ompi/mpi/cxx/errhandler_inln.h +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/openmpi/ompi/mpi/cxx/errhandler_inln.h +openmpi/ompi/mpi/cxx/status_inln.h +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/openmpi/ompi/mpi/cxx/status_inln.h +openmpi/ompi/mpi/cxx/info_inln.h +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/openmpi/ompi/mpi/cxx/info_inln.h +openmpi/ompi/mpi/cxx/win_inln.h +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/openmpi/ompi/mpi/cxx/win_inln.h +openmpi/ompi/mpi/cxx/file_inln.h +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/openmpi/ompi/mpi/cxx/file_inln.h + +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/op.h + +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/op_inln.h + +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/request.h + +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/request_inln.h + +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/status.h + +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/status_inln.h + +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/topology.h + +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/topology_inln.h + +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/win.h + +/home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/win_inln.h + diff --git a/examples/NEST_nineml_models/StdpSongAbbott/compile/CMakeFiles/StdpSongAbbottmodule_module.dir/DependInfo.cmake b/examples/NEST_nineml_models/StdpSongAbbott/compile/CMakeFiles/StdpSongAbbottmodule_module.dir/DependInfo.cmake new file mode 100644 index 000000000..ee6e0412e --- /dev/null +++ b/examples/NEST_nineml_models/StdpSongAbbott/compile/CMakeFiles/StdpSongAbbottmodule_module.dir/DependInfo.cmake @@ -0,0 +1,29 @@ +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + "CXX" + ) +# The set of files for implicit dependencies of each language: +set(CMAKE_DEPENDS_CHECK_CXX + "/home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/src/StdpSongAbbott.cpp" "/home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/compile/CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o" + "/home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/src/StdpSongAbbottmodule.cpp" "/home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/compile/CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o" + ) +set(CMAKE_CXX_COMPILER_ID "GNU") + +# Preprocessor definitions for this target. +set(CMAKE_TARGET_DEFINITIONS_CXX + "StdpSongAbbottmodule_module_EXPORTS" + ) + +# The include file search paths: +set(CMAKE_CXX_TARGET_INCLUDE_PATH + "/home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/simulators-source/NEST_install/nest-simulator-2.18.0/conngen" + "/home/pedroernesto/anaconda3/build/NEST/include/nest" + "/home/pedroernesto/anaconda3/include" + ) + +# Targets to which this target links. +set(CMAKE_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/examples/NEST_nineml_models/StdpSongAbbott/compile/CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o b/examples/NEST_nineml_models/StdpSongAbbott/compile/CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o new file mode 100644 index 000000000..6a7e51f25 Binary files /dev/null and b/examples/NEST_nineml_models/StdpSongAbbott/compile/CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o differ diff --git a/examples/NEST_nineml_models/StdpSongAbbott/compile/CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o b/examples/NEST_nineml_models/StdpSongAbbott/compile/CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o new file mode 100644 index 000000000..bacd47aa1 Binary files /dev/null and b/examples/NEST_nineml_models/StdpSongAbbott/compile/CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o differ diff --git a/examples/NEST_nineml_models/StdpSongAbbott/compile/CMakeFiles/StdpSongAbbottmodule_module.dir/build.make b/examples/NEST_nineml_models/StdpSongAbbott/compile/CMakeFiles/StdpSongAbbottmodule_module.dir/build.make new file mode 100644 index 000000000..f003d0a4e --- /dev/null +++ b/examples/NEST_nineml_models/StdpSongAbbott/compile/CMakeFiles/StdpSongAbbottmodule_module.dir/build.make @@ -0,0 +1,132 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.18 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + + +# Disable VCS-based implicit rules. +% : %,v + + +# Disable VCS-based implicit rules. +% : RCS/% + + +# Disable VCS-based implicit rules. +% : RCS/%,v + + +# Disable VCS-based implicit rules. +% : SCCS/s.% + + +# Disable VCS-based implicit rules. +% : s.% + + +.SUFFIXES: .hpux_make_needs_suffix_list + + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: + +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /home/pedroernesto/anaconda3/lib/python3.7/site-packages/cmake/data/bin/cmake + +# The command to remove a file. +RM = /home/pedroernesto/anaconda3/lib/python3.7/site-packages/cmake/data/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/src + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/compile + +# Include any dependencies generated for this target. +include CMakeFiles/StdpSongAbbottmodule_module.dir/depend.make + +# Include the progress variables for this target. +include CMakeFiles/StdpSongAbbottmodule_module.dir/progress.make + +# Include the compile flags for this target's objects. +include CMakeFiles/StdpSongAbbottmodule_module.dir/flags.make + +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: CMakeFiles/StdpSongAbbottmodule_module.dir/flags.make +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/src/StdpSongAbbottmodule.cpp + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/compile/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building CXX object CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o" + /home/pedroernesto/anaconda3/bin/x86_64-conda_cos6-linux-gnu-c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -o CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o -c /home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/src/StdpSongAbbottmodule.cpp + +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.i" + /home/pedroernesto/anaconda3/bin/x86_64-conda_cos6-linux-gnu-c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/src/StdpSongAbbottmodule.cpp > CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.i + +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.s" + /home/pedroernesto/anaconda3/bin/x86_64-conda_cos6-linux-gnu-c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/src/StdpSongAbbottmodule.cpp -o CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.s + +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: CMakeFiles/StdpSongAbbottmodule_module.dir/flags.make +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/src/StdpSongAbbott.cpp + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/compile/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Building CXX object CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o" + /home/pedroernesto/anaconda3/bin/x86_64-conda_cos6-linux-gnu-c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -o CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o -c /home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/src/StdpSongAbbott.cpp + +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.i" + /home/pedroernesto/anaconda3/bin/x86_64-conda_cos6-linux-gnu-c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/src/StdpSongAbbott.cpp > CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.i + +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.s" + /home/pedroernesto/anaconda3/bin/x86_64-conda_cos6-linux-gnu-c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/src/StdpSongAbbott.cpp -o CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.s + +# Object files for target StdpSongAbbottmodule_module +StdpSongAbbottmodule_module_OBJECTS = \ +"CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o" \ +"CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o" + +# External object files for target StdpSongAbbottmodule_module +StdpSongAbbottmodule_module_EXTERNAL_OBJECTS = + +StdpSongAbbottmodule.so: CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o +StdpSongAbbottmodule.so: CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o +StdpSongAbbottmodule.so: CMakeFiles/StdpSongAbbottmodule_module.dir/build.make +StdpSongAbbottmodule.so: CMakeFiles/StdpSongAbbottmodule_module.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/compile/CMakeFiles --progress-num=$(CMAKE_PROGRESS_3) "Linking CXX shared module StdpSongAbbottmodule.so" + $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/StdpSongAbbottmodule_module.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +CMakeFiles/StdpSongAbbottmodule_module.dir/build: StdpSongAbbottmodule.so + +.PHONY : CMakeFiles/StdpSongAbbottmodule_module.dir/build + +CMakeFiles/StdpSongAbbottmodule_module.dir/clean: + $(CMAKE_COMMAND) -P CMakeFiles/StdpSongAbbottmodule_module.dir/cmake_clean.cmake +.PHONY : CMakeFiles/StdpSongAbbottmodule_module.dir/clean + +CMakeFiles/StdpSongAbbottmodule_module.dir/depend: + cd /home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/compile && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/src /home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/src /home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/compile /home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/compile /home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/compile/CMakeFiles/StdpSongAbbottmodule_module.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : CMakeFiles/StdpSongAbbottmodule_module.dir/depend + diff --git a/examples/NEST_nineml_models/StdpSongAbbott/compile/CMakeFiles/StdpSongAbbottmodule_module.dir/cmake_clean.cmake b/examples/NEST_nineml_models/StdpSongAbbott/compile/CMakeFiles/StdpSongAbbottmodule_module.dir/cmake_clean.cmake new file mode 100644 index 000000000..0d2f6cc77 --- /dev/null +++ b/examples/NEST_nineml_models/StdpSongAbbott/compile/CMakeFiles/StdpSongAbbottmodule_module.dir/cmake_clean.cmake @@ -0,0 +1,11 @@ +file(REMOVE_RECURSE + "CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o" + "CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o" + "StdpSongAbbottmodule.pdb" + "StdpSongAbbottmodule.so" +) + +# Per-language clean rules from dependency scanning. +foreach(lang CXX) + include(CMakeFiles/StdpSongAbbottmodule_module.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/examples/NEST_nineml_models/StdpSongAbbott/compile/CMakeFiles/StdpSongAbbottmodule_module.dir/depend.internal b/examples/NEST_nineml_models/StdpSongAbbott/compile/CMakeFiles/StdpSongAbbottmodule_module.dir/depend.internal new file mode 100644 index 000000000..f831615bc --- /dev/null +++ b/examples/NEST_nineml_models/StdpSongAbbott/compile/CMakeFiles/StdpSongAbbottmodule_module.dir/depend.internal @@ -0,0 +1,1215 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.18 + +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o + /home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/src/StdpSongAbbott.cpp + /home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/src/StdpSongAbbott.h + /home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/simulators-source/NEST_install/nest-simulator-2.18.0/nestkernel/source.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/aggregatedatum.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/allocator.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/arraydatum.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/block_vector.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/common_synapse_properties.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/compose.hpp + /home/pedroernesto/anaconda3/build/NEST/include/nest/config.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/conn_builder.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/conn_parameter.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/connection.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/connection_id.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/connection_label.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/connection_manager.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/connector_base.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/connector_base_impl.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/connector_model.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/datum.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/delay_checker.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/dict.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/dictdatum.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/dictutils.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/doubledatum.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/event.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/event_delivery_manager.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/exceptions.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/genericdatum.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/genericmodel.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/gid_collection.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/growth_curve.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/growth_curve_factory.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/gslrandomgen.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/histentry.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/integerdatum.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/interpret.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/io_manager.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/iterator_pair.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/kernel_manager.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/librandom_exceptions.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/librandom_names.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/lockptr.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/lockptrdatum.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/lockptrdatum_impl.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/logging.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/logging_manager.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/manager_interface.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/model.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/model_manager.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/modelrange.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/modelrange_manager.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/mpi_manager.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/music_event_handler.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/music_manager.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/name.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/namedatum.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/nest.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/nest_datums.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/nest_names.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/nest_time.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/nest_timeconverter.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/nest_types.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/nestmodule.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/node.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/node_manager.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/numericdatum.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/numerics.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/random_datums.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/random_numbers.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/randomdev.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/randomgen.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/rng_manager.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/sibling_container.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/simulation_manager.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/sliactions.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/slibuiltins.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/sliexceptions.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/slifunction.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/slimodule.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/slitype.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/sort.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/source.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/source_table.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/source_table_position.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/sp_manager.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/sparse_node_array.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/spike_data.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/spikecounter.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/static_assert.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/stopwatch.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/syn_id_delay.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/target.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/target_data.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/target_table.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/target_table_devices.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/tarrayobj.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/token.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/tokenarray.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/tokenstack.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/tokenutils.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/vector_util.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/vp_manager.h + /home/pedroernesto/anaconda3/include/boost/config.hpp + /home/pedroernesto/anaconda3/include/boost/config/compiler/borland.hpp + /home/pedroernesto/anaconda3/include/boost/config/compiler/clang.hpp + /home/pedroernesto/anaconda3/include/boost/config/compiler/codegear.hpp + /home/pedroernesto/anaconda3/include/boost/config/compiler/comeau.hpp + /home/pedroernesto/anaconda3/include/boost/config/compiler/common_edg.hpp + /home/pedroernesto/anaconda3/include/boost/config/compiler/compaq_cxx.hpp + /home/pedroernesto/anaconda3/include/boost/config/compiler/cray.hpp + /home/pedroernesto/anaconda3/include/boost/config/compiler/digitalmars.hpp + /home/pedroernesto/anaconda3/include/boost/config/compiler/gcc.hpp + /home/pedroernesto/anaconda3/include/boost/config/compiler/gcc_xml.hpp + /home/pedroernesto/anaconda3/include/boost/config/compiler/greenhills.hpp + /home/pedroernesto/anaconda3/include/boost/config/compiler/hp_acc.hpp + /home/pedroernesto/anaconda3/include/boost/config/compiler/intel.hpp + /home/pedroernesto/anaconda3/include/boost/config/compiler/kai.hpp + /home/pedroernesto/anaconda3/include/boost/config/compiler/metrowerks.hpp + /home/pedroernesto/anaconda3/include/boost/config/compiler/mpw.hpp + /home/pedroernesto/anaconda3/include/boost/config/compiler/nvcc.hpp + /home/pedroernesto/anaconda3/include/boost/config/compiler/pathscale.hpp + /home/pedroernesto/anaconda3/include/boost/config/compiler/pgi.hpp + /home/pedroernesto/anaconda3/include/boost/config/compiler/sgi_mipspro.hpp + /home/pedroernesto/anaconda3/include/boost/config/compiler/sunpro_cc.hpp + /home/pedroernesto/anaconda3/include/boost/config/compiler/vacpp.hpp + /home/pedroernesto/anaconda3/include/boost/config/compiler/visualc.hpp + /home/pedroernesto/anaconda3/include/boost/config/compiler/xlcpp.hpp + /home/pedroernesto/anaconda3/include/boost/config/compiler/xlcpp_zos.hpp + /home/pedroernesto/anaconda3/include/boost/config/detail/posix_features.hpp + /home/pedroernesto/anaconda3/include/boost/config/detail/select_compiler_config.hpp + /home/pedroernesto/anaconda3/include/boost/config/detail/select_platform_config.hpp + /home/pedroernesto/anaconda3/include/boost/config/detail/select_stdlib_config.hpp + /home/pedroernesto/anaconda3/include/boost/config/detail/suffix.hpp + /home/pedroernesto/anaconda3/include/boost/config/helper_macros.hpp + /home/pedroernesto/anaconda3/include/boost/config/no_tr1/utility.hpp + /home/pedroernesto/anaconda3/include/boost/config/platform/aix.hpp + /home/pedroernesto/anaconda3/include/boost/config/platform/amigaos.hpp + /home/pedroernesto/anaconda3/include/boost/config/platform/beos.hpp + /home/pedroernesto/anaconda3/include/boost/config/platform/bsd.hpp + /home/pedroernesto/anaconda3/include/boost/config/platform/cray.hpp + /home/pedroernesto/anaconda3/include/boost/config/platform/cygwin.hpp + /home/pedroernesto/anaconda3/include/boost/config/platform/hpux.hpp + /home/pedroernesto/anaconda3/include/boost/config/platform/irix.hpp + /home/pedroernesto/anaconda3/include/boost/config/platform/linux.hpp + /home/pedroernesto/anaconda3/include/boost/config/platform/macos.hpp + /home/pedroernesto/anaconda3/include/boost/config/platform/qnxnto.hpp + /home/pedroernesto/anaconda3/include/boost/config/platform/solaris.hpp + /home/pedroernesto/anaconda3/include/boost/config/platform/symbian.hpp + /home/pedroernesto/anaconda3/include/boost/config/platform/vms.hpp + /home/pedroernesto/anaconda3/include/boost/config/platform/vxworks.hpp + /home/pedroernesto/anaconda3/include/boost/config/platform/win32.hpp + /home/pedroernesto/anaconda3/include/boost/config/platform/zos.hpp + /home/pedroernesto/anaconda3/include/boost/config/pragma_message.hpp + /home/pedroernesto/anaconda3/include/boost/config/stdlib/dinkumware.hpp + /home/pedroernesto/anaconda3/include/boost/config/stdlib/libcomo.hpp + /home/pedroernesto/anaconda3/include/boost/config/stdlib/libcpp.hpp + /home/pedroernesto/anaconda3/include/boost/config/stdlib/libstdcpp3.hpp + /home/pedroernesto/anaconda3/include/boost/config/stdlib/modena.hpp + /home/pedroernesto/anaconda3/include/boost/config/stdlib/msl.hpp + /home/pedroernesto/anaconda3/include/boost/config/stdlib/roguewave.hpp + /home/pedroernesto/anaconda3/include/boost/config/stdlib/sgi.hpp + /home/pedroernesto/anaconda3/include/boost/config/stdlib/stlport.hpp + /home/pedroernesto/anaconda3/include/boost/config/stdlib/vacpp.hpp + /home/pedroernesto/anaconda3/include/boost/config/stdlib/xlcpp_zos.hpp + /home/pedroernesto/anaconda3/include/boost/config/user.hpp + /home/pedroernesto/anaconda3/include/boost/config/workaround.hpp + /home/pedroernesto/anaconda3/include/boost/core/addressof.hpp + /home/pedroernesto/anaconda3/include/boost/core/enable_if.hpp + /home/pedroernesto/anaconda3/include/boost/core/noncopyable.hpp + /home/pedroernesto/anaconda3/include/boost/core/ref.hpp + /home/pedroernesto/anaconda3/include/boost/core/swap.hpp + /home/pedroernesto/anaconda3/include/boost/cstdint.hpp + /home/pedroernesto/anaconda3/include/boost/detail/indirect_traits.hpp + /home/pedroernesto/anaconda3/include/boost/detail/workaround.hpp + /home/pedroernesto/anaconda3/include/boost/iterator/detail/config_def.hpp + /home/pedroernesto/anaconda3/include/boost/iterator/detail/config_undef.hpp + /home/pedroernesto/anaconda3/include/boost/iterator/detail/enable_if.hpp + /home/pedroernesto/anaconda3/include/boost/iterator/detail/facade_iterator_category.hpp + /home/pedroernesto/anaconda3/include/boost/iterator/interoperable.hpp + /home/pedroernesto/anaconda3/include/boost/iterator/iterator_adaptor.hpp + /home/pedroernesto/anaconda3/include/boost/iterator/iterator_categories.hpp + /home/pedroernesto/anaconda3/include/boost/iterator/iterator_facade.hpp + /home/pedroernesto/anaconda3/include/boost/iterator/iterator_traits.hpp + /home/pedroernesto/anaconda3/include/boost/limits.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/always.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/and.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/apply.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/apply_fwd.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/apply_wrap.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/arg.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/arg_fwd.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/assert.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/adl_barrier.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/arg_typedef.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/arity.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/arity_spec.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/common_name_wknd.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/adl.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/arrays.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/bcc.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/bind.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/compiler.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/ctps.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/dmc_ambiguous_ctps.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/dtp.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/eti.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/gcc.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/gpu.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/has_apply.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/has_xxx.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/integral.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/intel.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/lambda.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/msvc.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/msvc_typename.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/nttp.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/overload_resolution.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/pp_counter.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/preprocessor.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/static_constant.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/ttp.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/use_preprocessed.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/workaround.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/count_args.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/full_lambda.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/has_apply.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/has_rebind.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/has_type.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/include_preprocessed.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/integral_wrapper.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/lambda_arity_param.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/lambda_no_ctps.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/lambda_support.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/logical_op.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/msvc_dtw.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/msvc_is_class.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/msvc_never_true.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/na.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/na_assert.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/na_fwd.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/na_spec.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/nested_type_wknd.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/nttp_decl.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/preprocessor/add.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/preprocessor/def_params_tail.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/preprocessor/default_params.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/preprocessor/enum.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/preprocessor/ext_params.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/preprocessor/filter_params.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/preprocessor/params.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/preprocessor/partial_spec_params.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/preprocessor/range.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/preprocessor/repeat.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/preprocessor/sub.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/preprocessor/tuple.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/static_cast.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/template_arity.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/template_arity_fwd.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/type_wrapper.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/value_wknd.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/yes_no.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/bind.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/bind_fwd.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/bool.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/bool_fwd.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/eval_if.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/has_xxx.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/identity.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/if.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/int.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/int_fwd.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/integral_c_tag.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/is_placeholder.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/lambda.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/lambda_fwd.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/limits/arity.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/next.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/next_prior.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/not.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/or.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/placeholders.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/print.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/protect.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/quote.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/void.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/void_fwd.hpp + /home/pedroernesto/anaconda3/include/boost/noncopyable.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/arithmetic/add.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/arithmetic/dec.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/arithmetic/inc.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/arithmetic/sub.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/array/data.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/array/elem.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/array/size.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/cat.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/comma_if.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/comparison/not_equal.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/config/config.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/control/detail/dmc/while.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/control/detail/edg/while.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/control/detail/msvc/while.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/control/detail/while.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/control/expr_if.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/control/expr_iif.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/control/if.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/control/iif.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/control/while.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/debug/error.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/dec.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/detail/auto_rec.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/detail/check.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/detail/dmc/auto_rec.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/detail/is_binary.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/detail/split.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/empty.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/enum_shifted_params.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/expr_if.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/facilities/detail/is_empty.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/facilities/empty.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/facilities/expand.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/facilities/identity.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/facilities/is_1.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/facilities/is_empty.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/facilities/is_empty_variadic.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/facilities/overload.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/identity.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/inc.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/iterate.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/iteration/iterate.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/list/adt.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/list/detail/dmc/fold_left.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/list/detail/edg/fold_left.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/list/detail/edg/fold_right.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/list/detail/fold_left.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/list/detail/fold_right.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/list/fold_left.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/list/fold_right.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/list/for_each_i.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/list/reverse.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/logical/and.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/logical/bitand.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/logical/bool.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/logical/compl.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/punctuation/comma.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/punctuation/comma_if.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/punctuation/detail/is_begin_parens.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/punctuation/is_begin_parens.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/repeat.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/repetition/detail/dmc/for.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/repetition/detail/edg/for.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/repetition/detail/for.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/repetition/detail/msvc/for.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/repetition/enum_params.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/repetition/enum_shifted_params.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/repetition/enum_trailing_params.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/repetition/for.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/repetition/repeat.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/seq/detail/is_empty.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/seq/detail/split.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/seq/elem.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/seq/first_n.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/seq/fold_left.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/seq/rest_n.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/seq/seq.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/seq/size.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/seq/subseq.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/slot/detail/def.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/slot/slot.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/stringize.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/tuple/detail/is_single_return.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/tuple/eat.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/tuple/elem.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/tuple/rem.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/tuple/size.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/tuple/to_list.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/variadic/elem.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/variadic/size.hpp + /home/pedroernesto/anaconda3/include/boost/range/begin.hpp + /home/pedroernesto/anaconda3/include/boost/range/config.hpp + /home/pedroernesto/anaconda3/include/boost/range/const_iterator.hpp + /home/pedroernesto/anaconda3/include/boost/range/detail/begin.hpp + /home/pedroernesto/anaconda3/include/boost/range/detail/common.hpp + /home/pedroernesto/anaconda3/include/boost/range/detail/end.hpp + /home/pedroernesto/anaconda3/include/boost/range/detail/extract_optional_type.hpp + /home/pedroernesto/anaconda3/include/boost/range/detail/implementation_help.hpp + /home/pedroernesto/anaconda3/include/boost/range/detail/msvc_has_iterator_workaround.hpp + /home/pedroernesto/anaconda3/include/boost/range/detail/sfinae.hpp + /home/pedroernesto/anaconda3/include/boost/range/end.hpp + /home/pedroernesto/anaconda3/include/boost/range/iterator.hpp + /home/pedroernesto/anaconda3/include/boost/range/mutable_iterator.hpp + /home/pedroernesto/anaconda3/include/boost/range/range_fwd.hpp + /home/pedroernesto/anaconda3/include/boost/ref.hpp + /home/pedroernesto/anaconda3/include/boost/serialization/static_warning.hpp + /home/pedroernesto/anaconda3/include/boost/sort/spreadsort/detail/constants.hpp + /home/pedroernesto/anaconda3/include/boost/sort/spreadsort/detail/float_sort.hpp + /home/pedroernesto/anaconda3/include/boost/sort/spreadsort/detail/integer_sort.hpp + /home/pedroernesto/anaconda3/include/boost/sort/spreadsort/detail/spreadsort_common.hpp + /home/pedroernesto/anaconda3/include/boost/sort/spreadsort/detail/string_sort.hpp + /home/pedroernesto/anaconda3/include/boost/sort/spreadsort/float_sort.hpp + /home/pedroernesto/anaconda3/include/boost/sort/spreadsort/integer_sort.hpp + /home/pedroernesto/anaconda3/include/boost/sort/spreadsort/spreadsort.hpp + /home/pedroernesto/anaconda3/include/boost/sort/spreadsort/string_sort.hpp + /home/pedroernesto/anaconda3/include/boost/static_assert.hpp + /home/pedroernesto/anaconda3/include/boost/tuple/detail/tuple_basic.hpp + /home/pedroernesto/anaconda3/include/boost/tuple/tuple.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/add_const.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/add_cv.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/add_lvalue_reference.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/add_pointer.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/add_reference.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/add_rvalue_reference.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/add_volatile.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/aligned_storage.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/alignment_of.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/common_type.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/conditional.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/copy_cv.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/cv_traits.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/decay.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/declval.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/detail/common_arithmetic_type.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/detail/common_type_impl.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/detail/composite_member_pointer_type.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/detail/composite_pointer_type.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/detail/config.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/detail/has_binary_operator.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/detail/has_postfix_operator.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/detail/has_prefix_operator.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/detail/is_function_ptr_helper.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/detail/is_function_ptr_tester.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/detail/is_likely_lambda.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/detail/is_mem_fun_pointer_impl.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/detail/is_mem_fun_pointer_tester.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/detail/mp_defer.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/detail/yes_no_type.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/extent.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/floating_point_promotion.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/function_traits.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_bit_and.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_bit_and_assign.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_bit_or.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_bit_or_assign.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_bit_xor.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_bit_xor_assign.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_complement.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_dereference.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_divides.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_divides_assign.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_equal_to.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_greater.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_greater_equal.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_left_shift.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_left_shift_assign.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_less.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_less_equal.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_logical_and.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_logical_not.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_logical_or.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_minus.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_minus_assign.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_modulus.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_modulus_assign.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_multiplies.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_multiplies_assign.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_negate.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_new_operator.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_not_equal_to.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_nothrow_assign.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_nothrow_constructor.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_nothrow_copy.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_nothrow_destructor.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_plus.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_plus_assign.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_post_decrement.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_post_increment.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_pre_decrement.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_pre_increment.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_right_shift.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_right_shift_assign.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_trivial_assign.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_trivial_constructor.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_trivial_copy.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_trivial_destructor.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_trivial_move_assign.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_trivial_move_constructor.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_unary_minus.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_unary_plus.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_virtual_destructor.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/integral_constant.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/integral_promotion.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/intrinsics.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_abstract.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_arithmetic.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_array.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_assignable.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_base_and_derived.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_base_of.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_class.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_complete.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_complex.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_compound.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_const.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_constructible.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_convertible.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_copy_assignable.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_copy_constructible.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_default_constructible.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_destructible.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_empty.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_enum.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_final.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_float.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_floating_point.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_function.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_fundamental.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_integral.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_list_constructible.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_lvalue_reference.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_member_function_pointer.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_member_object_pointer.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_member_pointer.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_nothrow_move_assignable.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_nothrow_move_constructible.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_nothrow_swappable.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_object.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_pod.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_pointer.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_polymorphic.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_reference.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_rvalue_reference.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_same.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_scalar.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_signed.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_stateless.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_union.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_unsigned.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_virtual_base_of.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_void.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_volatile.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/make_signed.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/make_unsigned.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/make_void.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/promote.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/rank.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/remove_all_extents.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/remove_bounds.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/remove_const.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/remove_cv.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/remove_cv_ref.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/remove_extent.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/remove_pointer.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/remove_reference.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/remove_volatile.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/type_identity.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/type_with_alignment.hpp + /home/pedroernesto/anaconda3/include/boost/utility/addressof.hpp + /home/pedroernesto/anaconda3/include/boost/utility/enable_if.hpp + /home/pedroernesto/anaconda3/include/boost/utility/swap.hpp + /home/pedroernesto/anaconda3/include/boost/version.hpp + /home/pedroernesto/anaconda3/include/gsl/gsl_errno.h + /home/pedroernesto/anaconda3/include/gsl/gsl_inline.h + /home/pedroernesto/anaconda3/include/gsl/gsl_rng.h + /home/pedroernesto/anaconda3/include/gsl/gsl_types.h + /home/pedroernesto/anaconda3/include/mpi.h + /home/pedroernesto/anaconda3/include/mpi_portable_platform.h + /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/comm.h + /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/comm_inln.h + /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/constants.h + /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/datatype.h + /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/datatype_inln.h + /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/errhandler.h + /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/errhandler_inln.h + /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/exception.h + /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/file.h + /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/file_inln.h + /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/functions.h + /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/functions_inln.h + /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/group.h + /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/group_inln.h + /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/info.h + /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/info_inln.h + /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/intercomm.h + /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/intercomm_inln.h + /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/intracomm.h + /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/intracomm_inln.h + /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/mpicxx.h + /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/op.h + /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/op_inln.h + /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/request.h + /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/request_inln.h + /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/status.h + /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/status_inln.h + /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/topology.h + /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/topology_inln.h + /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/win.h + /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/win_inln.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o + /home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/src/StdpSongAbbott.h + /home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/src/StdpSongAbbottmodule.cpp + /home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/src/StdpSongAbbottmodule.h + /home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/simulators-source/NEST_install/nest-simulator-2.18.0/nestkernel/source.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/aggregatedatum.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/allocator.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/arraydatum.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/block_vector.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/booldatum.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/common_synapse_properties.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/compose.hpp + /home/pedroernesto/anaconda3/build/NEST/include/nest/config.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/conn_builder.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/conn_builder_factory.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/conn_parameter.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/connection.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/connection_id.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/connection_label.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/connection_manager.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/connection_manager_impl.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/connector_base.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/connector_base_impl.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/connector_model.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/connector_model_impl.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/datum.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/delay_checker.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/dict.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/dictdatum.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/dictutils.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/doubledatum.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/dynamicloader.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/event.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/event_delivery_manager.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/exceptions.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/genericdatum.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/genericmodel.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/genericmodel_impl.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/gid_collection.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/growth_curve.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/growth_curve_factory.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/gslrandomgen.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/histentry.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/integerdatum.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/interpret.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/io_manager.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/iterator_pair.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/kernel_manager.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/librandom_exceptions.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/librandom_names.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/lockptr.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/lockptrdatum.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/lockptrdatum_impl.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/logging.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/logging_manager.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/manager_interface.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/model.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/model_manager.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/model_manager_impl.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/modelrange.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/modelrange_manager.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/mpi_manager.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/mpi_manager_impl.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/music_event_handler.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/music_manager.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/name.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/namedatum.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/nest.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/nest_datums.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/nest_impl.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/nest_names.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/nest_time.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/nest_timeconverter.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/nest_types.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/nestmodule.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/node.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/node_manager.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/numericdatum.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/numerics.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/random_datums.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/random_numbers.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/randomdev.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/randomgen.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/rng_manager.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/sibling_container.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/simulation_manager.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/sliactions.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/slibuiltins.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/sliexceptions.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/slifunction.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/slimodule.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/slitype.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/sort.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/source.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/source_table.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/source_table_position.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/sp_manager.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/sparse_node_array.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/spike_data.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/spikecounter.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/static_assert.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/stopwatch.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/string_utils.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/syn_id_delay.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/target.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/target_data.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/target_identifier.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/target_table.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/target_table_devices.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/target_table_devices_impl.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/tarrayobj.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/token.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/tokenarray.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/tokenstack.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/tokenutils.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/vector_util.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/vp_manager.h + /home/pedroernesto/anaconda3/build/NEST/include/nest/vp_manager_impl.h + /home/pedroernesto/anaconda3/include/boost/config.hpp + /home/pedroernesto/anaconda3/include/boost/config/compiler/borland.hpp + /home/pedroernesto/anaconda3/include/boost/config/compiler/clang.hpp + /home/pedroernesto/anaconda3/include/boost/config/compiler/codegear.hpp + /home/pedroernesto/anaconda3/include/boost/config/compiler/comeau.hpp + /home/pedroernesto/anaconda3/include/boost/config/compiler/common_edg.hpp + /home/pedroernesto/anaconda3/include/boost/config/compiler/compaq_cxx.hpp + /home/pedroernesto/anaconda3/include/boost/config/compiler/cray.hpp + /home/pedroernesto/anaconda3/include/boost/config/compiler/digitalmars.hpp + /home/pedroernesto/anaconda3/include/boost/config/compiler/gcc.hpp + /home/pedroernesto/anaconda3/include/boost/config/compiler/gcc_xml.hpp + /home/pedroernesto/anaconda3/include/boost/config/compiler/greenhills.hpp + /home/pedroernesto/anaconda3/include/boost/config/compiler/hp_acc.hpp + /home/pedroernesto/anaconda3/include/boost/config/compiler/intel.hpp + /home/pedroernesto/anaconda3/include/boost/config/compiler/kai.hpp + /home/pedroernesto/anaconda3/include/boost/config/compiler/metrowerks.hpp + /home/pedroernesto/anaconda3/include/boost/config/compiler/mpw.hpp + /home/pedroernesto/anaconda3/include/boost/config/compiler/nvcc.hpp + /home/pedroernesto/anaconda3/include/boost/config/compiler/pathscale.hpp + /home/pedroernesto/anaconda3/include/boost/config/compiler/pgi.hpp + /home/pedroernesto/anaconda3/include/boost/config/compiler/sgi_mipspro.hpp + /home/pedroernesto/anaconda3/include/boost/config/compiler/sunpro_cc.hpp + /home/pedroernesto/anaconda3/include/boost/config/compiler/vacpp.hpp + /home/pedroernesto/anaconda3/include/boost/config/compiler/visualc.hpp + /home/pedroernesto/anaconda3/include/boost/config/compiler/xlcpp.hpp + /home/pedroernesto/anaconda3/include/boost/config/compiler/xlcpp_zos.hpp + /home/pedroernesto/anaconda3/include/boost/config/detail/posix_features.hpp + /home/pedroernesto/anaconda3/include/boost/config/detail/select_compiler_config.hpp + /home/pedroernesto/anaconda3/include/boost/config/detail/select_platform_config.hpp + /home/pedroernesto/anaconda3/include/boost/config/detail/select_stdlib_config.hpp + /home/pedroernesto/anaconda3/include/boost/config/detail/suffix.hpp + /home/pedroernesto/anaconda3/include/boost/config/helper_macros.hpp + /home/pedroernesto/anaconda3/include/boost/config/no_tr1/utility.hpp + /home/pedroernesto/anaconda3/include/boost/config/platform/aix.hpp + /home/pedroernesto/anaconda3/include/boost/config/platform/amigaos.hpp + /home/pedroernesto/anaconda3/include/boost/config/platform/beos.hpp + /home/pedroernesto/anaconda3/include/boost/config/platform/bsd.hpp + /home/pedroernesto/anaconda3/include/boost/config/platform/cray.hpp + /home/pedroernesto/anaconda3/include/boost/config/platform/cygwin.hpp + /home/pedroernesto/anaconda3/include/boost/config/platform/hpux.hpp + /home/pedroernesto/anaconda3/include/boost/config/platform/irix.hpp + /home/pedroernesto/anaconda3/include/boost/config/platform/linux.hpp + /home/pedroernesto/anaconda3/include/boost/config/platform/macos.hpp + /home/pedroernesto/anaconda3/include/boost/config/platform/qnxnto.hpp + /home/pedroernesto/anaconda3/include/boost/config/platform/solaris.hpp + /home/pedroernesto/anaconda3/include/boost/config/platform/symbian.hpp + /home/pedroernesto/anaconda3/include/boost/config/platform/vms.hpp + /home/pedroernesto/anaconda3/include/boost/config/platform/vxworks.hpp + /home/pedroernesto/anaconda3/include/boost/config/platform/win32.hpp + /home/pedroernesto/anaconda3/include/boost/config/platform/zos.hpp + /home/pedroernesto/anaconda3/include/boost/config/pragma_message.hpp + /home/pedroernesto/anaconda3/include/boost/config/stdlib/dinkumware.hpp + /home/pedroernesto/anaconda3/include/boost/config/stdlib/libcomo.hpp + /home/pedroernesto/anaconda3/include/boost/config/stdlib/libcpp.hpp + /home/pedroernesto/anaconda3/include/boost/config/stdlib/libstdcpp3.hpp + /home/pedroernesto/anaconda3/include/boost/config/stdlib/modena.hpp + /home/pedroernesto/anaconda3/include/boost/config/stdlib/msl.hpp + /home/pedroernesto/anaconda3/include/boost/config/stdlib/roguewave.hpp + /home/pedroernesto/anaconda3/include/boost/config/stdlib/sgi.hpp + /home/pedroernesto/anaconda3/include/boost/config/stdlib/stlport.hpp + /home/pedroernesto/anaconda3/include/boost/config/stdlib/vacpp.hpp + /home/pedroernesto/anaconda3/include/boost/config/stdlib/xlcpp_zos.hpp + /home/pedroernesto/anaconda3/include/boost/config/user.hpp + /home/pedroernesto/anaconda3/include/boost/config/workaround.hpp + /home/pedroernesto/anaconda3/include/boost/core/addressof.hpp + /home/pedroernesto/anaconda3/include/boost/core/enable_if.hpp + /home/pedroernesto/anaconda3/include/boost/core/noncopyable.hpp + /home/pedroernesto/anaconda3/include/boost/core/ref.hpp + /home/pedroernesto/anaconda3/include/boost/core/swap.hpp + /home/pedroernesto/anaconda3/include/boost/cstdint.hpp + /home/pedroernesto/anaconda3/include/boost/detail/indirect_traits.hpp + /home/pedroernesto/anaconda3/include/boost/detail/workaround.hpp + /home/pedroernesto/anaconda3/include/boost/iterator/detail/config_def.hpp + /home/pedroernesto/anaconda3/include/boost/iterator/detail/config_undef.hpp + /home/pedroernesto/anaconda3/include/boost/iterator/detail/enable_if.hpp + /home/pedroernesto/anaconda3/include/boost/iterator/detail/facade_iterator_category.hpp + /home/pedroernesto/anaconda3/include/boost/iterator/interoperable.hpp + /home/pedroernesto/anaconda3/include/boost/iterator/iterator_adaptor.hpp + /home/pedroernesto/anaconda3/include/boost/iterator/iterator_categories.hpp + /home/pedroernesto/anaconda3/include/boost/iterator/iterator_facade.hpp + /home/pedroernesto/anaconda3/include/boost/iterator/iterator_traits.hpp + /home/pedroernesto/anaconda3/include/boost/limits.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/always.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/and.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/apply.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/apply_fwd.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/apply_wrap.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/arg.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/arg_fwd.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/assert.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/adl_barrier.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/arg_typedef.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/arity.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/arity_spec.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/common_name_wknd.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/adl.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/arrays.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/bcc.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/bind.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/compiler.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/ctps.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/dmc_ambiguous_ctps.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/dtp.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/eti.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/gcc.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/gpu.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/has_apply.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/has_xxx.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/integral.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/intel.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/lambda.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/msvc.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/msvc_typename.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/nttp.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/overload_resolution.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/pp_counter.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/preprocessor.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/static_constant.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/ttp.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/use_preprocessed.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/workaround.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/count_args.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/full_lambda.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/has_apply.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/has_rebind.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/has_type.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/include_preprocessed.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/integral_wrapper.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/lambda_arity_param.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/lambda_no_ctps.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/lambda_support.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/logical_op.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/msvc_dtw.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/msvc_is_class.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/msvc_never_true.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/na.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/na_assert.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/na_fwd.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/na_spec.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/nested_type_wknd.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/nttp_decl.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/preprocessor/add.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/preprocessor/def_params_tail.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/preprocessor/default_params.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/preprocessor/enum.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/preprocessor/ext_params.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/preprocessor/filter_params.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/preprocessor/params.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/preprocessor/partial_spec_params.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/preprocessor/range.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/preprocessor/repeat.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/preprocessor/sub.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/preprocessor/tuple.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/static_cast.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/template_arity.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/template_arity_fwd.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/type_wrapper.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/value_wknd.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/aux_/yes_no.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/bind.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/bind_fwd.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/bool.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/bool_fwd.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/eval_if.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/has_xxx.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/identity.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/if.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/int.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/int_fwd.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/integral_c_tag.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/is_placeholder.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/lambda.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/lambda_fwd.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/limits/arity.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/next.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/next_prior.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/not.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/or.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/placeholders.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/print.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/protect.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/quote.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/void.hpp + /home/pedroernesto/anaconda3/include/boost/mpl/void_fwd.hpp + /home/pedroernesto/anaconda3/include/boost/noncopyable.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/arithmetic/add.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/arithmetic/dec.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/arithmetic/inc.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/arithmetic/sub.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/array/data.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/array/elem.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/array/size.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/cat.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/comma_if.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/comparison/not_equal.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/config/config.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/control/detail/dmc/while.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/control/detail/edg/while.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/control/detail/msvc/while.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/control/detail/while.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/control/expr_if.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/control/expr_iif.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/control/if.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/control/iif.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/control/while.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/debug/error.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/dec.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/detail/auto_rec.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/detail/check.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/detail/dmc/auto_rec.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/detail/is_binary.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/detail/split.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/empty.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/enum_shifted_params.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/expr_if.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/facilities/detail/is_empty.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/facilities/empty.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/facilities/expand.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/facilities/identity.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/facilities/is_1.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/facilities/is_empty.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/facilities/is_empty_variadic.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/facilities/overload.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/identity.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/inc.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/iterate.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/iteration/iterate.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/list/adt.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/list/detail/dmc/fold_left.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/list/detail/edg/fold_left.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/list/detail/edg/fold_right.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/list/detail/fold_left.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/list/detail/fold_right.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/list/fold_left.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/list/fold_right.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/list/for_each_i.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/list/reverse.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/logical/and.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/logical/bitand.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/logical/bool.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/logical/compl.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/punctuation/comma.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/punctuation/comma_if.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/punctuation/detail/is_begin_parens.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/punctuation/is_begin_parens.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/repeat.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/repetition/detail/dmc/for.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/repetition/detail/edg/for.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/repetition/detail/for.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/repetition/detail/msvc/for.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/repetition/enum_params.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/repetition/enum_shifted_params.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/repetition/enum_trailing_params.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/repetition/for.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/repetition/repeat.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/seq/detail/is_empty.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/seq/detail/split.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/seq/elem.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/seq/first_n.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/seq/fold_left.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/seq/rest_n.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/seq/seq.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/seq/size.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/seq/subseq.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/slot/detail/def.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/slot/slot.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/stringize.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/tuple/detail/is_single_return.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/tuple/eat.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/tuple/elem.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/tuple/rem.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/tuple/size.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/tuple/to_list.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/variadic/elem.hpp + /home/pedroernesto/anaconda3/include/boost/preprocessor/variadic/size.hpp + /home/pedroernesto/anaconda3/include/boost/range/begin.hpp + /home/pedroernesto/anaconda3/include/boost/range/config.hpp + /home/pedroernesto/anaconda3/include/boost/range/const_iterator.hpp + /home/pedroernesto/anaconda3/include/boost/range/detail/begin.hpp + /home/pedroernesto/anaconda3/include/boost/range/detail/common.hpp + /home/pedroernesto/anaconda3/include/boost/range/detail/end.hpp + /home/pedroernesto/anaconda3/include/boost/range/detail/extract_optional_type.hpp + /home/pedroernesto/anaconda3/include/boost/range/detail/implementation_help.hpp + /home/pedroernesto/anaconda3/include/boost/range/detail/msvc_has_iterator_workaround.hpp + /home/pedroernesto/anaconda3/include/boost/range/detail/sfinae.hpp + /home/pedroernesto/anaconda3/include/boost/range/end.hpp + /home/pedroernesto/anaconda3/include/boost/range/iterator.hpp + /home/pedroernesto/anaconda3/include/boost/range/mutable_iterator.hpp + /home/pedroernesto/anaconda3/include/boost/range/range_fwd.hpp + /home/pedroernesto/anaconda3/include/boost/ref.hpp + /home/pedroernesto/anaconda3/include/boost/serialization/static_warning.hpp + /home/pedroernesto/anaconda3/include/boost/sort/spreadsort/detail/constants.hpp + /home/pedroernesto/anaconda3/include/boost/sort/spreadsort/detail/float_sort.hpp + /home/pedroernesto/anaconda3/include/boost/sort/spreadsort/detail/integer_sort.hpp + /home/pedroernesto/anaconda3/include/boost/sort/spreadsort/detail/spreadsort_common.hpp + /home/pedroernesto/anaconda3/include/boost/sort/spreadsort/detail/string_sort.hpp + /home/pedroernesto/anaconda3/include/boost/sort/spreadsort/float_sort.hpp + /home/pedroernesto/anaconda3/include/boost/sort/spreadsort/integer_sort.hpp + /home/pedroernesto/anaconda3/include/boost/sort/spreadsort/spreadsort.hpp + /home/pedroernesto/anaconda3/include/boost/sort/spreadsort/string_sort.hpp + /home/pedroernesto/anaconda3/include/boost/static_assert.hpp + /home/pedroernesto/anaconda3/include/boost/tuple/detail/tuple_basic.hpp + /home/pedroernesto/anaconda3/include/boost/tuple/tuple.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/add_const.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/add_cv.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/add_lvalue_reference.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/add_pointer.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/add_reference.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/add_rvalue_reference.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/add_volatile.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/aligned_storage.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/alignment_of.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/common_type.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/conditional.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/copy_cv.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/cv_traits.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/decay.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/declval.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/detail/common_arithmetic_type.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/detail/common_type_impl.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/detail/composite_member_pointer_type.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/detail/composite_pointer_type.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/detail/config.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/detail/has_binary_operator.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/detail/has_postfix_operator.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/detail/has_prefix_operator.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/detail/is_function_ptr_helper.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/detail/is_function_ptr_tester.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/detail/is_likely_lambda.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/detail/is_mem_fun_pointer_impl.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/detail/is_mem_fun_pointer_tester.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/detail/mp_defer.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/detail/yes_no_type.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/extent.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/floating_point_promotion.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/function_traits.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_bit_and.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_bit_and_assign.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_bit_or.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_bit_or_assign.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_bit_xor.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_bit_xor_assign.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_complement.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_dereference.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_divides.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_divides_assign.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_equal_to.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_greater.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_greater_equal.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_left_shift.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_left_shift_assign.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_less.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_less_equal.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_logical_and.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_logical_not.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_logical_or.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_minus.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_minus_assign.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_modulus.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_modulus_assign.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_multiplies.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_multiplies_assign.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_negate.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_new_operator.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_not_equal_to.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_nothrow_assign.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_nothrow_constructor.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_nothrow_copy.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_nothrow_destructor.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_plus.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_plus_assign.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_post_decrement.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_post_increment.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_pre_decrement.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_pre_increment.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_right_shift.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_right_shift_assign.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_trivial_assign.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_trivial_constructor.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_trivial_copy.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_trivial_destructor.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_trivial_move_assign.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_trivial_move_constructor.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_unary_minus.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_unary_plus.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/has_virtual_destructor.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/integral_constant.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/integral_promotion.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/intrinsics.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_abstract.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_arithmetic.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_array.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_assignable.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_base_and_derived.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_base_of.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_class.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_complete.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_complex.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_compound.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_const.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_constructible.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_convertible.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_copy_assignable.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_copy_constructible.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_default_constructible.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_destructible.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_empty.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_enum.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_final.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_float.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_floating_point.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_function.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_fundamental.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_integral.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_list_constructible.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_lvalue_reference.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_member_function_pointer.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_member_object_pointer.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_member_pointer.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_nothrow_move_assignable.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_nothrow_move_constructible.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_nothrow_swappable.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_object.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_pod.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_pointer.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_polymorphic.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_reference.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_rvalue_reference.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_same.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_scalar.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_signed.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_stateless.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_union.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_unsigned.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_virtual_base_of.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_void.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/is_volatile.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/make_signed.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/make_unsigned.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/make_void.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/promote.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/rank.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/remove_all_extents.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/remove_bounds.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/remove_const.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/remove_cv.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/remove_cv_ref.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/remove_extent.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/remove_pointer.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/remove_reference.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/remove_volatile.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/type_identity.hpp + /home/pedroernesto/anaconda3/include/boost/type_traits/type_with_alignment.hpp + /home/pedroernesto/anaconda3/include/boost/utility/addressof.hpp + /home/pedroernesto/anaconda3/include/boost/utility/enable_if.hpp + /home/pedroernesto/anaconda3/include/boost/utility/swap.hpp + /home/pedroernesto/anaconda3/include/boost/version.hpp + /home/pedroernesto/anaconda3/include/gsl/gsl_errno.h + /home/pedroernesto/anaconda3/include/gsl/gsl_inline.h + /home/pedroernesto/anaconda3/include/gsl/gsl_rng.h + /home/pedroernesto/anaconda3/include/gsl/gsl_types.h + /home/pedroernesto/anaconda3/include/mpi.h + /home/pedroernesto/anaconda3/include/mpi_portable_platform.h + /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/comm.h + /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/comm_inln.h + /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/constants.h + /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/datatype.h + /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/datatype_inln.h + /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/errhandler.h + /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/errhandler_inln.h + /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/exception.h + /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/file.h + /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/file_inln.h + /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/functions.h + /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/functions_inln.h + /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/group.h + /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/group_inln.h + /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/info.h + /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/info_inln.h + /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/intercomm.h + /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/intercomm_inln.h + /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/intracomm.h + /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/intracomm_inln.h + /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/mpicxx.h + /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/op.h + /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/op_inln.h + /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/request.h + /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/request_inln.h + /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/status.h + /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/status_inln.h + /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/topology.h + /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/topology_inln.h + /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/win.h + /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/win_inln.h diff --git a/examples/NEST_nineml_models/StdpSongAbbott/compile/CMakeFiles/StdpSongAbbottmodule_module.dir/depend.make b/examples/NEST_nineml_models/StdpSongAbbott/compile/CMakeFiles/StdpSongAbbottmodule_module.dir/depend.make new file mode 100644 index 000000000..621b9b096 --- /dev/null +++ b/examples/NEST_nineml_models/StdpSongAbbott/compile/CMakeFiles/StdpSongAbbottmodule_module.dir/depend.make @@ -0,0 +1,1215 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.18 + +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/src/StdpSongAbbott.cpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/src/StdpSongAbbott.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/simulators-source/NEST_install/nest-simulator-2.18.0/nestkernel/source.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/aggregatedatum.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/allocator.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/arraydatum.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/block_vector.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/common_synapse_properties.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/compose.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/config.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/conn_builder.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/conn_parameter.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/connection.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/connection_id.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/connection_label.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/connection_manager.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/connector_base.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/connector_base_impl.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/connector_model.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/datum.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/delay_checker.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/dict.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/dictdatum.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/dictutils.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/doubledatum.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/event.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/event_delivery_manager.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/exceptions.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/genericdatum.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/genericmodel.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/gid_collection.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/growth_curve.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/growth_curve_factory.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/gslrandomgen.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/histentry.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/integerdatum.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/interpret.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/io_manager.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/iterator_pair.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/kernel_manager.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/librandom_exceptions.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/librandom_names.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/lockptr.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/lockptrdatum.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/lockptrdatum_impl.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/logging.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/logging_manager.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/manager_interface.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/model.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/model_manager.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/modelrange.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/modelrange_manager.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/mpi_manager.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/music_event_handler.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/music_manager.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/name.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/namedatum.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/nest.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/nest_datums.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/nest_names.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/nest_time.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/nest_timeconverter.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/nest_types.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/nestmodule.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/node.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/node_manager.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/numericdatum.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/numerics.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/random_datums.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/random_numbers.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/randomdev.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/randomgen.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/rng_manager.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/sibling_container.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/simulation_manager.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/sliactions.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/slibuiltins.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/sliexceptions.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/slifunction.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/slimodule.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/slitype.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/sort.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/source.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/source_table.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/source_table_position.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/sp_manager.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/sparse_node_array.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/spike_data.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/spikecounter.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/static_assert.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/stopwatch.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/syn_id_delay.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/target.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/target_data.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/target_table.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/target_table_devices.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/tarrayobj.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/token.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/tokenarray.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/tokenstack.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/tokenutils.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/vector_util.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/vp_manager.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/config.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/compiler/borland.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/compiler/clang.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/compiler/codegear.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/compiler/comeau.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/compiler/common_edg.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/compiler/compaq_cxx.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/compiler/cray.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/compiler/digitalmars.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/compiler/gcc.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/compiler/gcc_xml.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/compiler/greenhills.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/compiler/hp_acc.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/compiler/intel.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/compiler/kai.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/compiler/metrowerks.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/compiler/mpw.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/compiler/nvcc.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/compiler/pathscale.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/compiler/pgi.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/compiler/sgi_mipspro.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/compiler/sunpro_cc.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/compiler/vacpp.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/compiler/visualc.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/compiler/xlcpp.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/compiler/xlcpp_zos.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/detail/posix_features.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/detail/select_compiler_config.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/detail/select_platform_config.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/detail/select_stdlib_config.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/detail/suffix.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/helper_macros.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/no_tr1/utility.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/platform/aix.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/platform/amigaos.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/platform/beos.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/platform/bsd.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/platform/cray.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/platform/cygwin.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/platform/hpux.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/platform/irix.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/platform/linux.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/platform/macos.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/platform/qnxnto.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/platform/solaris.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/platform/symbian.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/platform/vms.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/platform/vxworks.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/platform/win32.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/platform/zos.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/pragma_message.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/stdlib/dinkumware.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/stdlib/libcomo.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/stdlib/libcpp.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/stdlib/libstdcpp3.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/stdlib/modena.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/stdlib/msl.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/stdlib/roguewave.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/stdlib/sgi.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/stdlib/stlport.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/stdlib/vacpp.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/stdlib/xlcpp_zos.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/user.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/workaround.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/core/addressof.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/core/enable_if.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/core/noncopyable.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/core/ref.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/core/swap.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/cstdint.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/detail/indirect_traits.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/detail/workaround.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/iterator/detail/config_def.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/iterator/detail/config_undef.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/iterator/detail/enable_if.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/iterator/detail/facade_iterator_category.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/iterator/interoperable.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/iterator/iterator_adaptor.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/iterator/iterator_categories.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/iterator/iterator_facade.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/iterator/iterator_traits.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/limits.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/always.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/and.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/apply.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/apply_fwd.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/apply_wrap.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/arg.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/arg_fwd.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/assert.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/adl_barrier.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/arg_typedef.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/arity.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/arity_spec.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/common_name_wknd.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/adl.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/arrays.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/bcc.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/bind.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/compiler.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/ctps.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/dmc_ambiguous_ctps.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/dtp.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/eti.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/gcc.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/gpu.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/has_apply.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/has_xxx.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/integral.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/intel.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/lambda.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/msvc.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/msvc_typename.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/nttp.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/overload_resolution.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/pp_counter.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/preprocessor.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/static_constant.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/ttp.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/use_preprocessed.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/workaround.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/count_args.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/full_lambda.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/has_apply.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/has_rebind.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/has_type.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/include_preprocessed.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/integral_wrapper.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/lambda_arity_param.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/lambda_no_ctps.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/lambda_support.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/logical_op.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/msvc_dtw.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/msvc_is_class.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/msvc_never_true.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/na.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/na_assert.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/na_fwd.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/na_spec.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/nested_type_wknd.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/nttp_decl.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/preprocessor/add.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/preprocessor/def_params_tail.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/preprocessor/default_params.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/preprocessor/enum.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/preprocessor/ext_params.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/preprocessor/filter_params.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/preprocessor/params.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/preprocessor/partial_spec_params.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/preprocessor/range.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/preprocessor/repeat.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/preprocessor/sub.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/preprocessor/tuple.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/static_cast.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/template_arity.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/template_arity_fwd.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/type_wrapper.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/value_wknd.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/yes_no.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/bind.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/bind_fwd.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/bool.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/bool_fwd.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/eval_if.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/has_xxx.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/identity.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/if.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/int.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/int_fwd.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/integral_c_tag.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/is_placeholder.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/lambda.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/lambda_fwd.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/limits/arity.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/next.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/next_prior.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/not.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/or.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/placeholders.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/print.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/protect.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/quote.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/void.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/void_fwd.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/noncopyable.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/arithmetic/add.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/arithmetic/dec.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/arithmetic/inc.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/arithmetic/sub.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/array/data.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/array/elem.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/array/size.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/cat.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/comma_if.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/comparison/not_equal.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/config/config.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/control/detail/dmc/while.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/control/detail/edg/while.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/control/detail/msvc/while.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/control/detail/while.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/control/expr_if.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/control/expr_iif.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/control/if.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/control/iif.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/control/while.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/debug/error.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/dec.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/detail/auto_rec.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/detail/check.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/detail/dmc/auto_rec.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/detail/is_binary.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/detail/split.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/empty.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/enum_shifted_params.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/expr_if.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/facilities/detail/is_empty.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/facilities/empty.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/facilities/expand.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/facilities/identity.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/facilities/is_1.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/facilities/is_empty.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/facilities/is_empty_variadic.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/facilities/overload.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/identity.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/inc.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/iterate.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/iteration/iterate.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/list/adt.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/list/detail/dmc/fold_left.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/list/detail/edg/fold_left.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/list/detail/edg/fold_right.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/list/detail/fold_left.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/list/detail/fold_right.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/list/fold_left.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/list/fold_right.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/list/for_each_i.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/list/reverse.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/logical/and.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/logical/bitand.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/logical/bool.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/logical/compl.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/punctuation/comma.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/punctuation/comma_if.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/punctuation/detail/is_begin_parens.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/punctuation/is_begin_parens.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/repeat.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/repetition/detail/dmc/for.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/repetition/detail/edg/for.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/repetition/detail/for.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/repetition/detail/msvc/for.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/repetition/enum_params.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/repetition/enum_shifted_params.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/repetition/enum_trailing_params.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/repetition/for.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/repetition/repeat.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/seq/detail/is_empty.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/seq/detail/split.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/seq/elem.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/seq/first_n.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/seq/fold_left.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/seq/rest_n.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/seq/seq.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/seq/size.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/seq/subseq.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/slot/detail/def.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/slot/slot.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/stringize.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/tuple/detail/is_single_return.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/tuple/eat.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/tuple/elem.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/tuple/rem.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/tuple/size.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/tuple/to_list.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/variadic/elem.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/variadic/size.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/range/begin.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/range/config.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/range/const_iterator.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/range/detail/begin.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/range/detail/common.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/range/detail/end.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/range/detail/extract_optional_type.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/range/detail/implementation_help.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/range/detail/msvc_has_iterator_workaround.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/range/detail/sfinae.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/range/end.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/range/iterator.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/range/mutable_iterator.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/range/range_fwd.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/ref.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/serialization/static_warning.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/sort/spreadsort/detail/constants.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/sort/spreadsort/detail/float_sort.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/sort/spreadsort/detail/integer_sort.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/sort/spreadsort/detail/spreadsort_common.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/sort/spreadsort/detail/string_sort.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/sort/spreadsort/float_sort.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/sort/spreadsort/integer_sort.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/sort/spreadsort/spreadsort.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/sort/spreadsort/string_sort.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/static_assert.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/tuple/detail/tuple_basic.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/tuple/tuple.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/add_const.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/add_cv.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/add_lvalue_reference.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/add_pointer.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/add_reference.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/add_rvalue_reference.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/add_volatile.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/aligned_storage.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/alignment_of.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/common_type.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/conditional.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/copy_cv.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/cv_traits.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/decay.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/declval.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/detail/common_arithmetic_type.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/detail/common_type_impl.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/detail/composite_member_pointer_type.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/detail/composite_pointer_type.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/detail/config.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/detail/has_binary_operator.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/detail/has_postfix_operator.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/detail/has_prefix_operator.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/detail/is_function_ptr_helper.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/detail/is_function_ptr_tester.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/detail/is_likely_lambda.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/detail/is_mem_fun_pointer_impl.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/detail/is_mem_fun_pointer_tester.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/detail/mp_defer.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/detail/yes_no_type.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/extent.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/floating_point_promotion.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/function_traits.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_bit_and.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_bit_and_assign.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_bit_or.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_bit_or_assign.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_bit_xor.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_bit_xor_assign.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_complement.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_dereference.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_divides.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_divides_assign.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_equal_to.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_greater.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_greater_equal.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_left_shift.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_left_shift_assign.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_less.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_less_equal.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_logical_and.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_logical_not.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_logical_or.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_minus.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_minus_assign.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_modulus.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_modulus_assign.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_multiplies.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_multiplies_assign.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_negate.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_new_operator.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_not_equal_to.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_nothrow_assign.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_nothrow_constructor.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_nothrow_copy.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_nothrow_destructor.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_plus.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_plus_assign.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_post_decrement.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_post_increment.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_pre_decrement.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_pre_increment.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_right_shift.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_right_shift_assign.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_trivial_assign.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_trivial_constructor.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_trivial_copy.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_trivial_destructor.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_trivial_move_assign.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_trivial_move_constructor.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_unary_minus.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_unary_plus.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_virtual_destructor.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/integral_constant.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/integral_promotion.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/intrinsics.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_abstract.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_arithmetic.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_array.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_assignable.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_base_and_derived.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_base_of.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_class.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_complete.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_complex.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_compound.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_const.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_constructible.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_convertible.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_copy_assignable.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_copy_constructible.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_default_constructible.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_destructible.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_empty.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_enum.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_final.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_float.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_floating_point.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_function.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_fundamental.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_integral.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_list_constructible.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_lvalue_reference.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_member_function_pointer.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_member_object_pointer.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_member_pointer.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_nothrow_move_assignable.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_nothrow_move_constructible.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_nothrow_swappable.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_object.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_pod.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_pointer.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_polymorphic.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_reference.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_rvalue_reference.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_same.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_scalar.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_signed.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_stateless.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_union.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_unsigned.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_virtual_base_of.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_void.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_volatile.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/make_signed.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/make_unsigned.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/make_void.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/promote.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/rank.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/remove_all_extents.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/remove_bounds.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/remove_const.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/remove_cv.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/remove_cv_ref.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/remove_extent.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/remove_pointer.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/remove_reference.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/remove_volatile.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/type_identity.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/type_with_alignment.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/utility/addressof.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/utility/enable_if.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/utility/swap.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/boost/version.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/gsl/gsl_errno.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/gsl/gsl_inline.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/gsl/gsl_rng.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/gsl/gsl_types.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/mpi.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/mpi_portable_platform.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/comm.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/comm_inln.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/constants.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/datatype.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/datatype_inln.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/errhandler.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/errhandler_inln.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/exception.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/file.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/file_inln.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/functions.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/functions_inln.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/group.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/group_inln.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/info.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/info_inln.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/intercomm.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/intercomm_inln.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/intracomm.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/intracomm_inln.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/mpicxx.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/op.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/op_inln.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/request.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/request_inln.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/status.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/status_inln.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/topology.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/topology_inln.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/win.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o: /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/win_inln.h + +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/src/StdpSongAbbott.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/src/StdpSongAbbottmodule.cpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/src/StdpSongAbbottmodule.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/simulators-source/NEST_install/nest-simulator-2.18.0/nestkernel/source.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/aggregatedatum.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/allocator.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/arraydatum.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/block_vector.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/booldatum.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/common_synapse_properties.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/compose.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/config.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/conn_builder.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/conn_builder_factory.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/conn_parameter.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/connection.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/connection_id.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/connection_label.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/connection_manager.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/connection_manager_impl.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/connector_base.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/connector_base_impl.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/connector_model.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/connector_model_impl.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/datum.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/delay_checker.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/dict.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/dictdatum.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/dictutils.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/doubledatum.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/dynamicloader.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/event.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/event_delivery_manager.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/exceptions.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/genericdatum.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/genericmodel.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/genericmodel_impl.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/gid_collection.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/growth_curve.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/growth_curve_factory.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/gslrandomgen.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/histentry.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/integerdatum.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/interpret.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/io_manager.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/iterator_pair.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/kernel_manager.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/librandom_exceptions.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/librandom_names.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/lockptr.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/lockptrdatum.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/lockptrdatum_impl.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/logging.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/logging_manager.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/manager_interface.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/model.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/model_manager.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/model_manager_impl.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/modelrange.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/modelrange_manager.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/mpi_manager.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/mpi_manager_impl.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/music_event_handler.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/music_manager.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/name.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/namedatum.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/nest.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/nest_datums.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/nest_impl.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/nest_names.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/nest_time.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/nest_timeconverter.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/nest_types.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/nestmodule.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/node.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/node_manager.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/numericdatum.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/numerics.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/random_datums.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/random_numbers.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/randomdev.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/randomgen.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/rng_manager.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/sibling_container.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/simulation_manager.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/sliactions.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/slibuiltins.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/sliexceptions.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/slifunction.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/slimodule.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/slitype.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/sort.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/source.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/source_table.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/source_table_position.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/sp_manager.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/sparse_node_array.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/spike_data.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/spikecounter.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/static_assert.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/stopwatch.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/string_utils.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/syn_id_delay.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/target.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/target_data.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/target_identifier.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/target_table.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/target_table_devices.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/target_table_devices_impl.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/tarrayobj.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/token.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/tokenarray.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/tokenstack.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/tokenutils.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/vector_util.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/vp_manager.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/build/NEST/include/nest/vp_manager_impl.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/config.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/compiler/borland.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/compiler/clang.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/compiler/codegear.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/compiler/comeau.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/compiler/common_edg.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/compiler/compaq_cxx.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/compiler/cray.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/compiler/digitalmars.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/compiler/gcc.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/compiler/gcc_xml.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/compiler/greenhills.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/compiler/hp_acc.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/compiler/intel.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/compiler/kai.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/compiler/metrowerks.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/compiler/mpw.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/compiler/nvcc.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/compiler/pathscale.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/compiler/pgi.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/compiler/sgi_mipspro.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/compiler/sunpro_cc.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/compiler/vacpp.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/compiler/visualc.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/compiler/xlcpp.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/compiler/xlcpp_zos.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/detail/posix_features.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/detail/select_compiler_config.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/detail/select_platform_config.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/detail/select_stdlib_config.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/detail/suffix.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/helper_macros.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/no_tr1/utility.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/platform/aix.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/platform/amigaos.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/platform/beos.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/platform/bsd.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/platform/cray.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/platform/cygwin.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/platform/hpux.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/platform/irix.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/platform/linux.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/platform/macos.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/platform/qnxnto.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/platform/solaris.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/platform/symbian.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/platform/vms.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/platform/vxworks.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/platform/win32.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/platform/zos.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/pragma_message.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/stdlib/dinkumware.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/stdlib/libcomo.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/stdlib/libcpp.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/stdlib/libstdcpp3.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/stdlib/modena.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/stdlib/msl.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/stdlib/roguewave.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/stdlib/sgi.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/stdlib/stlport.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/stdlib/vacpp.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/stdlib/xlcpp_zos.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/user.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/config/workaround.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/core/addressof.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/core/enable_if.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/core/noncopyable.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/core/ref.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/core/swap.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/cstdint.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/detail/indirect_traits.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/detail/workaround.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/iterator/detail/config_def.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/iterator/detail/config_undef.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/iterator/detail/enable_if.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/iterator/detail/facade_iterator_category.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/iterator/interoperable.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/iterator/iterator_adaptor.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/iterator/iterator_categories.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/iterator/iterator_facade.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/iterator/iterator_traits.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/limits.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/always.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/and.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/apply.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/apply_fwd.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/apply_wrap.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/arg.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/arg_fwd.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/assert.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/adl_barrier.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/arg_typedef.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/arity.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/arity_spec.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/common_name_wknd.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/adl.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/arrays.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/bcc.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/bind.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/compiler.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/ctps.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/dmc_ambiguous_ctps.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/dtp.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/eti.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/gcc.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/gpu.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/has_apply.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/has_xxx.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/integral.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/intel.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/lambda.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/msvc.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/msvc_typename.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/nttp.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/overload_resolution.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/pp_counter.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/preprocessor.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/static_constant.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/ttp.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/use_preprocessed.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/config/workaround.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/count_args.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/full_lambda.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/has_apply.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/has_rebind.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/has_type.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/include_preprocessed.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/integral_wrapper.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/lambda_arity_param.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/lambda_no_ctps.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/lambda_support.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/logical_op.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/msvc_dtw.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/msvc_is_class.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/msvc_never_true.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/na.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/na_assert.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/na_fwd.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/na_spec.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/nested_type_wknd.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/nttp_decl.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/preprocessor/add.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/preprocessor/def_params_tail.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/preprocessor/default_params.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/preprocessor/enum.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/preprocessor/ext_params.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/preprocessor/filter_params.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/preprocessor/params.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/preprocessor/partial_spec_params.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/preprocessor/range.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/preprocessor/repeat.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/preprocessor/sub.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/preprocessor/tuple.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/static_cast.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/template_arity.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/template_arity_fwd.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/type_wrapper.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/value_wknd.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/aux_/yes_no.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/bind.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/bind_fwd.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/bool.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/bool_fwd.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/eval_if.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/has_xxx.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/identity.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/if.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/int.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/int_fwd.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/integral_c_tag.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/is_placeholder.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/lambda.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/lambda_fwd.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/limits/arity.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/next.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/next_prior.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/not.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/or.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/placeholders.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/print.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/protect.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/quote.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/void.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/mpl/void_fwd.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/noncopyable.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/arithmetic/add.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/arithmetic/dec.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/arithmetic/inc.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/arithmetic/sub.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/array/data.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/array/elem.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/array/size.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/cat.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/comma_if.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/comparison/not_equal.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/config/config.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/control/detail/dmc/while.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/control/detail/edg/while.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/control/detail/msvc/while.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/control/detail/while.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/control/expr_if.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/control/expr_iif.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/control/if.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/control/iif.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/control/while.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/debug/error.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/dec.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/detail/auto_rec.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/detail/check.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/detail/dmc/auto_rec.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/detail/is_binary.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/detail/split.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/empty.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/enum_shifted_params.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/expr_if.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/facilities/detail/is_empty.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/facilities/empty.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/facilities/expand.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/facilities/identity.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/facilities/is_1.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/facilities/is_empty.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/facilities/is_empty_variadic.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/facilities/overload.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/identity.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/inc.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/iterate.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/iteration/iterate.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/list/adt.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/list/detail/dmc/fold_left.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/list/detail/edg/fold_left.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/list/detail/edg/fold_right.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/list/detail/fold_left.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/list/detail/fold_right.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/list/fold_left.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/list/fold_right.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/list/for_each_i.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/list/reverse.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/logical/and.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/logical/bitand.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/logical/bool.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/logical/compl.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/punctuation/comma.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/punctuation/comma_if.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/punctuation/detail/is_begin_parens.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/punctuation/is_begin_parens.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/repeat.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/repetition/detail/dmc/for.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/repetition/detail/edg/for.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/repetition/detail/for.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/repetition/detail/msvc/for.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/repetition/enum_params.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/repetition/enum_shifted_params.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/repetition/enum_trailing_params.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/repetition/for.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/repetition/repeat.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/seq/detail/is_empty.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/seq/detail/split.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/seq/elem.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/seq/first_n.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/seq/fold_left.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/seq/rest_n.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/seq/seq.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/seq/size.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/seq/subseq.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/slot/detail/def.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/slot/slot.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/stringize.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/tuple/detail/is_single_return.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/tuple/eat.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/tuple/elem.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/tuple/rem.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/tuple/size.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/tuple/to_list.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/variadic/elem.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/preprocessor/variadic/size.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/range/begin.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/range/config.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/range/const_iterator.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/range/detail/begin.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/range/detail/common.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/range/detail/end.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/range/detail/extract_optional_type.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/range/detail/implementation_help.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/range/detail/msvc_has_iterator_workaround.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/range/detail/sfinae.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/range/end.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/range/iterator.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/range/mutable_iterator.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/range/range_fwd.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/ref.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/serialization/static_warning.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/sort/spreadsort/detail/constants.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/sort/spreadsort/detail/float_sort.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/sort/spreadsort/detail/integer_sort.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/sort/spreadsort/detail/spreadsort_common.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/sort/spreadsort/detail/string_sort.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/sort/spreadsort/float_sort.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/sort/spreadsort/integer_sort.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/sort/spreadsort/spreadsort.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/sort/spreadsort/string_sort.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/static_assert.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/tuple/detail/tuple_basic.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/tuple/tuple.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/add_const.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/add_cv.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/add_lvalue_reference.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/add_pointer.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/add_reference.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/add_rvalue_reference.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/add_volatile.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/aligned_storage.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/alignment_of.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/common_type.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/conditional.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/copy_cv.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/cv_traits.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/decay.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/declval.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/detail/common_arithmetic_type.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/detail/common_type_impl.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/detail/composite_member_pointer_type.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/detail/composite_pointer_type.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/detail/config.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/detail/has_binary_operator.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/detail/has_postfix_operator.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/detail/has_prefix_operator.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/detail/is_function_ptr_helper.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/detail/is_function_ptr_tester.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/detail/is_likely_lambda.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/detail/is_mem_fun_pointer_impl.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/detail/is_mem_fun_pointer_tester.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/detail/mp_defer.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/detail/yes_no_type.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/extent.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/floating_point_promotion.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/function_traits.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_bit_and.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_bit_and_assign.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_bit_or.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_bit_or_assign.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_bit_xor.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_bit_xor_assign.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_complement.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_dereference.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_divides.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_divides_assign.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_equal_to.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_greater.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_greater_equal.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_left_shift.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_left_shift_assign.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_less.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_less_equal.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_logical_and.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_logical_not.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_logical_or.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_minus.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_minus_assign.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_modulus.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_modulus_assign.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_multiplies.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_multiplies_assign.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_negate.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_new_operator.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_not_equal_to.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_nothrow_assign.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_nothrow_constructor.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_nothrow_copy.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_nothrow_destructor.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_plus.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_plus_assign.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_post_decrement.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_post_increment.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_pre_decrement.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_pre_increment.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_right_shift.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_right_shift_assign.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_trivial_assign.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_trivial_constructor.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_trivial_copy.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_trivial_destructor.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_trivial_move_assign.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_trivial_move_constructor.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_unary_minus.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_unary_plus.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/has_virtual_destructor.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/integral_constant.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/integral_promotion.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/intrinsics.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_abstract.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_arithmetic.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_array.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_assignable.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_base_and_derived.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_base_of.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_class.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_complete.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_complex.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_compound.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_const.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_constructible.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_convertible.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_copy_assignable.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_copy_constructible.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_default_constructible.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_destructible.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_empty.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_enum.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_final.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_float.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_floating_point.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_function.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_fundamental.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_integral.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_list_constructible.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_lvalue_reference.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_member_function_pointer.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_member_object_pointer.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_member_pointer.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_nothrow_move_assignable.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_nothrow_move_constructible.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_nothrow_swappable.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_object.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_pod.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_pointer.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_polymorphic.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_reference.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_rvalue_reference.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_same.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_scalar.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_signed.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_stateless.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_union.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_unsigned.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_virtual_base_of.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_void.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/is_volatile.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/make_signed.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/make_unsigned.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/make_void.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/promote.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/rank.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/remove_all_extents.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/remove_bounds.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/remove_const.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/remove_cv.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/remove_cv_ref.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/remove_extent.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/remove_pointer.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/remove_reference.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/remove_volatile.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/type_identity.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/type_traits/type_with_alignment.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/utility/addressof.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/utility/enable_if.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/utility/swap.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/boost/version.hpp +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/gsl/gsl_errno.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/gsl/gsl_inline.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/gsl/gsl_rng.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/gsl/gsl_types.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/mpi.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/mpi_portable_platform.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/comm.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/comm_inln.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/constants.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/datatype.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/datatype_inln.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/errhandler.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/errhandler_inln.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/exception.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/file.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/file_inln.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/functions.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/functions_inln.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/group.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/group_inln.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/info.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/info_inln.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/intercomm.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/intercomm_inln.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/intracomm.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/intracomm_inln.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/mpicxx.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/op.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/op_inln.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/request.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/request_inln.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/status.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/status_inln.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/topology.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/topology_inln.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/win.h +CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o: /home/pedroernesto/anaconda3/include/openmpi/ompi/mpi/cxx/win_inln.h + diff --git a/examples/NEST_nineml_models/StdpSongAbbott/compile/CMakeFiles/StdpSongAbbottmodule_module.dir/flags.make b/examples/NEST_nineml_models/StdpSongAbbott/compile/CMakeFiles/StdpSongAbbottmodule_module.dir/flags.make new file mode 100644 index 000000000..3aac6f71f --- /dev/null +++ b/examples/NEST_nineml_models/StdpSongAbbott/compile/CMakeFiles/StdpSongAbbottmodule_module.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.18 + +# compile CXX with /home/pedroernesto/anaconda3/bin/x86_64-conda_cos6-linux-gnu-c++ +CXX_DEFINES = -DStdpSongAbbottmodule_module_EXPORTS + +CXX_INCLUDES = -I/home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/simulators-source/NEST_install/nest-simulator-2.18.0/conngen -I/home/pedroernesto/anaconda3/build/NEST/include/nest -I/home/pedroernesto/anaconda3/include + +CXX_FLAGS = -fPIC -fvisibility-inlines-hidden -std=c++17 -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem /home/pedroernesto/anaconda3/include -std=c++11 -O2 -Wall -fopenmp -pthread -fdiagnostics-color=auto -DLTX_MODULE + diff --git a/examples/NEST_nineml_models/StdpSongAbbott/compile/CMakeFiles/StdpSongAbbottmodule_module.dir/link.txt b/examples/NEST_nineml_models/StdpSongAbbott/compile/CMakeFiles/StdpSongAbbottmodule_module.dir/link.txt new file mode 100644 index 000000000..eeddfe5cd --- /dev/null +++ b/examples/NEST_nineml_models/StdpSongAbbott/compile/CMakeFiles/StdpSongAbbottmodule_module.dir/link.txt @@ -0,0 +1 @@ +/home/pedroernesto/anaconda3/bin/x86_64-conda_cos6-linux-gnu-c++ -fPIC -L/home/pedroernesto/anaconda3/build/NEST/lib -lconngen -lnestutil -lnest -lrandom -lsli -lnestkernel -ltopology -fopenmp /home/pedroernesto/anaconda3/lib/libltdl.so /home/pedroernesto/anaconda3/lib/libreadline.so /home/pedroernesto/anaconda3/lib/libncurses.so /home/pedroernesto/anaconda3/lib/libgsl.so /home/pedroernesto/anaconda3/lib/libgslcblas.so /home/pedroernesto/anaconda3/lib/libneurosim.so.0 /home/pedroernesto/anaconda3/lib/libpy3neurosim.so.0 /home/pedroernesto/anaconda3/lib/libmpi_cxx.so /home/pedroernesto/anaconda3/lib/libmpi.so -shared -o StdpSongAbbottmodule.so CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o diff --git a/examples/NEST_nineml_models/StdpSongAbbott/compile/CMakeFiles/StdpSongAbbottmodule_module.dir/progress.make b/examples/NEST_nineml_models/StdpSongAbbott/compile/CMakeFiles/StdpSongAbbottmodule_module.dir/progress.make new file mode 100644 index 000000000..2088a4d40 --- /dev/null +++ b/examples/NEST_nineml_models/StdpSongAbbott/compile/CMakeFiles/StdpSongAbbottmodule_module.dir/progress.make @@ -0,0 +1,4 @@ +CMAKE_PROGRESS_1 = 4 +CMAKE_PROGRESS_2 = 5 +CMAKE_PROGRESS_3 = 6 + diff --git a/examples/NEST_nineml_models/StdpSongAbbott/compile/CMakeFiles/TargetDirectories.txt b/examples/NEST_nineml_models/StdpSongAbbott/compile/CMakeFiles/TargetDirectories.txt new file mode 100644 index 000000000..0305ec7b5 --- /dev/null +++ b/examples/NEST_nineml_models/StdpSongAbbott/compile/CMakeFiles/TargetDirectories.txt @@ -0,0 +1,11 @@ +/home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/compile/CMakeFiles/StdpSongAbbottmodule_module.dir +/home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/compile/CMakeFiles/StdpSongAbbottmodule_lib.dir +/home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/compile/CMakeFiles/package.dir +/home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/compile/CMakeFiles/package_source.dir +/home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/compile/CMakeFiles/edit_cache.dir +/home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/compile/CMakeFiles/rebuild_cache.dir +/home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/compile/CMakeFiles/install/strip.dir +/home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/compile/CMakeFiles/list_install_components.dir +/home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/compile/CMakeFiles/install.dir +/home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/compile/CMakeFiles/dist.dir +/home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/compile/CMakeFiles/install/local.dir diff --git a/examples/NEST_nineml_models/StdpSongAbbott/compile/CMakeFiles/cmake.check_cache b/examples/NEST_nineml_models/StdpSongAbbott/compile/CMakeFiles/cmake.check_cache new file mode 100644 index 000000000..3dccd7317 --- /dev/null +++ b/examples/NEST_nineml_models/StdpSongAbbott/compile/CMakeFiles/cmake.check_cache @@ -0,0 +1 @@ +# This file is generated by cmake for dependency checking of the CMakeCache.txt file diff --git a/examples/NEST_nineml_models/StdpSongAbbott/compile/CMakeFiles/dist.dir/DependInfo.cmake b/examples/NEST_nineml_models/StdpSongAbbott/compile/CMakeFiles/dist.dir/DependInfo.cmake new file mode 100644 index 000000000..19fab2149 --- /dev/null +++ b/examples/NEST_nineml_models/StdpSongAbbott/compile/CMakeFiles/dist.dir/DependInfo.cmake @@ -0,0 +1,11 @@ +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + ) +# The set of files for implicit dependencies of each language: + +# Targets to which this target links. +set(CMAKE_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/examples/NEST_nineml_models/StdpSongAbbott/compile/CMakeFiles/dist.dir/build.make b/examples/NEST_nineml_models/StdpSongAbbott/compile/CMakeFiles/dist.dir/build.make new file mode 100644 index 000000000..9ce5475ff --- /dev/null +++ b/examples/NEST_nineml_models/StdpSongAbbott/compile/CMakeFiles/dist.dir/build.make @@ -0,0 +1,96 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.18 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + + +# Disable VCS-based implicit rules. +% : %,v + + +# Disable VCS-based implicit rules. +% : RCS/% + + +# Disable VCS-based implicit rules. +% : RCS/%,v + + +# Disable VCS-based implicit rules. +% : SCCS/s.% + + +# Disable VCS-based implicit rules. +% : s.% + + +.SUFFIXES: .hpux_make_needs_suffix_list + + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: + +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /home/pedroernesto/anaconda3/lib/python3.7/site-packages/cmake/data/bin/cmake + +# The command to remove a file. +RM = /home/pedroernesto/anaconda3/lib/python3.7/site-packages/cmake/data/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/src + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/compile + +# Utility rule file for dist. + +# Include the progress variables for this target. +include CMakeFiles/dist.dir/progress.make + +CMakeFiles/dist: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --blue --bold --progress-dir=/home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/compile/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Creating a source distribution from StdpSongAbbottmodule..." + /usr/bin/make package_source + +dist: CMakeFiles/dist +dist: CMakeFiles/dist.dir/build.make + +.PHONY : dist + +# Rule to build all files generated by this target. +CMakeFiles/dist.dir/build: dist + +.PHONY : CMakeFiles/dist.dir/build + +CMakeFiles/dist.dir/clean: + $(CMAKE_COMMAND) -P CMakeFiles/dist.dir/cmake_clean.cmake +.PHONY : CMakeFiles/dist.dir/clean + +CMakeFiles/dist.dir/depend: + cd /home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/compile && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/src /home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/src /home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/compile /home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/compile /home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/compile/CMakeFiles/dist.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : CMakeFiles/dist.dir/depend + diff --git a/examples/NEST_nineml_models/StdpSongAbbott/compile/CMakeFiles/dist.dir/cmake_clean.cmake b/examples/NEST_nineml_models/StdpSongAbbott/compile/CMakeFiles/dist.dir/cmake_clean.cmake new file mode 100644 index 000000000..656ce9f35 --- /dev/null +++ b/examples/NEST_nineml_models/StdpSongAbbott/compile/CMakeFiles/dist.dir/cmake_clean.cmake @@ -0,0 +1,8 @@ +file(REMOVE_RECURSE + "CMakeFiles/dist" +) + +# Per-language clean rules from dependency scanning. +foreach(lang ) + include(CMakeFiles/dist.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/examples/NEST_nineml_models/StdpSongAbbott/compile/CMakeFiles/dist.dir/progress.make b/examples/NEST_nineml_models/StdpSongAbbott/compile/CMakeFiles/dist.dir/progress.make new file mode 100644 index 000000000..68e0bc5f4 --- /dev/null +++ b/examples/NEST_nineml_models/StdpSongAbbott/compile/CMakeFiles/dist.dir/progress.make @@ -0,0 +1,2 @@ +CMAKE_PROGRESS_1 = 7 + diff --git a/examples/NEST_nineml_models/StdpSongAbbott/compile/CMakeFiles/progress.marks b/examples/NEST_nineml_models/StdpSongAbbott/compile/CMakeFiles/progress.marks new file mode 100644 index 000000000..1e8b31496 --- /dev/null +++ b/examples/NEST_nineml_models/StdpSongAbbott/compile/CMakeFiles/progress.marks @@ -0,0 +1 @@ +6 diff --git a/examples/NEST_nineml_models/StdpSongAbbott/compile/CPackConfig.cmake b/examples/NEST_nineml_models/StdpSongAbbott/compile/CPackConfig.cmake new file mode 100644 index 000000000..44ef41234 --- /dev/null +++ b/examples/NEST_nineml_models/StdpSongAbbott/compile/CPackConfig.cmake @@ -0,0 +1,62 @@ +# This file will be configured to contain variables for CPack. These variables +# should be set in the CMake list file of the project before CPack module is +# included. The list of available CPACK_xxx variables and their associated +# documentation may be obtained using +# cpack --help-variable-list +# +# Some variables are common to all generators (e.g. CPACK_PACKAGE_NAME) +# and some are specific to a generator +# (e.g. CPACK_NSIS_EXTRA_INSTALL_COMMANDS). The generator specific variables +# usually begin with CPACK__xxxx. + + +set(CPACK_BUILD_SOURCE_DIRS "/home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/src;/home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/compile") +set(CPACK_CMAKE_GENERATOR "Unix Makefiles") +set(CPACK_COMPONENTS_ALL "") +set(CPACK_COMPONENT_UNSPECIFIED_HIDDEN "TRUE") +set(CPACK_COMPONENT_UNSPECIFIED_REQUIRED "TRUE") +set(CPACK_DEFAULT_PACKAGE_DESCRIPTION_FILE "/home/pedroernesto/anaconda3/lib/python3.7/site-packages/cmake/data/share/cmake-3.18/Templates/CPack.GenericDescription.txt") +set(CPACK_DEFAULT_PACKAGE_DESCRIPTION_SUMMARY "StdpSongAbbottmodule built using CMake") +set(CPACK_GENERATOR "TGZ") +set(CPACK_INSTALL_CMAKE_PROJECTS "/home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/compile;StdpSongAbbottmodule;ALL;/") +set(CPACK_INSTALL_PREFIX "/home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/install") +set(CPACK_MODULE_PATH "") +set(CPACK_NSIS_DISPLAY_NAME "StdpSongAbbottmodule 1.0") +set(CPACK_NSIS_INSTALLER_ICON_CODE "") +set(CPACK_NSIS_INSTALLER_MUI_ICON_CODE "") +set(CPACK_NSIS_INSTALL_ROOT "$PROGRAMFILES") +set(CPACK_NSIS_PACKAGE_NAME "StdpSongAbbottmodule 1.0") +set(CPACK_NSIS_UNINSTALL_NAME "Uninstall") +set(CPACK_OUTPUT_CONFIG_FILE "/home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/compile/CPackConfig.cmake") +set(CPACK_PACKAGE_DEFAULT_LOCATION "/") +set(CPACK_PACKAGE_DESCRIPTION_FILE "/home/pedroernesto/anaconda3/lib/python3.7/site-packages/cmake/data/share/cmake-3.18/Templates/CPack.GenericDescription.txt") +set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "NEST Module StdpSongAbbottmodule") +set(CPACK_PACKAGE_FILE_NAME "StdpSongAbbottmodule-1.0-Linux") +set(CPACK_PACKAGE_INSTALL_DIRECTORY "StdpSongAbbottmodule 1.0") +set(CPACK_PACKAGE_INSTALL_REGISTRY_KEY "StdpSongAbbottmodule 1.0") +set(CPACK_PACKAGE_NAME "StdpSongAbbottmodule") +set(CPACK_PACKAGE_RELOCATABLE "true") +set(CPACK_PACKAGE_VENDOR "NEST Initiative (http://www.nest-initiative.org/)") +set(CPACK_PACKAGE_VERSION "1.0") +set(CPACK_PACKAGE_VERSION_MAJOR "1") +set(CPACK_PACKAGE_VERSION_MINOR "0") +set(CPACK_PACKAGE_VERSION_PATCH "1") +set(CPACK_RESOURCE_FILE_LICENSE "/home/pedroernesto/anaconda3/lib/python3.7/site-packages/cmake/data/share/cmake-3.18/Templates/CPack.GenericLicense.txt") +set(CPACK_RESOURCE_FILE_README "/home/pedroernesto/anaconda3/lib/python3.7/site-packages/cmake/data/share/cmake-3.18/Templates/CPack.GenericDescription.txt") +set(CPACK_RESOURCE_FILE_WELCOME "/home/pedroernesto/anaconda3/lib/python3.7/site-packages/cmake/data/share/cmake-3.18/Templates/CPack.GenericWelcome.txt") +set(CPACK_SET_DESTDIR "OFF") +set(CPACK_SOURCE_GENERATOR "TGZ") +set(CPACK_SOURCE_IGNORE_FILES "\\.gitignore;\\.git/;\\.travis\\.yml;/build/;/_CPack_Packages/;CMakeFiles/;cmake_install\\.cmake;Makefile.*;CMakeCache\\.txt;CPackConfig\\.cmake;CPackSourceConfig\\.cmake") +set(CPACK_SOURCE_OUTPUT_CONFIG_FILE "/home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/compile/CPackSourceConfig.cmake") +set(CPACK_SOURCE_PACKAGE_FILE_NAME "StdpSongAbbottmodule") +set(CPACK_SYSTEM_NAME "Linux") +set(CPACK_TOPLEVEL_TAG "Linux") +set(CPACK_WIX_SIZEOF_VOID_P "8") + +if(NOT CPACK_PROPERTIES_FILE) + set(CPACK_PROPERTIES_FILE "/home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/compile/CPackProperties.cmake") +endif() + +if(EXISTS ${CPACK_PROPERTIES_FILE}) + include(${CPACK_PROPERTIES_FILE}) +endif() diff --git a/examples/NEST_nineml_models/StdpSongAbbott/compile/CPackSourceConfig.cmake b/examples/NEST_nineml_models/StdpSongAbbott/compile/CPackSourceConfig.cmake new file mode 100644 index 000000000..601331db7 --- /dev/null +++ b/examples/NEST_nineml_models/StdpSongAbbott/compile/CPackSourceConfig.cmake @@ -0,0 +1,68 @@ +# This file will be configured to contain variables for CPack. These variables +# should be set in the CMake list file of the project before CPack module is +# included. The list of available CPACK_xxx variables and their associated +# documentation may be obtained using +# cpack --help-variable-list +# +# Some variables are common to all generators (e.g. CPACK_PACKAGE_NAME) +# and some are specific to a generator +# (e.g. CPACK_NSIS_EXTRA_INSTALL_COMMANDS). The generator specific variables +# usually begin with CPACK__xxxx. + + +set(CPACK_BUILD_SOURCE_DIRS "/home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/src;/home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/compile") +set(CPACK_CMAKE_GENERATOR "Unix Makefiles") +set(CPACK_COMPONENTS_ALL "") +set(CPACK_COMPONENT_UNSPECIFIED_HIDDEN "TRUE") +set(CPACK_COMPONENT_UNSPECIFIED_REQUIRED "TRUE") +set(CPACK_DEFAULT_PACKAGE_DESCRIPTION_FILE "/home/pedroernesto/anaconda3/lib/python3.7/site-packages/cmake/data/share/cmake-3.18/Templates/CPack.GenericDescription.txt") +set(CPACK_DEFAULT_PACKAGE_DESCRIPTION_SUMMARY "StdpSongAbbottmodule built using CMake") +set(CPACK_GENERATOR "TGZ") +set(CPACK_IGNORE_FILES "\\.gitignore;\\.git/;\\.travis\\.yml;/build/;/_CPack_Packages/;CMakeFiles/;cmake_install\\.cmake;Makefile.*;CMakeCache\\.txt;CPackConfig\\.cmake;CPackSourceConfig\\.cmake") +set(CPACK_INSTALLED_DIRECTORIES "/home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/src;/") +set(CPACK_INSTALL_CMAKE_PROJECTS "") +set(CPACK_INSTALL_PREFIX "/home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/install") +set(CPACK_MODULE_PATH "") +set(CPACK_NSIS_DISPLAY_NAME "StdpSongAbbottmodule 1.0") +set(CPACK_NSIS_INSTALLER_ICON_CODE "") +set(CPACK_NSIS_INSTALLER_MUI_ICON_CODE "") +set(CPACK_NSIS_INSTALL_ROOT "$PROGRAMFILES") +set(CPACK_NSIS_PACKAGE_NAME "StdpSongAbbottmodule 1.0") +set(CPACK_NSIS_UNINSTALL_NAME "Uninstall") +set(CPACK_OUTPUT_CONFIG_FILE "/home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/compile/CPackConfig.cmake") +set(CPACK_PACKAGE_DEFAULT_LOCATION "/") +set(CPACK_PACKAGE_DESCRIPTION_FILE "/home/pedroernesto/anaconda3/lib/python3.7/site-packages/cmake/data/share/cmake-3.18/Templates/CPack.GenericDescription.txt") +set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "NEST Module StdpSongAbbottmodule") +set(CPACK_PACKAGE_FILE_NAME "StdpSongAbbottmodule") +set(CPACK_PACKAGE_INSTALL_DIRECTORY "StdpSongAbbottmodule 1.0") +set(CPACK_PACKAGE_INSTALL_REGISTRY_KEY "StdpSongAbbottmodule 1.0") +set(CPACK_PACKAGE_NAME "StdpSongAbbottmodule") +set(CPACK_PACKAGE_RELOCATABLE "true") +set(CPACK_PACKAGE_VENDOR "NEST Initiative (http://www.nest-initiative.org/)") +set(CPACK_PACKAGE_VERSION "1.0") +set(CPACK_PACKAGE_VERSION_MAJOR "1") +set(CPACK_PACKAGE_VERSION_MINOR "0") +set(CPACK_PACKAGE_VERSION_PATCH "1") +set(CPACK_RESOURCE_FILE_LICENSE "/home/pedroernesto/anaconda3/lib/python3.7/site-packages/cmake/data/share/cmake-3.18/Templates/CPack.GenericLicense.txt") +set(CPACK_RESOURCE_FILE_README "/home/pedroernesto/anaconda3/lib/python3.7/site-packages/cmake/data/share/cmake-3.18/Templates/CPack.GenericDescription.txt") +set(CPACK_RESOURCE_FILE_WELCOME "/home/pedroernesto/anaconda3/lib/python3.7/site-packages/cmake/data/share/cmake-3.18/Templates/CPack.GenericWelcome.txt") +set(CPACK_RPM_PACKAGE_SOURCES "ON") +set(CPACK_SET_DESTDIR "OFF") +set(CPACK_SOURCE_GENERATOR "TGZ") +set(CPACK_SOURCE_IGNORE_FILES "\\.gitignore;\\.git/;\\.travis\\.yml;/build/;/_CPack_Packages/;CMakeFiles/;cmake_install\\.cmake;Makefile.*;CMakeCache\\.txt;CPackConfig\\.cmake;CPackSourceConfig\\.cmake") +set(CPACK_SOURCE_INSTALLED_DIRECTORIES "/home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/src;/") +set(CPACK_SOURCE_OUTPUT_CONFIG_FILE "/home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/compile/CPackSourceConfig.cmake") +set(CPACK_SOURCE_PACKAGE_FILE_NAME "StdpSongAbbottmodule") +set(CPACK_SOURCE_TOPLEVEL_TAG "Linux-Source") +set(CPACK_STRIP_FILES "") +set(CPACK_SYSTEM_NAME "Linux") +set(CPACK_TOPLEVEL_TAG "Linux-Source") +set(CPACK_WIX_SIZEOF_VOID_P "8") + +if(NOT CPACK_PROPERTIES_FILE) + set(CPACK_PROPERTIES_FILE "/home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/compile/CPackProperties.cmake") +endif() + +if(EXISTS ${CPACK_PROPERTIES_FILE}) + include(${CPACK_PROPERTIES_FILE}) +endif() diff --git a/examples/NEST_nineml_models/StdpSongAbbott/compile/Makefile b/examples/NEST_nineml_models/StdpSongAbbott/compile/Makefile new file mode 100644 index 000000000..7386737f0 --- /dev/null +++ b/examples/NEST_nineml_models/StdpSongAbbott/compile/Makefile @@ -0,0 +1,335 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.18 + +# Default target executed when no arguments are given to make. +default_target: all + +.PHONY : default_target + +# Allow only one "make -f Makefile2" at a time, but pass parallelism. +.NOTPARALLEL: + + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + + +# Disable VCS-based implicit rules. +% : %,v + + +# Disable VCS-based implicit rules. +% : RCS/% + + +# Disable VCS-based implicit rules. +% : RCS/%,v + + +# Disable VCS-based implicit rules. +% : SCCS/s.% + + +# Disable VCS-based implicit rules. +% : s.% + + +.SUFFIXES: .hpux_make_needs_suffix_list + + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: + +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /home/pedroernesto/anaconda3/lib/python3.7/site-packages/cmake/data/bin/cmake + +# The command to remove a file. +RM = /home/pedroernesto/anaconda3/lib/python3.7/site-packages/cmake/data/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/src + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/compile + +#============================================================================= +# Targets provided globally by CMake. + +# Special rule for the target package +package: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Run CPack packaging tool..." + /home/pedroernesto/anaconda3/lib/python3.7/site-packages/cmake/data/bin/cpack --config ./CPackConfig.cmake +.PHONY : package + +# Special rule for the target package +package/fast: package + +.PHONY : package/fast + +# Special rule for the target package_source +package_source: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Run CPack packaging tool for source..." + /home/pedroernesto/anaconda3/lib/python3.7/site-packages/cmake/data/bin/cpack --config ./CPackSourceConfig.cmake /home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/compile/CPackSourceConfig.cmake +.PHONY : package_source + +# Special rule for the target package_source +package_source/fast: package_source + +.PHONY : package_source/fast + +# Special rule for the target edit_cache +edit_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "No interactive CMake dialog available..." + /home/pedroernesto/anaconda3/lib/python3.7/site-packages/cmake/data/bin/cmake -E echo No\ interactive\ CMake\ dialog\ available. +.PHONY : edit_cache + +# Special rule for the target edit_cache +edit_cache/fast: edit_cache + +.PHONY : edit_cache/fast + +# Special rule for the target rebuild_cache +rebuild_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake to regenerate build system..." + /home/pedroernesto/anaconda3/lib/python3.7/site-packages/cmake/data/bin/cmake --regenerate-during-build -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) +.PHONY : rebuild_cache + +# Special rule for the target rebuild_cache +rebuild_cache/fast: rebuild_cache + +.PHONY : rebuild_cache/fast + +# Special rule for the target install/strip +install/strip: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..." + /home/pedroernesto/anaconda3/lib/python3.7/site-packages/cmake/data/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake +.PHONY : install/strip + +# Special rule for the target install/strip +install/strip/fast: preinstall/fast + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..." + /home/pedroernesto/anaconda3/lib/python3.7/site-packages/cmake/data/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake +.PHONY : install/strip/fast + +# Special rule for the target list_install_components +list_install_components: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Available install components are: \"Unspecified\"" +.PHONY : list_install_components + +# Special rule for the target list_install_components +list_install_components/fast: list_install_components + +.PHONY : list_install_components/fast + +# Special rule for the target install +install: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..." + /home/pedroernesto/anaconda3/lib/python3.7/site-packages/cmake/data/bin/cmake -P cmake_install.cmake +.PHONY : install + +# Special rule for the target install +install/fast: preinstall/fast + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..." + /home/pedroernesto/anaconda3/lib/python3.7/site-packages/cmake/data/bin/cmake -P cmake_install.cmake +.PHONY : install/fast + +# Special rule for the target install/local +install/local: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..." + /home/pedroernesto/anaconda3/lib/python3.7/site-packages/cmake/data/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake +.PHONY : install/local + +# Special rule for the target install/local +install/local/fast: preinstall/fast + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..." + /home/pedroernesto/anaconda3/lib/python3.7/site-packages/cmake/data/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake +.PHONY : install/local/fast + +# The main all target +all: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/compile/CMakeFiles /home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/compile//CMakeFiles/progress.marks + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 all + $(CMAKE_COMMAND) -E cmake_progress_start /home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/compile/CMakeFiles 0 +.PHONY : all + +# The main clean target +clean: + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 clean +.PHONY : clean + +# The main clean target +clean/fast: clean + +.PHONY : clean/fast + +# Prepare targets for installation. +preinstall: all + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 preinstall +.PHONY : preinstall + +# Prepare targets for installation. +preinstall/fast: + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 preinstall +.PHONY : preinstall/fast + +# clear depends +depend: + $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1 +.PHONY : depend + +#============================================================================= +# Target rules for targets named StdpSongAbbottmodule_module + +# Build rule for target. +StdpSongAbbottmodule_module: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 StdpSongAbbottmodule_module +.PHONY : StdpSongAbbottmodule_module + +# fast build rule for target. +StdpSongAbbottmodule_module/fast: + $(MAKE) $(MAKESILENT) -f CMakeFiles/StdpSongAbbottmodule_module.dir/build.make CMakeFiles/StdpSongAbbottmodule_module.dir/build +.PHONY : StdpSongAbbottmodule_module/fast + +#============================================================================= +# Target rules for targets named StdpSongAbbottmodule_lib + +# Build rule for target. +StdpSongAbbottmodule_lib: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 StdpSongAbbottmodule_lib +.PHONY : StdpSongAbbottmodule_lib + +# fast build rule for target. +StdpSongAbbottmodule_lib/fast: + $(MAKE) $(MAKESILENT) -f CMakeFiles/StdpSongAbbottmodule_lib.dir/build.make CMakeFiles/StdpSongAbbottmodule_lib.dir/build +.PHONY : StdpSongAbbottmodule_lib/fast + +#============================================================================= +# Target rules for targets named dist + +# Build rule for target. +dist: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 dist +.PHONY : dist + +# fast build rule for target. +dist/fast: + $(MAKE) $(MAKESILENT) -f CMakeFiles/dist.dir/build.make CMakeFiles/dist.dir/build +.PHONY : dist/fast + +StdpSongAbbott.o: StdpSongAbbott.cpp.o + +.PHONY : StdpSongAbbott.o + +# target to build an object file +StdpSongAbbott.cpp.o: + $(MAKE) $(MAKESILENT) -f CMakeFiles/StdpSongAbbottmodule_module.dir/build.make CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.o + $(MAKE) $(MAKESILENT) -f CMakeFiles/StdpSongAbbottmodule_lib.dir/build.make CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.o +.PHONY : StdpSongAbbott.cpp.o + +StdpSongAbbott.i: StdpSongAbbott.cpp.i + +.PHONY : StdpSongAbbott.i + +# target to preprocess a source file +StdpSongAbbott.cpp.i: + $(MAKE) $(MAKESILENT) -f CMakeFiles/StdpSongAbbottmodule_module.dir/build.make CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.i + $(MAKE) $(MAKESILENT) -f CMakeFiles/StdpSongAbbottmodule_lib.dir/build.make CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.i +.PHONY : StdpSongAbbott.cpp.i + +StdpSongAbbott.s: StdpSongAbbott.cpp.s + +.PHONY : StdpSongAbbott.s + +# target to generate assembly for a file +StdpSongAbbott.cpp.s: + $(MAKE) $(MAKESILENT) -f CMakeFiles/StdpSongAbbottmodule_module.dir/build.make CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbott.cpp.s + $(MAKE) $(MAKESILENT) -f CMakeFiles/StdpSongAbbottmodule_lib.dir/build.make CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbott.cpp.s +.PHONY : StdpSongAbbott.cpp.s + +StdpSongAbbottmodule.o: StdpSongAbbottmodule.cpp.o + +.PHONY : StdpSongAbbottmodule.o + +# target to build an object file +StdpSongAbbottmodule.cpp.o: + $(MAKE) $(MAKESILENT) -f CMakeFiles/StdpSongAbbottmodule_module.dir/build.make CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.o + $(MAKE) $(MAKESILENT) -f CMakeFiles/StdpSongAbbottmodule_lib.dir/build.make CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.o +.PHONY : StdpSongAbbottmodule.cpp.o + +StdpSongAbbottmodule.i: StdpSongAbbottmodule.cpp.i + +.PHONY : StdpSongAbbottmodule.i + +# target to preprocess a source file +StdpSongAbbottmodule.cpp.i: + $(MAKE) $(MAKESILENT) -f CMakeFiles/StdpSongAbbottmodule_module.dir/build.make CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.i + $(MAKE) $(MAKESILENT) -f CMakeFiles/StdpSongAbbottmodule_lib.dir/build.make CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.i +.PHONY : StdpSongAbbottmodule.cpp.i + +StdpSongAbbottmodule.s: StdpSongAbbottmodule.cpp.s + +.PHONY : StdpSongAbbottmodule.s + +# target to generate assembly for a file +StdpSongAbbottmodule.cpp.s: + $(MAKE) $(MAKESILENT) -f CMakeFiles/StdpSongAbbottmodule_module.dir/build.make CMakeFiles/StdpSongAbbottmodule_module.dir/StdpSongAbbottmodule.cpp.s + $(MAKE) $(MAKESILENT) -f CMakeFiles/StdpSongAbbottmodule_lib.dir/build.make CMakeFiles/StdpSongAbbottmodule_lib.dir/StdpSongAbbottmodule.cpp.s +.PHONY : StdpSongAbbottmodule.cpp.s + +# Help Target +help: + @echo "The following are some of the valid targets for this Makefile:" + @echo "... all (the default if no target is provided)" + @echo "... clean" + @echo "... depend" + @echo "... edit_cache" + @echo "... install" + @echo "... install/local" + @echo "... install/strip" + @echo "... list_install_components" + @echo "... package" + @echo "... package_source" + @echo "... rebuild_cache" + @echo "... dist" + @echo "... StdpSongAbbottmodule_lib" + @echo "... StdpSongAbbottmodule_module" + @echo "... StdpSongAbbott.o" + @echo "... StdpSongAbbott.i" + @echo "... StdpSongAbbott.s" + @echo "... StdpSongAbbottmodule.o" + @echo "... StdpSongAbbottmodule.i" + @echo "... StdpSongAbbottmodule.s" +.PHONY : help + + + +#============================================================================= +# Special targets to cleanup operation of make. + +# Special rule to run CMake to check the build system integrity. +# No rule that depends on this can have commands that come from listfiles +# because they might be regenerated. +cmake_check_build_system: + $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0 +.PHONY : cmake_check_build_system + diff --git a/examples/NEST_nineml_models/StdpSongAbbott/compile/StdpSongAbbottmodule.so b/examples/NEST_nineml_models/StdpSongAbbott/compile/StdpSongAbbottmodule.so new file mode 100755 index 000000000..f7e3c49f2 Binary files /dev/null and b/examples/NEST_nineml_models/StdpSongAbbott/compile/StdpSongAbbottmodule.so differ diff --git a/examples/NEST_nineml_models/StdpSongAbbott/compile/cmake_install.cmake b/examples/NEST_nineml_models/StdpSongAbbott/compile/cmake_install.cmake new file mode 100644 index 000000000..1d060bc66 --- /dev/null +++ b/examples/NEST_nineml_models/StdpSongAbbott/compile/cmake_install.cmake @@ -0,0 +1,123 @@ +# Install script for directory: /home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/src + +# Set the install prefix +if(NOT DEFINED CMAKE_INSTALL_PREFIX) + set(CMAKE_INSTALL_PREFIX "/home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/install") +endif() +string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}") + +# Set the install configuration name. +if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME) + if(BUILD_TYPE) + string(REGEX REPLACE "^[^A-Za-z0-9_]+" "" + CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}") + else() + set(CMAKE_INSTALL_CONFIG_NAME "") + endif() + message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"") +endif() + +# Set the component getting installed. +if(NOT CMAKE_INSTALL_COMPONENT) + if(COMPONENT) + message(STATUS "Install component: \"${COMPONENT}\"") + set(CMAKE_INSTALL_COMPONENT "${COMPONENT}") + else() + set(CMAKE_INSTALL_COMPONENT) + endif() +endif() + +# Install shared libraries without execute permission? +if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE) + set(CMAKE_INSTALL_SO_NO_EXE "1") +endif() + +# Is this installation the result of a crosscompile? +if(NOT DEFINED CMAKE_CROSSCOMPILING) + set(CMAKE_CROSSCOMPILING "FALSE") +endif() + +# Set default install directory permissions. +if(NOT DEFINED CMAKE_OBJDUMP) + set(CMAKE_OBJDUMP "/home/pedroernesto/anaconda3/bin/x86_64-conda_cos6-linux-gnu-objdump") +endif() + +if("x${CMAKE_INSTALL_COMPONENT}x" STREQUAL "xUnspecifiedx" OR NOT CMAKE_INSTALL_COMPONENT) + if(EXISTS "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/lib/StdpSongAbbottmodule.so" AND + NOT IS_SYMLINK "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/lib/StdpSongAbbottmodule.so") + file(RPATH_CHECK + FILE "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/lib/StdpSongAbbottmodule.so" + RPATH "") + endif() + file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/lib" TYPE MODULE FILES "/home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/compile/StdpSongAbbottmodule.so") + if(EXISTS "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/lib/StdpSongAbbottmodule.so" AND + NOT IS_SYMLINK "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/lib/StdpSongAbbottmodule.so") + if(CMAKE_INSTALL_DO_STRIP) + execute_process(COMMAND "/home/pedroernesto/anaconda3/bin/x86_64-conda_cos6-linux-gnu-strip" "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/lib/StdpSongAbbottmodule.so") + endif() + endif() +endif() + +if("x${CMAKE_INSTALL_COMPONENT}x" STREQUAL "xUnspecifiedx" OR NOT CMAKE_INSTALL_COMPONENT) + if(EXISTS "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/lib/libStdpSongAbbottmodule.so" AND + NOT IS_SYMLINK "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/lib/libStdpSongAbbottmodule.so") + file(RPATH_CHECK + FILE "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/lib/libStdpSongAbbottmodule.so" + RPATH "") + endif() + file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/lib" TYPE SHARED_LIBRARY FILES "/home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/compile/libStdpSongAbbottmodule.so") + if(EXISTS "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/lib/libStdpSongAbbottmodule.so" AND + NOT IS_SYMLINK "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/lib/libStdpSongAbbottmodule.so") + if(CMAKE_INSTALL_DO_STRIP) + execute_process(COMMAND "/home/pedroernesto/anaconda3/bin/x86_64-conda_cos6-linux-gnu-strip" "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/lib/libStdpSongAbbottmodule.so") + endif() + endif() +endif() + +if("x${CMAKE_INSTALL_COMPONENT}x" STREQUAL "xUnspecifiedx" OR NOT CMAKE_INSTALL_COMPONENT) +endif() + +if("x${CMAKE_INSTALL_COMPONENT}x" STREQUAL "xUnspecifiedx" OR NOT CMAKE_INSTALL_COMPONENT) + file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/include/StdpSongAbbottmodule" TYPE FILE FILES "/home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/src/StdpSongAbbottmodule.h") +endif() + +if("x${CMAKE_INSTALL_COMPONENT}x" STREQUAL "xUnspecifiedx" OR NOT CMAKE_INSTALL_COMPONENT) + file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/share" TYPE DIRECTORY FILES "/home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/src/sli") +endif() + +if("x${CMAKE_INSTALL_COMPONENT}x" STREQUAL "xUnspecifiedx" OR NOT CMAKE_INSTALL_COMPONENT) + execute_process( + COMMAND /home/pedroernesto/anaconda3/bin/python3 -B generate_help.py "/home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/src" "/home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/compile" + WORKING_DIRECTORY "/home/pedroernesto/anaconda3/build/NEST/share/nest/help_generator" + ) +endif() + +if("x${CMAKE_INSTALL_COMPONENT}x" STREQUAL "xUnspecifiedx" OR NOT CMAKE_INSTALL_COMPONENT) + list(APPEND CMAKE_ABSOLUTE_DESTINATION_FILES + "/home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/install/share/doc/StdpSongAbbottmodule/help") + if(CMAKE_WARN_ON_ABSOLUTE_INSTALL_DESTINATION) + message(WARNING "ABSOLUTE path INSTALL DESTINATION : ${CMAKE_ABSOLUTE_DESTINATION_FILES}") + endif() + if(CMAKE_ERROR_ON_ABSOLUTE_INSTALL_DESTINATION) + message(FATAL_ERROR "ABSOLUTE path INSTALL DESTINATION forbidden (by caller): ${CMAKE_ABSOLUTE_DESTINATION_FILES}") + endif() +file(INSTALL DESTINATION "/home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/install/share/doc/StdpSongAbbottmodule" TYPE DIRECTORY OPTIONAL FILES "/home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/compile/doc/help") +endif() + +if("x${CMAKE_INSTALL_COMPONENT}x" STREQUAL "xUnspecifiedx" OR NOT CMAKE_INSTALL_COMPONENT) + execute_process( + COMMAND /home/pedroernesto/anaconda3/bin/python3 -B generate_helpindex.py "/home/pedroernesto/anaconda3/build/NEST/share/doc/nest" + WORKING_DIRECTORY "/home/pedroernesto/anaconda3/build/NEST/share/nest/help_generator" + ) +endif() + +if(CMAKE_INSTALL_COMPONENT) + set(CMAKE_INSTALL_MANIFEST "install_manifest_${CMAKE_INSTALL_COMPONENT}.txt") +else() + set(CMAKE_INSTALL_MANIFEST "install_manifest.txt") +endif() + +string(REPLACE ";" "\n" CMAKE_INSTALL_MANIFEST_CONTENT + "${CMAKE_INSTALL_MANIFEST_FILES}") +file(WRITE "/home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/compile/${CMAKE_INSTALL_MANIFEST}" + "${CMAKE_INSTALL_MANIFEST_CONTENT}") diff --git a/examples/NEST_nineml_models/StdpSongAbbott/compile/install_manifest.txt b/examples/NEST_nineml_models/StdpSongAbbott/compile/install_manifest.txt new file mode 100644 index 000000000..07922ba94 --- /dev/null +++ b/examples/NEST_nineml_models/StdpSongAbbott/compile/install_manifest.txt @@ -0,0 +1,4 @@ +/home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/install/lib/StdpSongAbbottmodule.so +/home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/install/lib/libStdpSongAbbottmodule.so +/home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/install/include/StdpSongAbbottmodule/StdpSongAbbottmodule.h +/home/pedroernesto/Documents/Project/Code/Models_RepresentationSharing/TASKS_PyNN-branch-nineml/PyNN-branch-nineml_from-apdavisonGitHub/examples/NEST_nineml_models/StdpSongAbbott/install/share/sli/StdpSongAbbottmodule-init.sli \ No newline at end of file diff --git a/examples/NEST_nineml_models/StdpSongAbbott/compile/libStdpSongAbbottmodule.so b/examples/NEST_nineml_models/StdpSongAbbott/compile/libStdpSongAbbottmodule.so new file mode 100755 index 000000000..2778f3214 Binary files /dev/null and b/examples/NEST_nineml_models/StdpSongAbbott/compile/libStdpSongAbbottmodule.so differ diff --git a/examples/NEST_nineml_models/StdpSongAbbott/install/include/StdpSongAbbottmodule/StdpSongAbbottmodule.h b/examples/NEST_nineml_models/StdpSongAbbott/install/include/StdpSongAbbottmodule/StdpSongAbbottmodule.h new file mode 100644 index 000000000..da9c81310 --- /dev/null +++ b/examples/NEST_nineml_models/StdpSongAbbott/install/include/StdpSongAbbottmodule/StdpSongAbbottmodule.h @@ -0,0 +1,55 @@ +/* This file was generated by PyPe9 version 0.2 on Mon 10 May 21 12:03:45PM */ + +#ifndef STDPSONGABBOTT_MODULE_H +#define STDPSONGABBOTT_MODULE_H + +#include "slimodule.h" +#include "slifunction.h" + +// Put your stuff into your own namespace. +namespace mynest { + +/** + * Class defining your model. + * @note For each model, you must define one such class, with a unique name. + */ +class StdpSongAbbottModule : public SLIModule +{ + public: + + // Interface functions ------------------------------------------ + + /** + * @note The constructor registers the module with the dynamic loader. + * Initialization proper is performed by the init() method. + */ + StdpSongAbbottModule(); + + /** + * @note The destructor does not do much in modules. + */ + ~StdpSongAbbottModule(); + + /** + * Initialize module by registering models with the network. + * @param SLIInterpreter* SLI interpreter + */ + void init( SLIInterpreter* ); + + /** + * Return the name of your model. + */ + const std::string name( void ) const; + + /** + * Return the name of a sli file to execute when StdpSongAbbottModule is loaded. + * This mechanism can be used to define SLI commands associated with your + * module, in particular, set up type tries for functions you have defined. + */ + const std::string commandstring( void ) const; + +}; + +} // mynest namespace + +#endif // STDPSONGABBOTT_MODULE_H \ No newline at end of file diff --git a/examples/NEST_nineml_models/StdpSongAbbott/install/lib/StdpSongAbbottmodule.so b/examples/NEST_nineml_models/StdpSongAbbott/install/lib/StdpSongAbbottmodule.so new file mode 100644 index 000000000..f7e3c49f2 Binary files /dev/null and b/examples/NEST_nineml_models/StdpSongAbbott/install/lib/StdpSongAbbottmodule.so differ diff --git a/examples/NEST_nineml_models/StdpSongAbbott/install/lib/libStdpSongAbbottmodule.so b/examples/NEST_nineml_models/StdpSongAbbott/install/lib/libStdpSongAbbottmodule.so new file mode 100644 index 000000000..2778f3214 Binary files /dev/null and b/examples/NEST_nineml_models/StdpSongAbbott/install/lib/libStdpSongAbbottmodule.so differ diff --git a/examples/NEST_nineml_models/StdpSongAbbott/install/share/sli/StdpSongAbbottmodule-init.sli b/examples/NEST_nineml_models/StdpSongAbbott/install/share/sli/StdpSongAbbottmodule-init.sli new file mode 100644 index 000000000..7621d9425 --- /dev/null +++ b/examples/NEST_nineml_models/StdpSongAbbott/install/share/sli/StdpSongAbbottmodule-init.sli @@ -0,0 +1,10 @@ +/* + * File generated by PyPe9 + * Initialization file for StdpSongAbbott. + * Run automatically when StdpSongAbbott is loaded. + */ + +/* This file was generated by PyPe9 version 0.2 on Mon 10 May 21 12:03:45PM */ + +M_DEBUG (StdpSongAbbottmodule-init.sli) (Initializing SLI support for StdpSongAbbottmodule-init.) message + diff --git a/examples/NEST_nineml_models/StdpSongAbbott/src/CMakeLists.txt b/examples/NEST_nineml_models/StdpSongAbbott/src/CMakeLists.txt new file mode 100644 index 000000000..9bf3e682f --- /dev/null +++ b/examples/NEST_nineml_models/StdpSongAbbott/src/CMakeLists.txt @@ -0,0 +1,355 @@ +# StdpSongAbbott/CMakeLists.txt +# +# This file is part of NEST. +# +# Copyright (C) 2004 The NEST Initiative +# +# NEST is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 2 of the License, or +# (at your option) any later version. +# +# NEST is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with NEST. If not, see . + +cmake_minimum_required( VERSION 2.8.12 ) + +# This CMakeLists.txt is configured to build your external module for NEST. For +# illustrative reasons this module is called 'my' (change SHORT_NAME to your +# preferred module name). NEST requires you to extend the 'SLIModule' (see +# mymodule.h and mymodule.cpp as an example) and provide a module header +# (see MODULE_HEADER). The subsequent instructions +# +# The configuration requires a compiled and installed NEST; if `nest-config` is +# not in the PATH, please specify the absolute path with `-Dwith-nest=...`. +# +# For more informations on how to extend and use your module see: +# https://nest.github.io/nest-simulator/extension_modules + +# 1) Name your module here, i.e. add later with -Dexternal-modules=my: +set( SHORT_NAME StdpSongAbbott ) + +# the complete module name is here: +set( MODULE_NAME StdpSongAbbottmodule ) + +# 2) Add all your sources here +set( MODULE_SOURCES + StdpSongAbbottmodule.h StdpSongAbbottmodule.cpp + StdpSongAbbott.h StdpSongAbbott.cpp + ) + +# 3) We require a header name like this: +set( MODULE_HEADER ${MODULE_NAME}.h ) +# containing the class description of the class extending the SLIModule + +# 4) Specify your module version +set( MODULE_VERSION_MAJOR 1 ) +set( MODULE_VERSION_MINOR 0 ) +set( MODULE_VERSION "${MODULE_VERSION_MAJOR}.${MODULE_VERSION_MINOR}" ) + +# 5) Leave the rest as is. All files in `sli` will be installed to +# `share/nest/sli/`, so that NEST will find the during initialization. + +# Leave the call to "project(...)" for after the compiler is determined. + +# Set the `nest-config` executable to use during configuration. +set( with-nest OFF CACHE STRING "Specify the `nest-config` executable." ) + +# If it is not set, look for a `nest-config` in the PATH. +if ( NOT with-nest ) + # try find the program ourselves + find_program( NEST_CONFIG + NAMES nest-config + ) + if ( NEST_CONFIG STREQUAL "NEST_CONFIG-NOTFOUND" ) + message( FATAL_ERROR "Cannot find the program `nest-config`. Specify via -Dwith-nest=... ." ) + endif () +else () + set( NEST_CONFIG ${with-nest} ) +endif () + +# Use `nest-config` to get the compile and installation options used with the +# NEST installation. + +# Get the compiler that was used for NEST. +execute_process( + COMMAND ${NEST_CONFIG} --compiler + RESULT_VARIABLE RES_VAR + OUTPUT_VARIABLE NEST_COMPILER + OUTPUT_STRIP_TRAILING_WHITESPACE +) + +# One check on first execution, if `nest-config` is working. +if ( NOT RES_VAR EQUAL 0 ) + message( FATAL_ERROR "Cannot run `${NEST_CONFIG}`. Please specify correct `nest-config` via -Dwith-nest=... " ) +endif () + +# Setting the compiler has to happen before the call to "project(...)" function. +set( CMAKE_CXX_COMPILER "${NEST_COMPILER}" ) + +project( ${MODULE_NAME} CXX ) + +# Get the Python executable (for help generation). +execute_process( + COMMAND ${NEST_CONFIG} --python-executable + RESULT_VARIABLE RES_VAR + OUTPUT_VARIABLE PYTHON_EXECUTABLE + OUTPUT_STRIP_TRAILING_WHITESPACE +) + +# Get the Python executable (for help generation). +execute_process( + COMMAND ${NEST_CONFIG} --python-version + RESULT_VARIABLE RES_VAR + OUTPUT_VARIABLE PYTHON_VERSION_STRING + OUTPUT_STRIP_TRAILING_WHITESPACE +) + +# Get the install prefix. +execute_process( + COMMAND ${NEST_CONFIG} --prefix + RESULT_VARIABLE RES_VAR + OUTPUT_VARIABLE NEST_INSTALL_PREFIX + OUTPUT_STRIP_TRAILING_WHITESPACE +) + +# Get the CXXFLAGS. +execute_process( + COMMAND ${NEST_CONFIG} --cflags + RESULT_VARIABLE RES_VAR + OUTPUT_VARIABLE NEST_CXXFLAGS + OUTPUT_STRIP_TRAILING_WHITESPACE +) + +# Get the Includes. +execute_process( + COMMAND ${NEST_CONFIG} --includes + RESULT_VARIABLE RES_VAR + OUTPUT_VARIABLE NEST_INCLUDES + OUTPUT_STRIP_TRAILING_WHITESPACE +) +if ( NEST_INCLUDES ) + # make a cmake list + string( REPLACE " " ";" NEST_INCLUDES_LIST "${NEST_INCLUDES}" ) + foreach ( inc_complete ${NEST_INCLUDES_LIST} ) + # if it is actually a -Iincludedir + if ( "${inc_complete}" MATCHES "^-I.*" ) + # get the directory + string( REGEX REPLACE "^-I(.*)" "\\1" inc "${inc_complete}" ) + # and check whether it is a directory + if ( IS_DIRECTORY "${inc}" ) + include_directories( "${inc}" ) + endif () + endif () + endforeach () +endif () + +# Get, if NEST is build as a (mostly) static application. If yes, also only build +# static library. +execute_process( + COMMAND ${NEST_CONFIG} --static-libraries + RESULT_VARIABLE RES_VAR + OUTPUT_VARIABLE NEST_STATIC_LIB + OUTPUT_STRIP_TRAILING_WHITESPACE +) +if ( NEST_STATIC_LIB ) + set( BUILD_SHARED_LIBS OFF ) +else () + set( BUILD_SHARED_LIBS ON ) +endif () + +# Get all linked libraries. +execute_process( + COMMAND ${NEST_CONFIG} --libs + RESULT_VARIABLE RES_VAR + OUTPUT_VARIABLE NEST_LIBS + OUTPUT_STRIP_TRAILING_WHITESPACE +) + +# Get the data install dir. +execute_process( + COMMAND ${NEST_CONFIG} --datadir + RESULT_VARIABLE RES_VAR + OUTPUT_VARIABLE NEST_INSTALL_DATADIR + OUTPUT_STRIP_TRAILING_WHITESPACE +) + +# Get the documentation install dir. +execute_process( + COMMAND ${NEST_CONFIG} --docdir + RESULT_VARIABLE RES_VAR + OUTPUT_VARIABLE NEST_INSTALL_DOCDIR + OUTPUT_STRIP_TRAILING_WHITESPACE +) + +# Get the library install dir. +execute_process( + COMMAND ${NEST_CONFIG} --libdir + RESULT_VARIABLE RES_VAR + OUTPUT_VARIABLE NEST_LIBDIR + OUTPUT_STRIP_TRAILING_WHITESPACE +) + +# on OS X +set( CMAKE_MACOSX_RPATH ON ) + +# Use the NEST_INSTALL_* variables as CMAKE_INSTALL_*, if not set explicitly. +if ( "${CMAKE_INSTALL_PREFIX}" STREQUAL "/usr/local" ) + set( CMAKE_INSTALL_PREFIX "${NEST_INSTALL_PREFIX}" CACHE STRING "Install path prefix, prepended onto install directories." FORCE ) + set( CMAKE_INSTALL_LIBDIR "${NEST_LIBDIR}/nest" CACHE STRING "object code libraries (lib/nest or lib64/nest or lib//nest on Debian)" FORCE ) + set( CMAKE_INSTALL_DOCDIR "${NEST_INSTALL_DOCDIR}" CACHE STRING "documentation root (DATAROOTDIR/doc/nest)" FORCE ) + set( CMAKE_INSTALL_DATADIR "${NEST_INSTALL_DATADIR}" CACHE STRING "read-only architecture-independent data (DATAROOTDIR/nest)" FORCE ) +endif () + +include( GNUInstallDirs ) + +# CPack stuff. Required for target `dist`. +set( CPACK_GENERATOR TGZ ) +set( CPACK_SOURCE_GENERATOR TGZ ) + +set( CPACK_PACKAGE_DESCRIPTION_SUMMARY "NEST Module ${MODULE_NAME}" ) +set( CPACK_PACKAGE_VENDOR "NEST Initiative (http://www.nest-initiative.org/)" ) + +set( CPACK_PACKAGE_VERSION_MAJOR ${MODULE_VERSION_MAJOR} ) +set( CPACK_PACKAGE_VERSION_MINOR ${MODULE_VERSION_MINOR} ) +set( CPACK_PACKAGE_VERSION ${MODULE_VERSION} ) + +set( CPACK_SOURCE_IGNORE_FILES + "\\\\.gitignore" + "\\\\.git/" + "\\\\.travis\\\\.yml" + + # if we have in source builds + "/build/" + "/_CPack_Packages/" + "CMakeFiles/" + "cmake_install\\\\.cmake" + "Makefile.*" + "CMakeCache\\\\.txt" + "CPackConfig\\\\.cmake" + "CPackSourceConfig\\\\.cmake" + ) +set( CPACK_SOURCE_PACKAGE_FILE_NAME ${MODULE_NAME} ) + +set( CPACK_PACKAGE_INSTALL_DIRECTORY "${MODULE_NAME} ${MODULE_VERSION}" ) +include( CPack ) + +# add make dist target +add_custom_target( dist + COMMAND ${CMAKE_MAKE_PROGRAM} package_source + # not sure about this... seems, that it will be removed before dist... + # DEPENDS doc + COMMENT "Creating a source distribution from ${MODULE_NAME}..." + ) + + +if ( BUILD_SHARED_LIBS ) + # When building shared libraries, also create a module for loading at runtime + # with the `Install` command. + add_library( ${MODULE_NAME}_module MODULE ${MODULE_SOURCES} ) + set_target_properties( ${MODULE_NAME}_module + PROPERTIES + COMPILE_FLAGS "${NEST_CXXFLAGS} -DLTX_MODULE" + LINK_FLAGS "${NEST_LIBS}" + PREFIX "" + OUTPUT_NAME ${MODULE_NAME} ) + install( TARGETS ${MODULE_NAME}_module + DESTINATION ${CMAKE_INSTALL_LIBDIR} + ) +endif () + +# Build dynamic/static library for standard linking from NEST. +add_library( ${MODULE_NAME}_lib ${MODULE_SOURCES} ) +if ( BUILD_SHARED_LIBS ) + # Dynamic libraries are initiated by a `global` variable of the `SLIModule`, + # which is included, when the flag `LINKED_MODULE` is set. + target_compile_definitions( ${MODULE_NAME}_lib PRIVATE -DLINKED_MODULE ) +endif () +set_target_properties( ${MODULE_NAME}_lib + PROPERTIES + COMPILE_FLAGS "${NEST_CXXFLAGS}" + LINK_FLAGS "${NEST_LIBS}" + OUTPUT_NAME ${MODULE_NAME} ) + +# Install library, header and sli init files. +install( TARGETS ${MODULE_NAME}_lib DESTINATION ${CMAKE_INSTALL_LIBDIR} ) +install( FILES ${MODULE_HEADER} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/${MODULE_NAME} ) +install( DIRECTORY sli DESTINATION ${CMAKE_INSTALL_DATADIR} ) + +# Install help --- based on doc/CMakeLists.txt +# Install only if Py >= 2.7.8 and NEST was installed with help +if ( ( NOT CMAKE_CROSSCOMPILING ) + AND PYTHON_EXECUTABLE + AND ( ${PYTHON_VERSION_STRING} VERSION_GREATER "2.7.7" ) + AND ( IS_DIRECTORY ${NEST_INSTALL_PREFIX}/${NEST_INSTALL_DOCDIR}/help ) + ) + + # Extract help from all source files in the source code, put + # them in doc/help and generate a local help index in the + # build directory containing links to the help files. + install( CODE + "execute_process( + COMMAND ${PYTHON_EXECUTABLE} -B generate_help.py \"${PROJECT_SOURCE_DIR}\" \"${PROJECT_BINARY_DIR}\" + WORKING_DIRECTORY \"${NEST_INSTALL_PREFIX}/${NEST_INSTALL_DATADIR}/help_generator\" + )" + ) + + # Copy the local doc/help directory to the global installation + # directory for documentation. + install( DIRECTORY "${PROJECT_BINARY_DIR}/doc/help" + DESTINATION "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_DOCDIR}" + OPTIONAL + ) + + # Update the global help index to include all help files in + # the global installation directory for documentation. + install( CODE + "execute_process( + COMMAND ${PYTHON_EXECUTABLE} -B generate_helpindex.py \"${NEST_INSTALL_PREFIX}/${NEST_INSTALL_DOCDIR}\" + WORKING_DIRECTORY \"${NEST_INSTALL_PREFIX}/${NEST_INSTALL_DATADIR}/help_generator\" + )" + ) + +endif () + + +message( "" ) +message( "-------------------------------------------------------" ) +message( "${MODULE_NAME} Configuration Summary" ) +message( "-------------------------------------------------------" ) +message( "" ) +message( "C++ compiler : ${CMAKE_CXX_COMPILER}" ) +message( "Build static libs : ${NEST_STATIC_LIB}" ) +message( "C++ compiler flags : ${CMAKE_CXX_FLAGS}" ) +message( "NEST compiler flags : ${NEST_CXXFLAGS}" ) +message( "NEST include dirs : ${NEST_INCLUDES}" ) +message( "NEST libraries flags : ${NEST_LIBS}" ) +message( "" ) +message( "-------------------------------------------------------" ) +message( "" ) +message( "You can now build and install '${MODULE_NAME}' using" ) +message( " make" ) +message( " make install" ) +message( "" ) +message( "The library file lib${MODULE_NAME}.so will be installed to" ) +message( " ${CMAKE_INSTALL_FULL_LIBDIR}" ) +message( "Help files will be installed to" ) +message( " ${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_DOCDIR}" ) +message( "" ) +message( "The module can be loaded into NEST using" ) +message( " (${MODULE_NAME}) Install (in SLI)" ) +message( " nest.Install('${MODULE_NAME}') (in PyNEST)" ) +message( "" ) + +if( NOT "${CMAKE_INSTALL_PREFIX}" EQUAL "${NEST_INSTALL_PREFIX}" ) + message( "The module will be installed into a non-default location!" ) + message( "Make sure to set the environment variables:" ) + message( " export NEST_MODULE_PATH=${CMAKE_INSTALL_FULL_LIBDIR}:$NEST_MODULE_PATH" ) + message( " export SLI_PATH=${CMAKE_INSTALL_FULL_DATADIR}/sli:$SLI_PATH" ) + message( "" ) +endif () \ No newline at end of file diff --git a/examples/NEST_nineml_models/StdpSongAbbott/src/StdpSongAbbott.cpp b/examples/NEST_nineml_models/StdpSongAbbott/src/StdpSongAbbott.cpp new file mode 100644 index 000000000..d1a900bfe --- /dev/null +++ b/examples/NEST_nineml_models/StdpSongAbbott/src/StdpSongAbbott.cpp @@ -0,0 +1,38 @@ +/* + This file was generated by PyPe9 version 0.2 on Mon 10 May 21 12:03:45PM + Based on stdp_connection_hom.cpp, which is part of NEST + First Version of Jinja template: April 2021 + Author: Pedro Garcia-Rodriguez, ICN, CNRS, France +*/ + +/* + * stdp_connection_StdpSongAbbott.cpp + * + * This file is part of NEST. + * + * Copyright (C) 2004 The NEST Initiative + * + * NEST is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * NEST is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with NEST. If not, see . + * + */ + +#include "StdpSongAbbott.h" + +// Includes from nestkernel: +#include "common_synapse_properties.h" +#include "connector_model.h" +#include "event.h" + +// Includes from sli: +#include "dictdatum.h" \ No newline at end of file diff --git a/examples/NEST_nineml_models/StdpSongAbbott/src/StdpSongAbbott.h b/examples/NEST_nineml_models/StdpSongAbbott/src/StdpSongAbbott.h new file mode 100644 index 000000000..d4c1ec023 --- /dev/null +++ b/examples/NEST_nineml_models/StdpSongAbbott/src/StdpSongAbbott.h @@ -0,0 +1,344 @@ +/* + This file was generated by PyPe9 version 0.2 on Mon 10 May 21 12:03:45PM + Based on stdp_connection.h, which is part of NEST + First Version of Jinja template: March 2020 + Author: Pedro Garcia-Rodriguez, ICN, CNRS, France +*/ + +/* + * stdp_connection_StdpSongAbbott.h + * + * This file is part of NEST. + * + * Copyright (C) 2004 The NEST Initiative + * + * NEST is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * NEST is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with NEST. If not, see . + * + */ + +#ifndef STDP_CONNECTION_STDPSONGABBOTT_H +#define STDP_CONNECTION_STDPSONGABBOTT_H + +/* BeginDocumentation + Name: stdp_synapse - Synapse type for spike-timing dependent + plasticity. + + Description: + stdp_synapse is a connector to create synapses with spike time + dependent plasticity (as defined in [1]). Here the weight dependence + exponent can be set separately for potentiation and depression. + + Parameters: + tauLTP + aLTP + tauLTD + aLTD + wmax + wmin + + Transmits: SpikeEvent + + References: + \verbatim embed:rst + .. [1] Guetig et al. (2003). Learning input correlations through nonlinear + temporally asymmetric hebbian plasticity. Journal of Neuroscience, + 23:3697-3714 DOI: https://doi.org/10.1523/JNEUROSCI.23-09-03697.2003 + .. [2] Rubin J, Lee D, Sompolinsky H (2001). Equilibrium + properties of temporally asymmetric Hebbian plasticity. Physical Review + Letters, 86:364-367. DOI: https://doi.org/10.1103/PhysRevLett.86.364 + .. [3] Song S, Miller KD, Abbott LF (2000). Competitive Hebbian learning + through spike-timing-dependent synaptic plasticity. Nature Neuroscience + 3(9):919-926. + DOI: https://doi.org/10.1038/78829 + .. [4] van Rossum MCW, Bi G-Q, Turrigiano GG (2000). Stable Hebbian learning + from spike timing-dependent plasticity. Journal of Neuroscience, + 20(23):8812-8821. + DOI: https://doi.org/10.1523/JNEUROSCI.20-23-08812.2000 + \endverbatim +*/ + +// C++ includes: +#include + +// Includes from nestkernel: +#include "common_synapse_properties.h" +#include "connection.h" +#include "connector_model.h" +#include "event.h" + +// Includes from sli: +#include "dictdatum.h" +#include "dictutils.h" + +namespace nest +{ + +// connections are templates of target identifier type (used for pointer / +// target index addressing) derived from generic connection template +template < typename targetidentifierT > +class STDPConnection_StdpSongAbbott : public Connection< targetidentifierT > +{ + +public: + typedef CommonSynapseProperties CommonPropertiesType; + typedef Connection< targetidentifierT > ConnectionBase; + + /** + * Default Constructor. + * Sets default values for all parameters. Needed by GenericConnectorModel. + */ + STDPConnection_StdpSongAbbott(); + + + /** + * Copy constructor. + * Needs to be defined properly in order for GenericConnector to work. + */ + STDPConnection_StdpSongAbbott( const STDPConnection_StdpSongAbbott& ); + + // Explicitly declare all methods inherited from the dependent base + // ConnectionBase. This avoids explicit name prefixes in all places these + // functions are used. Since ConnectionBase depends on the template parameter, + // they are not automatically found in the base class. + using ConnectionBase::get_delay_steps; + using ConnectionBase::get_delay; + using ConnectionBase::get_rport; + using ConnectionBase::get_target; + + /** + * Get all properties of this connection and put them into a dictionary. + */ + void get_status( DictionaryDatum& d ) const; + + /** + * Set properties of this connection from the values given in dictionary. + */ + void set_status( const DictionaryDatum& d, ConnectorModel& cm ); + + /** + * Send an event to the receiver of this connection. + * \param e The event to send + * \param cp common properties of all synapses (empty). + */ + void send( Event& e, thread t, const CommonSynapseProperties& cp ); + + + class ConnTestDummyNode : public ConnTestDummyNodeBase + { + public: + // Ensure proper overriding of overloaded virtual functions. + // Return values from functions are ignored. + using ConnTestDummyNodeBase::handles_test_event; + port + handles_test_event( SpikeEvent&, rport ) + { + return invalid_port_; + } + }; + + void + check_connection( Node& s, Node& t, rport receptor_type, const CommonPropertiesType& ) + { + ConnTestDummyNode dummy_target; + + ConnectionBase::check_connection_( dummy_target, s, t, receptor_type ); + + t.register_stdp_connection( t_lastspike_ - get_delay(), get_delay() ); + } + + void + set_weight( double w ) + { + wsyn = w; + } + +private: + double + facilitate_( double wsyn, double P ) + { + double deltaw = wmax*aLTP*P; + wsyn = deltaw + wsyn; + + return wsyn > wmax ? wmax : wsyn; + } + + double + depress_( double wsyn, double M ) + { + double deltaw = -wmax*aLTD*M; + wsyn = deltaw + wsyn; + + return wsyn < wmin ? wmin : wsyn; + } + + // data members of each connection + double tauLTP; + double aLTP; + double tauLTD; + double aLTD; + double wmax; + double wmin; + + double deltaw; + double M; + double P; + double wsyn; + + double t_lastspike_; +}; + + +// +// Implementation of class STDPConnection_StdpSongAbbott. +// + +// +// Initialization of class STDPConnection_StdpSongAbbott. +// +template < typename targetidentifierT > +STDPConnection_StdpSongAbbott< targetidentifierT >::STDPConnection_StdpSongAbbott() + : ConnectionBase() + , tauLTP( 20.0 ) + , aLTP( 0.01 ) + , tauLTD( 20.0 ) + , aLTD( 0.012 ) + , wmin( 0.0 ) + , wmax( 0.0000001 ) + , wsyn( 0.00000005 ) + , P( 0.0 ) + , t_lastspike_( 0.0 ) +{ +} + +template < typename targetidentifierT > +STDPConnection_StdpSongAbbott< targetidentifierT >::STDPConnection_StdpSongAbbott( const STDPConnection_StdpSongAbbott< targetidentifierT >& rhs ) + : ConnectionBase( rhs ) + , tauLTP( rhs.tauLTP ) + , aLTP( rhs.aLTP ) + , tauLTD( rhs.tauLTD ) + , aLTD( rhs.aLTD ) + , wmax( rhs.wmax ) + , wmin( rhs.wmin ) + , deltaw( rhs.deltaw ) + , M( rhs.M ) + , P( rhs.P ) + , wsyn( rhs.wsyn ) + , t_lastspike_( rhs.t_lastspike_ ) +{ +} + +template < typename targetidentifierT > +void +STDPConnection_StdpSongAbbott< targetidentifierT >::get_status( DictionaryDatum& d ) const +{ + ConnectionBase::get_status( d ); + + def< double >( d, names::tau_plus, tauLTP ); + def< double >( d, names::A_plus, aLTP); + def< double >( d, names::tau_minus, tauLTD); + def< double >( d, names::A_minus, aLTD); + def< double >( d, names::Wmax, wmax); + def< double >( d, names::Wmin, wmin); + + def< double >( d, names::weight, wsyn ); + def< double >( d, names::Kplus, P); + def< long >( d, names::size_of, sizeof( *this ) ); + +} + +template < typename targetidentifierT > +void +STDPConnection_StdpSongAbbott< targetidentifierT >::set_status( const DictionaryDatum& d, ConnectorModel& cm ) +{ + ConnectionBase::set_status( d, cm ); + + updateValue< double >( d, names::tau_plus, tauLTP ); + updateValue< double >( d, names::A_plus, aLTP); + updateValue< double >( d, names::tau_minus, tauLTD); + updateValue< double >( d, names::A_minus, aLTD); + updateValue< double >( d, names::Wmax, wmax); + updateValue< double >( d, names::Wmin, wmin); + + updateValue< double >( d, names::weight, wsyn ); + updateValue< double >( d, names::Kplus, P); + + // check if weight_ and Wmax_ has the same sign + if ( not( ( ( wsyn >= 0 ) - ( wsyn < 0 )) == ( ( wmax >= 0 ) - ( wmax < 0 ) ) ) ) + { + throw BadProperty( "Weight and Wmax must have same sign." ); + } +} + +/** + * Send an event to the receiver of this connection. + * \param e The event to send + * \param t The thread on which this connection is stored. + * \param cp Common properties object, containing the stdp parameters. + */ +template < typename targetidentifierT > +inline void +STDPConnection_StdpSongAbbott< targetidentifierT >::send( Event& e, thread t, const CommonSynapseProperties& ) +{ + // synapse STDP depressing/facilitation dynamics + const double t_spike = e.get_stamp().get_ms(); + + // use accessor functions (inherited from Connection< >) to obtain delay and + // target + Node* target = get_target( t ); + double dendritic_delay = get_delay(); + + // get spike history in relevant range (t1, t2] from post-synaptic neuron + std::deque< histentry >::iterator start; + std::deque< histentry >::iterator finish; + + // For a new synapse, t_lastspike_ contains the point in time of the last + // spike. So we initially read the + // history(t_last_spike - dendritic_delay, ..., t_spike-dendritic_delay] + // which increases the access counter for these entries. + // At registration, all entries' access counters of + // history[0, ..., t_last_spike - dendritic_delay] have been + // incremented by Archiving_Node::register_stdp_connection(). See bug #218 for + // details. + target->get_history( t_lastspike_ - dendritic_delay, t_spike - dendritic_delay, &start, &finish ); + // facilitation due to post-synaptic spikes since last pre-synaptic spike + double minus_dt; + while ( start != finish ) + { + minus_dt = t_lastspike_ - ( start->t_ + dendritic_delay ); + ++start; + // get_history() should make sure that + // start->t_ > t_lastspike - dendritic_delay, i.e. minus_dt < 0 + assert( minus_dt < -1.0 * kernel().connection_manager.get_stdp_eps() ); + wsyn = facilitate_( wsyn, P * std::exp( minus_dt / tauLTP ) ); + } + + // depression due to new pre-synaptic spike + wsyn = depress_( wsyn, target->get_K_value( t_spike - dendritic_delay ) ); + + e.set_receiver( *target ); + e.set_weight( wsyn ); + // use accessor functions (inherited from Connection< >) to obtain delay in + // steps and rport + e.set_delay_steps( get_delay_steps() ); + e.set_rport( get_rport() ); + e(); + + P = P * std::exp( ( t_lastspike_ - t_spike) / tauLTP ) + 1.0; + + t_lastspike_ = t_spike; +} + +} // of namespace nest + +#endif // of #ifndef STDP_CONNECTION_STDPSONGABBOTT_H \ No newline at end of file diff --git a/examples/NEST_nineml_models/StdpSongAbbott/src/StdpSongAbbottmodule.cpp b/examples/NEST_nineml_models/StdpSongAbbott/src/StdpSongAbbottmodule.cpp new file mode 100644 index 000000000..71bc98951 --- /dev/null +++ b/examples/NEST_nineml_models/StdpSongAbbott/src/StdpSongAbbottmodule.cpp @@ -0,0 +1,105 @@ +/* This file was generated by PyPe9 version 0.2 on Mon 10 May 21 12:03:45PM */ + +#include "StdpSongAbbottmodule.h" + +// Model include +#include "StdpSongAbbott.h" + +// Generated include +#include "config.h" + +// Includes from nestkernel: +#include "connection_manager_impl.h" +#include "connector_model_impl.h" +#include "dynamicloader.h" +#include "exceptions.h" +#include "genericmodel.h" +#include "genericmodel_impl.h" +#include "kernel_manager.h" +#include "model.h" +#include "model_manager_impl.h" +#include "nest.h" +#include "nest_impl.h" +#include "nestmodule.h" +#include "target_identifier.h" + +// Includes from sli: +#include "booldatum.h" +#include "integerdatum.h" +#include "sliexceptions.h" +#include "tokenarray.h" + + +// -- Interface to dynamic module loader --------------------------------------- + +/* + * The dynamic module loader must be able to find your module. + * You make the module known to the loader by defining an instance of your + * module class in global scope. This instance must have the name + * + * _LTX_mod + * + * The dynamicloader can then load modulename and search for symbol "mod" in it. + */ + +#if defined( LTX_MODULE ) | defined( LINKED_MODULE ) +mynest::StdpSongAbbottModule StdpSongAbbottmodule_LTX_mod; +#endif + +// -- DynModule functions ------------------------------------------------------ + +mynest::StdpSongAbbottModule::StdpSongAbbottModule() { +#ifdef LINKED_MODULE + // register this module at the dynamic loader + // this is needed to allow for linking in this module at compile time + // all registered modules will be initialized by the main app's dynamic loader + nest::DynamicLoaderModule::registerLinkedModule(this); +#endif +} + +mynest::StdpSongAbbottModule::~StdpSongAbbottModule() +{ +} + +const std::string +mynest::StdpSongAbbottModule::name(void) const { + return std::string("PyPe9-generated module for StdpSongAbbott class"); // Return name of the module +} + +const std::string +mynest::StdpSongAbbottModule::commandstring(void) const { + /* 1. Tell interpreter that we provide the C++ part of StdpSongAbbottModule with the + current revision number. + 2. Instruct the interpreter to check that StdpSongAbbottModule.sli exists, + provides at least version 1.0 of the SLI interface to StdpSongAbbottModule, and + to load it. + */ + return std::string("(StdpSongAbbottmodule-init) run"); +} + +//------------------------------------------------------------------------------------- + +void mynest::StdpSongAbbottModule::init( SLIInterpreter* i ) +{ + /* Register a neuron or device model. + Give node type as template argument and the name as second argument. + */ + // nest::kernel().model_manager.register_node_model< pif_psc_alpha >( "pif_psc_alpha" ); + + /* Register a synapse type. + Give synapse type as template argument and the name as second argument. + + There are two choices for the template argument: + - nest::TargetIdentifierPtrRport + - nest::TargetIdentifierIndex + The first is the standard and you should usually stick to it. + nest::TargetIdentifierIndex reduces the memory requirement of synapses + even further, but limits the number of available rports. Please see + Kunkel et al, Front Neurofinfom 8:78 (2014), Sec 3.3.2, for details. + */ + nest::register_connection_model< nest::STDPConnection_StdpSongAbbott >( "StdpSongAbbott", nest::default_connection_model_flags); + + // Register connection rule. + // nest::kernel().connection_manager.register_conn_builder< StepPatternBuilder >( "step_pattern" ); + +} // StdpSongAbbottModule::init() \ No newline at end of file diff --git a/examples/NEST_nineml_models/StdpSongAbbott/src/StdpSongAbbottmodule.h b/examples/NEST_nineml_models/StdpSongAbbott/src/StdpSongAbbottmodule.h new file mode 100644 index 000000000..da9c81310 --- /dev/null +++ b/examples/NEST_nineml_models/StdpSongAbbott/src/StdpSongAbbottmodule.h @@ -0,0 +1,55 @@ +/* This file was generated by PyPe9 version 0.2 on Mon 10 May 21 12:03:45PM */ + +#ifndef STDPSONGABBOTT_MODULE_H +#define STDPSONGABBOTT_MODULE_H + +#include "slimodule.h" +#include "slifunction.h" + +// Put your stuff into your own namespace. +namespace mynest { + +/** + * Class defining your model. + * @note For each model, you must define one such class, with a unique name. + */ +class StdpSongAbbottModule : public SLIModule +{ + public: + + // Interface functions ------------------------------------------ + + /** + * @note The constructor registers the module with the dynamic loader. + * Initialization proper is performed by the init() method. + */ + StdpSongAbbottModule(); + + /** + * @note The destructor does not do much in modules. + */ + ~StdpSongAbbottModule(); + + /** + * Initialize module by registering models with the network. + * @param SLIInterpreter* SLI interpreter + */ + void init( SLIInterpreter* ); + + /** + * Return the name of your model. + */ + const std::string name( void ) const; + + /** + * Return the name of a sli file to execute when StdpSongAbbottModule is loaded. + * This mechanism can be used to define SLI commands associated with your + * module, in particular, set up type tries for functions you have defined. + */ + const std::string commandstring( void ) const; + +}; + +} // mynest namespace + +#endif // STDPSONGABBOTT_MODULE_H \ No newline at end of file diff --git a/examples/NEST_nineml_models/StdpSongAbbott/src/sli/StdpSongAbbottmodule-init.sli b/examples/NEST_nineml_models/StdpSongAbbott/src/sli/StdpSongAbbottmodule-init.sli new file mode 100644 index 000000000..7621d9425 --- /dev/null +++ b/examples/NEST_nineml_models/StdpSongAbbott/src/sli/StdpSongAbbottmodule-init.sli @@ -0,0 +1,10 @@ +/* + * File generated by PyPe9 + * Initialization file for StdpSongAbbott. + * Run automatically when StdpSongAbbott is loaded. + */ + +/* This file was generated by PyPe9 version 0.2 on Mon 10 May 21 12:03:45PM */ + +M_DEBUG (StdpSongAbbottmodule-init.sli) (Initializing SLI support for StdpSongAbbottmodule-init.) message + diff --git a/examples/Potjans2014/plotting.py b/examples/Potjans2014/plotting.py index 5347a8b34..5e6cb1163 100644 --- a/examples/Potjans2014/plotting.py +++ b/examples/Potjans2014/plotting.py @@ -16,7 +16,7 @@ def show_raster_bars(t_start, t_stop, n_rec, frac_to_plot, path): pop_list = ['E', 'I'] for i in range(8): - layer = i / 2 + layer = int(i / 2) pop = i % 2 filestart = path + 'spikes_' + str(layer_list[layer]) + '_' + str(pop_list[pop]) + '*' filelist = glob.glob(filestart) @@ -43,7 +43,7 @@ def show_raster_bars(t_start, t_stop, n_rec, frac_to_plot, path): id_count = 0 print("Mean rates") for i in range(8)[::-1]: - layer = i / 2 + layer = int(i / 2) pop = i % 2 rate = 0.0 t_spikes = spikes[i][:, 0] diff --git a/examples/cell_type_demonstration.py b/examples/cell_type_demonstration.py index c9a319644..f823d281d 100644 --- a/examples/cell_type_demonstration.py +++ b/examples/cell_type_demonstration.py @@ -15,7 +15,6 @@ from pyNN.utility import get_simulator, init_logging, normalized_filename - # === Configure the simulator ================================================ sim, options = get_simulator(("--plot-figure", "Plot the simulation results to a file.", {"action": "store_true"}), @@ -28,7 +27,6 @@ # === Build and instrument the network ======================================= - cuba_exp = sim.Population(1, sim.IF_curr_exp(i_offset=1.0), label="IF_curr_exp") hh = sim.Population(1, sim.HH_cond_exp(i_offset=0.2), label="HH_cond_exp") adexp = sim.Population(1, sim.EIF_cond_exp_isfa_ista(i_offset=1.0), label="EIF_cond_exp_isfa_ista") diff --git a/examples/iaf_sfa_relref/iaf_sfa_network_INH_GAMMA.py b/examples/iaf_sfa_relref/iaf_sfa_network_INH_GAMMA.py index dc084fef2..0d08a924c 100644 --- a/examples/iaf_sfa_relref/iaf_sfa_network_INH_GAMMA.py +++ b/examples/iaf_sfa_relref/iaf_sfa_network_INH_GAMMA.py @@ -1,7 +1,7 @@ """ A PyNN version of the network architecture described in: Muller, E., Meier, K., & Schemmel, J. (2004). Methods for simulating -high-conductance states in neural microcircuits. Proc. of BICS2004. +high-conductance states in neural microcircuits. Proc. of BICS2004. http://neuralensemble.org/people/eilifmuller/Publications/bics2004_mueller.pdf @@ -9,9 +9,6 @@ LCN, EPFL - October 2009 """ -## Debugger ## -#import pdb -# pdb.set_trace() ## Import modules ## import numpy, pylab, time @@ -33,20 +30,20 @@ class LatticeConnector(connectors.Connector): For every connection that is made the delay is set proportional to the distance that separates the two neurons plus some random noise coming from a gamma distribution. - + N cannot be drawn from a random distribution. - + Self connections are always enabled. """ - + def __init__(self, weights=0.0, dist_factor=1.0, noise_factor=0.01, n=1.0): """ Create a new connector. - + `weights` -- The weights of all the connections made. `dist_factor` -- A factor to control the delay (conversion of distance to milliseconds of delay). - `noise_factor` -- A factor to control the noise (scale of gamma + `noise_factor` -- A factor to control the noise (scale of gamma distribution). `n` -- Number of connections to make for each neuron. """ @@ -54,7 +51,7 @@ def __init__(self, weights=0.0, dist_factor=1.0, noise_factor=0.01, n=1.0): self.dist_factor = dist_factor self.noise_factor = noise_factor self.n = n - + def connect(self, projection): """Connect-up a Projection.""" # Timers @@ -64,12 +61,12 @@ def connect(self, projection): timer2 = 0.0 timer3 = 0.0 timer4 = 0.0 - + # Recuperate variables # n = self.n dist_factor = self.dist_factor noise_factor = self.noise_factor - + # Do some checking # assert dist_factor >= 0 assert noise_factor >= 0 @@ -77,29 +74,29 @@ def connect(self, projection): assert n >= 0 else: raise Exception("n must be an integer.") - + # Get posts and pres # listPostIDs = projection.post.local_cells listPreIDs = projection.pre.all_cells countPost = len(listPostIDs) - countPre = len(listPreIDs) + countPre = len(listPreIDs) listPreIndexes = numpy.arange(countPre) listPostIndexes = map(projection.post.id_to_index, listPostIDs) # Prepare all distances # - allDistances = self.space.distances(projection.post.positions, projection.pre.positions) - + allDistances = self.space.distances(projection.post.positions, projection.pre.positions) + # Get weights # weights = numpy.empty(n) weights[:] = self.weights is_conductance = common.is_conductance(projection.post[listPostIndexes[0]]) weights = common.check_weight(weights, projection.synapse_type, is_conductance) - + for i in xrange(len(listPostIDs)): currentPostIndex = listPostIndexes[i] currentPostID = listPostIDs[i] #currentPostIDAsList = [currentPostID] - + # Pick n neurons at random in pre population myTimer = time.time() chosenPresIndexes = list(numpy.random.permutation(numpy.arange(countPre))[0:n]) @@ -108,22 +105,22 @@ def connect(self, projection): # print(chosenPresIDs) #chosenPresIDs = chosenPresIDs.tolist() timer0 += time.time() - myTimer - + # Get distances myTimer = time.time() #distances = allDistances[currentPostIndex,chosenPresIndexes] distances = allDistances[currentPostIndex, chosenPresIndexes] timer1 += time.time() - myTimer - + # Generate gamme noise noise = numpy.random.gamma(1.0, noise_factor, n) - + # Create delays with distance and noise myTimer = time.time() delays = dist_factor * distances * (1.0 + noise) timer2 += time.time() - myTimer #delays[:] = 1.0 - + # Check for small and big delays myTimer = time.time() delaysClipped = numpy.clip(delays, common.get_min_delay(), common.get_max_delay()) @@ -132,12 +129,12 @@ def connect(self, projection): print("Warning: %d of %d delays were cliped because they were either bigger than the max delay or lower than the min delay." % (howManyClipped, n)) delaysClipped = delaysClipped.tolist() timer3 += time.time() - myTimer - + # Connect everything up yTimer = time.time() projection._convergent_connect(chosenPresIDs, currentPostID, weights, delaysClipped) timer4 += time.time() - myTimer - + # Print timings if rank == 0: print("\033[2;46m" + ("Timer 0: %5.4f seconds" % timer0).ljust(60) + "\033[m") @@ -434,7 +431,7 @@ def printMessage(message): highestIndexE = numpy.max(spikesE[:, 0]) listNeuronsE = list(spikesE[:, 0]) listTimesE = list(spikesE[:, 1]) - listNeuronsI = list(spikesI[:, 0] + highestIndexE) + listNeuronsI = list(spikesI[:, 0] + highestIndexE) listTimesI = list(spikesI[:, 1]) ## Kill the bad dir ## @@ -446,20 +443,20 @@ def printMessage(message): #m = re.search('\nf(\w+)\n', theText) #theFD = m.group(1) #os.close(int(theFD)) - + ## Close the simulation ## sim.end() ###################### PLOTTING ########################### if rank == 0: - + ## Graph Burst ## pylab.figure() allSpikes = listTimesE + listTimesI allNeurons = listNeuronsE + listNeuronsI pylab.plot(allSpikes, allNeurons, 'r.', markersize=1, label='Action potentials') - + pylab.xlabel("Time [milliseconds]") pylab.ylabel("Neuron (first E, then I)") pylab.title(("$C_{E\\rightarrow E}=%.2f$, $C_{E\\rightarrow I}=%.2f$," + @@ -467,7 +464,7 @@ def printMessage(message): (ICFactorE_E, ICFactorE_I, ICFactorI_E, ICFactorI_I)) pylab.suptitle("Layer 4 model with Connection Factors:") #pylab.legend() - + axisHeight = pylab.axis()[3] pylab.vlines(tinit, 0.0, axisHeight / 8, linewidth="4", color='k', linestyles='solid') diff --git a/examples/iaf_sfa_relref/iaf_sfa_network_STATIC.py b/examples/iaf_sfa_relref/iaf_sfa_network_STATIC.py index c67a16cf5..51b454a48 100644 --- a/examples/iaf_sfa_relref/iaf_sfa_network_STATIC.py +++ b/examples/iaf_sfa_relref/iaf_sfa_network_STATIC.py @@ -1,7 +1,7 @@ """ A PyNN version of the network architecture described in: Muller, E., Meier, K., & Schemmel, J. (2004). Methods for simulating -high-conductance states in neural microcircuits. Proc. of BICS2004. +high-conductance states in neural microcircuits. Proc. of BICS2004. http://neuralensemble.org/people/eilifmuller/Publications/bics2004_mueller.pdf @@ -9,9 +9,6 @@ LCN, EPFL - October 2009 """ -## Debugger ## -#import pdb -# pdb.set_trace() ## Import modules ## import numpy, pylab, math, time, os, re @@ -36,20 +33,20 @@ class LatticeConnector(connectors.Connector): For every connection that is made the delay is set proportional to the distance that separates the two neurons plus some random noise coming from a gamma distribution. - + N cannot be drawn from a random distribution. - + Self connections are always enabled. """ - + def __init__(self, weights=0.0, dist_factor=1.0, noise_factor=0.01, n=1.0): """ Create a new connector. - + `weights` -- The weights of all the connections made. `dist_factor` -- A factor to control the delay (conversion of distance to milliseconds of delay). - `noise_factor` -- A factor to control the noise (scale of gamma + `noise_factor` -- A factor to control the noise (scale of gamma distribution). `n` -- Number of connections to make for each neuron. """ @@ -57,7 +54,7 @@ def __init__(self, weights=0.0, dist_factor=1.0, noise_factor=0.01, n=1.0): self.dist_factor = dist_factor self.noise_factor = noise_factor self.n = n - + def connect(self, projection): """Connect-up a Projection.""" # Timers @@ -67,12 +64,12 @@ def connect(self, projection): timer2 = 0.0 timer3 = 0.0 timer4 = 0.0 - + # Recuperate variables # n = self.n dist_factor = self.dist_factor noise_factor = self.noise_factor - + # Do some checking # assert dist_factor >= 0 assert noise_factor >= 0 @@ -80,18 +77,18 @@ def connect(self, projection): assert n >= 0 else: raise Exception("n must be an integer.") - + # Get posts and pres # listPostIDs = projection.post.local_cells listPreIDs = projection.pre.all_cells countPost = len(listPostIDs) - countPre = len(listPreIDs) + countPre = len(listPreIDs) listPreIndexes = numpy.arange(countPre) listPostIndexes = map(projection.post.id_to_index, listPostIDs) # Prepare all distances # - allDistances = self.space.distances(projection.post.positions, projection.pre.positions) - + allDistances = self.space.distances(projection.post.positions, projection.pre.positions) + # Get weights # weights = numpy.empty(n) weights[:] = self.weights @@ -99,12 +96,12 @@ def connect(self, projection): weights = common.check_weight(weights, projection.synapse_type, is_conductance) numpy.random.seed(12345) - + for i in xrange(len(listPostIDs)): currentPostIndex = listPostIndexes[i] currentPostID = listPostIDs[i] #currentPostIDAsList = [currentPostID] - + # Pick n neurons at random in pre population myTimer = time.time() chosenPresIndexes = list(numpy.random.permutation(numpy.arange(countPre))[0:n]) @@ -113,22 +110,22 @@ def connect(self, projection): # print(chosenPresIDs) #chosenPresIDs = chosenPresIDs.tolist() timer0 += time.time() - myTimer - + # Get distances myTimer = time.time() #distances = allDistances[currentPostIndex,chosenPresIndexes] distances = allDistances[currentPostIndex, chosenPresIndexes] timer1 += time.time() - myTimer - + # Generate gamme noise noise = numpy.random.gamma(1.0, noise_factor, n) - + # Create delays with distance and noise myTimer = time.time() delays = dist_factor * distances * (1.0 + noise) timer2 += time.time() - myTimer #delays[:] = 1.0 - + # Check for small and big delays myTimer = time.time() delaysClipped = numpy.clip(delays, sim.get_min_delay(), sim.get_max_delay()) @@ -137,12 +134,12 @@ def connect(self, projection): print("Warning: %d of %d delays were cliped because they were either bigger than the max delay or lower than the min delay." % (howManyClipped, n)) delaysClipped = delaysClipped.tolist() timer3 += time.time() - myTimer - + # Connect everything up yTimer = time.time() projection._convergent_connect(chosenPresIDs, currentPostID, weights, delaysClipped) timer4 += time.time() - myTimer - + # Print timings if rank == 0: print("\033[2;46m" + ("Timer 0: %5.4f seconds" % timer0).ljust(60) + "\033[m") @@ -390,7 +387,7 @@ def printMessage(message): highestIndexE = numpy.max(spikesE[:, 0]) listNeuronsE = list(spikesE[:, 0]) listTimesE = list(spikesE[:, 1]) - listNeuronsI = list(spikesI[:, 0] + highestIndexE) + listNeuronsI = list(spikesI[:, 0] + highestIndexE) listTimesI = list(spikesI[:, 1]) ## Kill the bad dir ## @@ -402,20 +399,20 @@ def printMessage(message): #m = re.search('\nf(\w+)\n', theText) #theFD = m.group(1) #os.close(int(theFD)) - + ## Close the simulation ## sim.end() ###################### PLOTTING ########################### if rank == 0: - + ## Graph Burst ## pylab.figure() allSpikes = listTimesE + listTimesI allNeurons = listNeuronsE + listNeuronsI pylab.plot(allSpikes, allNeurons, 'r.', markersize=1, label='Action potentials') - + pylab.xlabel("Time [milliseconds]") pylab.ylabel("Neuron (first E, then I)") pylab.title(("$C_{E\\rightarrow E}=%.2f$, $C_{E\\rightarrow I}=%.2f$," + @@ -423,7 +420,7 @@ def printMessage(message): (ICFactorE_E, ICFactorE_I, ICFactorI_E, ICFactorI_I)) pylab.suptitle("Layer 4 model with Connection Factors:") #pylab.legend() - + axisHeight = pylab.axis()[3] pylab.vlines(tinit, 0.0, axisHeight / 8, linewidth="4", color='k', linestyles='solid') diff --git a/examples/multiquantal_synapses.py b/examples/multiquantal_synapses.py index 16e066815..60473f0de 100644 --- a/examples/multiquantal_synapses.py +++ b/examples/multiquantal_synapses.py @@ -82,7 +82,6 @@ channel_index=np.array([0])) gsyn_mean.name = 'gsyn_inh_mean' data[label].analogsignals.append(gsyn_mean) - #import pdb; pdb.set_trace() def make_panel(population, label): return Panel(population.get_data().segments[0].filter(name='gsyn_inh')[0], diff --git a/examples/nineml_brunel.py b/examples/nineml_brunel.py index 30e8e92c8..dd3710578 100644 --- a/examples/nineml_brunel.py +++ b/examples/nineml_brunel.py @@ -22,6 +22,8 @@ cases = ['SR', 'SR2', 'SR3', 'SIfast', 'AI', 'SIslow'] parser = argparse.ArgumentParser() +parser.add_argument('simulator_name', + help=("The simulator to use")) parser.add_argument('case', help=("The simulation case to run, can be one of '{}'" .format("', '".join(cases)))) @@ -36,7 +38,7 @@ if args.case not in cases: raise Exception("Unrecognised case '{}', allowed cases are '{}'" - .format("', '".join(cases))) + .format(args.case, "', '".join(cases))) document = ninemlcatalog.load('/network/Brunel2000/' + args.case) xml_file = document.url diff --git a/examples/nrn_artificial_cell.py b/examples/nrn_artificial_cell.py new file mode 100644 index 000000000..4b9bc5bdf --- /dev/null +++ b/examples/nrn_artificial_cell.py @@ -0,0 +1,85 @@ +# encoding: utf-8 +""" +Small network created with NEURON ARTIFICIAL_CELL models + + +Usage: nrn_artificial_cell.py + +""" + +import numpy +from pyNN.utility import get_simulator, init_logging, normalized_filename +from pyNN.parameters import Sequence +from pyNN.random import RandomDistribution as rnd +import pyNN.neuron as sim + + +# === Define parameters ======================================================== + +n = 20 # Number of cells +w = 0.1 # synaptic weight (dimensionless) +cell_params = { + 'tau' : 20.0, # (ms) + 'refrac' : 2.0, # (ms) +} +dt = 0.1 # (ms) +syn_delay = 1.0 # (ms) +input_rate = 50.0 # (Hz) +simtime = 1000.0 # (ms) + +# === Build the network ======================================================== + +sim.setup(timestep=dt, max_delay=syn_delay) + +cells = sim.Population(n, sim.IntFire1(**cell_params), + initial_values={'m': rnd('uniform', (0.0, 1.0))}, + label="cells") + +number = int(2 * simtime * input_rate / 1000.0) +numpy.random.seed(26278342) + + +def generate_spike_times(i): + gen = lambda: Sequence(numpy.add.accumulate(numpy.random.exponential(1000.0 / input_rate, size=number))) + if hasattr(i, "__len__"): + return [gen() for j in i] + else: + return gen() +assert generate_spike_times(0).max() > simtime + +spike_source = sim.Population(n, sim.SpikeSourceArray(spike_times=generate_spike_times)) + +spike_source.record('spikes') +cells.record('spikes') +cells[0:2].record('m') + +syn = sim.StaticSynapse(weight=w, delay=syn_delay) +input_conns = sim.Projection(spike_source, cells, sim.FixedProbabilityConnector(0.5), syn, + receptor_type="default") + +# === Run simulation =========================================================== + +sim.run(simtime) + +filename = normalized_filename("Results", "nrn_artificial_cell", "pkl", + "neuron", sim.num_processes()) +cells.write_data(filename, annotations={'script_name': __file__}) + +print("Mean firing rate: ", cells.mean_spike_count() * 1000.0 / simtime, "Hz") + +plot_figure = True +if plot_figure: + from pyNN.utility.plotting import Figure, Panel + figure_filename = filename.replace("pkl", "png") + data = cells.get_data().segments[0] + m = data.filter(name="m")[0] + Figure( + Panel(m, ylabel="Membrane potential (dimensionless)", yticks=True, ylim=(0,1)), + Panel(data.spiketrains, xlabel="Time (ms)", xticks=True), + annotations="Simulated with NEURON" + ).save(figure_filename) + print(figure_filename) + +# === Clean up and quit ======================================================== + +sim.end() diff --git a/examples/simpleRandomNetwork.py b/examples/simpleRandomNetwork.py index a32aed506..549000e46 100644 --- a/examples/simpleRandomNetwork.py +++ b/examples/simpleRandomNetwork.py @@ -37,7 +37,7 @@ print("[%d] Creating populations" % node) n_spikes = int(2 * tstop * input_rate / 1000.0) spike_times = numpy.add.accumulate(rng.next(n_spikes, 'exponential', - {'beta': 1000.0 / input_rate}, mask_local=False)) + {'beta': 1000.0 / input_rate})) input_population = sim.Population(10, sim.SpikeSourceArray(spike_times=spike_times), label="input") output_population = sim.Population(20, sim.IF_curr_exp(**cell_params), label="output") diff --git a/examples/simple_STDP.py b/examples/simple_STDP.py index 2b8fe1966..9a1d48677 100644 --- a/examples/simple_STDP.py +++ b/examples/simple_STDP.py @@ -53,13 +53,9 @@ # === Configure the simulator =============================================== -sim, options = get_simulator(("--plot-figure", "Plot the simulation results to a file", - {"action": "store_true"}), - ("--fit-curve", "Calculate the best-fit curve to the weight-delta_t measurements", - {"action": "store_true"}), - ("--dendritic-delay-fraction", - "What fraction of the total transmission delay is due to dendritic propagation", - {"default": 1}), +sim, options = get_simulator(("--plot-figure", "Plot the simulation results to a file", {"action": "store_true"}), + ("--fit-curve", "Calculate the best-fit curve to the weight-delta_t measurements", {"action": "store_true"}), + ("--dendritic-delay-fraction", "What fraction of the total transmission delay is due to dendritic propagation", {"default": 1}), ("--debug", "Print debugging information")) if options.debug: @@ -101,7 +97,6 @@ def spike_time_gen(i): weight=0.00000005, delay=delay, dendritic_delay_fraction=float(options.dendritic_delay_fraction)) -print(stdp_model.possible_models) connections = sim.Projection(p1, p2, sim.AllToAllConnector(), stdp_model) # the connection weight from the driver neuron is very strong, to ensure the diff --git a/examples/simple_STDP_nineml.py b/examples/simple_STDP_nineml.py index 0898287f3..579b395e3 100644 --- a/examples/simple_STDP_nineml.py +++ b/examples/simple_STDP_nineml.py @@ -59,7 +59,7 @@ {"action": "store_true"}), ("--fit-curve", "Calculate the best-fit curve to the weight-delta_t measurements", {"action": "store_true"}), - ("--dendritic-delay-fraction", + ("--dendritic-delay-fraction", "What fraction of the total transmission delay is due to dendritic propagation", {"default": 1}), ("--debug", "Print debugging information")) @@ -148,7 +148,7 @@ def create_stdp_synapse(): stdp_model = MySTDP(tauLTP=20.0, tauLTD=20.0, aLTP=0.01, aLTD=0.012, - wmin=0, wmax=0.0000001, + wmax=0.0000001, wmin=0, weight=0.00000005, delay=delay, dendritic_delay_fraction=float(options.dendritic_delay_fraction)) diff --git a/examples/small_network.py b/examples/small_network.py index 6a2b2cfe5..4c3a9b379 100644 --- a/examples/small_network.py +++ b/examples/small_network.py @@ -3,7 +3,7 @@ Small network created with the Population and Projection classes -Usage: random_numbers.py [-h] [--plot-figure] [--debug DEBUG] simulator +Usage: small_network.py [-h] [--plot-figure] [--debug DEBUG] simulator positional arguments: simulator neuron, nest, brian or another backend simulator @@ -18,18 +18,18 @@ import numpy from pyNN.utility import get_simulator, init_logging, normalized_filename from pyNN.parameters import Sequence -from pyNN.random import RandomDistribution as rnd +from pyNN.random import RandomDistribution as rnd, NumpyRNG sim, options = get_simulator(("--plot-figure", "Plot the simulation results to a file.", {"action": "store_true"}), ("--debug", "Print debugging information")) if options.debug: - init_logging(None, debug=True) + init_logging(None, debug=True) # === Define parameters ======================================================== -n = 20 # Number of cells +n = 20 # Number of cells w = 0.002 # synaptic weight (µS) cell_params = { 'tau_m' : 20.0, # (ms) @@ -46,13 +46,16 @@ syn_delay = 1.0 # (ms) input_rate = 50.0 # (Hz) simtime = 1000.0 # (ms) +seed = 945645645 # === Build the network ======================================================== sim.setup(timestep=dt, max_delay=syn_delay) +rng = NumpyRNG(seed=seed) + cells = sim.Population(n, sim.IF_cond_alpha(**cell_params), - initial_values={'v': rnd('uniform', (-60.0, -50.0))}, + initial_values={'v': rnd('uniform', (-60.0, -50.0), rng)}, label="cells") number = int(2 * simtime * input_rate / 1000.0) @@ -60,7 +63,7 @@ def generate_spike_times(i): - gen = lambda: Sequence(numpy.add.accumulate(numpy.random.exponential(1000.0 / input_rate, size=number))) + gen = lambda: Sequence(numpy.add.accumulate(dt + numpy.random.exponential(1000.0 / input_rate, size=number))) if hasattr(i, "__len__"): return [gen() for j in i] else: diff --git a/examples/specific_network.py b/examples/specific_network.py index a37a6c6c3..c48162508 100644 --- a/examples/specific_network.py +++ b/examples/specific_network.py @@ -37,7 +37,7 @@ # === Build the network ======================================================== -setup(timestep=dt, max_delay=syn_delay) +setup(timestep=dt, min_delay=syn_delay, max_delay=syn_delay) cells = Population(n, IF_curr_alpha(**cell_params), initial_values={'v': 0.0}, label="cells") @@ -46,7 +46,7 @@ def generate_spike_times(i): - gen = lambda: Sequence(numpy.add.accumulate(numpy.random.exponential(1000.0 / input_rate, size=number))) + gen = lambda: Sequence(numpy.add.accumulate(dt + numpy.random.exponential(1000.0 / input_rate, size=number))) if hasattr(i, "__len__"): return [gen() for j in i] else: diff --git a/examples/stochastic_deterministic_comparison.py b/examples/stochastic_deterministic_comparison.py index d1dc20a09..cbb402977 100644 --- a/examples/stochastic_deterministic_comparison.py +++ b/examples/stochastic_deterministic_comparison.py @@ -80,7 +80,6 @@ gsyn_mean.channel_index = neo.ChannelIndex(np.array([0])) gsyn_mean.name = 'gsyn_inh_mean' data[label].analogsignals.append(gsyn_mean) - #import pdb; pdb.set_trace() def make_panel(population, label): return Panel(population.get_data().segments[0].filter(name='gsyn_inh')[0], diff --git a/examples/tools/plot_results.py b/examples/tools/plot_results.py index 9e9885d30..72ba28365 100644 --- a/examples/tools/plot_results.py +++ b/examples/tools/plot_results.py @@ -25,7 +25,7 @@ blocks = {} for simulator in 'MOCK', 'NEST', 'NEURON', 'Brian', 'MOOSE', 'Nemo': - pattern = "Results/%s_*%s.*" % (example, simulator.lower()) + pattern = "Results/%s_*%s*.*" % (example, simulator.lower()) datafiles = glob.glob(pattern) if datafiles: for datafile in datafiles: @@ -56,19 +56,21 @@ plt.ylabel("Vm (mV)") plt.savefig("Results/%s.png" % name) + print("Results/%s.png" % name) - if blocks[name].values()[0].segments[0].filter(name="gsyn_exc"): + if list(blocks[name].values())[0].segments[0].filter(name="gsyn_exc"): plt.figure() lw = 2 * len(blocks[name]) - 1 for simulator, block in blocks[name].items(): g_exc = block.segments[0].filter(name="gsyn_exc")[0] - g_inh = block.segments[0].filter(name="gsyn_inh")[0] + g_inh = block.segments[0].filter(name="gsyn_inh")[0] plt.plot(g_exc.times, g_exc[:, 0], label=simulator + "(exc)", linewidth=lw) - plt.plot(g_inh.times, g_inh[:, 0], label=simulator + "(inh)", linewidth=lw) + plt.plot(g_inh.times, g_inh[:, 0], label=simulator + "(inh)", linewidth=lw) lw -= 2 plt.legend() plt.title(name) plt.xlabel("Time (ms)") plt.ylabel("Synaptic conductance (nS)") - + plt.savefig("Results/%s_gsyn.png" % name) + print("Results/%s_gsyn.png" % name) diff --git a/examples/tools/run_all_examples.py b/examples/tools/run_all_examples.py index 542cb5b2c..1a4bd577e 100644 --- a/examples/tools/run_all_examples.py +++ b/examples/tools/run_all_examples.py @@ -2,7 +2,7 @@ import subprocess, glob, os, sys -default_simulators = ['MOCK', 'NEST', 'NEURON', 'Brian'] +default_simulators = ['MOCK', 'NEST', 'NEURON', 'Brian2'] simulator_names = sys.argv[1:] if len(simulator_names) > 0: for name in simulator_names: @@ -22,10 +22,12 @@ pass exclude = { - 'MOCK': ["nineml_neuron.py"], + 'MOCK': ["nineml_neuron.py", "nineml_brunel.py"], 'NEURON': ["nineml_neuron.py"], - 'NEST': ["nineml_neuron.py"], - 'Brian': ["nineml_neuron.py", "HH_cond_exp2.py", "HH_cond_exp.py", "simpleRandomNetwork_csa.py", "simpleRandomNetwork.py", "simple_STDP2.py", "simple_STDP.py"], + 'NEST': ["nineml_neuron.py", "nineml_brunel.py"], + 'Brian2': ["nineml_neuron.py", "nineml_brunel.py", "multiquantal_synapses.py", "random_numbers.py", + "gif_neuron.py", "stochastic_tsodyksmarkram.py", "stochastic_deterministic_comparison.py", + "stochastic_synapses.py", "varying_poisson.py"] } extra_args = { @@ -33,6 +35,7 @@ "VAbenchmarks2.py": "CUBA", "VAbenchmarks2-csa.py": "CUBA", "VAbenchmarks3.py": "CUBA", + "nineml_brunel.py": "SR" } if not os.path.exists("Results"): @@ -44,7 +47,7 @@ for script in glob.glob("../*.py"): script_name = os.path.basename(script) if script_name not in exclude[simulator]: - cmd = "python %s %s" % (script, simulator.lower()) + cmd = "%s %s %s" % (sys.executable, script, simulator.lower()) if script_name in extra_args: cmd += " " + extra_args[script_name] print(cmd, end='') @@ -58,7 +61,7 @@ print("\n\n\n================== Plotting results =================\n") for script in glob.glob("../*.py"): - cmd = "python plot_results.py %s" % os.path.basename(script)[:-3] + cmd = "%s plot_results.py %s" % (sys.executable, os.path.basename(script)[:-3]) print(cmd) p = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE, close_fds=True) p.wait() diff --git a/examples/update_spike_source_array.py b/examples/update_spike_source_array.py new file mode 100644 index 000000000..96ed3c8a7 --- /dev/null +++ b/examples/update_spike_source_array.py @@ -0,0 +1,110 @@ +""" +A demonstration of the use of callbacks to update the spike times in a SpikeSourceArray. + +Usage: update_spike_source_array.py [-h] [--plot-figure] simulator + +positional arguments: + simulator neuron, nest, brian or another backend simulator + +optional arguments: + -h, --help show this help message and exit + --plot-figure Plot the simulation results to a file. +""" + +import numpy as np +from pyNN.utility import get_simulator, normalized_filename, ProgressBar +from pyNN.utility.plotting import Figure, Panel +from pyNN.parameters import Sequence + +sim, options = get_simulator(("--plot-figure", "Plot the simulation results to a file.", + {"action": "store_true"})) + +rate_increment = 20 +interval = 200 + + +class SetRate(object): + """ + A callback which changes the firing rate of a population of spike + sources at a fixed interval. + """ + + def __init__(self, population, rate_generator, update_interval=20.0): + assert isinstance(population.celltype, sim.SpikeSourceArray) + self.population = population + self.update_interval = update_interval + self.rate_generator = rate_generator + + def __call__(self, t): + try: + rate = next(rate_generator) + if rate > 0: + isi = 1000.0/rate + times = t + np.arange(0, self.update_interval, isi) + # here each neuron fires with the same isi, + # but there is a phase offset between neurons + spike_times = [ + Sequence(times + phase * isi) + for phase in self.population.annotations["phase"] + ] + else: + spike_times = [] + self.population.set(spike_times=spike_times) + except StopIteration: + pass + return t + self.update_interval + + +class MyProgressBar(object): + """ + A callback which draws a progress bar in the terminal. + """ + + def __init__(self, interval, t_stop): + self.interval = interval + self.t_stop = t_stop + self.pb = ProgressBar(width=int(t_stop / interval), char=".") + + def __call__(self, t): + self.pb(t / self.t_stop) + return t + self.interval + + +sim.setup() + + +# === Create a population of poisson processes =============================== + +p = sim.Population(50, sim.SpikeSourceArray()) +p.annotate(phase=np.random.uniform(0, 1, size=p.size)) +p.record('spikes') + + +# === Run the simulation, with two callback functions ======================== + +rate_generator = iter(range(0, 100, rate_increment)) +sim.run(1000, callbacks=[MyProgressBar(10.0, 1000.0), + SetRate(p, rate_generator, interval)]) + + +# === Retrieve recorded data, and count the spikes in each interval ========== + +data = p.get_data().segments[0] + +all_spikes = np.hstack([st.magnitude for st in data.spiketrains]) +spike_counts = [((all_spikes >= x) & (all_spikes < x + interval)).sum() + for x in range(0, 1000, interval)] +expected_spike_counts = [p.size * rate * interval / 1000.0 + for rate in range(0, 100, rate_increment)] + +print("\nActual spike counts: {}".format(spike_counts)) +print("Expected mean spike counts: {}".format(expected_spike_counts)) + +if options.plot_figure: + Figure( + Panel(data.spiketrains, xlabel="Time (ms)", xticks=True, markersize=0.5), + title="Incrementally updated SpikeSourceArrays", + annotations="Simulated with %s" % options.simulator.upper() + ).save(normalized_filename("Results", "update_spike_source_array", "png", options.simulator)) + +sim.end() diff --git a/pyNN/__init__.py b/pyNN/__init__.py index f4c884d6f..b1681459c 100644 --- a/pyNN/__init__.py +++ b/pyNN/__init__.py @@ -1,9 +1,9 @@ """ PyNN (pronounced 'pine') is a Python package for simulator-independent -specification of neuronal network models. +specification of neuronal network models. In other words, you can write the code for a model once, using the PyNN API, and -then run it without modification on any simulator that PyNN supports. +then run it without modification on any simulator that PyNN supports. To use PyNN, import the particular simulator module you wish to use, e.g. import pyNN.neuron as sim @@ -23,7 +23,7 @@ rank() num_processes() list_standard_models() - + Functions for creating, connecting, modifying and recording from neurons (low-level interface): create() @@ -31,7 +31,7 @@ set() record() initialize() - + Classes for creating, connecting, modifying and recording from neurons (high-level interface): Population @@ -65,11 +65,11 @@ random space -:copyright: Copyright 2006-2016 by the PyNN team, see AUTHORS. +:copyright: Copyright 2006-2020 by the PyNN team, see AUTHORS. :license: CeCILL, see LICENSE for details. """ -__version__ = '0.9.2' -__all__ = ["common", "random", "nest", "neuron", "brian", +__version__ = '0.9.6' +__all__ = ["common", "random", "nest", "neuron", "brian", "brian2", "recording", "errors", "space", "descriptions", - "standardmodels", "parameters", "core"] + "standardmodels", "parameters", "core", "serialization"] diff --git a/pyNN/brian/__init__.py b/pyNN/brian/__init__.py index 016b1e7b9..f79008054 100644 --- a/pyNN/brian/__init__.py +++ b/pyNN/brian/__init__.py @@ -1,7 +1,7 @@ """ Brian implementation of the PyNN API. -:copyright: Copyright 2006-2016 by the PyNN team, see AUTHORS. +:copyright: Copyright 2006-2020 by the PyNN team, see AUTHORS. :license: CeCILL, see LICENSE for details. """ @@ -34,7 +34,7 @@ def setup(timestep=DEFAULT_TIMESTEP, min_delay=DEFAULT_MIN_DELAY, extra_params contains any keyword arguments that are required by a given simulator but not by others. """ - + max_delay = extra_params.get('max_delay', DEFAULT_MAX_DELAY) common.setup(timestep, min_delay, **extra_params) simulator.state.clear() diff --git a/pyNN/brian/cells.py b/pyNN/brian/cells.py index cdf3af524..e1bab3780 100644 --- a/pyNN/brian/cells.py +++ b/pyNN/brian/cells.py @@ -1,7 +1,7 @@ """ Definition of cell classes for the brian module. -:copyright: Copyright 2006-2016 by the PyNN team, see AUTHORS. +:copyright: Copyright 2006-2020 by the PyNN team, see AUTHORS. :license: CeCILL, see LICENSE for details. """ @@ -56,6 +56,8 @@ def __init__(self, n, equations, threshold, reset=brian.NoReset(), max_refractory = parameters["tau_refrac"].max() * ms else: max_refractory = None + if simulator.state.max_delay == "auto": + simulator.state.max_delay = 10.0 brian.NeuronGroup.__init__(self, n, model=equations, threshold=threshold, @@ -121,7 +123,7 @@ def __call__(self, P, spikes): class AdaptiveNeuronGroup(BaseNeuronGroup): - + def __init__(self, n, equations, **parameters): threshold = brian.SimpleFunThreshold(self.check_threshold) period = simplify(parameters['tau_refrac']) @@ -199,7 +201,7 @@ def __call__(self, P, spikes): class IzhikevichNeuronGroup(BaseNeuronGroup): - + def __init__(self, n, equations, **parameters): threshold = brian.SimpleFunThreshold(self.check_threshold) reset = brian.SimpleCustomRefractoriness( @@ -219,10 +221,10 @@ def __init__(self, n, equations, **parameters): def check_threshold(self, v): return v >= 30 * mV - + class PoissonGroup(brian.PoissonGroup): - + def __init__(self, n, equations, **parameters): for name, value in parameters.items(): setattr(self, name, value) @@ -247,7 +249,7 @@ def _set_rate(self, value): class SpikeGeneratorGroup(brian.SpikeGeneratorGroup): - + def __init__(self, n, equations, spike_times=None): """ Note that `equations` is not used: it is simply for compatibility with diff --git a/pyNN/brian/populations.py b/pyNN/brian/populations.py index 1cf2b2b62..161bd1f72 100644 --- a/pyNN/brian/populations.py +++ b/pyNN/brian/populations.py @@ -35,7 +35,7 @@ def _set_parameters(self, parameter_space): parameter_space.evaluate(simplify=False) for name, value in parameter_space.items(): if name == "spike_times": - self.brian_group._set_spike_times(value, self.mask) + self.brian_group._set_spike_times(value, self.mask) else: getattr(self.brian_group, name)[self.mask] = value @@ -44,7 +44,7 @@ def _set_initial_value_array(self, variable, initial_values): def _get_view(self, selector, label=None): return PopulationView(self, selector, label) - + @property def brian_group(self): return self.parent.brian_group @@ -62,14 +62,14 @@ def _create_cells(self): self.all_cells = numpy.array([simulator.ID(id) for id in id_range], dtype=simulator.ID) self._mask_local = numpy.ones((self.size,), bool) # all cells are local. This doesn't seem very efficient. - + if isinstance(self.celltype, StandardCellType): parameter_space = self.celltype.native_parameters else: parameter_space = self.celltype.parameter_space parameter_space.shape = (self.size,) parameter_space.evaluate(simplify=False) - + self.brian_group = self.celltype.brian_model(self.size, self.celltype.eqs, **parameter_space) @@ -77,7 +77,7 @@ def _create_cells(self): id.parent = self simulator.state.id_counter += self.size simulator.state.network.add(self.brian_group) - + def _set_initial_value_array(self, variable, value): D = self.celltype.state_variable_translations[variable] pname = D['translated_name'] diff --git a/pyNN/brian/projections.py b/pyNN/brian/projections.py index 5c0b68d83..ebc2df5a8 100644 --- a/pyNN/brian/projections.py +++ b/pyNN/brian/projections.py @@ -11,6 +11,7 @@ from pyNN import common from pyNN.standardmodels.synapses import TsodyksMarkramSynapse from pyNN.core import is_listlike +from .populations import PopulationView from pyNN.parameters import ParameterSpace from pyNN.space import Space from . import simulator @@ -139,7 +140,7 @@ def _partition(self, indices): else: partitions = [indices] return partitions - + def _localize_index(self, index): """determine which group the postsynaptic index belongs to """ if isinstance(self.post, common.Assembly): @@ -192,7 +193,7 @@ def _set_attributes(self, connection_parameters): value = value.T filtered_value = value[syn_obj.postsynaptic, syn_obj.presynaptic] setattr(syn_obj, name, filtered_value) - + def _get_attributes_as_arrays(self, attribute_names, multiple_synapses='sum'): if isinstance(self.post, common.Assembly) or isinstance(self.pre, common.Assembly): raise NotImplementedError @@ -215,8 +216,12 @@ def _get_attributes_as_list(self, attribute_names): for name in attribute_names: if name == "presynaptic_index": value = self._brian_synapses[0][0].presynaptic + if isinstance(self.pre, PopulationView): + value = self.pre.id_to_index(value) elif name == "postsynaptic_index": value = self._brian_synapses[0][0].postsynaptic + if isinstance(self.post, PopulationView): + value = self.post.id_to_index(value) else: data_obj = getattr(self._brian_synapses[0][0], name).data if hasattr(data_obj, "tolist"): diff --git a/pyNN/brian/recording.py b/pyNN/brian/recording.py index 56c6c89ca..899b0f217 100644 --- a/pyNN/brian/recording.py +++ b/pyNN/brian/recording.py @@ -1,6 +1,6 @@ """ -:copyright: Copyright 2006-2016 by the PyNN team, see AUTHORS. +:copyright: Copyright 2006-2020 by the PyNN team, see AUTHORS. :license: CeCILL, see LICENSE for details. """ @@ -8,9 +8,11 @@ import numpy import quantities as pq import brian +from pyNN.core import is_listlike from pyNN import recording from . import simulator + mV = brian.mV ms = brian.ms uS = brian.uS @@ -72,8 +74,15 @@ def _clear_simulator(self): device.reinit() def _get_spiketimes(self, id): - i = id - self.population.first_id - return self._devices['spikes'].spiketimes[i] / ms + if is_listlike(id): + all_spiketimes = {} + for cell_id in id: + i = cell_id - self.population.first_id + all_spiketimes[cell_id] = self._devices['spikes'].spiketimes[i] / ms + return all_spiketimes + else: + i = id - self.population.first_id + return self._devices['spikes'].spiketimes[i] / ms def _get_all_signals(self, variable, ids, clear=False): # need to filter according to ids @@ -94,6 +103,7 @@ def _local_count(self, variable, filter_ids=None): filtered_ids = self.filter_recorded(variable, filter_ids) padding = self.population.first_id indices = numpy.fromiter(filtered_ids, dtype=int) - padding + for i, id in zip(indices, filtered_ids): N[id] = len(self._devices['spikes'].spiketimes[i]) return N diff --git a/pyNN/brian/simulator.py b/pyNN/brian/simulator.py index 598043901..80aa41037 100644 --- a/pyNN/brian/simulator.py +++ b/pyNN/brian/simulator.py @@ -15,7 +15,7 @@ All other functions and classes are private, and should not be used by other modules. -:copyright: Copyright 2006-2016 by the PyNN team, see AUTHORS. +:copyright: Copyright 2006-2020 by the PyNN team, see AUTHORS. :license: CeCILL, see LICENSE for details. """ @@ -40,7 +40,7 @@ def __init__(self, n): class State(common.control.BaseState): - + def __init__(self): common.control.BaseState.__init__(self) self.mpi_rank = 0 @@ -49,14 +49,14 @@ def __init__(self): self._min_delay = 'auto' self.current_sources = [] self.clear() - + def run(self, simtime): self.running = True self.network.run(simtime * ms) - + def run_until(self, tstop): self.run(tstop - self.t) - + def clear(self): self.recorders = set([]) self.id_counter = 0 @@ -68,7 +68,7 @@ def clear(self): self.network = brian.Network() self.network.clock = brian.Clock() self.reset() - + def reset(self): """Reset the state of the current network to time t = 0.""" self.network.reinit() @@ -79,7 +79,7 @@ def reset(self): if hasattr(group, "initialize"): logger.debug("Re-initalizing %s" % group) group.initialize() - + def _get_dt(self): if self.network.clock is None: raise Exception("Simulation timestep not yet set. Need to call setup()") diff --git a/pyNN/brian/standardmodels/cells.py b/pyNN/brian/standardmodels/cells.py index 0168b7111..672b0fe1a 100644 --- a/pyNN/brian/standardmodels/cells.py +++ b/pyNN/brian/standardmodels/cells.py @@ -2,7 +2,7 @@ """ Standard cells for the Brian module. -:copyright: Copyright 2006-2016 by the PyNN team, see AUTHORS. +:copyright: Copyright 2006-2020 by the PyNN team, see AUTHORS. :license: CeCILL, see LICENSE for details. """ @@ -281,6 +281,13 @@ class HH_cond_exp(cells.HH_cond_exp): ''') + conductance_based_exponential_synapses post_synaptic_variables = {'excitatory': 'ge', 'inhibitory': 'gi'} state_variable_translations = conductance_based_variable_translations + state_variable_translations.update( + build_translations( + ('m', 'm'), + ('h', 'h'), + ('n', 'n') + ) + ) brian_model = BiophysicalNeuronGroup @@ -309,7 +316,7 @@ class Izhikevich(cells.Izhikevich): ('v', 'v', mV), ('u', 'u', mV / ms)) brian_model = IzhikevichNeuronGroup - + class SpikeSourcePoisson(cells.SpikeSourcePoisson): __doc__ = cells.SpikeSourcePoisson.__doc__ @@ -321,7 +328,7 @@ class SpikeSourcePoisson(cells.SpikeSourcePoisson): ) eqs = None brian_model = PoissonGroup - + class SpikeSourceArray(cells.SpikeSourceArray): __doc__ = cells.SpikeSourceArray.__doc__ @@ -331,4 +338,3 @@ class SpikeSourceArray(cells.SpikeSourceArray): ) eqs = None brian_model = SpikeGeneratorGroup - diff --git a/pyNN/brian/standardmodels/electrodes.py b/pyNN/brian/standardmodels/electrodes.py index 51614c1d4..6ebb3d38b 100644 --- a/pyNN/brian/standardmodels/electrodes.py +++ b/pyNN/brian/standardmodels/electrodes.py @@ -7,7 +7,7 @@ ACSource -- a sine modulated current. NoisyCurrentSource -- a Gaussian whitish noise current. -:copyright: Copyright 2006-2016 by the PyNN team, see AUTHORS. +:copyright: Copyright 2006-2020 by the PyNN team, see AUTHORS. :license: CeCILL, see LICENSE for details. """ @@ -55,8 +55,7 @@ def _check_step_times(self, times, amplitudes, resolution): if not all(dt_times>0.0): raise ValueError("Step current timestamps should be monotonically increasing.") # map timestamps to actual simulation time instants based on specified dt - for ind in range(len(times)): - times[ind] = self._round_timestamp(times[ind], resolution) + times = self._round_timestamp(times, resolution) # remove duplicate timestamps, and corresponding amplitudes, after mapping step_times = [] step_amplitudes = [] @@ -96,30 +95,37 @@ def inject_into(self, cell_list): if not cell.celltype.injectable: raise TypeError("Can't inject current into a spike source.") self.cell_list.extend(cell_list) + self.prev_amp_dict = {} for cell in cell_list: - self.indices.extend([cell.parent.id_to_index(cell)]) + cell_idx = cell.parent.id_to_index(cell) + self.indices.extend([cell_idx]) + self.prev_amp_dict[cell_idx] = 0.0 def _update_current(self): # check if current timestamp is within dt/2 of target time; Brian uses seconds as unit of time if self.running and abs(simulator.state.t - self.times[self.i] * 1e3) < (simulator.state.dt/2.0): for cell, idx in zip(self.cell_list, self.indices): if not self._is_playable: - cell.parent.brian_group.i_inj[idx] = self.amplitudes[self.i] * ampere + cell.parent.brian_group.i_inj[idx] += self.amplitudes[self.i] - self.prev_amp_dict[idx] #* ampere + self.prev_amp_dict[idx] = self.amplitudes[self.i] else: - cell.parent.brian_group.i_inj[idx] = self._compute(self.times[self.i]) * ampere + amp_val = self._compute(self.times[self.i]) + self.amplitudes = numpy.append(self.amplitudes, amp_val) + cell.parent.brian_group.i_inj[idx] += amp_val - self.prev_amp_dict[idx] + self.prev_amp_dict[idx] = amp_val #* ampere self.i += 1 if self.i >= len(self.times): self.running = False if self._is_playable: # ensure that currents are set to 0 after t_stop for cell, idx in zip(self.cell_list, self.indices): - cell.parent.brian_group.i_inj[idx] = 0 + cell.parent.brian_group.i_inj[idx] -= self.prev_amp_dict[idx] - def record(self): + def _record_old(self): self.i_state_monitor = brian.StateMonitor(self.cell_list[0].parent.brian_group[self.indices[0]], 'i_inj', record=0, when='start') simulator.state.network.add(self.i_state_monitor) - def _get_data(self): + def _get_data_old(self): # code based on brian/recording.py:_get_all_signals() # because we use `when='start'`, we need to add the # value at the end of the final time step. @@ -130,6 +136,32 @@ def _get_data(self): i_all_values = numpy.append(device._values, current_i_value) return (t_all_values / ms, i_all_values / nA) + def record(self): + pass + + def _get_data(self): + def find_nearest(array, value): + array = numpy.asarray(array) + return (numpy.abs(array - value)).argmin() + + len_t = int(round((simulator.state.t * 1e-3) / (simulator.state.dt * 1e-3))) + 1 + times = numpy.array([(i * simulator.state.dt * 1e-3) for i in range(len_t)]) + amps = numpy.array([0.0] * len_t) + + for idx, [t1, t2] in enumerate(zip(self.times, self.times[1:])): + if t2 < simulator.state.t * 1e-3: + idx1 = find_nearest(times, t1) + idx2 = find_nearest(times, t2) + amps[idx1:idx2] = [self.amplitudes[idx]] * len(amps[idx1:idx2]) + if idx == len(self.times)-2: + if not self._is_playable and not self._is_computed: + amps[idx2:] = [self.amplitudes[idx+1]] * len(amps[idx2:]) + else: + if t1 < simulator.state.t * 1e-3: + idx1 = find_nearest(times, t1) + amps[idx1:] = [self.amplitudes[idx]] * len(amps[idx1:]) + break + return (times / ms, amps / nA) class StepCurrentSource(BrianCurrentSource, electrodes.StepCurrentSource): __doc__ = electrodes.StepCurrentSource.__doc__ @@ -162,8 +194,9 @@ def __init__(self, **parameters): def _generate(self): # Note: Brian uses seconds as unit of time - temp_num_t = len(numpy.arange(self.start, self.stop + simulator.state.dt * 1e-3, simulator.state.dt * 1e-3)) - self.times = numpy.array([self.start+(i*simulator.state.dt*1e-3) for i in range(temp_num_t)]) + temp_num_t = int(round(((self.stop + simulator.state.dt * 1e-3) - self.start) / (simulator.state.dt * 1e-3))) + self.times = self.start + (simulator.state.dt * 1e-3) * numpy.arange(temp_num_t) + self.amplitudes = numpy.zeros(0) def _compute(self, time): # Note: Brian uses seconds as unit of time; frequency is specified in Hz; thus no conversion required @@ -218,9 +251,10 @@ def __init__(self, **parameters): self._generate() def _generate(self): - temp_num_t = len(numpy.arange(self.start, self.stop, max(self.dt, simulator.state.dt * 1e-3))) - self.times = numpy.array([self.start+(i*max(self.dt, simulator.state.dt * 1e-3)) for i in range(temp_num_t)]) + temp_num_t = int(round((self.stop - self.start) / max(self.dt, simulator.state.dt * 1e-3))) + self.times = self.start + max(self.dt, simulator.state.dt * 1e-3) * numpy.arange(temp_num_t) self.times = numpy.append(self.times, self.stop) + self.amplitudes = numpy.zeros(0) def _compute(self, time): return self.mean + self.stdev * numpy.random.randn() diff --git a/pyNN/brian/standardmodels/synapses.py b/pyNN/brian/standardmodels/synapses.py index 60324110a..6515629ae 100644 --- a/pyNN/brian/standardmodels/synapses.py +++ b/pyNN/brian/standardmodels/synapses.py @@ -2,7 +2,7 @@ """ Standard cells for the Brian module. -:copyright: Copyright 2006-2016 by the PyNN team, see AUTHORS. +:copyright: Copyright 2006-2020 by the PyNN team, see AUTHORS. :license: CeCILL, see LICENSE for details. """ @@ -22,7 +22,6 @@ class StaticSynapse(synapses.StaticSynapse): pre = "%(syn_var)s += weight" post = None initial_conditions = {} - def __init__(self, **parameters): super(StaticSynapse, self).__init__(**parameters) # we have to define the translations on a per-instance basis because @@ -36,7 +35,7 @@ def _get_minimum_delay(self): if d == 'auto': d = state.dt return d - + def _set_target_type(self, weight_units): for key, value in self.translations.items(): for direction in ("forward_transform", "reverse_transform"): @@ -77,7 +76,7 @@ class TsodyksMarkramSynapse(synapses.TsodyksMarkramSynapse): initial_conditions = {"u": 0.0, "x": 1.0, "y": 0.0, "z": 0.0} tau_syn_var = {"excitatory": "tau_syn_E", "inhibitory": "tau_syn_I"} - + def _get_minimum_delay(self): d = state.min_delay if d == 'auto': @@ -145,7 +144,7 @@ def _set_target_type(self, weight_units): for key, value in self.translations.items(): for direction in ("forward_transform", "reverse_transform"): self.translations[key][direction] = value[direction].replace("weight_units", str(float(weight_units))) - + class AdditiveWeightDependence(synapses.AdditiveWeightDependence): __doc__ = synapses.AdditiveWeightDependence.__doc__ diff --git a/pyNN/brian2/__init__.py b/pyNN/brian2/__init__.py new file mode 100644 index 000000000..e50da33b6 --- /dev/null +++ b/pyNN/brian2/__init__.py @@ -0,0 +1,79 @@ +""" +Brian2 implementation of the PyNN API. + +:copyright: Copyright 2006-2016 by the PyNN team, see AUTHORS. +:license: CeCILL, see LICENSE for details. +""" + +import logging +import brian2 +from pyNN import common, space +from pyNN.common.control import DEFAULT_MAX_DELAY, DEFAULT_TIMESTEP, DEFAULT_MIN_DELAY +from pyNN.connectors import * +from pyNN.brian2 import simulator +from pyNN.brian2.standardmodels.cells import * +from pyNN.brian2.standardmodels.synapses import * +from pyNN.brian2.standardmodels.electrodes import * +from pyNN.brian2.populations import Population, PopulationView, Assembly +from pyNN.brian2.projections import Projection +from pyNN.recording import get_io + +logger = logging.getLogger("PyNN") + + +def list_standard_models(): + """Return a list of all the StandardCellType classes available for this simulator.""" + return [obj.__name__ for obj in globals().values() if isinstance(obj, type) and issubclass(obj, StandardCellType)] + + +def setup(timestep=DEFAULT_TIMESTEP, min_delay=DEFAULT_MIN_DELAY, + **extra_params): + """ + Should be called at the very beginning of a script. + extra_params contains any keyword arguments that are required by a given + simulator but not by others. + """ + + max_delay = extra_params.get('max_delay', DEFAULT_MAX_DELAY) + common.setup(timestep, min_delay, **extra_params) + simulator.state.clear() + simulator.state.dt = timestep # move to common.setup? + simulator.state.min_delay = min_delay + simulator.state.max_delay = max_delay + simulator.state.mpi_rank = 0 + simulator.state.num_processes = 1 + + simulator.state.network.add( + NetworkOperation(update_currents, when="start", clock=simulator.state.network.clock) + ) + return rank() + + +def end(compatible_output=True): + """Do any necessary cleaning up before exiting.""" + for (population, variables, filename) in simulator.state.write_on_end: + io = get_io(filename) + population.write_data(io, variables) + simulator.state.write_on_end = [] + # should have common implementation of end() + +run, run_until = common.build_run(simulator) +run_for = run + +reset = common.build_reset(simulator) + +initialize = common.initialize + +get_current_time, get_time_step, get_min_delay, get_max_delay, \ + num_processes, rank = common.build_state_queries(simulator) + +create = common.build_create(Population) + +connect = common.build_connect(Projection, FixedProbabilityConnector, StaticSynapse) + + +record = common.build_record(simulator) + +record_v = lambda source, filename: record(['v'], source, filename) + +record_gsyn = lambda source, filename: record(['gsyn_exc', 'gsyn_inh'], source, filename) diff --git a/pyNN/brian2/cells.py b/pyNN/brian2/cells.py new file mode 100644 index 000000000..049f1ae03 --- /dev/null +++ b/pyNN/brian2/cells.py @@ -0,0 +1,371 @@ +""" +Definition of cell classes for the brian2 module. + +:copyright: Copyright 2006-2016 by the PyNN team, see AUTHORS. +:license: CeCILL, see LICENSE for details. + +""" + + +import numpy +import brian2 +from pyNN.parameters import Sequence, simplify +from pyNN.core import is_listlike +from pyNN import errors +from pyNN.brian2 import simulator + +mV = brian2.mV +ms = brian2.ms +nA = brian2.nA +uS = brian2.uS +Hz = brian2.Hz +nF = brian2.nF +ampere = brian2.amp +second = brian2.second + + +def _new_property(obj_hierarchy, attr_name, units): + """ + Return a new property, mapping attr_name to obj_hierarchy.attr_name. + + For example, suppose that an object of class A has an attribute b which + itself has an attribute c which itself has an attribute d. Then placing + e = _new_property('b.c', 'd') + in the class definition of A makes A.e an alias for A.b.c.d + """ + def set(self, value): + if obj_hierarchy: + obj = reduce(getattr, [self] + obj_hierarchy.split('.')) + else: + obj = self + setattr(obj, attr_name, value * units) + + def get(self): + if obj_hierarchy: + obj = reduce(getattr, [self] + obj_hierarchy.split('.')) ### ( getattr, ...) + else: + obj = self + return getattr(obj, attr_name) / units + return property(fset=set, fget=get) + + +class BaseNeuronGroup(brian2.NeuronGroup): + + def __init__(self, n, equations, threshold, reset=-20 * mV, + refractory=0 * ms, method=None, **parameters): + if "tau_refrac" in parameters: + if parameters["tau_refrac"].min() != parameters["tau_refrac"].max(): + raise Exception("Non-homogeneous refractory period not yet supported") + refractory = parameters["tau_refrac"].min() + if method is None: + method = ('exact', 'euler', 'heun') # Brian 2 default + brian2.NeuronGroup.__init__(self, n, + model=equations, + threshold=threshold, + reset=reset, + refractory=refractory, + method=method, + clock=simulator.state.network.clock) + for name, value in parameters.items(): + + if not hasattr(self, name): + self.add_attribute(name) + if name == "tau_refrac": + self.tau_refrac = value + else: + setattr(self, name, value) + #self._S0 = self._S[:, 0] # store parameter values in case of reset. + # TODO: update this when parameters are modified + # TODO: Brian2 does not have _S0a + self.add_attribute('initial_values') + self.initial_values = {} + + def initialize(self): + for variable, values in self.initial_values.items(): + setattr(self, variable, values) + + +class ThresholdNeuronGroup(BaseNeuronGroup): + + def __init__(self, n, equations, **parameters): + threshold = 'v > v_thresh' + reset = 'v = v_reset' + equations += '''v_thresh : volt (constant) + v_reset : volt (constant)''' + BaseNeuronGroup.__init__(self, n, equations, + threshold, reset=reset, **parameters) + + +class BiophysicalNeuronGroup(BaseNeuronGroup): + + def __init__(self, n, equations, **parameters): + threshold = 'v > -40*mV' + refractory = False + reset = None + BaseNeuronGroup.__init__(self, n, equations, + threshold=threshold, reset=reset, refractory=refractory, + **parameters) + # implicit=True, compile=False, + + +class AdaptiveReset(object): + + def __init__(self, Vr=-70.7 * mV, b=0.0805 * nA): + self.Vr = Vr + self.b = b + + def __call__(self, P, spikes): + P.v[spikes] = self.Vr[spikes] + P.w[spikes] += self.b[spikes] + + +class AdaptiveNeuronGroup(BaseNeuronGroup): + + def __init__(self, n, equations, **parameters): + #threshold = 'v >= {}*mV'.format(parameters["v_thresh"][0]*1000) + thresh = parameters["v_thresh"][0] + Vcut = thresh + parameters["delta_T"][0] * 5 + threshold = 'v > {}*mV'.format(Vcut*1000) + self._resetvalue = parameters.pop('v_reset')[0] + self._bvalue = parameters.pop('b')[0] + #period = simplify(parameters['tau_refrac'])*1000 ##### problem here with the refractory + self._refracvalue = parameters.pop('tau_refrac')[0] + reset = 'v = {}*mV; w+={}* amp'.format(self._resetvalue*10**3 ,self._bvalue) + #refractory=None + refractory= self._refracvalue + #refractory=period + #parameters['tau_refrac']=parameters['tau_refrac']/ms + + + #refractory = 0*ms + BaseNeuronGroup.__init__(self, n, equations, + threshold=threshold, reset=reset, refractory=refractory, + method="rk2", **parameters) + + @property + def v_reset (self): + return self._resetvalue + + @property + def b (self): + return self._bvalue + + @property + def tau_refrac (self): + return self._refractory + + @tau_refrac.setter + def tau_refrac(self, tau_refrac_value): + #self._refracvalue = tau_refrac_value * ms + #brian2.NeuronGroup.__setattr__(self, 'tau_refrac', tau_refrac_value) + self._refractory = tau_refrac_value + + @v_reset.setter + def v_reset (self, resetvalue): + #self._resetvalue = resetvalue * mV + self.event_codes['spike']= 'v = {}*mV'.format(resetvalue) + + +class AdaptiveReset2(object): + def __init__(self, v_reset, q_r, q_s): + self.v_reset = v_reset + self.q_r = q_r + self.q_s = q_s + + def __call__(self, P, spikes): + P.v[spikes] = self.v_reset[spikes] + P.g_r[spikes] += self.q_r[spikes] + P.g_s[spikes] += self.q_s[spikes] + + +class AdaptiveNeuronGroup2(BaseNeuronGroup): + + def __init__(self, n, equations, **parameters): + threshold = 'v >= {}*mV'.format(parameters["v_thresh"][0]*1000) + self._resetvalue=parameters.pop('v_reset')[0] + self._q_rvalue=parameters.pop('q_r')[0] * 10**9 + self._q_svalue=parameters.pop('q_s')[0]* 10**9 + self._refracvalue=parameters.pop('tau_refrac')[0] + reset = 'v = {}*mV; g_r+= {}*nS; g_s+={}*nS'.format(self._resetvalue*1000, self._q_rvalue, self._q_svalue) + refractory=self._refracvalue + ''' + threshold = brian2.SimpleFunThreshold(self.check_threshold) + period = simplify(parameters['tau_refrac']) + assert not hasattr(period, "__len__"), "Brian2 does not support heterogenerous refractory periods with CustomRefractoriness" + reset = brian2.SimpleCustomRefractoriness( + AdaptiveReset2(parameters.pop('v_reset'), + parameters.pop('q_r'), + parameters.pop('q_s')), + period=period * second) + refractory = None + ''' + BaseNeuronGroup.__init__(self, n, equations, + threshold, reset=reset, refractory=refractory, + method="rk2", **parameters) + + @property + def v_reset (self): + return self._resetvalue + + @property + def q_r (self): + return self._q_rvalue + + @property + def q_s (self): + return self._q_svalue + + @property + def tau_refrac (self): + return self._refractory + + @tau_refrac.setter + def tau_refrac(self, tau_refrac_value): + #self._refracvalue = tau_refrac_value * ms + #brian2.NeuronGroup.__setattr__(self, 'tau_refrac', tau_refrac_value) + self._refractory = tau_refrac_value + + @v_reset.setter + def v_reset (self, resetvalue): + #self._resetvalue = resetvalue * mV + self.event_codes['spike'] = 'v = {}*mV'.format(resetvalue) + + ''' + tau_refrac = _new_property('', '_refractory_array', ms) + v_reset = _new_property('_resetfun.resetfun', 'v_reset', mV) + q_r = _new_property('_resetfun.resetfun', 'q_r', nA) + q_s = _new_property('_resetfun.resetfun', 'q_s', nA) + + def check_threshold(self, v): + return v >= self.v_thresh + ''' + +# The below can be replaced by +# reset = '''v = v_reset +# u += d''' + +class IzhikevichReset(object): + + def __init__(self, Vr=-65 * mV, d=0.2 * mV / ms): + self.Vr = Vr + self.d = d + + def __call__(self, P, spikes): + P.v[spikes] = self.Vr[spikes] + P.u[spikes] += self.d[spikes] + + +class IzhikevichNeuronGroup(BaseNeuronGroup): + + def __init__(self, n, equations, **parameters): + #threshold = brian2.SimpleFunThreshold(self.check_threshold) + #threshold = 'v >= {}*mV'.format(parameters["v_thresh"][0]*1000) + threshold='v >= 30*mV' + self._resetvalue=parameters.pop('v_reset')[0] + self._dvalue=parameters.pop('d')[0] + reset = 'v = {}*mV; u+={}*mV/ms'.format(self._resetvalue*1000, self._dvalue) + ''' + reset = brian2.SimpleCustomRefractoriness( + IzhikevichReset(parameters['v_reset'], + parameters['d']), + period=0 * ms) + ''' + refractory = 0 * ms + BaseNeuronGroup.__init__(self, n, equations, + threshold=threshold, reset=reset, refractory=refractory, + **parameters) + #self._variable_refractory_time = True + #self._refractory_variable = None + #self._S0 = self._S[:, 0] + + #v_reset = _new_property('_resetfun.resetfun', 'Vr', mV) + #b = _new_property('_resetfun.resetfun', 'b', nA) + + @property + def v_reset (self): + return self._resetvalue + + @property + def d (self): + return self._dvalue + + @v_reset.setter + def v_reset (self, resetvalue): + #self._resetvalue = resetvalue * mV + self.event_codes['spike']= 'v = {}*mV'.format(resetvalue) + + +class PoissonGroup(brian2.PoissonGroup): + + def __init__(self, n, equations, **parameters): + self.start_time = simplify(parameters["start_time"]) + self.firing_rate = parameters["firing_rate"] + self.duration = simplify(parameters["duration"]) + + brian2.PoissonGroup.__init__(self, n, + rates=self.firing_rate, + clock=simulator.state.network.clock) + if is_listlike(self.start_time): + self.variables.add_array('start_time', size=n, dimensions=second.dim) + else: + self.variables.add_constant('start_time', value=float(self.start_time), dimensions=second.dim) + if is_listlike(self.duration) or is_listlike(self.start_time): + self.variables.add_array('end_time', size=n, dimensions=second.dim) + self.end_time = self.start_time + self.duration + else: + self.variables.add_constant('end_time', value=float(self.start_time + self.duration), dimensions=second.dim) + self.events = {'spike': '(t >= start_time) and (t <= end_time) and (rand() < rates * dt)'} + + def initialize(self): + pass + + +class SpikeGeneratorGroup(brian2.SpikeGeneratorGroup): + + def __init__(self, n, equations, spike_time_sequences=None): + """ + Note that `equations` is not used: it is simply for compatibility with + other NeuronGroup subclasses. + """ + assert spike_time_sequences.size == n + self._check_spike_times(spike_time_sequences) + indices, times = self._convert_sequences_to_arrays(spike_time_sequences) + brian2.SpikeGeneratorGroup.__init__(self, n, indices=indices, times=times) + + def _convert_sequences_to_arrays(self, spike_time_sequences): + times = numpy.concatenate([seq.value for seq in spike_time_sequences]) + indices = numpy.concatenate([i * numpy.ones(seq.value.size) + for i, seq in enumerate(spike_time_sequences)]) + return indices, times * second + # todo: try to push the multiplication by seconds back into the translation step. + # note that the scaling from ms to seconds does take place during translation + + def _get_spike_time_sequences(self): + # todo: might be faster using array operations + values = [list() for i in range(self.N)] + for i, t in zip(self.neuron_index, self.spike_time): + values[i].append(t) + return numpy.array([Sequence(times) for times in values], dtype=Sequence) + + def _set_spike_time_sequences(self, spike_time_sequences, mask=None): + if mask is not None: + existing_times = self._get_spike_time_sequences() + existing_times[mask] = spike_time_sequences + spike_time_sequences = existing_times + self._check_spike_times(spike_time_sequences) + indices, times = self._convert_sequences_to_arrays(spike_time_sequences) + self.set_spikes(indices, times) + spike_time_sequences = property(fget=_get_spike_time_sequences, fset=_set_spike_time_sequences) + + def _check_spike_times(self, spike_time_sequences): + for seq in spike_time_sequences: + if numpy.any(seq.value[:-1] > seq.value[1:]): + raise errors.InvalidParameterValueError( + "Spike times given to SpikeSourceArray must be in increasing order") + + def initialize(self): + pass + + + + diff --git a/pyNN/brian2/populations.py b/pyNN/brian2/populations.py new file mode 100644 index 000000000..a8b00e4c5 --- /dev/null +++ b/pyNN/brian2/populations.py @@ -0,0 +1,128 @@ +""" + +""" + +import numpy +from pyNN import common +from pyNN.standardmodels import StandardCellType +from pyNN.parameters import ParameterSpace, simplify +from . import simulator +from .recording import Recorder +import numpy as np +from brian2.units.fundamentalunits import Quantity +#from brian2.units import * +#from quantities import * +from brian2.core.variables import VariableView +import brian2 +#from brian2.groups.neurongroup import * +ms = brian2.ms +mV = brian2.mV + +class Assembly(common.Assembly): + _simulator = simulator + + +class PopulationView(common.PopulationView): + _assembly_class = Assembly + _simulator = simulator + + def _get_parameters(self, *names): + """ + return a ParameterSpace containing native parameters + """ + parameter_dict = {} + for name in names: + value = getattr(self.brian2_group, name) + if hasattr(value, "shape") and value.shape: + value = value[self.mask] + parameter_dict[name] = simplify(value) + return ParameterSpace(parameter_dict, shape=(self.size,)) + + def _set_parameters(self, parameter_space): + """parameter_space should contain native parameters""" + parameter_space.evaluate(simplify=False) + for name, value in parameter_space.items(): + if name == "spike_time_sequences": + self.brian2_group._set_spike_time_sequences(value, self.mask) + else: + getattr(self.brian2_group, name)[self.mask] = value + + def _set_initial_value_array(self, variable, initial_values): + raise NotImplementedError + + def _get_view(self, selector, label=None): + return PopulationView(self, selector, label) + + @property + def brian2_group(self): + return self.parent.brian2_group + + +class Population(common.Population): + __doc__ = common.Population.__doc__ + _simulator = simulator + _recorder_class = Recorder + _assembly_class = Assembly + + def _create_cells(self): + id_range = numpy.arange(simulator.state.id_counter, + simulator.state.id_counter + self.size) + self.all_cells = numpy.array([simulator.ID(id) for id in id_range], + dtype=simulator.ID) + self._mask_local = numpy.ones((self.size,), bool) # all cells are local. This doesn't seem very efficient. + + if isinstance(self.celltype, StandardCellType): + parameter_space = self.celltype.native_parameters + else: + parameter_space = self.celltype.parameter_space + parameter_space.shape = (self.size,) + parameter_space.evaluate(simplify=False) + self.brian2_group = self.celltype.brian2_model(self.size, + self.celltype.eqs, + **parameter_space) + for id in self.all_cells: + id.parent = self + simulator.state.id_counter += self.size + simulator.state.network.add(self.brian2_group) + + def _set_initial_value_array(self, variable, value): + D = self.celltype.state_variable_translations[variable] + pname = D['translated_name'] + if callable(D['forward_transform']): + pval = D['forward_transform'](value) ### (value) + else: + pval = eval(D['forward_transform'], globals(), {variable: value}) + pval = pval.evaluate(simplify=False) + self.brian2_group.initial_values[pname] = pval + self.brian2_group.initialize() + + def _get_view(self, selector, label=None): + return PopulationView(self, selector, label) + + def _get_parameters(self, *names): + """ + return a ParameterSpace containing native parameters + """ + parameter_dict = {} + for name in names: + value = getattr(self.brian2_group, name) + if hasattr(value, "shape") and value.shape != (): + value = value[:] + parameter_dict[name] = value + return ParameterSpace(parameter_dict, shape=(self.size,)) + + def _set_parameters(self, parameter_space): + """parameter_space should contain native parameters""" + parameter_space.evaluate(simplify=False) + for name, value in parameter_space.items(): + if (name=="tau_refrac"): + value= value / ms + value= simplify(value) + #brian2.NeuronGroup.__setattr__(self.brian2_group, "_refractory", value) + self.brian2_group.tau_refrac=value + elif (name=="v_reset"): + value= value / mV + value= simplify(value) + self.brian2_group.v_reset=value + else: + setattr(self.brian2_group, name, value) diff --git a/pyNN/brian2/projections.py b/pyNN/brian2/projections.py new file mode 100644 index 000000000..67057c74e --- /dev/null +++ b/pyNN/brian2/projections.py @@ -0,0 +1,297 @@ +# encoding: utf-8 +""" + +""" + +import logging +from itertools import chain +from collections import defaultdict +import numpy +import brian2 +from brian2 import uS, nA, mV, ms, second +from pyNN import common +from pyNN.standardmodels.synapses import TsodyksMarkramSynapse +from pyNN.core import is_listlike +from pyNN.parameters import ParameterSpace, simplify +from pyNN.space import Space +from . import simulator +from .standardmodels.synapses import StaticSynapse + + +logger = logging.getLogger("PyNN") + + +class Connection(common.Connection): + """ + Store an individual plastic connection and information about it. Provide an + interface that allows access to the connection's weight, delay and other + attributes. + """ + + def __init__(self, projection, i_group, j_group, index): + self.projection = projection + self.i_group = i_group + self.j_group = j_group + self.index = index + self._syn_obj = self.projection._brian2_synapses[self.i_group][self.j_group] + + def _get(self, attr_name): + value = getattr(self._syn_obj, attr_name)[self.index] + native_ps = ParameterSpace({attr_name: value}, shape=(1,)) + ps = self.projection.synapse_type.reverse_translate(native_ps) + ps.evaluate() + return ps[attr_name] + + def _set(self, attr_name, value): + ps = ParameterSpace({attr_name: value}, shape=(1,), schema=self.projection.synapse_type.get_schema()) + native_ps = self.projection.synapse_type.translate(ps) + native_ps.evaluate() + getattr(self._syn_obj, attr_name)[self.index] = native_ps[attr_name] + + def _set_weight(self, w): + self._set("weight", w) + + def _get_weight(self): + """Synaptic weight in nA or µS.""" + return self._get("weight") + + def _set_delay(self, d): + self._set("delay", d) + + def _get_delay(self): + """Synaptic delay in ms.""" + return self._get("delay") + + weight = property(_get_weight, _set_weight) + delay = property(_get_delay, _set_delay) + + def as_tuple(self, *attribute_names): + # should return indices, not IDs for source and target + return tuple([getattr(self, name) for name in attribute_names]) + + +def basic_units(units): + # todo: implement this properly so it works with any units + if units == mV: + return "volt" + if units == uS: + return "siemens" + if units == nA: + return "ampere" + raise Exception("Can't handle units '{}'".format(units)) + + +class Projection(common.Projection): + __doc__ = common.Projection.__doc__ + _simulator = simulator + _static_synapse_class = StaticSynapse + + def __init__(self, presynaptic_population, postsynaptic_population, + connector, synapse_type=None, source=None, receptor_type=None, + space=Space(), label=None): + common.Projection.__init__(self, presynaptic_population, postsynaptic_population, + connector, synapse_type, source, receptor_type, + space, label) + self._n_connections = 0 + # create one Synapses object per pre-post population pair + # there will be multiple such pairs if either `presynaptic_population` + # or `postsynaptic_population` is an Assembly. + if isinstance(self.pre, common.Assembly): + presynaptic_populations = self.pre.populations + else: + presynaptic_populations = [self.pre] + if isinstance(self.post, common.Assembly): + postsynaptic_populations = self.post.populations + assert self.post._homogeneous_synapses, "Inhomogeneous assemblies not yet supported" + else: + postsynaptic_populations = [self.post] + self._brian2_synapses = defaultdict(dict) + for i, pre in enumerate(presynaptic_populations): + for j, post in enumerate(postsynaptic_populations): + # complete the synapse type equations according to the + # post-synaptic response type + psv = post.celltype.post_synaptic_variables[self.receptor_type] + if hasattr(post.celltype, "voltage_based_synapses") and post.celltype.voltage_based_synapses: + weight_units = mV + else: + weight_units = post.celltype.conductance_based and uS or nA + self.synapse_type._set_target_type(weight_units) + equation_context = {"syn_var": psv, "weight_units": basic_units(weight_units)} + pre_eqns = self.synapse_type.pre % equation_context + if self.synapse_type.post: + post_eqns = self.synapse_type.post % equation_context + else: + post_eqns = None + + model = self.synapse_type.eqs % equation_context # units are being transformed for exemple from amp to A + + # create the brian2 Synapses object. + syn_obj = brian2.Synapses(pre.brian2_group, post.brian2_group, + model=model, on_pre=pre_eqns, + on_post=post_eqns, + clock=simulator.state.network.clock, + multisynaptic_index='synapse_number') + #code_namespace={"exp": numpy.exp}) + self._brian2_synapses[i][j] = syn_obj + simulator.state.network.add(syn_obj) + # connect the populations + connector.connect(self) + # special-case: the Tsodyks-Markram short-term plasticity model takes + # a parameter value from the post-synaptic response model + if isinstance(self.synapse_type, TsodyksMarkramSynapse): + self._set_tau_syn_for_tsodyks_markram() + + def __len__(self): + return self._n_connections + + @property + def connections(self): + """ + Returns an iterator over local connections in this projection, as `Connection` objects. + """ + return (Connection(self, i_group, j_group, i) + for i_group in range(len(self._brian2_synapses)) + for j_group in range(len(self._brian2_synapses[i_group])) + for i in range(len(self._brian2_synapses[i_group][j_group])) + ) + + def _partition(self, indices): + """ + partition indices, in case of Assemblies + """ + if isinstance(self.pre, common.Assembly): + boundaries = numpy.cumsum([0] + [p.size for p in self.pre.populations]) + assert indices.max() < boundaries[-1] + partitions = numpy.split(indices, numpy.searchsorted(indices, boundaries[1:-1])) - boundaries[:-1] + for i_group, local_indices in enumerate(partitions): + if isinstance(self.pre.populations[i_group], common.PopulationView): + partitions[i_group] = self.pre.populations[i_group].index_in_grandparent(local_indices) + elif isinstance(self.pre, common.PopulationView): + partitions = [self.pre.index_in_grandparent(indices)] + else: + partitions = [indices] + return partitions + + def _localize_index(self, index): + """determine which group the postsynaptic index belongs to """ + if isinstance(self.post, common.Assembly): + boundaries = numpy.cumsum([0] + [p.size for p in self.post.populations]) + j = numpy.searchsorted(boundaries, index, side='right') - 1 + local_index = index - boundaries[j] + if isinstance(self.post.populations[j], common.PopulationView): + return j, self.post.populations[j].index_in_grandparent(local_index) + else: + return j, local_index + elif isinstance(self.post, common.PopulationView): + return 0, self.post.index_in_grandparent(index) + else: + return 0, index + + def _convergent_connect(self, presynaptic_indices, postsynaptic_index, + **connection_parameters): + connection_parameters.pop("dendritic_delay_fraction", None) # TODO: need to to handle this + presynaptic_index_partitions = self._partition(presynaptic_indices) + j_group, j = self._localize_index(postsynaptic_index) + # specify which connections exist + for i_group, i in enumerate(presynaptic_index_partitions): + if i.size > 0: + self._brian2_synapses[i_group][j_group].connect(i=i, j=j) #####"[i, j] + self._n_connections += i.size + # set connection parameters + + for name, value in chain(connection_parameters.items(), + self.synapse_type.initial_conditions.items()): + if name == 'delay': + scale = self._simulator.state.dt * ms + value /= scale # ensure delays are rounded to the + value = numpy.round(value) * scale # nearest time step, rather than truncated + for i_group, i in enumerate(presynaptic_index_partitions): + if i.size > 0: + brian2_var = getattr(self._brian2_synapses[i_group][j_group], name) + if is_listlike(value): + for ii, v in zip(i, value): + brian2_var[ii, j] = v + else: + for ii in i: + try: + brian2_var[ii, j] = value + except TypeError as err: + if "read-only" in str(err): + logger.info("Cannot set synaptic initial value for variable {}".format(name)) + else: + raise + ##brian2_var[i, j] = value # doesn't work with multiple connections between a given neuron pair. Need to understand the internals of Synapses and SynapticVariable better + + def _set_attributes(self, connection_parameters): + if isinstance(self.post, common.Assembly) or isinstance(self.pre, common.Assembly): + raise NotImplementedError + syn_obj = self._brian2_synapses[0][0] + connection_parameters.evaluate() # inefficient: would be better to evaluate using mask + for name, value in connection_parameters.items(): + creation_order_sorted_value = value[syn_obj.i[:], syn_obj.j[:]] + setattr(syn_obj, name, creation_order_sorted_value) + + def _get_attributes_as_arrays(self, attribute_names, multiple_synapses='sum'): + if isinstance(self.post, common.Assembly) or isinstance(self.pre, common.Assembly): + raise NotImplementedError + values = [] + syn_obj = self._brian2_synapses[0][0] + nan_mask = numpy.full((self.pre.size, self.post.size), True) + iarr, jarr = syn_obj.i[:], syn_obj.j[:] + nan_mask[iarr, jarr] = False + + multi_synapse_aggregation_map = { + 'sum': (numpy.add.at, 0.0), + 'min': (numpy.minimum.at, numpy.inf), + 'max': (numpy.maximum.at, -numpy.inf) + } + + for name in attribute_names: + value = getattr(syn_obj, name)[:] + native_ps = ParameterSpace({name: value}, shape=value.shape) # should really use the translated name + ps = self.synapse_type.reverse_translate(native_ps) + ps.evaluate() + + if multiple_synapses in multi_synapse_aggregation_map: + aggregation_func, dummy_val = multi_synapse_aggregation_map[multiple_synapses] + array_val = numpy.full((self.pre.size, self.post.size), dummy_val) + aggregation_func(array_val, (syn_obj.i[:], syn_obj.j[:]), ps[name]) + array_val[nan_mask] = numpy.nan + else: + raise NotImplementedError + values.append(array_val) + return values + + def _get_attributes_as_list(self, attribute_names): + if isinstance(self.post, common.Assembly) or isinstance(self.pre, common.Assembly): + raise NotImplementedError + values = [] + syn_obj = self._brian2_synapses[0][0] + for name in attribute_names: + if name == "presynaptic_index": + value = syn_obj.i[:] #_indices.synaptic_pre.get_value() + if hasattr(self.pre, "parent"): + # map index in parent onto index in view + value = self.pre.index_from_parent_index(value) + elif name == "postsynaptic_index": + value = syn_obj.j[:] #_indices.synaptic_post.get_value() + if hasattr(self.post, "parent"): + # map index in parent onto index in view + value = self.post.index_from_parent_index(value) + else: + value = getattr(syn_obj, name)[:] + native_ps = ParameterSpace({name: value}, shape=value.shape) # should really use the translated name + # this whole "get attributes" thing needs refactoring in all backends to properly use translation + ps = self.synapse_type.reverse_translate(native_ps) + ps.evaluate() + value = ps[name] + values.append(value) + a = numpy.array(values) + + return [tuple(x) for x in a.T] + + def _set_tau_syn_for_tsodyks_markram(self): + if isinstance(self.post, common.Assembly) or isinstance(self.pre, common.Assembly): + raise NotImplementedError + tau_syn_var = self.synapse_type.tau_syn_var[self.receptor_type] + self._brian2_synapses[0][0].tau_syn = self.post.get(tau_syn_var)[self._brian2_synapses[0][0].j] * brian2.ms diff --git a/pyNN/brian2/recording.py b/pyNN/brian2/recording.py new file mode 100644 index 000000000..2a67387c6 --- /dev/null +++ b/pyNN/brian2/recording.py @@ -0,0 +1,118 @@ +""" + +:copyright: Copyright 2006-2016 by the PyNN team, see AUTHORS. +:license: CeCILL, see LICENSE for details. +""" + +import logging +from collections import defaultdict +import numpy +import quantities as pq +import brian2 +from pyNN.core import is_listlike +from pyNN import recording +from . import simulator + +mV = brian2.mV +ms = brian2.ms +uS = brian2.uS +pq.uS = pq.UnitQuantity('microsiemens', 1e-6 * pq.S, 'uS') +pq.nS = pq.UnitQuantity('nanosiemens', 1e-9 * pq.S, 'nS') + +logger = logging.getLogger("PyNN") + + +class Recorder(recording.Recorder): + """Encapsulates data and functions related to recording model variables.""" + _simulator = simulator + + def __init__(self, population=None, file=None): + __doc__ = recording.Recorder.__doc__ + recording.Recorder.__init__(self, population, file) + self._devices = {} # defer creation until first call of run() + + def _create_device(self, group, variable): + """Create a Brian2 recording device.""" + # Brian2 records in the 'start' scheduling slot by default + if variable == 'spikes': + self._devices[variable] = brian2.SpikeMonitor(group, record=self.recorded) + else: + varname = self.population.celltype.state_variable_translations[variable]['translated_name'] + neurons_to_record = numpy.sort(numpy.fromiter(self.recorded[variable], dtype=int)) - self.population.first_id + self._devices[variable] = brian2.StateMonitor(group, varname, + record=neurons_to_record, + when='end', + dt=self.sampling_interval * ms) + simulator.state.network.add(self._devices[variable]) + + def _record(self, variable, new_ids, sampling_interval=None): + """Add the cells in `new_ids` to the set of recorded cells.""" + self.sampling_interval = sampling_interval or self._simulator.state.dt + + def _finalize(self): + for variable in self.recorded: + if variable not in self._devices: + self._create_device(self.population.brian2_group, variable) + logger.debug("recording %s from %s" % (variable, self.recorded[variable])) + + def _reset(self): + """Clear the list of cells to record.""" + self._devices = {} + for device in self._devices.values(): + del device + + def _clear_simulator(self): + """Delete all recorded data, but retain the list of cells to record from.""" + # for variable, device in self._devices.items(): + # group = device.source + # self._create_device(group, variable) + # del device + for device in self._devices.values(): + device.resize(0) + + def _get_spiketimes(self, id): + if is_listlike(id): + all_spiketimes = {} + for cell_id in id: + i = cell_id - self.population.first_id + spiky=self._devices['spikes'].spike_trains() + all_spiketimes[cell_id] = spiky[i] / ms + return all_spiketimes + else: + i = id - self.population.first_id + spiky=self._devices['spikes'].spike_trains() + return spiky[i] / ms + + def _get_all_signals(self, variable, ids, clear=False): + # need to filter according to ids + + # check that the requested ids have indeed been recorded + if not set(ids).issubset(self.recorded[variable]): + raise Exception("You are requesting data from neurons that have not been recorded") + device = self._devices[variable] + varname = self.population.celltype.state_variable_translations[variable]['translated_name'] + if len(ids) == len(self.recorded[variable]): + values = getattr(device, varname).T + else: + raise NotImplementedError # todo - construct a mask to get only the desired signals + values = self.population.celltype.state_variable_translations[variable]['reverse_transform'](values) + # because we use `when='end'`, need to add the value at the beginning of the run + tmp = numpy.empty((values.shape[0] + 1, values.shape[1])) + tmp[1:, :] = values + population_mask = self.population.id_to_index(ids) + tmp[0, :] = self.population.initial_values[variable][population_mask] + values = tmp + if clear: + self._devices[variable].resize(0) + return values + + def _local_count(self, variable, filter_ids=None): + N = {} + filtered_ids = self.filter_recorded(variable, filter_ids) + padding = self.population.first_id + indices = numpy.fromiter(filtered_ids, dtype=int) - padding + spiky=self._devices['spikes'].spike_trains() + for i, id in zip(indices, filtered_ids): + #N[id] = len(self._devices['spikes'].spiketimes[i]) + N[id] = len(spiky[i]) + return N diff --git a/pyNN/brian2/simulator.py b/pyNN/brian2/simulator.py new file mode 100644 index 000000000..c7fcaff6d --- /dev/null +++ b/pyNN/brian2/simulator.py @@ -0,0 +1,123 @@ +# encoding: utf-8 +""" +Implementation of the "low-level" functionality used by the common +implementation of the API, for the Brian2 simulator. + +Classes and attributes usable by the common implementation: + +Classes: + ID + Connection + +Attributes: + state -- an instance of the _State class. + +All other functions and classes are private, and should not be used by other +modules. + +:copyright: Copyright 2006-2016 by the PyNN team, see AUTHORS. +:license: CeCILL, see LICENSE for details. + +""" + +import logging +import brian2 +import numpy +from pyNN import common +from pyNN.parameters import simplify + + +name = "Brian2" +logger = logging.getLogger("PyNN") + +ms = brian2.ms + + +class ID(int, common.IDMixin): + + def __init__(self, n): + """Create an ID object with numerical value `n`.""" + int.__init__(n) + common.IDMixin.__init__(self) + + +class State(common.control.BaseState): + + def __init__(self): + common.control.BaseState.__init__(self) + self.mpi_rank = 0 + self.num_processes = 1 + self._min_delay = 'auto' + self.network = None + self.clear() + + def run(self, simtime): + for recorder in self.recorders: + recorder._finalize() + if not self.running: + assert self.network.clock.t == 0 * ms + self.network.store("before-first-run") + # todo: handle the situation where new Populations or Projections are + # created after the first run and then "reset" is called + self.running = True + self.network.run(simtime * ms) + + def run_until(self, tstop): + self.run(tstop - self.t) + + def clear(self): + self.recorders = set([]) + self.id_counter = 0 + self.current_sources = [] + self.segment_counter = -1 + if self.network: + for item in self.network.sorted_objects: + del item + del self.network + self.network = brian2.Network() + self.network.clock = brian2.Clock(0.1 * ms) + self.running = False + self.reset() + + def reset(self): + """Reset the state of the current network to time t = 0.""" + if self.running: + self.network.restore("before-first-run") + self.running = False + self.t_start = 0 + self.segment_counter += 1 + + def _get_dt(self): + if self.network.clock is None: + raise Exception("Simulation timestep not yet set. Need to call setup()") + return float(self.network.clock.dt / ms) + + def _set_dt(self, timestep): + logger.debug("Setting timestep to %s", timestep) + #if self.network.clock is None or timestep != self._get_dt(): + # self.network.clock = brian2.Clock(dt=timestep*ms) + self.network.clock.dt = timestep * ms + dt = property(fget=_get_dt, fset=_set_dt) + + @property + def t(self): + return float(self.network.clock.t / ms) + + def _get_min_delay(self): + if self._min_delay == 'auto': + min_delay = numpy.inf + for item in self.network.sorted_objects: + if isinstance(item, brian2.Synapses): + matrix=numpy.asarray(item.delay) *10000 + min_delay = min(min_delay, matrix.min()) + if numpy.isinf(min_delay): + self._min_delay = self.dt + else: + self._min_delay = min_delay * self.dt # Synapses.delay is an integer, the number of time steps + return self._min_delay + + def _set_min_delay(self, delay): + self._min_delay = delay + min_delay = property(fget=_get_min_delay, fset=_set_min_delay) + +state = State() diff --git a/test/hardware/unittests/__init__.py b/pyNN/brian2/standardmodels/__init__.py similarity index 100% rename from test/hardware/unittests/__init__.py rename to pyNN/brian2/standardmodels/__init__.py diff --git a/pyNN/brian2/standardmodels/cells.py b/pyNN/brian2/standardmodels/cells.py new file mode 100644 index 000000000..d901cb64b --- /dev/null +++ b/pyNN/brian2/standardmodels/cells.py @@ -0,0 +1,345 @@ +# encoding: utf-8 +""" +Standard cells for the Brian2 module. + +:copyright: Copyright 2006-2016 by the PyNN team, see AUTHORS. +:license: CeCILL, see LICENSE for details. +""" + +from copy import deepcopy +import brian2 +from brian2 import mV, ms, nF, nA, uS, Hz, nS +from pyNN.standardmodels import cells, build_translations +from ..cells import (ThresholdNeuronGroup, SpikeGeneratorGroup, PoissonGroup, + BiophysicalNeuronGroup, AdaptiveNeuronGroup, AdaptiveNeuronGroup2, + IzhikevichNeuronGroup) +import logging + +logger = logging.getLogger("PyNN") + + +leaky_iaf = brian2.Equations(''' + dv/dt = (v_rest-v)/tau_m + (i_syn + i_offset + i_inj)/c_m : volt (unless refractory) + tau_m : second + c_m : farad + v_rest : volt + i_offset : amp + i_inj : amp + ''') +# give v_thresh a different name +adexp_iaf = brian2.Equations(''' + dv/dt = (delta_T*gL*exp((-v_thresh + v)/delta_T) + I + gL*(v_rest - v) - w )/ c_m : volt (unless refractory) + dw/dt = (a*(v-v_rest) - w)/tau_w : amp + gL = c_m / tau_m : siemens + I = i_syn + i_inj + i_offset : amp + a : siemens + tau_m : second + tau_w : second + c_m : farad + v_rest : volt + v_spike : volt + v_thresh : volt + delta_T : volt + i_offset : amp + i_inj : amp + ''') + +# g_r, g_s should be in uS for PyNN unit system consistency +adapt_iaf = brian2.Equations(''' + dv/dt = (v_rest-v)/tau_m + (-g_r*(v-E_r) - g_s*(v-E_s) + i_syn + i_offset + i_inj)/c_m : volt (unless refractory) + dg_s/dt = -g_s/tau_s : siemens (unless refractory) + dg_r/dt = -g_r/tau_r : siemens (unless refractory) + tau_m : second + tau_s : second + tau_r : second + c_m : farad + v_rest : volt + i_offset : amp + i_inj : amp + E_r : volt + E_s : volt + + ''') + + +conductance_based_exponential_synapses = brian2.Equations(''' + dge/dt = -ge/tau_syn_e : siemens + dgi/dt = -gi/tau_syn_i : siemens + i_syn = ge*(e_rev_e - v) + gi*(e_rev_i - v) : amp + tau_syn_e : second + tau_syn_i : second + e_rev_e : volt + e_rev_i : volt + ''') + +conductance_based_alpha_synapses = brian2.Equations(''' + dge/dt = (2.7182818284590451*ye-ge)/tau_syn_e : siemens + dye/dt = -ye/tau_syn_e : siemens + dgi/dt = (2.7182818284590451*yi-gi)/tau_syn_i : siemens + dyi/dt = -yi/tau_syn_i : siemens + i_syn = ge*(e_rev_e - v) + gi*(e_rev_i - v) : amp + tau_syn_e : second + tau_syn_i : second + e_rev_e : volt + e_rev_i : volt + ''') + +current_based_exponential_synapses = brian2.Equations(''' + die/dt = -ie/tau_syn_e : amp + dii/dt = -ii/tau_syn_i : amp + i_syn = ie + ii : amp + tau_syn_e : second + tau_syn_i : second + ''') + +current_based_alpha_synapses = brian2.Equations(''' + die/dt = (2.7182818284590451*ye-ie)/tau_syn_e : amp + dye/dt = -ye/tau_syn_e : amp + dii/dt = (2.7182818284590451*yi-ii)/tau_syn_e : amp + dyi/dt = -yi/tau_syn_e : amp + i_syn = ie + ii : amp + tau_syn_e : second + tau_syn_i : second + ''') + +leaky_iaf_translations = build_translations( + ('v_rest', 'v_rest', lambda **p: p["v_rest"] * mV, lambda **p: p["v_rest"] / mV), + ('v_reset', 'v_reset', lambda **p: p["v_reset"] * mV, lambda **p: p["v_reset"] / mV), + ('cm', 'c_m', lambda **p: p["cm"] * nF, lambda **p: p["c_m"] / nF), + ('tau_m', 'tau_m', lambda **p: p["tau_m"] * ms, lambda **p: p["tau_m"] / ms), ###p["tau_m"] * ms, p["tau_m"] /nF + ('tau_refrac', 'tau_refrac', lambda **p: p["tau_refrac"] * ms, lambda **p: p["tau_refrac"] / ms), + ('v_thresh', 'v_thresh', lambda **p: p["v_thresh"] * mV, lambda **p: p["v_thresh"] / mV), + ('i_offset', 'i_offset', lambda **p: p["i_offset"] * nA, lambda **p: p["i_offset"] / nA)) + +adexp_iaf_translations = build_translations( + + ('v_rest', 'v_rest', lambda **p: p["v_rest"] * mV, lambda **p: p["v_rest"] / mV), + ('v_reset', 'v_reset', lambda **p: p["v_reset"] * mV, lambda **p: p["v_reset"] / mV), + ('cm', 'c_m', lambda **p: p["cm"] * nF, lambda **p: p["c_m"] / nF), + ('tau_m', 'tau_m', lambda **p: p["tau_m"] * ms, lambda **p: p["tau_m"] / ms), + ('tau_refrac', 'tau_refrac', lambda **p: p["tau_refrac"] * ms, lambda **p: p["tau_refrac"] / ms), + ('v_thresh', 'v_thresh', lambda **p: p["v_thresh"] * mV, lambda **p: p["v_thresh"] / mV), + ('i_offset', 'i_offset', lambda **p: p["i_offset"] * nA, lambda **p: p["i_offset"] / nA), + ('a', 'a', lambda **p: p["a"] * nS, lambda **p: p["a"] / nS), + ('b', 'b', lambda **p: p["b"] * nA, lambda **p: p["b"] / nA), + ('delta_T', 'delta_T', lambda **p: p["delta_T"] * mV, lambda **p: p["delta_T"] / mV), + ('tau_w', 'tau_w', lambda **p: p["tau_w"] * ms, lambda **p: p["tau_w"] / ms), + ('v_spike', 'v_spike', lambda **p: p["v_spike"] * mV, lambda **p: p["v_spike"] / mV)) + +adapt_iaf_translations = build_translations( + ('v_rest', 'v_rest', lambda **p: p["v_rest"] * mV, lambda **p: p["v_rest"] / mV), + ('v_reset', 'v_reset', lambda **p: p["v_reset"] * mV, lambda **p: p["v_reset"] / mV), + ('cm', 'c_m', lambda **p: p["cm"] * nF, lambda **p: p["c_m"] / nF), + ('tau_m', 'tau_m', lambda **p: p["tau_m"] * ms, lambda **p: p["tau_m"] / ms), + ('tau_refrac', 'tau_refrac', lambda **p: p["tau_refrac"] * ms, lambda **p: p["tau_refrac"] / ms), + ('v_thresh', 'v_thresh', lambda **p: p["v_thresh"] * mV, lambda **p: p["v_thresh"] / mV), + ('i_offset', 'i_offset', lambda **p: p["i_offset"] * nA, lambda **p: p["i_offset"] / nA), + ('tau_sfa', 'tau_s', lambda **p: p["tau_sfa"] * ms, lambda **p: p["tau_s"] / ms), + ('e_rev_sfa', 'E_s', lambda **p: p["e_rev_sfa"] * mV, lambda **p: p["E_s"] / mV), + ('q_sfa', 'q_s', lambda **p: p["q_sfa"] * nS, lambda **p: p["q_s"] / nS), # should we uS for consistency of PyNN unit system? + ('tau_rr', 'tau_r', lambda **p: p["tau_rr"] * ms, lambda **p: p["tau_r"] / ms), + ('e_rev_rr', 'E_r', lambda **p: p["e_rev_rr"] * mV, lambda **p: p["E_r"] / mV), + ('q_rr', 'q_r', lambda **p: p["q_rr"] * nS, lambda **p: p["q_r"] / nS)) + +conductance_based_synapse_translations = build_translations( + ('tau_syn_E', 'tau_syn_e', lambda **p: p["tau_syn_E"] * ms, lambda **p: p["tau_syn_e"] / ms), + ('tau_syn_I', 'tau_syn_i', lambda **p: p["tau_syn_I"] * ms, lambda **p: p["tau_syn_i"] / ms), + ('e_rev_E', 'e_rev_e', lambda **p: p["e_rev_E"] * mV, lambda **p: p["e_rev_e"] / mV), + ('e_rev_I', 'e_rev_i', lambda **p: p["e_rev_I"] * mV, lambda **p: p["e_rev_i"] / mV)) + +current_based_synapse_translations = build_translations( + ('tau_syn_E', 'tau_syn_e', lambda **p: p["tau_syn_E"] * ms, lambda **p: p["tau_syn_e"] / ms), + ('tau_syn_I', 'tau_syn_i', lambda **p: p["tau_syn_I"] * ms, lambda **p: p["tau_syn_i"] / ms)) + +conductance_based_variable_translations = build_translations( + ('v', 'v', lambda p: p * mV, lambda p: p/ mV), + ('gsyn_exc', 'ge', lambda p: p * uS, lambda p: p/ uS), + ('gsyn_inh', 'gi', lambda p: p * uS, lambda p: p/ uS)) +current_based_variable_translations = build_translations( + + ('v', 'v', lambda p: p * mV, lambda p: p/ mV), #### change p by p["v"] + ('isyn_exc', 'ie', lambda p: p * nA, lambda p: p/ nA), + ('isyn_inh', 'ii', lambda p: p * nA, lambda p: p/ nA)) + + +class IF_curr_alpha(cells.IF_curr_alpha): + __doc__ = cells.IF_curr_alpha.__doc__ + eqs = leaky_iaf + current_based_alpha_synapses + translations = deepcopy(leaky_iaf_translations) + translations.update(current_based_synapse_translations) + state_variable_translations = current_based_variable_translations + post_synaptic_variables = {'excitatory': 'ye', 'inhibitory': 'yi'} + brian2_model = ThresholdNeuronGroup + + +class IF_curr_exp(cells.IF_curr_exp): + __doc__ = cells.IF_curr_exp.__doc__ + eqs = leaky_iaf + current_based_exponential_synapses + translations = deepcopy(leaky_iaf_translations) + translations.update(current_based_synapse_translations) + state_variable_translations = current_based_variable_translations + post_synaptic_variables = {'excitatory': 'ie', 'inhibitory': 'ii'} + brian2_model = ThresholdNeuronGroup + + +class IF_cond_alpha(cells.IF_cond_alpha): + __doc__ = cells.IF_cond_alpha.__doc__ + eqs = leaky_iaf + conductance_based_alpha_synapses + translations = deepcopy(leaky_iaf_translations) + translations.update(conductance_based_synapse_translations) + state_variable_translations = conductance_based_variable_translations + post_synaptic_variables = {'excitatory': 'ye', 'inhibitory': 'yi'} + brian2_model = ThresholdNeuronGroup + + +class IF_cond_exp(cells.IF_cond_exp): + __doc__ = cells.IF_cond_exp.__doc__ + eqs = leaky_iaf + conductance_based_exponential_synapses + translations = deepcopy(leaky_iaf_translations) + translations.update(conductance_based_synapse_translations) + state_variable_translations = conductance_based_variable_translations + post_synaptic_variables = {'excitatory': 'ge', 'inhibitory': 'gi'} + brian2_model = ThresholdNeuronGroup + + +class EIF_cond_exp_isfa_ista(cells.EIF_cond_exp_isfa_ista): + __doc__ = cells.EIF_cond_exp_isfa_ista.__doc__ + eqs = adexp_iaf + conductance_based_exponential_synapses + translations = deepcopy(adexp_iaf_translations) + translations.update(conductance_based_synapse_translations) + state_variable_translations = build_translations( + ('v', 'v',lambda p: p * mV, lambda p: p/ mV), + ('w', 'w', lambda p: p * nA, lambda p: p/ nA), + ('gsyn_exc', 'ge',lambda p: p * uS, lambda p: p/ uS), + ('gsyn_inh', 'gi', lambda p: p * uS, lambda p: p/ uS)) + + post_synaptic_variables = {'excitatory': 'ge', 'inhibitory': 'gi'} + brian2_model = AdaptiveNeuronGroup + + +class EIF_cond_alpha_isfa_ista(cells.EIF_cond_alpha_isfa_ista): + __doc__ = cells.EIF_cond_alpha_isfa_ista.__doc__ + eqs = adexp_iaf + conductance_based_alpha_synapses + translations = deepcopy(adexp_iaf_translations) + translations.update(conductance_based_synapse_translations) + state_variable_translations = build_translations( + ('v', 'v', lambda p: p * mV, lambda p: p/ mV), + ('w', 'w', lambda p: p * nA, lambda p: p/ nA), + ('gsyn_exc', 'ge', lambda p: p * uS, lambda p: p/ uS), + ('gsyn_inh', 'gi', lambda p: p * uS, lambda p: p/ uS)) + post_synaptic_variables = {'excitatory': 'ge', 'inhibitory': 'gi'} + brian2_model = AdaptiveNeuronGroup + + +class IF_cond_exp_gsfa_grr(cells.IF_cond_exp_gsfa_grr): + eqs = adapt_iaf + conductance_based_alpha_synapses + translations = deepcopy(adapt_iaf_translations) + translations.update(conductance_based_synapse_translations) + state_variable_translations = build_translations( + ('v', 'v', lambda p: p * mV, lambda p: p/ mV), + ('g_s', 'g_s', lambda p: p * uS, lambda p: p/ uS), # should be uS - needs changed for all back-ends + ('g_r', 'g_r', lambda p: p * uS, lambda p: p/ uS), + ('gsyn_exc', 'ge', lambda p: p * uS, lambda p: p/ uS), + ('gsyn_inh', 'gi', lambda p: p * uS, lambda p: p/ uS)) + post_synaptic_variables = {'excitatory': 'ge', 'inhibitory': 'gi'} + brian2_model = AdaptiveNeuronGroup2 + + +class HH_cond_exp(cells.HH_cond_exp): + __doc__ = cells.HH_cond_exp.__doc__ + + translations = build_translations( + ('gbar_Na', 'gbar_Na', lambda **p: p["gbar_Na"] * uS, lambda **p: p["gbar_Na"] / uS), + ('gbar_K', 'gbar_K', lambda **p: p["gbar_K"] * uS, lambda **p: p["gbar_K"] / uS), + ('g_leak', 'g_leak', lambda **p: p["g_leak"] * uS, lambda **p: p["g_leak"] / uS), + ('cm', 'c_m', lambda **p: p["cm"] * nF, lambda **p: p["c_m"] / nF), + ('v_offset', 'v_offset', lambda **p: p["v_offset"] * mV, lambda **p: p["v_offset"] / mV), + ('e_rev_Na', 'e_rev_Na', lambda **p: p["e_rev_Na"] * mV, lambda **p: p["e_rev_Na"] / mV), + ('e_rev_K', 'e_rev_K', lambda **p: p["e_rev_K"] * mV, lambda **p: p["e_rev_K"] / mV), + ('e_rev_leak', 'e_rev_leak', lambda **p: p["e_rev_leak"] * mV, lambda **p: p["e_rev_leak"] / mV), + ('e_rev_E', 'e_rev_e', lambda **p: p["e_rev_E"] * mV, lambda **p: p["e_rev_e"] / mV), + ('e_rev_I', 'e_rev_i', lambda **p: p["e_rev_I"] * mV, lambda **p: p["e_rev_i"] / mV), + ('tau_syn_E', 'tau_syn_e', lambda **p: p["tau_syn_E"] * ms, lambda **p: p["tau_syn_e"] / ms), + ('tau_syn_I', 'tau_syn_i', lambda **p: p["tau_syn_I"] * ms, lambda **p: p["tau_syn_i"] / ms), + ('i_offset', 'i_offset', lambda **p: p["i_offset"] * nA, lambda **p: p["i_offset"] / nA)) + eqs = brian2.Equations(''' + dv/dt = (g_leak*(e_rev_leak-v) - gbar_Na*(m*m*m)*h*(v-e_rev_Na) - gbar_K*(n*n*n*n)*(v-e_rev_K) + i_syn + i_offset + i_inj)/c_m : volt + dm/dt = (alpham*(1-m)-betam*m) : 1 + dn/dt = (alphan*(1-n)-betan*n) : 1 + dh/dt = (alphah*(1-h)-betah*h) : 1 + alpham = (0.32/mV)*(13*mV-v+v_offset)/(exp((13*mV-v+v_offset)/(4*mV))-1.)/ms : Hz + betam = (0.28/mV)*(v-v_offset-40*mV)/(exp((v-v_offset-40*mV)/(5*mV))-1)/ms : Hz + alphah = 0.128*exp((17*mV-v+v_offset)/(18*mV))/ms : Hz + betah = 4./(1+exp((40*mV-v+v_offset)/(5*mV)))/ms : Hz + alphan = (0.032/mV)*(15*mV-v+v_offset)/(exp((15*mV-v+v_offset)/(5*mV))-1.)/ms : Hz + betan = .5*exp((10*mV-v+v_offset)/(40*mV))/ms : Hz + e_rev_Na : volt + e_rev_K : volt + e_rev_leak : volt + gbar_Na : siemens + gbar_K : siemens + g_leak : siemens + v_offset : volt + c_m : farad + i_offset : amp + i_inj : amp + ''') + conductance_based_exponential_synapses + recordable = ['spikes', 'v', 'gsyn_exc', 'gsyn_inh', 'm','n','h'] + post_synaptic_variables = {'excitatory': 'ge', 'inhibitory': 'gi'} + state_variable_translations = build_translations( + ('v', 'v', lambda p: p * mV, lambda p: p/ mV), + ('gsyn_exc', 'ge', lambda p: p * uS, lambda p: p/ uS), + ('gsyn_inh', 'gi', lambda p: p * uS, lambda p: p/ uS), + ('h', 'h', lambda p: p *1, lambda p: p*1), + ('m', 'm', lambda p: p *1, lambda p: p*1), + ('n', 'n', lambda p: p*1 , lambda p: p*1)) + brian2_model = BiophysicalNeuronGroup + + +class Izhikevich(cells.Izhikevich): + __doc__ = cells.Izhikevich.__doc__ + + translations = build_translations( + ('a', 'a', lambda **p: p["a"] *(1/ms) , lambda **p: p["a"] / (1/ms)), + ('b', 'b', lambda **p: p["b"] *(1/ms) , lambda **p: p["b"] / (1/ms)), + ('c', 'v_reset', lambda **p: p["c"] * mV, lambda **p: p["v_reset"] / mV), + ('d', 'd', lambda **p: p["d"] *(mV/ms) , lambda **p: p["d"] / (mV/ms)), + ('i_offset', 'i_offset', lambda **p: p["i_offset"] * nA, lambda **p: p["i_offset"] / nA)) + ### dv/dt = (0.04/ms/mV)*v*v ->>>> (0.04/ms/mV)*v**2 + eqs = brian2.Equations(''' + dv/dt = (0.04/ms/mV)*v*v + (5/ms)*v + 140*mV/ms - u + (i_offset + i_inj)/pF : volt (unless refractory) + du/dt = a*(b*v-u) : volt/second (unless refractory) + a : 1/second + b : 1/second + v_reset : volt + d : volt/second + i_offset : amp + i_inj : amp + ''') + post_synaptic_variables = {'excitatory': 'v', 'inhibitory': 'v'} + state_variable_translations = build_translations( + ('v', 'v', lambda p: p * mV, lambda p: p/ mV), + ('u', 'u', lambda p: p * (mV/ms), lambda p: p/ (mV/ms))) + brian2_model = IzhikevichNeuronGroup + + +class SpikeSourcePoisson(cells.SpikeSourcePoisson): + __doc__ = cells.SpikeSourcePoisson.__doc__ + + translations = build_translations( + ('rate', 'firing_rate', lambda **p: p["rate"] * Hz, lambda **p: p["firing_rate"] / Hz), + ('start', 'start_time', lambda **p: p["start"] * ms, lambda **p: p["start_time"] / ms), + ('duration', 'duration', lambda **p: p["duration"] * ms, lambda **p: p["duration"] / ms), + ) + eqs = None + brian2_model = PoissonGroup + + +class SpikeSourceArray(cells.SpikeSourceArray): + __doc__ = cells.SpikeSourceArray.__doc__ + + translations = build_translations( + ('spike_times', 'spike_time_sequences', ms), + ) + eqs = None + brian2_model = SpikeGeneratorGroup diff --git a/pyNN/brian2/standardmodels/electrodes.py b/pyNN/brian2/standardmodels/electrodes.py new file mode 100644 index 000000000..8f0a95ad0 --- /dev/null +++ b/pyNN/brian2/standardmodels/electrodes.py @@ -0,0 +1,244 @@ +""" +Current source classes for the brian2 module. + +Classes: + DCSource -- a single pulse of current of constant amplitude. + StepCurrentSource -- a step-wise time-varying current. + ACSource -- a sine modulated current. + NoisyCurrentSource -- a Gaussian whitish noise current. + +:copyright: Copyright 2006-2016 by the PyNN team, see AUTHORS. +:license: CeCILL, see LICENSE for details. + +""" + +import logging +import numpy +import brian2 +from brian2 import ms, second, nA, amp, Hz, NetworkOperation, amp as ampere +from pyNN.standardmodels import electrodes, build_translations, StandardCurrentSource +from pyNN.parameters import ParameterSpace, Sequence +from pyNN.brian2 import simulator + +logger = logging.getLogger("PyNN") + +def update_currents(): + for current_source in simulator.state.current_sources: + current_source._update_current() + + +class Brian2CurrentSource(StandardCurrentSource): + """Base class for a source of current to be injected into a neuron.""" + + def __init__(self, **parameters): + super(StandardCurrentSource, self).__init__(**parameters) + self.cell_list = [] + self.indices = [] + self.running = False + simulator.state.current_sources.append(self) + parameter_space = ParameterSpace(self.default_parameters, + self.get_schema(), + shape=(1)) + parameter_space.update(**parameters) + parameter_space = self.translate(parameter_space) + self.set_native_parameters(parameter_space) + + def _check_step_times(self, times, amplitudes, resolution): + # change resolution from ms to s; as per brian2 convention + resolution = resolution*1e-3 + # ensure that all time stamps are non-negative + if not (times >= 0.0).all(): + raise ValueError("Step current cannot accept negative timestamps.") + # ensure that times provided are of strictly increasing magnitudes + dt_times = numpy.diff(times) + if not all(dt_times>0.0): + raise ValueError("Step current timestamps should be monotonically increasing.") + # map timestamps to actual simulation time instants based on specified dt + times = self._round_timestamp(times, resolution) + # remove duplicate timestamps, and corresponding amplitudes, after mapping + step_times = [] + step_amplitudes = [] + for ts0, amp0, ts1 in zip(times, amplitudes, times[1:]): + if ts0 != ts1: + step_times.append(ts0) + step_amplitudes.append(amp0) + step_times.append(times[-1]) + step_amplitudes.append(amplitudes[-1]) + return step_times, step_amplitudes + + def set_native_parameters(self, parameters): + parameters.evaluate(simplify=True) + for name, value in parameters.items(): + if name == "amplitudes": # key used only by StepCurrentSource + step_times = parameters["times"].value + step_amplitudes = parameters["amplitudes"].value + step_times, step_amplitudes = self._check_step_times(step_times, step_amplitudes, simulator.state.dt) + parameters["times"].value = step_times + parameters["amplitudes"].value = step_amplitudes + if isinstance(value, Sequence): + value = value.value + object.__setattr__(self, name, value) + self._reset() + + def _reset(self): + # self.i reset to 0 only at the start of a new run; not for continuation of existing runs + if not hasattr(self, 'running') or self.running == False: + self.i = 0 + self.running = True + if self._is_computed: + self._generate() + + def inject_into(self, cell_list): + __doc__ = StandardCurrentSource.inject_into.__doc__ + for cell in cell_list: + if not cell.celltype.injectable: + raise TypeError("Can't inject current into a spike source.") + self.cell_list.extend(cell_list) + self.prev_amp_dict = {} + for cell in cell_list: + cell_idx = cell.parent.id_to_index(cell) + self.indices.extend([cell_idx]) + self.prev_amp_dict[cell_idx] = 0.0 + + def _update_current(self): + # check if current timestamp is within dt/2 of target time; Brian2 uses seconds as unit of time + if self.running and abs(simulator.state.t - self.times[self.i] * 1e3) < (simulator.state.dt/2.0): + for cell, idx in zip(self.cell_list, self.indices): + if not self._is_playable: + cell.parent.brian2_group.i_inj[idx] += (self.amplitudes[self.i] - self.prev_amp_dict[idx]) * ampere + self.prev_amp_dict[idx] = self.amplitudes[self.i] + else: + amp_val = self._compute(self.times[self.i]) + self.amplitudes = numpy.append(self.amplitudes, amp_val) + cell.parent.brian2_group.i_inj[idx] += (amp_val - self.prev_amp_dict[idx]) * ampere + self.prev_amp_dict[idx] = amp_val #* ampere + self.i += 1 + if self.i >= len(self.times): + self.running = False + if self._is_playable: + # ensure that currents are set to 0 after t_stop + for cell, idx in zip(self.cell_list, self.indices): + cell.parent.brian2_group.i_inj[idx] -= self.prev_amp_dict[idx] * ampere + + def record(self): + pass + + def _get_data(self): + def find_nearest(array, value): + array = numpy.asarray(array) + return (numpy.abs(array - value)).argmin() + + len_t = int(round((simulator.state.t * 1e-3) / (simulator.state.dt * 1e-3))) + 1 + times = numpy.array([(i * simulator.state.dt * 1e-3) for i in range(len_t)]) + amps = numpy.array([0.0] * len_t) + + for idx, [t1, t2] in enumerate(zip(self.times, self.times[1:])): + if t2 < simulator.state.t * 1e-3: + idx1 = find_nearest(times, t1) + idx2 = find_nearest(times, t2) + amps[idx1:idx2] = [self.amplitudes[idx]] * len(amps[idx1:idx2]) + if idx == len(self.times)-2: + if not self._is_playable and not self._is_computed: + amps[idx2:] = [self.amplitudes[idx+1]] * len(amps[idx2:]) + else: + if t1 < simulator.state.t * 1e-3: + idx1 = find_nearest(times, t1) + amps[idx1:] = [self.amplitudes[idx]] * len(amps[idx1:]) + break + return (times * second / ms, amps * amp / nA) + +class StepCurrentSource(Brian2CurrentSource, electrodes.StepCurrentSource): + __doc__ = electrodes.StepCurrentSource.__doc__ + + translations = build_translations( + ('amplitudes', 'amplitudes', nA), + ('times', 'times', ms) + ) + _is_computed = False + _is_playable = False + + +class ACSource(Brian2CurrentSource, electrodes.ACSource): + __doc__ = electrodes.ACSource.__doc__ + + translations = build_translations( + ('amplitude', 'amplitude', nA), + ('start', 'start', ms), + ('stop', 'stop', ms), + ('frequency', 'frequency', Hz), + ('offset', 'offset', nA), + ('phase', 'phase', 1) + ) + _is_computed = True + _is_playable = True + + def __init__(self, **parameters): + Brian2CurrentSource.__init__(self, **parameters) + self._generate() + + def _generate(self): + # Note: Brian2 uses seconds as unit of time + temp_num_t = int(round(((self.stop + simulator.state.dt * 1e-3) - self.start) / (simulator.state.dt * 1e-3))) + self.times = numpy.array([self.start + (i * simulator.state.dt * 1e-3) for i in range(temp_num_t)]) + self.amplitudes = numpy.zeros(0) + + def _compute(self, time): + # Note: Brian2 uses seconds as unit of time; frequency is specified in Hz; thus no conversion required + return self.offset + self.amplitude * numpy.sin((time-self.start) * 2 * numpy.pi * self.frequency + 2 * numpy.pi * self.phase / 360) + + +class DCSource(Brian2CurrentSource, electrodes.DCSource): + __doc__ = electrodes.DCSource.__doc__ + + translations = build_translations( + ('amplitude', 'amplitude', nA), + ('start', 'start', ms), + ('stop', 'stop', ms) + ) + _is_computed = True + _is_playable = False + + def __init__(self, **parameters): + Brian2CurrentSource.__init__(self, **parameters) + self._generate() + + def _generate(self): + if self.start == 0: + self.times = [self.start, self.stop] + self.amplitudes = [self.amplitude, 0.0] + else: + self.times = [0.0, self.start, self.stop] + self.amplitudes = [0.0, self.amplitude, 0.0] + # ensures proper handling of changes in parameters on the fly + if self.start < simulator.state.t*1e-3 < self.stop: + self.times.insert(-1, simulator.state.t*1e-3) + self.amplitudes.insert(-1, self.amplitude) + if (self.start==0 and self.i==2) or (self.start!=0 and self.i==3): + self.i -= 1 + + +class NoisyCurrentSource(Brian2CurrentSource, electrodes.NoisyCurrentSource): + __doc__ = electrodes.NoisyCurrentSource.__doc__ + + translations = build_translations( + ('mean', 'mean', nA), + ('start', 'start', ms), + ('stop', 'stop', ms), + ('stdev', 'stdev', nA), + ('dt', 'dt', ms) + ) + _is_computed = True + _is_playable = True + + def __init__(self, **parameters): + Brian2CurrentSource.__init__(self, **parameters) + self._generate() + + def _generate(self): + temp_num_t = int(round((self.stop - self.start) / max(self.dt, simulator.state.dt * 1e-3))) + self.times = numpy.array([self.start + (i * max(self.dt, simulator.state.dt * 1e-3)) for i in range(temp_num_t)]) + self.times = numpy.append(self.times, self.stop) + self.amplitudes = numpy.zeros(0) + + def _compute(self, time): + return self.mean + self.stdev * numpy.random.randn() diff --git a/pyNN/brian2/standardmodels/synapses.py b/pyNN/brian2/standardmodels/synapses.py new file mode 100644 index 000000000..338c73bd1 --- /dev/null +++ b/pyNN/brian2/standardmodels/synapses.py @@ -0,0 +1,189 @@ +# encoding: utf-8 +""" +Standard cells for the Brian2 module. + +:copyright: Copyright 2006-2016 by the PyNN team, see AUTHORS. +:license: CeCILL, see LICENSE for details. +""" + +import logging +from brian2 import ms +from pyNN.standardmodels import synapses, build_translations +from ..simulator import state + + +logger = logging.getLogger("PyNN") + + +class StaticSynapse(synapses.StaticSynapse): + __doc__ = synapses.StaticSynapse.__doc__ + eqs = """weight : %(weight_units)s""" + pre = "%(syn_var)s += weight" + post = None + initial_conditions = {} + + def __init__(self, **parameters): + super(StaticSynapse, self).__init__(**parameters) + # we have to define the translations on a per-instance basis because + # they depend on whether the synapses are current-, conductance- or voltage-based. + self.translations = build_translations( + ('weight', 'weight'), + ('delay', 'delay', lambda **P: P["delay"] * ms, lambda **P: P["delay"] / ms)) + + def _get_minimum_delay(self): + d = state.min_delay + if d == 'auto': + d = state.dt + return d + + def _set_target_type(self, weight_units): + self.translations["weight"]["forward_transform"] = lambda **P: P["weight"] * weight_units + self.translations["weight"]["reverse_transform"] = lambda **P: P["weight"] / weight_units + + +class TsodyksMarkramSynapse(synapses.TsodyksMarkramSynapse): + __doc__ = synapses.TsodyksMarkramSynapse.__doc__ + + translations = build_translations( + ('weight', 'weight'), + ('delay', 'delay', lambda **P: P["delay"] * ms, lambda **P: P["delay"] / ms), + ('U', 'U'), + ('tau_rec', 'tau_rec', lambda **P: P["tau_rec"] * ms, lambda **P: P["tau_rec"] / ms), + ('tau_facil', 'tau_facil', lambda **P: P["tau_facil"] * ms, lambda **P: P["tau_facil"] / ms), + ('tau_syn' , 'tau_syn', lambda **P: P["tau_syn"] * ms, lambda **P: P["tau_syn"] / ms) + ) + eqs = '''weight : %(weight_units)s + U : 1 + tau_syn : second + tau_rec : second + tau_facil : second + dz/dt = z/tau_rec : 1 (event-driven) + dy/dt = -y/tau_syn : 1 (event-driven) + du/dt = -u/tau_facil : 1 (event-driven) + x=1-y-z : 1 + + ''' + pre = ''' + + u += U*(1-u) + u = int(u > U)*U + int(u <= U)*u + %(syn_var)s += weight*x*u + y += x*u + + ''' + post = None + initial_conditions = {"u": 0.0, "x": 1.0, "y": 0.0, "z": 0.0} + tau_syn_var = {"excitatory": "tau_syn_E", + "inhibitory": "tau_syn_I"} + + def _get_minimum_delay(self): + d = state.min_delay + if d == 'auto': + d = state.dt + return d + + def _set_target_type(self, weight_units): + self.translations["weight"]["forward_transform"] = lambda **P: P["weight"] * weight_units + self.translations["weight"]["reverse_transform"] = lambda **P: P["weight"] / weight_units + + +class STDPMechanism(synapses.STDPMechanism): + __doc__ = synapses.STDPMechanism.__doc__ + + base_translations = build_translations( + ('weight', 'weight'), + ('delay', 'delay', lambda **P: P["delay"] * ms, lambda **P: P["delay"] / ms), + ('dendritic_delay_fraction', 'dendritic_delay_fraction', 1) + ) + eqs = """weight : %(weight_units)s + tau_plus : second + tau_minus : second + w_max : %(weight_units)s + w_min : %(weight_units)s + A_plus : 1 + A_minus : 1 + dP/dt = -P/tau_plus : 1 (event-driven) + dM/dt = -M/tau_minus : 1 (event-driven)""" # to be split among component parts + pre = """ + P += A_plus + weight = weight + w_max * M + weight = int(weight >= w_min)*weight + int(weight < w_min)*w_min + %(syn_var)s += weight + """ + post = """ + M -= A_minus + weight = weight + w_max * P + weight = int(weight > w_max)*w_max + int(weight <= w_max)*weight + """ # for consistency with NEST, the synaptic variable is only updated on a pre-synaptic spike + initial_conditions = {"M": 0.0, "P": 0.0} + + def __init__(self, timing_dependence=None, weight_dependence=None, + voltage_dependence=None, dendritic_delay_fraction=1.0, + weight=0.0, delay=None): + if dendritic_delay_fraction != 0: + raise ValueError("The pyNN.brian2 backend does not currently support " + "dendritic delays: for the purpose of STDP calculations " + "all delays are assumed to be axonal.") + # could perhaps support axonal delays using parrot neurons? + super(STDPMechanism, self).__init__(timing_dependence, weight_dependence, + voltage_dependence, dendritic_delay_fraction, + weight, delay) + + def _get_minimum_delay(self): + d = state.min_delay + if d == 'auto': + d = state.dt + return d + + def _set_target_type(self, weight_units): + self.translations["weight"]["forward_transform"] = lambda **P: P["weight"] * weight_units + self.translations["weight"]["reverse_transform"] = lambda **P: P["weight"] / weight_units + + +class AdditiveWeightDependence(synapses.AdditiveWeightDependence): + __doc__ = synapses.AdditiveWeightDependence.__doc__ + + translations = build_translations( + ('w_max', 'w_max', "w_max*weight_units", "w_max/weight_units"), + ('w_min', 'w_min', "w_min*weight_units", "w_min/weight_units"), + ) + + +class MultiplicativeWeightDependence(synapses.MultiplicativeWeightDependence): + __doc__ = synapses.MultiplicativeWeightDependence.__doc__ + + translations = build_translations( + ('w_max', 'w_max', "w_max*weight_units", "w_max/weight_units"), + ('w_min', 'w_min', "w_min*weight_units", "w_min/weight_units"), + ) + + +class AdditivePotentiationMultiplicativeDepression(synapses.AdditivePotentiationMultiplicativeDepression): + __doc__ = synapses.AdditivePotentiationMultiplicativeDepression.__doc__ + + translations = build_translations( + ('w_max', 'w_max', "w_max*weight_units", "w_max/weight_units"), + ('w_min', 'w_min', "w_min*weight_units", "w_min/weight_units"), + ) + + +class GutigWeightDependence(synapses.GutigWeightDependence): + __doc__ = synapses.GutigWeightDependence.__doc__ + + translations = build_translations( + ('w_max', 'w_max', "w_max*weight_units", "w_max/weight_units"), + ('w_min', 'w_min', "w_min*weight_units", "w_min/weight_units"), + ('mu_plus', 'mu_plus'), + ('mu_minus', 'mu_minus'), + ) + + +class SpikePairRule(synapses.SpikePairRule): + __doc__ = synapses.SpikePairRule.__doc__ + + translations = build_translations( + ('A_plus', 'A_plus'), + ('A_minus', 'A_minus'), + ('tau_plus', 'tau_plus', ms), + ('tau_minus', 'tau_minus', ms), + ) diff --git a/pyNN/common/__init__.py b/pyNN/common/__init__.py index 5ab91f8ad..cbb1f8032 100644 --- a/pyNN/common/__init__.py +++ b/pyNN/common/__init__.py @@ -17,14 +17,14 @@ PopulationView Assembly Projection - + Function-factories to generate backend-specific API functions: build_reset() build_state_queries() build_create() build_connect() build_record() - + Common implementation of API functions: set() initialize() @@ -39,7 +39,7 @@ DEFAULT_TIMESTEP DEFAULT_MIN_DELAY -:copyright: Copyright 2006-2016 by the PyNN team, see AUTHORS. +:copyright: Copyright 2006-2020 by the PyNN team, see AUTHORS. :license: CeCILL, see LICENSE for details. """ diff --git a/pyNN/common/control.py b/pyNN/common/control.py index cafe6f525..5edbe36de 100644 --- a/pyNN/common/control.py +++ b/pyNN/common/control.py @@ -8,11 +8,11 @@ is intended to be reused) * function factories for generating backend-specific API functions. -:copyright: Copyright 2006-2016 by the PyNN team, see AUTHORS. +:copyright: Copyright 2006-2020 by the PyNN team, see AUTHORS. :license: CeCILL, see LICENSE for details. """ -DEFAULT_MAX_DELAY = 10.0 +DEFAULT_MAX_DELAY = 'auto' DEFAULT_TIMESTEP = 0.1 DEFAULT_MIN_DELAY = 'auto' @@ -21,7 +21,7 @@ class BaseState(object): """Base class for simulator _State classes.""" - + def __init__(self): """Initialize the simulator.""" self.running = False @@ -35,7 +35,7 @@ def setup(timestep=DEFAULT_TIMESTEP, min_delay=DEFAULT_MIN_DELAY, """ Initialises/reinitialises the simulator. Any existing network structure is destroyed. - + `timestep`, `min_delay` and `max_delay` should all be in milliseconds. `extra_params` contains any keyword arguments that are required by a given @@ -47,7 +47,7 @@ def setup(timestep=DEFAULT_TIMESTEP, min_delay=DEFAULT_MIN_DELAY, if param in extra_params: raise Exception("%s is not a valid argument for setup()" % param) if min_delay != 'auto': - if min_delay > max_delay: + if max_delay != 'auto' and min_delay > max_delay: raise Exception("min_delay has to be less than or equal to max_delay.") if min_delay < timestep: raise Exception("min_delay (%g) must be greater than timestep (%g)" % (min_delay, timestep)) @@ -62,7 +62,7 @@ def build_run(simulator): def run_until(time_point, callbacks=None): """ Advance the simulation until `time_point` (in ms). - + `callbacks` is an optional list of callables, each of which should accept the current time as an argument, and return the next time it wishes to be called. @@ -96,7 +96,7 @@ def run_until(time_point, callbacks=None): def run(simtime, callbacks=None): """ Advance the simulation by `simtime` ms. - + `callbacks` is an optional list of callables, each of which should accept the current time as an argument, and return the next time it wishes to be called. @@ -116,8 +116,9 @@ def build_reset(simulator): def reset(annotations={}): """ Reset the time to zero, neuron membrane potentials and synaptic weights to - their initial values, and delete any recorded data. The network structure - is not changed, nor is the specification of which neurons to record from. + their initial values, and begin a new Segment for recorded data. + The network structure is not changed, nor are neuron/synapse parameters, + nor the specification of which neurons to record from. """ for recorder in simulator.state.recorders: recorder.store_to_cache(annotations) diff --git a/pyNN/common/populations.py b/pyNN/common/populations.py index c1d220184..3963c952f 100644 --- a/pyNN/common/populations.py +++ b/pyNN/common/populations.py @@ -4,7 +4,7 @@ These base classes should be sub-classed by the backend-specific classes. -:copyright: Copyright 2006-2016 by the PyNN team, see AUTHORS. +:copyright: Copyright 2006-2020 by the PyNN team, see AUTHORS. :license: CeCILL, see LICENSE for details. """ @@ -24,6 +24,7 @@ from pyNN.parameters import ParameterSpace, LazyArray, simplify as simplify_parameter_array from pyNN.recording import files + deprecated = core.deprecated logger = logging.getLogger("PyNN") @@ -229,9 +230,13 @@ def gen(i): return gen def _get_cell_initial_value(self, id, variable): - assert isinstance(self.initial_values[variable], LazyArray) - index = self.id_to_local_index(id) - return self.initial_values[variable][index] + if variable in self.initial_values: + assert isinstance(self.initial_values[variable], LazyArray) + index = self.id_to_local_index(id) + return self.initial_values[variable][index] + else: + logger.warning("Variable '{}' is not in initial values, returning 0.0".format(variable)) + return 0.0 def _set_cell_initial_value(self, id, variable, value): assert isinstance(self.initial_values[variable], LazyArray) @@ -266,7 +271,7 @@ def get(self, parameter_names, gather=False, simplify=True): """ Get the values of the given parameters for every local cell in the population, or, if gather=True, for all cells in the population. - + Values will be expressed in the standard PyNN units (i.e. millivolts, nanoamps, milliseconds, microsiemens, nanofarads, event per second). """ @@ -295,7 +300,7 @@ def get(self, parameter_names, gather=False, simplify=True): values = parameters[name] if isinstance(values, numpy.ndarray): all_values = {self._simulator.state.mpi_rank: values.tolist()} - local_indices = numpy.arange(self.size)[self._mask_local].tolist() + local_indices = numpy.arange(self.size,)[self._mask_local].tolist() all_indices = {self._simulator.state.mpi_rank: local_indices} all_values = recording.gather_dict(all_values) all_indices = recording.gather_dict(all_indices) @@ -418,6 +423,10 @@ def can_record(self, variable): """Determine whether `variable` can be recorded from this population.""" return self.celltype.can_record(variable) + @property + def injectable(self): + return self.celltype.injectable + def record(self, variables, to_file=None, sampling_interval=None): """ Record the specified variable or variables for all cells in the @@ -429,13 +438,13 @@ def record(self, variables, to_file=None, sampling_interval=None): If specified, `to_file` should be either a filename or a Neo IO instance and `write_data()` will be automatically called when `end()` is called. - + `sampling_interval` should be a value in milliseconds, and an integer multiple of the simulation timestep. """ if variables is None: # reset the list of things to record - # note that if record(None) is called on a view of a population - # recording will be reset for the entire population, not just the view + # note that if record(None) is called on a view of a population + # recording will be reset for the entire population, not just the view self.recorder.reset() else: logger.debug("%s.record('%s')", self.label, variables) @@ -479,7 +488,7 @@ def write_data(self, io, variables='all', gather=True, clear=False, annotations= simulated on that node. If `clear` is True, recorded data will be deleted from the `Population`. - + `annotations` should be a dict containing simple data types such as numbers and strings. The contents will be written into the output data file as metadata. @@ -533,7 +542,7 @@ def get_gsyn(self, gather=True, compatible_output=True): def get_spike_counts(self, gather=True): """ Returns a dict containing the number of spikes for each neuron. - + The dict keys are neuron IDs, not indices. """ # arguably, we should use indices @@ -822,7 +831,7 @@ def __init__(self, parent, selector, label=None): raise Exception("Boolean masks should have the size of Parent Population") self.mask = numpy.arange(len(self.parent))[self.mask] if len(numpy.unique(self.mask)) != len(self.mask): - logging.warning("PopulationView can contain only once each ID, duplicated IDs are remove") + logging.warning("PopulationView can contain only once each ID, duplicated IDs are removed") self.mask = numpy.unique(self.mask) self.all_cells = self.parent.all_cells[self.mask] # do we need to ensure this is ordered? idx = numpy.argsort(self.all_cells) @@ -915,6 +924,50 @@ def index_in_grandparent(self, indices): else: return indices_in_parent + def index_from_parent_index(self, indices): + """ + Given an index(indices) in the parent population, return + the index(indices) within this view. + """ + # todo: add check that all indices correspond to cells that are in this view + if isinstance(self.mask, slice): + start = self.mask.start or 0 + step = self.mask.step or 1 + return (indices - start) / step + else: + if isinstance(indices, int): + return np.nonzero(self.mask == indices)[0][0] + elif isinstance(indices, numpy.ndarray): + # Lots of ways to do this. Some profiling is in order. + # - https://stackoverflow.com/questions/16992713/translate-every-element-in-numpy-array-according-to-key + # - https://stackoverflow.com/questions/3403973/fast-replacement-of-values-in-a-numpy-array + # - https://stackoverflow.com/questions/13572448/replace-values-of-a-numpy-index-array-with-values-of-a-list + parent_indices = self.mask # assert mask is sorted + view_indices = numpy.arange(self.size) + index = numpy.digitize(indices, parent_indices, right=True) + return view_indices[index] + else: + raise ValueError("indices must be an integer or an array of integers") + + def __eq__(self, other): + """ + Determine whether two views are the same. + """ + return not self.__ne__(other) + + def __ne__(self, other): + """ + Determine whether two views are different. + """ + # We can't use the self.mask, as different masks can select the same cells + # (e.g. slices vs arrays), therefore we have to use self.all_cells + if isinstance(other, PopulationView): + return self.parent != other.parent or not numpy.array_equal(self.all_cells, other.all_cells) + elif isinstance(other, Population): + return self.parent != other or not numpy.array_equal(self.all_cells, other.all_cells) + else: + return True + def describe(self, template='populationview_default.txt', engine='default'): """ Returns a human-readable description of the population view. @@ -962,6 +1015,7 @@ def __init__(self, *populations, **kwargs): self._insert(p) self.label = kwargs.get('label', 'assembly%d' % Assembly._count) assert isinstance(self.label, basestring), "label must be a string or unicode" + self.annotations = {} Assembly._count += 1 def __repr__(self): @@ -1031,11 +1085,12 @@ def receptor_types(self): Return a list of receptor types that are common to all populations within the assembly. """ - rts = set(self.populations[0].celltype.receptor_types) + rts = self.populations[0].celltype.receptor_types if len(self.populations) > 1: + rts = set(rts) for p in self.populations[1:]: rts = rts.intersection(set(p.celltype.receptor_types)) - return rts + return list(rts) def find_units(self, variable): """ @@ -1135,7 +1190,7 @@ def __getitem__(self, index): pindex = boundaries[1:].searchsorted(index, side='right') return self.populations[pindex][index - boundaries[pindex]] elif isinstance(index, (slice, tuple, list, numpy.ndarray)): - if isinstance(index, slice): + if isinstance(index, slice) or (hasattr(index, "dtype") and index.dtype == bool): indices = numpy.arange(self.size)[index] else: indices = numpy.array(index) @@ -1425,6 +1480,10 @@ def inject(self, current_source): for p in self.populations: current_source.inject_into(p) + @property + def injectable(self): + return all(p.injectable for p in self.populations) + def describe(self, template='assembly_default.txt', engine='default'): """ Returns a human-readable description of the assembly. @@ -1438,3 +1497,23 @@ def describe(self, template='assembly_default.txt', engine='default'): context = {"label": self.label, "populations": [p.describe(template=None) for p in self.populations]} return descriptions.render(engine, template, context) + + def get_annotations(self, annotation_keys, simplify=True): + """ + Get the values of the given annotations for each population in the Assembly. + """ + if isinstance(annotation_keys, basestring): + annotation_keys = (annotation_keys,) + annotations = defaultdict(list) + + for key in annotation_keys: + is_array_annotation = False + for p in self.populations: + annotation = p.annotations[key] + annotations[key].append(annotation) + is_array_annotation = isinstance(annotation, numpy.ndarray) + if is_array_annotation: + annotations[key] = numpy.hstack(annotations[key]) + if simplify: + annotations[key] = simplify_parameter_array(numpy.array(annotations[key])) + return annotations diff --git a/pyNN/common/procedural_api.py b/pyNN/common/procedural_api.py index 22aa406d9..11d1ff171 100644 --- a/pyNN/common/procedural_api.py +++ b/pyNN/common/procedural_api.py @@ -2,7 +2,7 @@ """ Alternative, procedural API for creating, connecting and recording from individual neurons -:copyright: Copyright 2006-2016 by the PyNN team, see AUTHORS. +:copyright: Copyright 2006-2020 by the PyNN team, see AUTHORS. :license: CeCILL, see LICENSE for details. """ @@ -75,7 +75,7 @@ def record(variables, source, filename, sampling_interval=None, annotations=None # whether to write to a file. if not isinstance(source, (BasePopulation, Assembly)): if isinstance(source, (IDMixin)): - source = source.as_view() + source = source.as_view() source.record(variables, to_file=filename, sampling_interval=sampling_interval) if annotations: source.annotate(**annotations) diff --git a/pyNN/common/projections.py b/pyNN/common/projections.py index d3f578882..132ef4272 100644 --- a/pyNN/common/projections.py +++ b/pyNN/common/projections.py @@ -3,7 +3,7 @@ Common implementation of the Projection class, to be sub-classed by backend-specific Projection classes. -:copyright: Copyright 2006-2016 by the PyNN team, see AUTHORS. +:copyright: Copyright 2006-2020 by the PyNN team, see AUTHORS. :license: CeCILL, see LICENSE for details. """ @@ -18,6 +18,7 @@ import numpy import logging import operator +from copy import deepcopy from pyNN import recording, errors, models, core, descriptions from pyNN.parameters import ParameterSpace, LazyArray from pyNN.space import Space @@ -89,24 +90,50 @@ def __init__(self, presynaptic_neurons, postsynaptic_neurons, connector, self.pre = presynaptic_neurons # } these really self.source = source # } should be self.post = postsynaptic_neurons # } read-only - self.receptor_type = receptor_type or 'excitatory' # TO FIX: if weights are negative, default should be 'inhibitory' - if self.receptor_type not in postsynaptic_neurons.receptor_types: - valid_types = postsynaptic_neurons.receptor_types - assert len(valid_types) > 0 - errmsg = "User gave receptor_types=%s, receptor_types must be one of: '%s'" - raise errors.ConnectionError(errmsg % (self.receptor_type, "', '".join(valid_types))) self.label = label self.space = space self._connector = connector + self.synapse_type = synapse_type or self._static_synapse_class() assert isinstance(self.synapse_type, models.BaseSynapseType), \ "The synapse_type argument must be a models.BaseSynapseType object, not a %s" % type(synapse_type) + + self.receptor_type = receptor_type + if self.receptor_type in ("default", None): + self._guess_receptor_type() + if self.receptor_type not in postsynaptic_neurons.receptor_types: + valid_types = postsynaptic_neurons.receptor_types + assert len(valid_types) > 0 + errmsg = "User gave receptor_types=%s, receptor_types must be one of: '%s'" + raise errors.ConnectionError(errmsg % (self.receptor_type, "', '".join(valid_types))) + if label is None: if self.pre.label and self.post.label: self.label = u"%s→%s" % (self.pre.label, self.post.label) self.initial_values = {} + self.annotations = {} Projection._nProj += 1 + def _guess_receptor_type(self): + """ + If the receptor_type is not specified, we follow the convention that the first element + in the list of available post-synaptic receptor types is the default for excitatory + synapses and the second element is the default for inhibitory synapses. + """ + if len(self.post.receptor_types) > 1: + ps = deepcopy(self.synapse_type.parameter_space) + ps = self._handle_distance_expressions(ps) + weights = ps["weight"] + if weights.shape is None: + weights.shape = self.shape + wl = weights[self.pre.size - 1, self.post.size - 1] + if wl >= 0: + self.receptor_type = self.post.receptor_types[0] + else: + self.receptor_type = self.post.receptor_types[1] + else: + self.receptor_type = self.post.receptor_types[0] + def __len__(self): """Return the total number of local connections.""" raise NotImplementedError @@ -267,8 +294,10 @@ def get(self, attribute_names, format, gather=True, with_address=True, `format`: "list" or "array". `gather`: - if True, get connection information from all MPI nodes, otherwise - only from connections that exist in this node. + If True, node 0 gets connection information from all MPI nodes, + other nodes get information only from connections that exist in this node. + If 'all', all nodes will receive connection information from all other nodes. + If False, all nodes get only information about local connections. With list format, returns a list of tuples. By default, each tuple contains the indices of the pre- and post-synaptic cell followed by @@ -441,6 +470,9 @@ def weightHistogram(self, min=None, max=None, nbins=10): bins = numpy.linspace(min, max, nbins + 1) return numpy.histogram(weights, bins) # returns n, bins + def annotate(self, **annotations): + self.annotations.update(annotations) + def describe(self, template='projection_default.txt', engine='default'): """ Returns a human-readable description of the projection. diff --git a/pyNN/connectors.py b/pyNN/connectors.py index b1fcaeab5..5e2667e5d 100644 --- a/pyNN/connectors.py +++ b/pyNN/connectors.py @@ -4,7 +4,7 @@ Simulator modules may use these directly, or may implement their own versions for improved performance. -:copyright: Copyright 2006-2016 by the PyNN team, see AUTHORS. +:copyright: Copyright 2006-2020 by the PyNN team, see AUTHORS. :license: CeCILL, see LICENSE for details. """ @@ -15,6 +15,7 @@ from pyNN.recording import files from pyNN.parameters import LazyArray from pyNN.standardmodels import StandardSynapseType +from pyNN.common import Population import numpy try: from itertools import izip @@ -162,6 +163,7 @@ def _standard_connect(self, projection, connection_map_generator, distance_map=N """ column_indices = numpy.arange(projection.post.size) + postsynaptic_indices = projection.post.id_to_index(projection.post.all_cells) if (projection.synapse_type.native_parameters.parallel_safe or hasattr(self, "rng") and self.rng.parallel_safe): @@ -172,6 +174,7 @@ def _standard_connect(self, projection, connection_map_generator, distance_map=N logger.debug("Parallel-safe iteration.") components = ( column_indices, + postsynaptic_indices, projection.post._mask_local, connection_map_generator()) else: @@ -179,19 +182,21 @@ def _standard_connect(self, projection, connection_map_generator, distance_map=N mask = projection.post._mask_local components = ( column_indices[mask], + postsynaptic_indices[mask], repeat(True), connection_map_generator(mask)) parameter_space = self._parameters_from_synapse_type(projection, distance_map) # Loop over columns of the connection_map array (equivalent to looping over post-synaptic neurons) - for count, (col, local, source_mask) in enumerate(izip(*components)): - # `col`: index of the post-synaptic neuron + for count, (col, postsynaptic_index, local, source_mask) in enumerate(izip(*components)): + # `col`: column index + # `postsynaptic_index`: index of the post-synaptic neuron # `local`: boolean - does the post-synaptic neuron exist on this MPI node - # `source_mask` - boolean numpy array, indicating which of the pre-synaptic neurons should be connected to, - # or a single boolean, meaning connect to all/none of the pre-synaptic neurons - # It can also be an array of addresses - _proceed = False + # `source_mask`: boolean numpy array, indicating which of the pre-synaptic neurons should be connected to, + # or a single boolean, meaning connect to all/none of the pre-synaptic neurons + # It can also be an array of addresses + _proceed = False if source_mask is True or source_mask.any(): _proceed = True elif type(source_mask) == numpy.ndarray: @@ -206,7 +211,7 @@ def _standard_connect(self, projection, connection_map_generator, distance_map=N source_mask = numpy.arange(projection.pre.size, dtype=int) elif source_mask.dtype == bool: source_mask = source_mask.nonzero()[0] - + # Evaluate the lazy arrays containing the synaptic parameters connection_parameters = {} for name, map in parameter_space.items(): @@ -215,19 +220,26 @@ def _standard_connect(self, projection, connection_map_generator, distance_map=N else: connection_parameters[name] = map[source_mask, col] -# # Check that parameter values are valid -# if self.safe: -# # (might be cheaper to do the weight and delay check before evaluating the larray) -# weights = check_weights(weights, projection.synapse_type, is_conductance(projection.post.local_cells[0])) -# delays = check_delays(delays, -# projection._simulator.state.min_delay, -# projection._simulator.state.max_delay) -# # TODO: add checks for plasticity parameters + # Check that parameter values are valid + if self.safe: + # it might be cheaper to do the weight and delay check before evaluating the larray, + # however this is challenging to do if the base value is a function or if there are + # a lot of operations, so for simplicity we do the check after evaluation + syn = projection.synapse_type + if hasattr(syn, "parameter_checks"): + #raise Exception(f"{connection_parameters} {syn.parameter_checks}") + for parameter_name, check in syn.parameter_checks.items(): + native_parameter_name = syn.translations[parameter_name]["translated_name"] + # note that for delays we should also apply units scaling to the check values + # since this currently only affects Brian we can probably handle that separately + # (for weights the checks are all based on zero) + if native_parameter_name in connection_parameters: + check(connection_parameters[native_parameter_name], projection) if local: # Connect the neurons - #logger.debug("Connecting to %d from %s" % (col, source_mask)) - projection._convergent_connect(source_mask, col, **connection_parameters) + #logger.debug("Connecting to %d from %s" % (postsynaptic_index, source_mask)) + projection._convergent_connect(source_mask, postsynaptic_index, **connection_parameters) if self.callback: self.callback(count / projection.post.local_size) @@ -247,6 +259,30 @@ def _connect_with_map(self, projection, connection_map, distance_map=None): logger.debug("Connecting %s using a connection map" % projection.label) self._standard_connect(projection, connection_map.by_column, distance_map) + def _get_connection_map_no_self_connections(self, projection): + if (isinstance(projection.pre, Population) + and isinstance(projection.post, Population) + and projection.pre == projection.post): + # special case, expected to be faster than the default, below + connection_map = LazyArray(lambda i, j: i != j, shape=projection.shape) + else: + # this could be optimized by checking parent or component populations + # but should handle both views and assemblies + a = numpy.broadcast_to(projection.pre.all_cells, + (projection.post.size, projection.pre.size)).T + b = projection.post.all_cells + connection_map = LazyArray(a != b, shape=projection.shape) + return connection_map + + def _get_connection_map_no_mutual_connections(self, projection): + if (isinstance(projection.pre, Population) + and isinstance(projection.post, Population) + and projection.pre == projection.post): + connection_map = LazyArray(lambda i, j: i > j, shape=projection.shape) + else: + raise NotImplementedError("todo") + return connection_map + class AllToAllConnector(MapConnector): """ @@ -273,10 +309,10 @@ def __init__(self, allow_self_connections=True, safe=True, self.allow_self_connections = allow_self_connections def connect(self, projection): - if not self.allow_self_connections and projection.pre == projection.post: - connection_map = LazyArray(lambda i, j: i != j, shape=projection.shape) - elif self.allow_self_connections == 'NoMutual' and projection.pre == projection.post: - connection_map = LazyArray(lambda i, j: i > j, shape=projection.shape) + if not self.allow_self_connections: + connection_map = self._get_connection_map_no_self_connections(projection) + elif self.allow_self_connections == 'NoMutual': + connection_map = self._get_connection_map_no_mutual_connections(projection) else: connection_map = LazyArray(True, shape=projection.shape) self._connect_with_map(projection, connection_map) @@ -317,11 +353,12 @@ def connect(self, projection): random_map = LazyArray(RandomDistribution('uniform', (0, 1), rng=self.rng), projection.shape) connection_map = random_map < self.p_connect - if projection.pre == projection.post: - if not self.allow_self_connections: - connection_map *= LazyArray(lambda i, j: i != j, shape=projection.shape) - elif self.allow_self_connections == 'NoMutual': - connection_map *= LazyArray(lambda i, j: i > j, shape=projection.shape) + if not self.allow_self_connections: + mask = self._get_connection_map_no_self_connections(projection) + connection_map *= mask + elif self.allow_self_connections == 'NoMutual': + mask = self._get_connection_map_no_mutual_connections(projection) + connection_map *= mask self._connect_with_map(projection, connection_map) @@ -369,11 +406,12 @@ def connect(self, projection): random_map = LazyArray(RandomDistribution('uniform', (0, 1), rng=self.rng), projection.shape) connection_map = random_map < probability_map - if projection.pre == projection.post: - if not self.allow_self_connections: - connection_map *= LazyArray(lambda i, j: i != j, shape=projection.shape) - elif self.allow_self_connections == 'NoMutual': - connection_map *= LazyArray(lambda i, j: i > j, shape=projection.shape) + if not self.allow_self_connections: + mask = self._get_connection_map_no_self_connections(projection) + connection_map *= mask + elif self.allow_self_connections == 'NoMutual': + mask = self._get_connection_map_no_mutual_connections(projection) + connection_map *= mask self._connect_with_map(projection, connection_map, distance_map) @@ -419,11 +457,12 @@ def connect(self, projection): random_map = LazyArray(RandomDistribution('uniform', (0, 1), rng=self.rng), projection.shape) connection_map = random_map < probability_map - if projection.pre == projection.post: - if not self.allow_self_connections: - connection_map *= LazyArray(lambda i, j: i != j, shape=projection.shape) - elif self.allow_self_connections == 'NoMutual': - connection_map *= LazyArray(lambda i, j: i > j, shape=projection.shape) + if not self.allow_self_connections: + mask = self._get_connection_map_no_self_connections(projection) + connection_map *= mask + elif self.allow_self_connections == 'NoMutual': + mask = self._get_connection_map_no_mutual_connections(projection) + connection_map *= mask self._connect_with_map(projection, connection_map) @@ -485,18 +524,21 @@ def __init__(self, conn_list, column_names=None, safe=True, callback=None): self.conn_list = numpy.array(conn_list) if len(conn_list) > 0: n_columns = self.conn_list.shape[1] - if column_names is None: - if n_columns == 2: - self.column_names = () - elif n_columns == 4: - self.column_names = ('weight', 'delay') + if column_names is None: + if n_columns == 2: + self.column_names = () + elif n_columns == 4: + self.column_names = ('weight', 'delay') + else: + raise TypeError("Argument 'column_names' is required.") else: - raise TypeError("Argument 'column_names' is required.") + self.column_names = column_names + if n_columns != len(self.column_names) + 2: + raise ValueError("connection list has %d parameter columns, but %d column names provided." % ( + n_columns - 2, len(self.column_names))) else: - self.column_names = column_names - if n_columns != len(self.column_names) + 2: - raise ValueError("connection list has %d parameter columns, but %d column names provided." % ( - n_columns - 2, len(self.column_names))) + self.column_names = () + def connect(self, projection): """Connect-up a Projection.""" @@ -506,6 +548,8 @@ def connect(self, projection): if name not in synapse_parameter_names: raise ValueError("%s is not a valid parameter for %s" % ( name, projection.synapse_type.__class__.__name__)) + if self.conn_list.size == 0: + return if numpy.any(self.conn_list[:, 0] >= projection.pre.size): raise errors.ConnectionError("source index out of range") # need to do some profiling, to figure out the best way to do this: @@ -530,6 +574,7 @@ def connect(self, projection): for tgt, l, r in zip(local_targets, left, right): sources = self.conn_list[l:r, 0].astype(numpy.int) connection_parameters = deepcopy(projection.synapse_type.parameter_space) + connection_parameters.shape = (r - l,) for col, name in enumerate(self.column_names, 2): connection_parameters.update(**{name: self.conn_list[l:r, col]}) @@ -553,7 +598,7 @@ class FromFileConnector(FromListConnector): # columns = ["i", "j", "weight", "delay", "U", "tau_rec"] - Note that the header requires `#` at the beginning of the line. + Note that the header requires `#` at the beginning of the line. `distributed`: if this is True, then each node will read connections from a file @@ -901,10 +946,8 @@ def __init__(self, cset, safe=True, callback=None): """ Connector.__init__(self, safe=safe, callback=callback) self.cset = cset - if csa.arity(cset) == 0: - pass - else: - assert csa.arity(cset) == 2, 'must specify mask or connection-set with arity 2' + arity = csa.arity(cset) + assert arity in (0, 2), 'must specify mask or connection-set with arity 0 or 2' else: def __init__(self, cset, safe=True, callback=None): raise RuntimeError("CSAConnector not available---couldn't import csa module") @@ -1009,7 +1052,7 @@ def connect(self, projection): # Assume that targets are equally distributed over processes targets_per_process = int(len(projection.post) / num_processes) - + # Calculate the number of synapses on each process bino = RandomDistribution('binomial', [self.n, targets_per_process / len(projection.post)], @@ -1025,7 +1068,7 @@ def connect(self, projection): sum_dist += targets_per_process sum_partitions += num_conns_on_vp[k] - # Draw random sources and targets + # Draw random sources and targets connections = [[] for i in range(projection.post.size)] possible_targets = numpy.arange(projection.post.size)[projection.post._mask_local] for i in range(num_conns_on_vp[rank]): diff --git a/pyNN/core.py b/pyNN/core.py index 87eeb76f0..3c3761c0d 100644 --- a/pyNN/core.py +++ b/pyNN/core.py @@ -1,7 +1,7 @@ """ Assorted utility classes and functions. -:copyright: Copyright 2006-2016 by the PyNN team, see AUTHORS. +:copyright: Copyright 2006-2020 by the PyNN team, see AUTHORS. :license: CeCILL, see LICENSE for details. """ @@ -16,7 +16,10 @@ def is_listlike(obj): Maybe need to split into different functions, as don't always need length. """ - return isinstance(obj, (list, numpy.ndarray, tuple, set)) + return ( + isinstance(obj, (list, tuple, set)) + or (isinstance(obj, numpy.ndarray) and obj.ndim > 0) + ) def iteritems(obj): @@ -90,4 +93,3 @@ def projection(self, projection): def __call__(self, i, j): raise NotImplementedError - diff --git a/pyNN/descriptions/__init__.py b/pyNN/descriptions/__init__.py index eb0e99b4c..aca9be4de 100644 --- a/pyNN/descriptions/__init__.py +++ b/pyNN/descriptions/__init__.py @@ -18,7 +18,7 @@ descriptions.DEFAULT_TEMPLATE_ENGINE = 'jinja2' -:copyright: Copyright 2006-2016 by the PyNN team, see AUTHORS. +:copyright: Copyright 2006-2020 by the PyNN team, see AUTHORS. :license: CeCILL, see LICENSE for details. """ @@ -54,13 +54,13 @@ def render(engine, template, context): engine = TEMPLATE_ENGINES[engine] assert issubclass(engine, TemplateEngine), str(engine) return engine.render(template, context) - - + + class TemplateEngine(object): """ Base class. """ - + @classmethod def get_template(cls, template): """ @@ -68,15 +68,15 @@ def get_template(cls, template): file (relative to pyNN/descriptions/templates/) """ raise NotImplementedError() - + @classmethod def render(cls, template, context): """ Render the template with the context. - + template may be either a string containing a template or the name of a file (relative to pyNN/descriptions/templates/) - + context should be a dict. """ raise NotImplementedError() @@ -87,7 +87,7 @@ class StringTemplateEngine(TemplateEngine): Interface to the built-in string.Template template engine. """ template_dir = os.path.join(os.path.dirname(__file__), 'templates', 'string') - + @classmethod def get_template(cls, template): """ @@ -100,20 +100,20 @@ def get_template(cls, template): template = f.read() f.close() return string.Template(template) - + @classmethod def render(cls, template, context): """ Render the template with the context. - + template may be either a string containing a template or the name of a file (relative to pyNN/descriptions/templates/string/) - + context should be a dict. """ template = cls.get_template(template) return template.safe_substitute(context) - + TEMPLATE_ENGINES['string'] = StringTemplateEngine @@ -122,10 +122,10 @@ def render(cls, template, context): class Jinja2TemplateEngine(TemplateEngine): """ - Interface to the Jinja2 template engine. + Interface to the Jinja2 template engine. """ env = jinja2.Environment(loader=jinja2.PackageLoader('pyNN.descriptions', 'templates/jinja2')) - + @classmethod def get_template(cls, template): """ @@ -138,20 +138,20 @@ def get_template(cls, template): except Exception: # interpret template as a string template = cls.env.from_string(template) return template - + @classmethod def render(cls, template, context): """ Render the template with the context. - + template may be either a string containing a template or the name of a file (relative to pyNN/descriptions/templates/jinja2/) - + context should be a dict. """ template = cls.get_template(template) return template.render(context) - + TEMPLATE_ENGINES['jinja2'] = Jinja2TemplateEngine except ImportError: pass # jinja2 is an optional dependency @@ -165,7 +165,7 @@ class CheetahTemplateEngine(TemplateEngine): Interface to the Cheetah template engine. """ template_dir = os.path.join(os.path.dirname(__file__), 'templates', 'cheetah') - + @classmethod def get_template(cls, template): """ @@ -177,15 +177,15 @@ def get_template(cls, template): return Cheetah.Template.Template.compile(file=template_path) else: return Cheetah.Template.Template.compile(source=template) - + @classmethod def render(cls, template, context): """ Render the template with the context. - + template may be either a string containing a template or the name of a file (relative to pyNN/descriptions/templates/cheetah/) - + context should be a dict. """ template = cls.get_template(template)(namespaces=[context]) diff --git a/pyNN/errors.py b/pyNN/errors.py index c9b0758c5..2d058a48e 100644 --- a/pyNN/errors.py +++ b/pyNN/errors.py @@ -13,7 +13,7 @@ NotLocalError RecordingError -:copyright: Copyright 2006-2016 by the PyNN team, see AUTHORS. +:copyright: Copyright 2006-2020 by the PyNN team, see AUTHORS. :license: CeCILL, see LICENSE for details. """ diff --git a/pyNN/hardware/__init__.py b/pyNN/hardware/__init__.py index f94b9329f..755b3345a 100644 --- a/pyNN/hardware/__init__.py +++ b/pyNN/hardware/__init__.py @@ -2,15 +2,15 @@ """ hardware implementation of the PyNN API. It includes the submodules that stand on another directory. -This solution is a clean way to make the submodules (brainscales, etc...) +This solution is a clean way to make the submodules (brainscales, etc...) be indeed submodules of hardware, even if they don't stand on the same directory -:copyright: Copyright 2006-2016 by the PyNN team, see AUTHORS. +:copyright: Copyright 2006-2020 by the PyNN team, see AUTHORS. :license: CeCILL, see LICENSE for details. """ -from aux import get_path_to_analog_hardware_backend, import_all_submodules +from auxiliary import get_path_to_analog_hardware_backend, import_all_submodules __path__.append(get_path_to_analog_hardware_backend()) import_all_submodules(__path__) diff --git a/pyNN/hardware/aux.py b/pyNN/hardware/auxiliary.py similarity index 87% rename from pyNN/hardware/aux.py rename to pyNN/hardware/auxiliary.py index bf0122be4..aa9fe6caa 100644 --- a/pyNN/hardware/aux.py +++ b/pyNN/hardware/auxiliary.py @@ -2,7 +2,7 @@ """ auxiliary functions to look for the hardware backend. -:copyright: Copyright 2006-2016 by the PyNN team, see AUTHORS. +:copyright: Copyright 2006-2020 by the PyNN team, see AUTHORS. :license: CeCILL, see LICENSE for details. """ @@ -13,9 +13,9 @@ # ============================================================================== # getters # ============================================================================== - -def get_symap2ic_path(): + +def get_symap2ic_path(): if 'SYMAP2IC_PATH' not in environ: raise ImportError( """ @@ -27,22 +27,22 @@ def get_symap2ic_path(): raise ImportError( """ SYMAP2IC_PATH = %s - SYMAP2IC_PATH points to a non existing directory""" - % symap2ic_path) + SYMAP2IC_PATH points to a non existing directory""" + % symap2ic_path) return symap2ic_path - -def get_pynn_hw_path(): + +def get_pynn_hw_path(): hardware_path = environ['PYNN_HW_PATH'] if not path.exists(hardware_path): raise Exception( """ PYNN_HW_PATH = %s You are using PYNN_HW_PATH to point to the PyNN hardware backend. - But, PYNN_HW_PATH points to a non existing directory""" - % hardware_path) + But, PYNN_HW_PATH points to a non existing directory""" + % hardware_path) return hardware_path - + def get_hardware_path(symap2ic_path): hardware_path = path.join(symap2ic_path, "components/pynnhw/src/hardware") @@ -51,8 +51,8 @@ def get_hardware_path(symap2ic_path): """ hardware_path = %s It should point to the PyNN hardware backend - But, hardware_path points to a non existing directory""" - % hardware_path) + But, hardware_path points to a non existing directory""" + % hardware_path) return hardware_path # ============================================================================== @@ -62,11 +62,11 @@ def get_hardware_path(symap2ic_path): def import_module(version="brainscales"): __import__("brainscales", globals(), locals(), [], -1) - + # ============================================================================== -# Functions called by __init__.py +# Functions called by __init__.py # ============================================================================== - + def get_path_to_analog_hardware_backend(): symap2ic_path = get_symap2ic_path() @@ -74,9 +74,9 @@ def get_path_to_analog_hardware_backend(): hardware_path = get_pynn_hw_path() else: hardware_path = get_hardware_path(symap2ic_path) - + return hardware_path - + def import_all_submodules(module_path): for importer, module_name, ispkg in iter_modules(module_path): diff --git a/pyNN/mock/__init__.py b/pyNN/mock/__init__.py index 5d54dc7af..1bca2718a 100644 --- a/pyNN/mock/__init__.py +++ b/pyNN/mock/__init__.py @@ -4,7 +4,7 @@ This simulator implements the PyNN API, but generates random data rather than really running simulations. -:copyright: Copyright 2006-2016 by the PyNN team, see AUTHORS. +:copyright: Copyright 2006-2020 by the PyNN team, see AUTHORS. :license: CeCILL, see LICENSE for details. """ diff --git a/pyNN/mock/recording.py b/pyNN/mock/recording.py index a7e8a58ea..8f4666de5 100644 --- a/pyNN/mock/recording.py +++ b/pyNN/mock/recording.py @@ -10,7 +10,13 @@ def _record(self, variable, new_ids, sampling_interval=None): pass def _get_spiketimes(self, id): - return numpy.array([id, id + 5], dtype=float) % self._simulator.state.t + if hasattr(id, "__len__"): + spks = {} + for i in id: + spks[i] = numpy.array([i, i + 5], dtype=float) % self._simulator.state.t + return spks + else: + return numpy.array([id, id + 5], dtype=float) % self._simulator.state.t def _get_all_signals(self, variable, ids, clear=False): # assuming not using cvode, otherwise need to get times as well and use IrregularlySampledAnalogSignal diff --git a/pyNN/mock/standardmodels.py b/pyNN/mock/standardmodels.py index 10173b8de..1a608256a 100644 --- a/pyNN/mock/standardmodels.py +++ b/pyNN/mock/standardmodels.py @@ -2,7 +2,7 @@ """ Standard cells for the mock module. -:copyright: Copyright 2006-2016 by the PyNN team, see AUTHORS. +:copyright: Copyright 2006-2020 by the PyNN team, see AUTHORS. :license: CeCILL, see LICENSE for details. """ @@ -175,7 +175,7 @@ class EIF_cond_exp_isfa_ista(cells.EIF_cond_exp_isfa_ista): class Izhikevich(cells.Izhikevich): __doc__ = cells.Izhikevich.__doc__ - + translations = build_translations( ('a', 'a'), ('b', 'b'), @@ -185,7 +185,7 @@ class Izhikevich(cells.Izhikevich): ) standard_receptor_type = True receptor_scale = 1e-3 # synaptic weight is in mV, so need to undo usual weight scaling - + class MockCurrentSource(object): @@ -264,7 +264,7 @@ class TsodyksMarkramSynapse(synapses.TsodyksMarkramSynapse): ('x0', 'X'), ('y0', 'Y') ) - + def _get_minimum_delay(self): d = state.min_delay if d == 'auto': @@ -286,7 +286,7 @@ def _get_minimum_delay(self): if d == 'auto': d = state.dt return d - + class AdditiveWeightDependence(synapses.AdditiveWeightDependence): __doc__ = synapses.AdditiveWeightDependence.__doc__ diff --git a/pyNN/models.py b/pyNN/models.py index 52398fa85..081fb29ee 100644 --- a/pyNN/models.py +++ b/pyNN/models.py @@ -2,7 +2,7 @@ Base classes for cell and synapse models, whether "standard" (cross-simulator) or "native" (restricted to an individual simulator). -:copyright: Copyright 2006-2016 by the PyNN team, see AUTHORS. +:copyright: Copyright 2006-2020 by the PyNN team, see AUTHORS. :license: CeCILL, see LICENSE for details. """ @@ -72,7 +72,7 @@ class BaseCellType(BaseModelType): receptor_types = [] conductance_based = True # override for cells with current-based synapses injectable = True # override for spike sources - + def can_record(self, variable): return variable in self.recordable @@ -84,9 +84,9 @@ class BaseCurrentSource(BaseModelType): class BaseSynapseType(BaseModelType): """Base class for synapse model classes.""" - + connection_type = None # override to specify a non-standard connection type (i.e. GapJunctions) - has_presynaptic_components = False # override for synapses that include an active presynaptic components + has_presynaptic_components = False # override for synapses that include an active presynaptic components def __init__(self, **parameters): """ diff --git a/pyNN/moose/__init__.py b/pyNN/moose/__init__.py index ca28ff405..474df0c2f 100644 --- a/pyNN/moose/__init__.py +++ b/pyNN/moose/__init__.py @@ -4,7 +4,7 @@ Authors: Subhasis Ray and Andrew Davison -:copyright: Copyright 2006-2016 by the PyNN team, see AUTHORS. +:copyright: Copyright 2006-2020 by the PyNN team, see AUTHORS. :license: CeCILL, see LICENSE for details. """ @@ -99,7 +99,7 @@ def _get_view(self, selector, label=None): def _create_cells(self, cellclass, cellparams, n): """ Create cells in MOOSE. - + `cellclass` -- a PyNN standard cell or a native MOOSE model. `cellparams` -- a dictionary of cell parameters. `n` -- the number of cells to create @@ -162,15 +162,15 @@ def __init__(self, presynaptic_population, postsynaptic_population, self.synapse_type = target or 'excitatory' assert synapse_dynamics is None, "don't yet handle synapse dynamics" self.synapse_model = None - self.connections = [] - + self.connections = [] + # Create connections method.connect(self) - + def _divergent_connect(self, source, targets, weights, delays): """ Connect a neuron to one or more other neurons with a static connection. - + `source` -- the ID of the pre-synaptic cell. `targets` -- a list/1D array of post-synaptic cell IDs, or a single ID. `weight` -- a list/1D array of connection weights, or a single weight. @@ -183,7 +183,7 @@ def _divergent_connect(self, source, targets, weights, delays): raise errors.ConnectionError(errmsg) if not core.is_listlike(targets): targets = [targets] - + weights = weights * 1000.0 # scale units if isinstance(weights, float): weights = [weights] @@ -207,7 +207,7 @@ def _divergent_connect(self, source, targets, weights, delays): synapse_object.setWeight(index, weight) synapse_object.setDelay(index, delay) self.connections.append((source, target, index)) - + # ============================================================================== # Low-level API for creating, connecting and recording from individual neurons # ============================================================================== @@ -225,4 +225,3 @@ def _divergent_connect(self, source, targets, weights, delays): record_gsyn = common.build_record('gsyn', simulator) # ============================================================================== - diff --git a/pyNN/moose/cells.py b/pyNN/moose/cells.py index 74486a337..c1c20222e 100644 --- a/pyNN/moose/cells.py +++ b/pyNN/moose/cells.py @@ -1,6 +1,6 @@ """ -:copyright: Copyright 2006-2016 by the PyNN team, see AUTHORS. +:copyright: Copyright 2006-2020 by the PyNN team, see AUTHORS. :license: CeCILL, see LICENSE for details. """ @@ -19,14 +19,14 @@ class RecorderMixin(object): - + def record_spikes(self): self.spike_table = moose.Table("spikes", self) self.spike_table.stepMode = 4 self.spike_table.stepSize = 0.5 self.spike_table.useClock(0) self.spike_table.connect('inputRequest', self.source, 'state') - + def record_v(self): self.vmTable = moose.Table("Vm", self) self.vmTable.stepMode = 3 @@ -48,7 +48,7 @@ def record_gsyn(self, syn_name): class SingleCompHH(moose.Neutral, RecorderMixin): - + def __init__(self, path, GbarNa=20 * uS, GbarK=6 * uS, GLeak=0.01 * uS, Cm=0.2 * nF, ENa=40 * mV, EK=-90 * mV, VLeak=-65 * mV, Voff=-63 * mV, ESynE=0 * mV, ESynI=-70 * mV, tauE=2 * ms, tauI=5 * ms, inject=0 * nA, initVm=-65 * mV): @@ -80,7 +80,7 @@ def __init__(self, path, GbarNa=20 * uS, GbarK=6 * uS, GLeak=0.01 * uS, Cm=0.2 * self.esyn = moose.SynChan("excitatory", self.comp) self.esyn.Ek = ESynE - self.esyn.tau1 = tauE + self.esyn.tau1 = tauE self.isyn = moose.SynChan("inhibitory", self.comp) self.isyn.Ek = ESynI self.isyn.tau1 = tauI @@ -92,10 +92,10 @@ def __init__(self, path, GbarNa=20 * uS, GbarK=6 * uS, GLeak=0.01 * uS, Cm=0.2 * self.comp.connect("channel", self.na, "channel") self.comp.connect("channel", self.k, "channel") - + self.comp.useClock(0) self.comp.useClock(1, "init") - + self.source = moose.SpikeGen("source", self.comp) self.source.thresh = 0.0 self.source.abs_refract = 2.0 @@ -105,7 +105,7 @@ def __init__(self, path, GbarNa=20 * uS, GbarK=6 * uS, GLeak=0.01 * uS, Cm=0.2 * class StandardIF(moose.IntFire, RecorderMixin): - + def __init__(self, path, syn_shape, Cm=1.0, Em=0.0, Rm=1.0, Vr=0.0, Vt=1.0, refractT=0.0, inject=0.0, tau_e=0.001, tau_i=0.001, e_e=0.0, e_i=-0.07): @@ -117,7 +117,7 @@ def __init__(self, path, syn_shape, Cm=1.0, Em=0.0, Rm=1.0, Vr=0.0, Vt=1.0, self.Vt = Vt self.refractT = refractT self.inject = inject - + self.syn_shape = syn_shape self.esyn = moose.SynChan("%s/excitatory" % path) self.isyn = moose.SynChan("%s/inhibitory" % path) @@ -126,18 +126,18 @@ def __init__(self, path, syn_shape, Cm=1.0, Em=0.0, Rm=1.0, Vr=0.0, Vt=1.0, syn.Gbar = 1 * uS self.connect("channel", syn, "channel") syn.n_incoming_connections = 0 - + self.tau_e = tau_e self.tau_i = tau_i self.e_e = e_e self.e_i = e_i - + self.source = moose.SpikeGen("source", self) self.source.thresh = 0.0 self.source.abs_refract = 2.0 self.connect("VmSrc", self.source, "Vm") self.comp = self # for recorder mixin - + def _get_tau_e(self): return self.esyn.tau1 @@ -146,7 +146,7 @@ def _set_tau_e(self, val): if self.syn_shape == 'alpha': self.esyn.tau2 = val tau_e = property(fget=_get_tau_e, fset=_set_tau_e) - + def _get_tau_i(self): return self.isyn.tau1 @@ -155,24 +155,24 @@ def _set_tau_i(self, val): if self.syn_shape == 'alpha': self.isyn.tau2 = val tau_i = property(fget=_get_tau_i, fset=_set_tau_i) - + def _get_e_e(self): return self.esyn.Ek def _set_e_e(self, val): self.esyn.Ek = val e_e = property(fget=_get_e_e, fset=_set_e_e) - + def _get_e_i(self): return self.isyn.Ek def _set_e_i(self, val): self.isyn.Ek = val e_i = property(fget=_get_e_i, fset=_set_e_i) - + class RandomSpikeSource(moose.RandomSpike): - + def __init__(self, path, rate, start=0.0, duration=numpy.inf): moose.RandomSpike.__init__(self, path) self.minAmp = 1.0 @@ -193,12 +193,12 @@ def record_state(self): class VectorSpikeSource(moose.TimeTable): - + def __init__(self, path, spike_times): moose.TimeTable.__init__(self, path) self._save_spikes(spike_times) self.source = self - + def _save_spikes(self, spike_times): ms = 1e-3 self._spike_times = spike_times @@ -206,7 +206,7 @@ def _save_spikes(self, spike_times): uuid.uuid4().hex) numpy.savetxt(filename, spike_times * ms, "%g") self.filename = filename - + def _get_spike_times(self): return self._spike_times diff --git a/pyNN/moose/recording.py b/pyNN/moose/recording.py index c7b5af939..f8a32d985 100644 --- a/pyNN/moose/recording.py +++ b/pyNN/moose/recording.py @@ -1,6 +1,6 @@ """ -:copyright: Copyright 2006-2016 by the PyNN team, see AUTHORS. +:copyright: Copyright 2006-2020 by the PyNN team, see AUTHORS. :license: CeCILL, see LICENSE for details. """ @@ -13,7 +13,7 @@ class Recorder(recording.Recorder): """Encapsulates data and functions related to recording model variables.""" - + def _record(self, new_ids): """Add the cells in `new_ids` to the set of recorded cells.""" if self.variable == 'spikes': @@ -28,20 +28,20 @@ def _record(self, new_ids): id._cell.record_gsyn("inhibitory") else: raise Exception("Recording of %s not implemented." % self.variable) - + def _reset(self): raise NotImplementedError("TO DO") - + def _get(self, gather=False, compatible_output=True, filter=None): """Return the recorded data as a Numpy array.""" # compatible_output is not used, but is needed for compatibility with the nest module. - # Does nest really need it? + # Does nest really need it? if self.variable == 'spikes': data = numpy.empty((0, 2)) for id in self.recorded: spikes = 1e3 * numpy.array(id._cell.spike_table) # convert from s to ms spikes = spikes[spikes <= simulator.state.t + 1e-9] - if len(spikes) > 0: + if len(spikes) > 0: new_data = numpy.array([numpy.ones(spikes.shape) * id, spikes]).T data = numpy.concatenate((data, new_data)) elif self.variable == 'v': @@ -56,20 +56,20 @@ def _get(self, gather=False, compatible_output=True, filter=None): for id in self.recorded: ge = 1e6 * numpy.array(id._cell.gsyn_trace['excitatory']) # convert from S to uS gi = 1e6 * numpy.array(id._cell.gsyn_trace['inhibitory']) - t = simulator.state.dt * numpy.arange(0.0, ge.size) + t = simulator.state.dt * numpy.arange(0.0, ge.size) new_data = numpy.array([numpy.ones(ge.shape) * id, t, ge, gi]).T data = numpy.concatenate((data, new_data)) else: raise Exception("Recording of %s not implemented." % self.variable) # if gather and simulator.state.num_processes > 1: # data = recording.gather(data) - + if filter is not None: filtered_ids = self.filter_recorded(filter) mask = reduce(numpy.add, (data[:, 0] == id for id in filtered_ids)) data = data[mask] return data - + def _local_count(self, filter=None): N = {} for id in self.filter_recorded(filter): diff --git a/pyNN/moose/simulator.py b/pyNN/moose/simulator.py index 547f17b46..d9b6146d2 100644 --- a/pyNN/moose/simulator.py +++ b/pyNN/moose/simulator.py @@ -10,7 +10,7 @@ All other functions and classes are private, and should not be used by other modules. -:copyright: Copyright 2006-2016 by the PyNN team, see AUTHORS. +:copyright: Copyright 2006-2020 by the PyNN team, see AUTHORS. :license: CeCILL, see LICENSE for details. """ @@ -29,7 +29,7 @@ class _State(object): """Represent the simulator state.""" - + def __init__(self): self.ctx = moose.PyMooseBase.getContext() self.gid_counter = 0 @@ -41,7 +41,7 @@ def __init__(self): @property def t(self): return self.ctx.getCurrentTime() * in_ms - + def __get_dt(self): return self.ctx.getClocks()[0] * in_ms @@ -67,16 +67,16 @@ def reset(): class ID(int, common.IDMixin): __doc__ = common.IDMixin.__doc__ - + def __init__(self, n): """Create an ID object with numerical value `n`.""" int.__init__(n) common.IDMixin.__init__(self) - + def _build_cell(self, cell_model, cell_parameters): """ Create a cell in MOOSE, and register its global ID. - + `cell_model` -- one of the cell classes defined in the `moose.cells` module (more generally, any class that implements a certain interface, but I haven't @@ -86,14 +86,14 @@ def _build_cell(self, cell_model, cell_parameters): """ id = int(self) self._cell = cell_model("neuron%d" % id, **cell_parameters) # create the cell object - + # def get_native_parameters(self): # """Return a dictionary of parameters for the NEURON cell model.""" # D = {} # for name in self._cell.parameter_names: # D[name] = getattr(self._cell, name) # return D - + # def set_native_parameters(self, parameters): # """Set parameters of the NEURON cell model from a dictionary.""" # for name, val in parameters.items(): diff --git a/pyNN/moose/standardmodels/cells.py b/pyNN/moose/standardmodels/cells.py index cde76a3ba..e7da47450 100644 --- a/pyNN/moose/standardmodels/cells.py +++ b/pyNN/moose/standardmodels/cells.py @@ -1,6 +1,6 @@ """ -:copyright: Copyright 2006-2016 by the PyNN team, see AUTHORS. +:copyright: Copyright 2006-2020 by the PyNN team, see AUTHORS. :license: CeCILL, see LICENSE for details. """ @@ -9,11 +9,11 @@ from pyNN.moose.cells import StandardIF, SingleCompHH, RandomSpikeSource, VectorSpikeSource from pyNN.moose.cells import mV, ms, nA, uS, nF - + class IF_cond_exp(cells.IF_cond_exp): - - __doc__ = cells.IF_cond_exp.__doc__ - + + __doc__ = cells.IF_cond_exp.__doc__ + translations = build_translations( ('tau_m', 'Rm', '1e6*tau_m/cm', '1e3*Rm*Cm'), ('cm', 'Cm', nF), @@ -39,28 +39,28 @@ class IF_cond_alpha(cells.IF_cond_alpha): """Leaky integrate and fire model with fixed threshold and alpha-function- shaped post-synaptic conductance.""" - __doc__ = cells.IF_cond_alpha.__doc__ + __doc__ = cells.IF_cond_alpha.__doc__ translations = IF_cond_exp.translations model = StandardIF - + def __init__(self, parameters): cells.IF_cond_alpha.__init__(self, parameters) self.parameters['syn_shape'] = 'alpha' class HH_cond_exp(cells.HH_cond_exp): - - __doc__ = cells.HH_cond_exp.__doc__ + + __doc__ = cells.HH_cond_exp.__doc__ translations = build_translations( - ('gbar_Na', 'GbarNa', 1e-9), - ('gbar_K', 'GbarK', 1e-9), - ('g_leak', 'GLeak', 1e-9), - ('cm', 'Cm', 1e-9), + ('gbar_Na', 'GbarNa', 1e-9), + ('gbar_K', 'GbarK', 1e-9), + ('g_leak', 'GLeak', 1e-9), + ('cm', 'Cm', 1e-9), ('v_offset', 'Voff', 1e-3), ('e_rev_Na', 'ENa', 1e-3), - ('e_rev_K', 'EK', 1e-3), + ('e_rev_K', 'EK', 1e-3), ('e_rev_leak', 'VLeak', 1e-3), ('e_rev_E', 'ESynE', 1e-3), ('e_rev_I', 'ESynI', 1e-3), @@ -72,8 +72,8 @@ class HH_cond_exp(cells.HH_cond_exp): class SpikeSourcePoisson(cells.SpikeSourcePoisson): - - __doc__ = cells.SpikeSourcePoisson.__doc__ + + __doc__ = cells.SpikeSourcePoisson.__doc__ translations = build_translations( ('start', 'start'), @@ -84,17 +84,10 @@ class SpikeSourcePoisson(cells.SpikeSourcePoisson): class SpikeSourceArray(cells.SpikeSourceArray): - - __doc__ = cells.SpikeSourceArray.__doc__ + + __doc__ = cells.SpikeSourceArray.__doc__ translations = build_translations( ('spike_times', 'spike_times'), ) model = VectorSpikeSource - - - - - - - diff --git a/pyNN/multisim.py b/pyNN/multisim.py index 619d353ec..0065e5376 100644 --- a/pyNN/multisim.py +++ b/pyNN/multisim.py @@ -2,7 +2,7 @@ A small framework to make it easier to run the same model on multiple simulators. -:copyright: Copyright 2006-2016 by the PyNN team, see AUTHORS. +:copyright: Copyright 2006-2020 by the PyNN team, see AUTHORS. :license: CeCILL, see LICENSE for details. """ @@ -31,12 +31,12 @@ class MultiSim(object): Interface that runs a network model on different simulators, with each simulation in a separate process. """ - + def __init__(self, sim_list, network_model, parameters): """ Build the model defined in the class `network_model`, with parameters `parameters`, for each of the simulator modules specified in `sim_list`. - + The `network_model` constructor takes arguments `sim` and `parameters`. """ self.processes = {} @@ -51,10 +51,10 @@ def __init__(self, sim_list, network_model, parameters): self.processes[sim.__name__] = p self.task_queues[sim.__name__] = task_queue self.result_queues[sim.__name__] = result_queue - + def __iter__(self): return self.processes.itervalues() - + def __getattr__(self, name): """ Assumes `name` is a method of the `network_model` model. @@ -68,11 +68,11 @@ def iterate_over_nets(*args, **kwargs): retvals[sim_name] = self.result_queues[sim_name].get() return retvals return iterate_over_nets - + def run(self, simtime, steps=1): # , *callbacks): """ Run the model for a time `simtime` in all simulators. - + The run may be broken into a number of steps (each of equal duration). #Any functions in `callbacks` will be called after each step. """ @@ -82,7 +82,7 @@ def run(self, simtime, steps=1): # , *callbacks): self.task_queues[sim_name].put(('sim', 'run', [dt], {})) for sim_name in self.processes: t = self.result_queues[sim_name].get() - + def end(self): for sim_name in self.processes: self.task_queues[sim_name].put('STOP') diff --git a/pyNN/nemo/__init__.py b/pyNN/nemo/__init__.py index 2ce40849f..b768f4b42 100644 --- a/pyNN/nemo/__init__.py +++ b/pyNN/nemo/__init__.py @@ -2,7 +2,7 @@ """ Nemo implementation of the PyNN API. -:copyright: Copyright 2006-2016 by the PyNN team, see AUTHORS. +:copyright: Copyright 2006-2020 by the PyNN team, see AUTHORS. :license: CeCILL, see LICENSE for details. """ diff --git a/pyNN/nemo/connectors.py b/pyNN/nemo/connectors.py index ba76e1aa4..3057e048b 100644 --- a/pyNN/nemo/connectors.py +++ b/pyNN/nemo/connectors.py @@ -1,7 +1,7 @@ """ Connection method classes for the nemo module -:copyright: Copyright 2006-2016 by the PyNN team, see AUTHORS. +:copyright: Copyright 2006-2020 by the PyNN team, see AUTHORS. :license: CeCILL, see LICENSE for details. """ diff --git a/pyNN/nemo/recording.py b/pyNN/nemo/recording.py index e6b005f5c..ec0493435 100644 --- a/pyNN/nemo/recording.py +++ b/pyNN/nemo/recording.py @@ -1,6 +1,6 @@ """ -:copyright: Copyright 2006-2016 by the PyNN team, see AUTHORS. +:copyright: Copyright 2006-2020 by the PyNN team, see AUTHORS. :license: CeCILL, see LICENSE for details. """ @@ -17,7 +17,7 @@ class Recorder(recording.Recorder): """Encapsulates data and functions related to recording model variables.""" _simulator = simulator - + def __init__(self, variable, population=None, file=None): __doc__ = recording.Recorder.__doc__ recording.Recorder.__init__(self, variable, population, file) @@ -29,7 +29,7 @@ def __init__(self, variable, population=None, file=None): elif self.variable is "gsyn": self.data = numpy.empty([0, 4]) else: - raise Exception("Nemo can record only v and spikes for now !") + raise Exception("Nemo can record only v and spikes for now !") def write(self, file=None, gather=False, compatible_output=True, filter=None): recording.Recorder.write(self, file, gather, compatible_output, filter) @@ -37,29 +37,29 @@ def write(self, file=None, gather=False, compatible_output=True, filter=None): def record(self, ids): """Add the cells in `ids` to the set of recorded cells.""" self.recorded = self.recorded.union(ids) - + def _reset(self): raise NotImplementedError("Recording reset is not currently supported for pyNN.nemo") def _add_spike(self, fired, time): ids = self.recorded.intersection(fired) - self.data = numpy.vstack((self.data, numpy.array([list(ids), [time] * len(ids)]).T)) + self.data = numpy.vstack((self.data, numpy.array([list(ids), [time] * len(ids)]).T)) # To file or memory? def _add_vm(self, time): - data = self._simulator.state.sim.get_membrane_potential(list(self.recorded)) + data = self._simulator.state.sim.get_membrane_potential(list(self.recorded)) self.data = numpy.vstack((self.data, numpy.array([list(self.recorded), [time] * len(self.recorded), data]).T)) def _add_gsyn(self, time): ge = self._simulator.state.sim.get_neuron_state(list(self.recorded), 1) - gi = self._simulator.state.sim.get_neuron_state(list(self.recorded), 2) + gi = self._simulator.state.sim.get_neuron_state(list(self.recorded), 2) self.data = numpy.vstack((self.data, numpy.array([list(self.recorded), [time] * len(self.recorded), ge, gi]).T)) def _get(self, gather=False, compatible_output=True, filter=None): """Return the recorded data as a Numpy array.""" filtered_ids = self.filter_recorded(filter) if len(self.data) > 0: - mask = reduce(numpy.add, (self.data[:, 0] == id for id in filtered_ids)) + mask = reduce(numpy.add, (self.data[:, 0] == id for id in filtered_ids)) data = self.data[mask] return data else: @@ -69,7 +69,7 @@ def _local_count(self, filter=None): N = {} filtered_ids = self.filter_recorded(filter) cells = list(filtered_ids) - filtered_ids = numpy.array(cells) + filtered_ids = numpy.array(cells) for id in filtered_ids: N[id] = 0 spikes = self._get(gather=False, compatible_output=False, filter=filter) diff --git a/pyNN/nemo/simulator.py b/pyNN/nemo/simulator.py index ff0661242..7784ef2a1 100644 --- a/pyNN/nemo/simulator.py +++ b/pyNN/nemo/simulator.py @@ -15,7 +15,7 @@ Recorder ConnectionManager Connection - + Attributes: state -- a singleton instance of the _State class. recorder_list @@ -24,7 +24,7 @@ modules. -:copyright: Copyright 2006-2016 by the PyNN team, see AUTHORS. +:copyright: Copyright 2006-2020 by the PyNN team, see AUTHORS. :license: CeCILL, see LICENSE for details. """ @@ -46,11 +46,11 @@ class _State(object): """Represent the simulator state.""" - + def __init__(self, timestep, min_delay, max_delay): """Initialize the simulator.""" self.net = nemo.Network() - self.conf = nemo.Configuration() + self.conf = nemo.Configuration() self.initialized = True self.num_processes = 1 self.mpi_rank = 0 @@ -67,9 +67,9 @@ def __init__(self, timestep, min_delay, max_delay): def sim(self): if self.simulation is None: raise Exception("Simulation object is empty, run() needs to be called first") - else: + else: return self.simulation - + @property def t(self): return self.time @@ -79,13 +79,13 @@ def set_stdp(self, stdp): pre = self.stdp.timing_dependence.pre_fire(self.dt) post = self.stdp.timing_dependence.pre_fire(self.dt) pre *= self.stdp.weight_dependence.parameters['A_plus'] - post *= -self.stdp.weight_dependence.parameters['A_minus'] + post *= -self.stdp.weight_dependence.parameters['A_minus'] w_min = self.stdp.weight_dependence.parameters['w_min'] - w_max = self.stdp.weight_dependence.parameters['w_max'] + w_max = self.stdp.weight_dependence.parameters['w_max'] self.conf.set_stdp_function(pre.tolist(), post.tolist(), float(w_min), float(w_max)) def run(self, simtime): - + if self.simulation is None: self.simulation = nemo.Simulation(self.net, self.conf) @@ -94,13 +94,13 @@ def run(self, simtime): for source in spikes_array_list: if isinstance(source.celltype, SpikeSourceArray): arrays_sources.append(source) - + for t in numpy.arange(self.time, self.time + simtime, self.dt): spikes = [] currents = [] for source in arrays_sources: if source.player.next_spike == t: - source.player.update() + source.player.update() spikes += [source] for recorder in recorder_list: if recorder.variable is "spikes": @@ -112,24 +112,24 @@ def run(self, simtime): self._fired = self.sim.step(spikes, currents) self.time += self.dt - + if self.stdp: self.simulation.apply_stdp(self.dt) - + @property - def next_id(self): + def next_id(self): res = self.gid self.gid += 1 return res - + def reset(): """Reset the state of the current network to time t = 0.""" state.time = 0 state._fired = [] - + # --- For implementation of access to individual neurons' parameters ----------- - + class ID(int, common.IDMixin): __doc__ = common.IDMixin.__doc__ @@ -137,7 +137,7 @@ class ID(int, common.IDMixin): def __init__(self, n): int.__init__(n) common.IDMixin.__init__(self) - + def get_native_parameters(self): if isinstance(self.celltype, SpikeSourceArray): return {'spike_times': self.player.spike_times} @@ -145,7 +145,7 @@ def get_native_parameters(self): params = {} for key, value in self.celltype.indices.items(): if state.simulation is None: - params[key] = state.net.get_neuron_parameter(self, value) + params[key] = state.net.get_neuron_parameter(self, value) else: params[key] = state.sim.get_neuron_parameter(self, value) return params @@ -158,21 +158,21 @@ def set_native_parameters(self, parameters): indices = self.celltype.indices for key, value in parameters.items(): if state.simulation is None: - state.net.set_neuron_parameter(self, indices[key], value) + state.net.set_neuron_parameter(self, indices[key], value) else: state.sim.set_neuron_parameter(self, indices[key], value) - + def set_initial_value(self, variable, value): indices = self.celltype.initial_indices if state.simulation is None: - state.net.set_neuron_state(self, indices[variable], value) + state.net.set_neuron_state(self, indices[variable], value) else: state.sim.set_neuron_state(self, indices[variable], value) - + def get_initial_value(self, variable): index = self.celltype.initial_indices[variable] if state.simulation is None: - return state.net.get_neuron_state(self, index) + return state.net.get_neuron_state(self, index) else: return state.sim.get_neuron_state(self, index) @@ -182,14 +182,14 @@ class Connection(object): Provide an interface that allows access to the connection's weight, delay and other attributes. """ - + def __init__(self, synapse): """ Create a new connection. - + """ # the index is the nth non-zero element - self.synapse = synapse + self.synapse = synapse @property def target(self): @@ -210,10 +210,10 @@ def _set_delay(self, d): def _get_delay(self): return state.sim.get_synapse_delay([self.synapse])[0] - + weight = property(_get_weight, _set_weight) delay = property(_get_delay, _set_delay) - + # --- Initialization, and module attributes ------------------------------------ diff --git a/pyNN/nemo/standardmodels/cells.py b/pyNN/nemo/standardmodels/cells.py index 634b42243..acb012415 100644 --- a/pyNN/nemo/standardmodels/cells.py +++ b/pyNN/nemo/standardmodels/cells.py @@ -2,7 +2,7 @@ Standard cells for the nemo module -:copyright: Copyright 2006-2016 by the PyNN team, see AUTHORS. +:copyright: Copyright 2006-2020 by the PyNN team, see AUTHORS. :license: CeCILL, see LICENSE for details. """ @@ -13,8 +13,8 @@ class Izhikevich(cells.Izhikevich): - - __doc__ = cells.Izhikevich.__doc__ + + __doc__ = cells.Izhikevich.__doc__ translations = build_translations( ('a', 'a'), @@ -31,8 +31,8 @@ class Izhikevich(cells.Izhikevich): class SpikeSourcePoisson(cells.SpikeSourcePoisson): - - __doc__ = cells.SpikeSourcePoisson.__doc__ + + __doc__ = cells.SpikeSourcePoisson.__doc__ translations = build_translations( ('rate', 'rate', 0.001), @@ -47,7 +47,7 @@ class SpikeSourcePoisson(cells.SpikeSourcePoisson): class SpikeSourceArray(cells.SpikeSourceArray): - __doc__ = cells.SpikeSourceArray.__doc__ + __doc__ = cells.SpikeSourceArray.__doc__ translations = build_translations( ('spike_times', 'spike_times'), @@ -55,9 +55,9 @@ class SpikeSourceArray(cells.SpikeSourceArray): nemo_name = "Input" class spike_player(object): - + def __init__(self, spike_times=[], precision=1): - self.spike_times = precision * numpy.round(spike_times / precision) + self.spike_times = precision * numpy.round(spike_times / precision) self.spike_times = numpy.unique(numpy.sort(self.spike_times)) self.cursor = 0 self.N = len(self.spike_times) @@ -68,7 +68,7 @@ def next_spike(self): return self.spike_times[self.cursor] else: return numpy.inf - + def update(self): self.cursor += 1 @@ -79,7 +79,7 @@ def reset(self, spike_times, precision): self.cursor = 0 def __init__(self, parameters): - cells.SpikeSourceArray.__init__(self, parameters) + cells.SpikeSourceArray.__init__(self, parameters) class IF_cond_exp_gsfa_grr(ModelNotAvailable): @@ -87,19 +87,19 @@ class IF_cond_exp_gsfa_grr(ModelNotAvailable): class IF_curr_alpha(cells.IF_curr_alpha): - - __doc__ = cells.IF_curr_alpha.__doc__ + + __doc__ = cells.IF_curr_alpha.__doc__ translations = build_translations( ('v_rest', 'v_rest'), ('v_reset', 'v_reset'), - ('cm', 'cm'), + ('cm', 'cm'), ('tau_m', 'tau_m'), ('tau_refrac', 't_refrac'), ('tau_syn_E', 'tau_syn_E'), ('tau_syn_I', 'tau_syn_I'), ('v_thresh', 'v_thresh'), - ('i_offset', 'i_offset'), + ('i_offset', 'i_offset'), ) indices = { @@ -119,19 +119,19 @@ class IF_curr_alpha(cells.IF_curr_alpha): class IF_curr_exp(cells.IF_curr_exp): - - __doc__ = cells.IF_curr_exp.__doc__ + + __doc__ = cells.IF_curr_exp.__doc__ translations = build_translations( ('v_rest', 'v_rest'), ('v_reset', 'v_reset'), - ('cm', 'cm'), + ('cm', 'cm'), ('tau_m', 'tau_m'), ('tau_refrac', 't_refrac'), ('tau_syn_E', 'tau_syn_E'), ('tau_syn_I', 'tau_syn_I'), ('v_thresh', 'v_thresh'), - ('i_offset', 'i_offset'), + ('i_offset', 'i_offset'), ) indices = { @@ -152,18 +152,18 @@ class IF_curr_exp(cells.IF_curr_exp): class IF_cond_alpha(cells.IF_cond_alpha): - __doc__ = cells.IF_cond_alpha.__doc__ + __doc__ = cells.IF_cond_alpha.__doc__ translations = build_translations( ('v_rest', 'v_rest'), ('v_reset', 'v_reset'), - ('cm', 'cm'), + ('cm', 'cm'), ('tau_m', 'tau_m'), ('tau_refrac', 't_refrac'), ('tau_syn_E', 'tau_syn_E'), ('tau_syn_I', 'tau_syn_I'), ('v_thresh', 'v_thresh'), - ('i_offset', 'i_offset'), + ('i_offset', 'i_offset'), ('e_rev_E', 'e_rev_E'), ('e_rev_I', 'e_rev_I') ) @@ -187,19 +187,19 @@ class IF_cond_alpha(cells.IF_cond_alpha): class IF_cond_exp(cells.IF_cond_exp): - - __doc__ = cells.IF_cond_exp.__doc__ + + __doc__ = cells.IF_cond_exp.__doc__ translations = build_translations( ('v_rest', 'v_rest'), ('v_reset', 'v_reset'), - ('cm', 'cm'), + ('cm', 'cm'), ('tau_m', 'tau_m'), ('tau_refrac', 't_refrac'), ('tau_syn_E', 'tau_syn_E'), ('tau_syn_I', 'tau_syn_I'), ('v_thresh', 'v_thresh'), - ('i_offset', 'i_offset'), + ('i_offset', 'i_offset'), ('e_rev_E', 'e_rev_E'), ('e_rev_I', 'e_rev_I') ) @@ -231,7 +231,7 @@ class EIF_cond_alpha_isfa_ista(ModelNotAvailable): class EIF_cond_exp_isfa_ista(ModelNotAvailable): - pass + pass class HH_cond_exp(ModelNotAvailable): diff --git a/pyNN/nemo/standardmodels/electrodes.py b/pyNN/nemo/standardmodels/electrodes.py index 6dda2f3d2..e6e0a8eaa 100644 --- a/pyNN/nemo/standardmodels/electrodes.py +++ b/pyNN/nemo/standardmodels/electrodes.py @@ -8,7 +8,7 @@ ACSource -- a sine modulated current. -:copyright: Copyright 2006-2016 by the PyNN team, see AUTHORS. +:copyright: Copyright 2006-2020 by the PyNN team, see AUTHORS. :license: CeCILL, see LICENSE for details. """ @@ -24,7 +24,7 @@ class NemoCurrentSource(StandardCurrentSource): """Base class for a nest source of current to be injected into a neuron.""" - def __init__(self, parameters): + def __init__(self, parameters): super(StandardCurrentSource, self).__init__(parameters) self.set_native_parameters(parameters) @@ -36,13 +36,13 @@ def set_native_parameters(self, parameters): for key, value in parameters.items(): self.parameters[key] = value - def get_native_parameters(self): + def get_native_parameters(self): return self.parameters - + class DCSource(ModelNotAvailable): pass - + class ACSource(ModelNotAvailable): pass @@ -54,4 +54,3 @@ class StepCurrentSource(ModelNotAvailable): class NoisyCurrentSource(ModelNotAvailable): pass - diff --git a/pyNN/nemo/standardmodels/synapses.py b/pyNN/nemo/standardmodels/synapses.py index 5a6f54c8c..a0083e677 100644 --- a/pyNN/nemo/standardmodels/synapses.py +++ b/pyNN/nemo/standardmodels/synapses.py @@ -2,7 +2,7 @@ Synapse Dynamics classes for the nemo module. -:copyright: Copyright 2006-2016 by the PyNN team, see AUTHORS. +:copyright: Copyright 2006-2020 by the PyNN team, see AUTHORS. :license: CeCILL, see LICENSE for details. """ @@ -13,7 +13,7 @@ class STDPMechanism(STDPMechanism): """Specification of STDP models.""" - + def __init__(self, timing_dependence=None, weight_dependence=None, voltage_dependence=None, dendritic_delay_fraction=0.0): assert dendritic_delay_fraction == 0, """Nemo does not currently support dendritic delays: @@ -24,9 +24,9 @@ def __init__(self, timing_dependence=None, weight_dependence=None, class AdditiveWeightDependence(synapses.AdditiveWeightDependence): - + __doc__ = synapses.AdditiveWeightDependence.__doc__ - + def __init__(self, w_min=0.0, w_max=1.0, A_plus=0.01, A_minus=0.01): # units? parameters = dict(locals()) parameters.pop('self') @@ -37,7 +37,7 @@ def __init__(self, w_min=0.0, w_max=1.0, A_plus=0.01, A_minus=0.01): # units? class SpikePairRule(synapses.SpikePairRule): - __doc__ = synapses.SpikePairRule.__doc__ + __doc__ = synapses.SpikePairRule.__doc__ def __init__(self, tau_plus=20.0, tau_minus=20.0): parameters = dict(locals()) @@ -49,4 +49,3 @@ def pre_fire(self, precision=1.): def post_fire(self, precision=1.): return numpy.exp(-numpy.arange(0., 30, precision) / self.parameters['tau_minus']) - diff --git a/pyNN/nest/__init__.py b/pyNN/nest/__init__.py index 8d7f13915..1938265e1 100644 --- a/pyNN/nest/__init__.py +++ b/pyNN/nest/__init__.py @@ -2,7 +2,7 @@ """ NEST v2 implementation of the PyNN API. -:copyright: Copyright 2006-2016 by the PyNN team, see AUTHORS. +:copyright: Copyright 2006-2020 by the PyNN team, see AUTHORS. :license: CeCILL, see LICENSE for details. """ @@ -21,7 +21,7 @@ try: nest.GetStatus([numpy.int32(0)]) -except nest.NESTError: +except nest.kernel.NESTError: raise Exception("NEST built without NumPy support. Try rebuilding NEST after installing NumPy.") #if recording.MPI and (nest.Rank() != recording.mpi_comm.rank): @@ -45,14 +45,13 @@ from pyNN.nest.populations import Population, PopulationView, Assembly from pyNN.nest.projections import Projection -logger = logging.getLogger("PyNN") -if logger.level == logging.NOTSET: - logger.setLevel(logging.ERROR) +#try: +# from . import nineml +#except ImportError: +# pass # nineml is an optional dependency +from .nineml import nineml_celltype_from_model, nineml_synapse_type -try: - nest.Install('pynn_extensions') -except nest.NESTError as err: - warnings.warn("Unable to install NEST extensions. Certain models may not be available.\nFurther details: {}".format(err)) +logger = logging.getLogger("PyNN") # ============================================================================== @@ -105,7 +104,7 @@ def setup(timestep=DEFAULT_TIMESTEP, min_delay=DEFAULT_MIN_DELAY, `spike_precision`: should be "off_grid" (default) or "on_grid" `verbosity`: - INSERT DESCRIPTION OF POSSIBLE VALUES + one of: "all", "info", "deprecated", "warning", "error", "fatal" `recording_precision`: number of decimal places (OR SIGNIFICANT FIGURES?) in recorded data `threads`: @@ -120,8 +119,7 @@ def setup(timestep=DEFAULT_TIMESTEP, min_delay=DEFAULT_MIN_DELAY, max_delay = extra_params.get('max_delay', DEFAULT_MAX_DELAY) common.setup(timestep, min_delay, **extra_params) simulator.state.clear() - for key in ("verbosity", "spike_precision", "recording_precision", - "threads"): + for key in ("threads", "verbosity", "spike_precision", "recording_precision"): if key in extra_params: setattr(simulator.state, key, extra_params[key]) # set kernel RNG seeds diff --git a/pyNN/nest/cells.py b/pyNN/nest/cells.py index c53e1a95e..ec35264eb 100644 --- a/pyNN/nest/cells.py +++ b/pyNN/nest/cells.py @@ -1,7 +1,7 @@ """ Definition of NativeCellType class for NEST. -:copyright: Copyright 2006-2016 by the PyNN team, see AUTHORS. +:copyright: Copyright 2006-2020 by the PyNN team, see AUTHORS. :license: CeCILL, see LICENSE for details. """ @@ -15,6 +15,8 @@ UNITS_MAP = { 'spikes': 'ms', 'V_m': 'mV', + 'I_syn_ex': 'pA', + 'I_syn_in': 'pA' } @@ -28,7 +30,7 @@ def get_defaults(model_name): 'thread', 'vp', 'receptor_types', 'events', 'global_id', 'element_type', 'type', 'type_id', 'has_connections', 'n_synapses', 'thread_local_id', 'node_uses_wfr', 'supports_precise_spikes', - 'synaptic_elements', 'y_0', 'y_1'] + 'synaptic_elements', 'y_0', 'y_1', 'allow_offgrid_spikes', 'shift_now_spikes', 'post_trace'] default_params = {} default_initial_values = {} for name, value in defaults.items(): diff --git a/pyNN/nest/connectors.py b/pyNN/nest/connectors.py index b381b717d..c27ab9598 100644 --- a/pyNN/nest/connectors.py +++ b/pyNN/nest/connectors.py @@ -1,12 +1,13 @@ """ Connection method classes for nest -:copyright: Copyright 2006-2016 by the PyNN team, see AUTHORS. +:copyright: Copyright 2006-2020 by the PyNN team, see AUTHORS. :license: CeCILL, see LICENSE for details. """ import logging +from warnings import warn import nest try: import csa @@ -28,7 +29,8 @@ FromFileConnector, CloneConnector, ArrayConnector, - FixedTotalNumberConnector) + FixedTotalNumberConnector, + CSAConnector as DefaultCSAConnector) from .random import NativeRNG, NEST_RDEV_TYPES @@ -36,62 +38,47 @@ logger = logging.getLogger("PyNN") -if not nest.sli_func("statusdict/have_libneurosim ::"): +class CSAConnector(DefaultCSAConnector): + """ + Use the Connection-Set Algebra (Djurfeldt, 2012) to connect + cells. This is an optimized variant of CSAConnector, which + iterates the connection-set on the C++ level in NEST. - print(("CSAConnector: libneurosim support not available in NEST.\n" + - "Falling back on PyNN's default CSAConnector.\n" + - "Please re-compile NEST using --with-libneurosim=PATH")) + See Djurfeldt et al. (2014) doi:10.3389/fninf.2014.00043 for + more details about the new interface and a comparison between + this and PyNN's native CSAConnector. - from pyNN.connectors import CSAConnector + Takes any of the standard :class:`Connector` optional + arguments and, in addition: -else: + `cset`: + a connection set object. + """ - class CSAConnector(Connector): - """ - Use the Connection-Set Algebra (Djurfeldt, 2012) to connect - cells. This is an optimized variant of CSAConnector, which - iterates the connection-set on the C++ level in NEST. - - See Djurfeldt et al. (2014) doi:10.3389/fninf.2014.00043 for - more details about the new interface and a comparison between - this and PyNN's native CSAConnector. - - Takes any of the standard :class:`Connector` optional - arguments and, in addition: - - `cset`: - a connection set object. - """ - parameter_names = ('cset',) - - if haveCSA: - def __init__(self, cset, safe=True, callback=None): - """ - """ - Connector.__init__(self, safe=safe, callback=callback) - self.cset = cset - arity = csa.arity(cset) - assert arity in (0, 2), 'must specify mask or connection-set with arity 0 or 2' + def connect(self, projection): + if nest.ll_api.sli_func("statusdict/have_libneurosim ::"): + return self.cg_connect(projection) else: - def __init__(self, cset, safe=True, callback=None): - raise RuntimeError("CSAConnector not available---couldn't import csa module") + warn("Note: using the default CSAConnector. To use the accelerated version for NEST,\n" + "Please re-compile NEST using --with-libneurosim=PATH") + return super(CSAConnector, self).connect(projection) - def connect(self, projection): - """Connect-up a Projection.""" + def cg_connect(self, projection): + """Connect-up a Projection using the Connection Generator interface""" - presynaptic_cells = projection.pre.all_cells.astype('int64') - postsynaptic_cells = projection.post.all_cells.astype('int64') + presynaptic_cells = projection.pre.all_cells.astype('int64') + postsynaptic_cells = projection.post.all_cells.astype('int64') - if csa.arity(self.cset) == 2: - param_map = {'weight': 0, 'delay': 1} - nest.CGConnect(presynaptic_cells, postsynaptic_cells, self.cset, - param_map, projection.nest_synapse_model) - else: - nest.CGConnect(presynaptic_cells, postsynaptic_cells, self.cset, - model=projection.nest_synapse_model) + if csa.arity(self.cset) == 2: + param_map = {'weight': 0, 'delay': 1} + nest.CGConnect(presynaptic_cells, postsynaptic_cells, self.cset, + param_map, projection.nest_synapse_model) + else: + nest.CGConnect(presynaptic_cells, postsynaptic_cells, self.cset, + model=projection.nest_synapse_model) - projection._connections = None # reset the caching of the connection list, since this will have to be recalculated - projection._sources.extend(presynaptic_cells) + projection._connections = None # reset the caching of the connection list, since this will have to be recalculated + projection._sources.extend(presynaptic_cells) class NESTConnectorMixin(object): diff --git a/pyNN/nest/electrodes.py b/pyNN/nest/electrodes.py index 3b0f484e0..d4d971673 100644 --- a/pyNN/nest/electrodes.py +++ b/pyNN/nest/electrodes.py @@ -24,6 +24,9 @@ def __init__(self, **parameters): if parameters: self.parameter_space.update(**parameters) + self.min_delay = state.min_delay + self.timestep = state.dt # NoisyCurrentSource has a parameter called "dt", so use "timestep" here + def inject_into(self, cells): for id in cells: if id.local and not id.celltype.injectable: @@ -38,7 +41,7 @@ def _delay_correction(self, value): """ A change in a device requires a min_delay to take effect at the target """ - corrected = value - state.min_delay + corrected = value - self.min_delay # set negative times to zero if isinstance(value, numpy.ndarray): corrected = numpy.where(corrected > 0, corrected, 0.0) @@ -60,7 +63,7 @@ def _get_data(self): # To keep this consistent across simulators, we will have current # initiating at the electrode at t_start and effect on cell at next dt # This requires padding min_delay equivalent period with 0's - pad_length = int(state.min_delay/state.dt) + pad_length = int(self.min_delay/self.timestep) i_arr = numpy.insert(i_arr[:-pad_length], 0, [0]*pad_length) return t_arr, i_arr diff --git a/pyNN/nest/extensions/CMakeLists.txt b/pyNN/nest/extensions/CMakeLists.txt index df8c09cb5..b31f47b1d 100644 --- a/pyNN/nest/extensions/CMakeLists.txt +++ b/pyNN/nest/extensions/CMakeLists.txt @@ -1,11 +1,11 @@ -# :copyright: Copyright 2006-2016 by the PyNN team, see AUTHORS. +# :copyright: Copyright 2006-2020 by the PyNN team, see AUTHORS. # :license: CeCILL, see LICENSE for details. cmake_minimum_required( VERSION 2.8.12 ) # This CMakeLists.txt is configured to build your external module for NEST. # -# The configuration requires a compiled and installed NEST; if `nest-config` is +# The configuration requires a compiled and installed NEST; if `nest-config` is # not in the PATH, please specify the absolute path with `-Dwith-nest=...`. # # For more informations on how to extend and use your module see: diff --git a/pyNN/nest/extensions/pynn_extensions.cpp b/pyNN/nest/extensions/pynn_extensions.cpp index 44a3c73d3..36ae3d3c9 100644 --- a/pyNN/nest/extensions/pynn_extensions.cpp +++ b/pyNN/nest/extensions/pynn_extensions.cpp @@ -1,6 +1,6 @@ /* -:copyright: Copyright 2006-2016 by the PyNN team, see AUTHORS. +:copyright: Copyright 2006-2020 by the PyNN team, see AUTHORS. :license: CeCILL, see LICENSE for details. */ @@ -24,6 +24,8 @@ #include "kernel_manager.h" #include "model.h" #include "model_manager_impl.h" +#include "nest.h" +#include "nest_impl.h" #include "nestmodule.h" #include "target_identifier.h" @@ -110,11 +112,7 @@ pynn::PyNNExtensions::init( SLIInterpreter* i ) even further, but limits the number of available rports. Please see Kunkel et al, Front Neurofinfom 8:78 (2014), Sec 3.3.2, for details. */ - nest::kernel() - .model_manager.register_connection_model< SimpleStochasticConnection< nest:: - TargetIdentifierPtrRport > >( "simple_stochastic_synapse" ); - nest::kernel() - .model_manager.register_connection_model< StochasticStpConnection< nest:: - TargetIdentifierPtrRport > >( "stochastic_stp_synapse" ); + nest::register_connection_model< SimpleStochasticConnection >( "simple_stochastic_synapse" ); + nest::register_connection_model< StochasticStpConnection >( "stochastic_stp_synapse" ); } // PyNNExtensions::init() diff --git a/pyNN/nest/extensions/pynn_extensions.h b/pyNN/nest/extensions/pynn_extensions.h index d95667188..8c028beba 100644 --- a/pyNN/nest/extensions/pynn_extensions.h +++ b/pyNN/nest/extensions/pynn_extensions.h @@ -1,6 +1,6 @@ /* -:copyright: Copyright 2006-2016 by the PyNN team, see AUTHORS. +:copyright: Copyright 2006-2020 by the PyNN team, see AUTHORS. :license: CeCILL, see LICENSE for details. */ diff --git a/pyNN/nest/extensions/simple_stochastic_connection.h b/pyNN/nest/extensions/simple_stochastic_connection.h index 9d416eeb5..1c20b0b32 100644 --- a/pyNN/nest/extensions/simple_stochastic_connection.h +++ b/pyNN/nest/extensions/simple_stochastic_connection.h @@ -1,5 +1,5 @@ /* - * :copyright: Copyright 2006-2016 by the PyNN team, see AUTHORS. + * :copyright: Copyright 2006-2020 by the PyNN team, see AUTHORS. * :license: CeCILL, see LICENSE for details. * */ @@ -111,7 +111,6 @@ class SimpleStochasticConnection : public nest::Connection< targetidentifierT > check_connection( nest::Node& s, nest::Node& t, nest::rport receptor_type, - double, const CommonPropertiesType& ) { ConnTestDummyNode dummy_target; @@ -122,13 +121,9 @@ class SimpleStochasticConnection : public nest::Connection< targetidentifierT > * Send an event to the receiver of this connection. * @param e The event to send * @param t Thread - * @param t_lastspike Point in time of last spike sent. * @param cp Common properties to all synapses. */ - void send( nest::Event& e, - nest::thread t, - double t_lastspike, - const CommonPropertiesType& cp ); + void send( nest::Event& e, nest::thread t, const CommonPropertiesType& cp ); // The following methods contain mostly fixed code to forward the // corresponding tasks to corresponding methods in the base class and the w_ @@ -158,17 +153,15 @@ template < typename targetidentifierT > inline void SimpleStochasticConnection< targetidentifierT >::send( nest::Event& e, nest::thread t, - double t_lastspike, const CommonPropertiesType& props ) { - const int vp = ConnectionBase::get_target( t )->get_vp(); - if ( nest::kernel().rng_manager.get_rng( vp )->drand() < (1 - p_) ) // drop spike + if ( nest::kernel().rng_manager.get_rng( t )->drand() < (1 - p_) ) // drop spike return; // Even time stamp, we send the spike using the normal sending mechanism // send the spike to the target e.set_weight( weight_ ); - e.set_delay( ConnectionBase::get_delay_steps() ); + e.set_delay_steps( ConnectionBase::get_delay_steps() ); e.set_receiver( *ConnectionBase::get_target( t ) ); e.set_rport( ConnectionBase::get_rport() ); e(); // this sends the event diff --git a/pyNN/nest/extensions/sli/pynn_extensions-init.sli b/pyNN/nest/extensions/sli/pynn_extensions-init.sli index 07871fc63..9a5f13b9a 100644 --- a/pyNN/nest/extensions/sli/pynn_extensions-init.sli +++ b/pyNN/nest/extensions/sli/pynn_extensions-init.sli @@ -1,6 +1,6 @@ /* -:copyright: Copyright 2006-2016 by the PyNN team, see AUTHORS. +:copyright: Copyright 2006-2020 by the PyNN team, see AUTHORS. :license: CeCILL, see LICENSE for details. */ diff --git a/pyNN/nest/extensions/stochastic_stp_connection.h b/pyNN/nest/extensions/stochastic_stp_connection.h index 05ac0aa56..08ade7a3f 100644 --- a/pyNN/nest/extensions/stochastic_stp_connection.h +++ b/pyNN/nest/extensions/stochastic_stp_connection.h @@ -1,7 +1,7 @@ /* * stochastic_stp_connection.h * - * :copyright: Copyright 2006-2016 by the PyNN team, see AUTHORS. + * :copyright: Copyright 2006-2020 by the PyNN team, see AUTHORS. * :license: CeCILL, see LICENSE for details. * */ @@ -88,13 +88,9 @@ class StochasticStpConnection : public nest::Connection< targetidentifierT > /** * Send an event to the receiver of this connection. * \param e The event to send - * \param t_lastspike Point in time of last spike sent. * \param cp Common properties to all synapses (empty). */ - void send( nest::Event& e, - nest::thread t, - double t_lastspike, - const CommonPropertiesType& cp ); + void send( nest::Event& e, nest::thread t, const CommonPropertiesType& cp ); class ConnTestDummyNode : public nest::ConnTestDummyNodeBase { @@ -113,7 +109,6 @@ class StochasticStpConnection : public nest::Connection< targetidentifierT > check_connection( nest::Node& s, nest::Node& t, nest::rport receptor_type, - double, const CommonPropertiesType& ) { ConnTestDummyNode dummy_target; @@ -134,6 +129,7 @@ class StochasticStpConnection : public nest::Connection< targetidentifierT > double tau_fac_; //!< [ms] time constant for facilitation (F) double R_; //!< recovered state {0=unrecovered, 1=recovered} double t_surv_; //!< time since last evaluation of survival + double t_lastspike_; //!< Time point of last spike emitted }; @@ -148,16 +144,14 @@ template < typename targetidentifierT > inline void StochasticStpConnection< targetidentifierT >::send( nest::Event& e, nest::thread thr, - double t_lastspike, const CommonPropertiesType& ) { - const int vp = get_target( thr )->get_vp(); double t_spike = e.get_stamp().get_ms(); // calculation of u if ( tau_fac_ > 1.0e-10 ) { - u_ *= std::exp( -(t_spike - t_lastspike) / tau_fac_ ); + u_ *= std::exp( -(t_spike - t_lastspike_) / tau_fac_ ); u_ += U_ * ( 1 - u_ ); } else { u_ = U_; @@ -172,7 +166,7 @@ StochasticStpConnection< targetidentifierT >::send( nest::Event& e, release = false; // probability of survival of unrecovered state based on Poisson recovery with rate 1/tau_rec p_surv = std::exp( -(t_spike - t_surv_) / tau_rec_ ); - if ( nest::kernel().rng_manager.get_rng( vp )->drand() > p_surv ) { + if ( nest::kernel().rng_manager.get_rng( thr )->drand() > p_surv ) { R_ = 1; // recovered } else { t_surv_ = t_spike; // failed to recover @@ -181,7 +175,7 @@ StochasticStpConnection< targetidentifierT >::send( nest::Event& e, // check for release if ( R_ == 1 ) { - if ( nest::kernel().rng_manager.get_rng( vp )->drand() < u_ ) { // release + if ( nest::kernel().rng_manager.get_rng( thr )->drand() < u_ ) { // release release = true; R_ = 0; t_surv_ = t_spike; @@ -194,10 +188,12 @@ StochasticStpConnection< targetidentifierT >::send( nest::Event& e, { e.set_receiver( *get_target( thr ) ); e.set_weight( weight_ ); - e.set_delay( get_delay_steps() ); + e.set_delay_steps( get_delay_steps() ); e.set_rport( get_rport() ); e(); } + + t_lastspike_ = t_spike; } } // namespace diff --git a/pyNN/nest/extensions/stochastic_stp_connection_impl.h b/pyNN/nest/extensions/stochastic_stp_connection_impl.h index 1e1c41c30..49c15fd6c 100644 --- a/pyNN/nest/extensions/stochastic_stp_connection_impl.h +++ b/pyNN/nest/extensions/stochastic_stp_connection_impl.h @@ -1,7 +1,7 @@ /* * stochastic_stp_connection_impl.h * - * :copyright: Copyright 2006-2016 by the PyNN team, see AUTHORS. + * :copyright: Copyright 2006-2020 by the PyNN team, see AUTHORS. * :license: CeCILL, see LICENSE for details. * */ @@ -32,6 +32,7 @@ StochasticStpConnection< targetidentifierT >::StochasticStpConnection() , tau_fac_( 10.0 ) , R_( 1.0 ) , t_surv_( 0.0 ) + , t_lastspike_( 0.0 ) { } @@ -46,6 +47,7 @@ StochasticStpConnection< targetidentifierT >::StochasticStpConnection( , tau_fac_( rhs.tau_fac_ ) , R_( rhs.R_ ) , t_surv_( rhs.t_surv_ ) + , t_lastspike_( rhs.t_lastspike_ ) { } diff --git a/pyNN/nest/nineml.py b/pyNN/nest/nineml.py index 44fe243b4..4e09a41df 100644 --- a/pyNN/nest/nineml.py +++ b/pyNN/nest/nineml.py @@ -4,34 +4,42 @@ Requires the 9ml nestbuilder script to be on the import path. Classes: - NineMLCellType - base class for cell types, not used directly + NineMLCellType - base class for cell types, not used directly + NineMLSynapseType - base class for synapse types Functions: nineml_cell_type_from_model - return a new NineMLCellType subclass + nineml_synapse_type_from_model - return a new NineMLSynapseType subclass Constants: NEST_DIR - subdirectory to which NEST mechanisms will be written (TODO: not implemented) -:copyright: Copyright 2006-2016 by the PyNN team, see AUTHORS. +:copyright: Copyright 2006-2020 by the PyNN team, see AUTHORS. :license: CeCILL, see LICENSE for details. """ from __future__ import absolute_import # Not compatible with Python 2.4 import logging -from pyNN.nest.cells import NativeCellType +import os +from datetime import datetime +from pyNN.nest.cells import NativeCellType +# from pyNN.models import BaseSynapseType +from pyNN.nest.synapses import NativeSynapseType +# from pyNN.nest.standardmodels.synapses import SpikePairRule_ +from pyNN.nest.simulator import Connection logger = logging.getLogger("PyNN") # TODO: This should go to a evironment variable, like PYNN_9ML_DIR # and then a sub-dir for nest, neuron, etc. # but default to ~/.pyNN or something to that regard. -NEST_DIR = "nest_models" - +# NEST_DIR = "nest_models" +NEST_DIR = os.path.join(os.getcwd(), "NEST_nineml_models") class NineMLCellType(NativeCellType): - + def __init__(self, parameters): NativeCellType.__init__(self, parameters) @@ -40,7 +48,7 @@ def nineml_celltype_from_model(name, nineml_model, synapse_components): """ Return a new NineMLCellType subclass from a NineML model. """ - + dct = {'nineml_model': nineml_model, 'synapse_components': synapse_components} return _nest_build_nineml_celltype(name, (NineMLCellType,), dct) @@ -52,7 +60,7 @@ class _nest_build_nineml_celltype(type): Called by nineml_celltype_from_model """ def __new__(cls, name, bases, dct): - + import nineml.abstraction as al from nineml.abstraction import flattening, writers, component_modifiers import nest @@ -67,7 +75,7 @@ def __new__(cls, name, bases, dct): flat_component = nineml_model else: flat_component = flattening.flatten(nineml_model, name) - + # Make the substitutions: flat_component.backsub_all() #flat_component.backsub_aliases() @@ -101,7 +109,7 @@ def __new__(cls, name, bases, dct): #default_values = ModelToSingleComponentReducer.flatten_namespace_dict( parameters ) dct["default_parameters"] = dict((p.name, 1.0) for p in flat_component.parameters) dct["default_initial_values"] = dict((s.name, 0.0) for s in flat_component.state_variables) - dct["synapse_types"] = [syn.namespace for syn in synapse_components] + dct["synapse_types"] = [syn.namespace for syn in synapse_components] dct["standard_receptor_type"] = (dct["synapse_types"] == ('excitatory', 'inhibitory')) dct["injectable"] = True # need to determine this. How?? dct["conductance_based"] = True # how to determine this?? @@ -112,10 +120,10 @@ def __new__(cls, name, bases, dct): dct["recordable"] = [port.name for port in flat_component.analog_ports] + ['spikes', 'regime'] # TODO bindings -> alias and support recording of them in nest template #+ [binding.name for binding in flat_component.bindings] - + dct["weight_variables"] = dict([(syn.namespace, syn.namespace + '_' + syn.weight_connector) for syn in synapse_components]) - + logger.debug("Creating class '%s' with bases %s and dictionary %s" % (name, bases, dct)) # TODO: UL configuration of initial regime. @@ -131,5 +139,97 @@ def __new__(cls, name, bases, dct): ) nfb.compile_files() nest.Install('mymodule') - + + return type.__new__(cls, name, bases, dct) + + +class NineMLSynapseType(NativeSynapseType): + + connection_type = Connection + presynaptic_type = None + #postsynaptic_variable = "spikes" + + @property + def native_parameters(self): + return self.parameter_space + + def get_native_names(self, *names): + return names + + def _get_minimum_delay(self): + return state.min_delay + +def nineml_synapse_type(name, nineml_model): + """ + + """ + return _nest_build_nineml_synapsetype(name, (NineMLSynapseType,), {'nineml_model': nineml_model, 'nest_name': nineml_model.name}) + +class _nest_build_nineml_synapsetype(type): + """ + Metaclass for building NineMLSynapseType subclasses. + """ + def __new__(cls, name, bases, dct): + + import pype9 + from pype9.simulate.nest import CodeGenerator + from pype9.simulate.nest.units import UnitHandler + + builder = CodeGenerator() + + # Extract attributes from dct: + model = dct['nineml_model'] + + # Calculate attributes of the new class + dct["default_parameters"] = { + "weight": 0.0, "delay": None, + "dendritic_delay_fraction": 1.0, + } + dct["default_parameters"].update((param.name, 1.0) for param in model.parameters) + dct["default_initial_values"] = dict((statevar.name, 0.0) for statevar in model.state_variables) + dct["postsynaptic_variable"] = "spikes" + dct["model"] = name + + logger.debug("Creating class '%s' with bases %s and dictionary %s" % (name, bases, dct)) + + # Now generate and compile the NEST model + all_triggers = [] + for regime in model.regimes: + for on_condition in regime.on_conditions: + if on_condition.trigger.rhs not in all_triggers: + all_triggers.append(on_condition.trigger.rhs) + + context = { + 'component_class': model, + 'all_triggers': all_triggers, + 'component_name': model.name, + 'version': pype9.__version__, + 'timestamp': datetime.now().strftime('%a %d %b %y %I:%M:%S%p'), + 'unit_handler': UnitHandler(model), + 'regime_varname': builder.REGIME_VARNAME, + 'code_gen': builder, + } + + # Render source files + nest_model_dir=os.path.join(NEST_DIR, name) + src_dir=os.path.join(nest_model_dir, 'src') + builder.clean_src_dir(src_dir=src_dir, name=name) + builder.generate_source_files(component_class=model, src_dir=src_dir) + + # Generate Makefile if it is not present + compile_dir=os.path.join(nest_model_dir,'compile') + install_dir=os.path.join(nest_model_dir,'install') + builder.clean_compile_dir(compile_dir=compile_dir) + builder.configure_build_files(name=model.name, src_dir=src_dir, + compile_dir=compile_dir, + install_dir=install_dir) + + # Compile C++ header file + builder.clean_install_dir(install_dir) + builder.compile_source_files(compile_dir=compile_dir, + component_name = model.name) + + # Load the libraries into the Python namespace + builder.load_libraries(name=model.name, url=install_dir) + return type.__new__(cls, name, bases, dct) diff --git a/pyNN/nest/populations.py b/pyNN/nest/populations.py index 20e438ad5..534797b7e 100644 --- a/pyNN/nest/populations.py +++ b/pyNN/nest/populations.py @@ -2,7 +2,7 @@ """ NEST v2 implementation of the PyNN API. -:copyright: Copyright 2006-2016 by the PyNN team, see AUTHORS. +:copyright: Copyright 2006-2020 by the PyNN team, see AUTHORS. :license: CeCILL, see LICENSE for details. """ @@ -133,7 +133,7 @@ def _create_cells(self): size=self.size) try: self.all_cells = nest.Create(nest_model, self.size, params=params) - except nest.NESTError as err: + except nest.kernel.NESTError as err: if "UnknownModelName" in err.args[0] and "cond" in err.args[0]: raise errors.InvalidModelError("%s Have you compiled NEST with the GSL (Gnu Scientific Library)?" % err) if "Spike times must be sorted in non-descending order" in err.args[0]: @@ -169,7 +169,7 @@ def _set_initial_value_array(self, variable, value): local_values = value._partially_evaluate(self._mask_local, simplify=True) try: nest.SetStatus(self.local_cells.tolist(), variable, local_values) - except nest.NESTError as e: + except nest.kernel.NESTError as e: if "Unused dictionary items" in e.args[0]: logger.warning("NEST does not allow setting an initial value for %s" % variable) # should perhaps check whether value-to-be-set is the same as current value, diff --git a/pyNN/nest/projections.py b/pyNN/nest/projections.py index 7c3cdad4b..57dc07d0a 100644 --- a/pyNN/nest/projections.py +++ b/pyNN/nest/projections.py @@ -2,7 +2,7 @@ """ NEST v2 implementation of the PyNN API. -:copyright: Copyright 2006-2016 by the PyNN team, see AUTHORS. +:copyright: Copyright 2006-2020 by the PyNN team, see AUTHORS. :license: CeCILL, see LICENSE for details. """ @@ -17,6 +17,7 @@ xrange = range from pyNN import common, errors from pyNN.space import Space +from pyNN.parameters import simplify from . import simulator from pyNN.random import RandomDistribution from .standardmodels.synapses import StaticSynapse @@ -24,7 +25,6 @@ logger = logging.getLogger("PyNN") - def listify(obj): if isinstance(obj, numpy.ndarray): return obj.astype(float).tolist() @@ -50,15 +50,12 @@ def __init__(self, presynaptic_population, postsynaptic_population, self.synapse_type._set_tau_minus(self.post.local_cells) self._sources = [] self._connections = None - # This is used to keep track of common synapse properties (to my - # knowledge they only become apparent once connections are created - # within nest --obreitwi, 13-02-14) + # This is used to keep track of common synapse properties self._common_synapse_properties = {} self._common_synapse_property_names = None # Create connections connector.connect(self) - self._set_tsodyks_params() def __getitem__(self, i): """Return the `i`th connection on the local MPI node.""" @@ -83,7 +80,7 @@ def __len__(self): @property def nest_connections(self): - if self._connections is None: + if self._connections is None or self._simulator.state.stale_connection_cache: self._sources = numpy.unique(self._sources) if self._sources.size > 0: self._connections = nest.GetConnections(self._sources.tolist(), @@ -91,6 +88,7 @@ def nest_connections(self): synapse_label=self.nest_synapse_label) else: self._connections = [] + self._simulator.state.stale_connection_cache = False return self._connections @property @@ -100,139 +98,190 @@ def connections(self): """ return (simulator.Connection(self, i) for i in range(len(self))) - def _set_tsodyks_params(self): - if 'tsodyks' in self.nest_synapse_model: - # there should be a better way to do this. - # In particular, if the synaptic time constant is changed after - # creating the Projection, tau_psc ought to be changed as well. - assert self.receptor_type in ('excitatory', 'inhibitory'), "only basic synapse types support Tsodyks-Markram connections" - logger.debug("setting tau_psc") - if len(self.nest_connections) > 0: - targets = nest.GetStatus(self.nest_connections, 'target') - if self.receptor_type == 'inhibitory': - param_name = self.post.local_cells[0].celltype.translations['tau_syn_I']['translated_name'] - if self.receptor_type == 'excitatory': - param_name = self.post.local_cells[0].celltype.translations['tau_syn_E']['translated_name'] - tau_syn = nest.GetStatus(targets, param_name) - nest.SetStatus(self.nest_connections, 'tau_psc', tau_syn) - def _connect(self, rule_params, syn_params): """ - Create connections by calling nest.Connect on the presynaptic and postsynaptic population + Create connections by calling nest. Connect on the presynaptic and postsynaptic population with the parameters provided by params. """ + if 'tsodyks' in self.nest_synapse_model: + if self.receptor_type == 'inhibitory': + param_name = self.post.local_cells[0].celltype.translations['tau_syn_I']['translated_name'] + elif self.receptor_type == 'excitatory': + param_name = self.post.local_cells[0].celltype.translations['tau_syn_E']['translated_name'] + else: + raise NotImplementedError() + syn_params.update({'tau_psc': nest.GetStatus([self.nest_connections[0,1]], param_name)}) + + syn_params.update({'synapse_label': self.nest_synapse_label}) nest.Connect(self.pre.all_cells.astype(int).tolist(), self.post.all_cells.astype(int).tolist(), rule_params, syn_params) + self._simulator.state.stale_connection_cache = True self._sources = [cid[0] for cid in nest.GetConnections(synapse_model=self.nest_synapse_model, synapse_label=self.nest_synapse_label)] + def _identify_common_synapse_properties(self): + """ + Use the connection between the sample indices to distinguish + between local and common synapse properties. + """ + sample_connection = nest.GetConnections(source=[int(self._sources[0])], + synapse_model=self.nest_synapse_model, + synapse_label=self.nest_synapse_label)[:1] + + local_parameters = nest.GetStatus(sample_connection)[0].keys() + all_parameters = nest.GetDefaults(self.nest_synapse_model).keys() + self._common_synapse_property_names = [name for name in all_parameters + if name not in local_parameters] + + def _update_syn_params(self, syn_dict, connection_parameters): + """ + Update the paramaters to be passed in the nest.Connect method with the connection + parameters specific to the synapse type. + + `syn_dict` - the dictionary to be passed to nest.Connect containing "local" parameters + `connection_parameters` - a dictionary containing all parameters (local and common) + """ + # Set connection parameters other than weight and delay + if connection_parameters: + for name, value in connection_parameters.items(): + if name not in self._common_synapse_property_names: + value = make_sli_compatible(value) + if isinstance(value, numpy.ndarray): + # the str() is to work around a bug handling unicode names in SetStatus in NEST 2.4.1 when using Python 2 + syn_dict.update({str(name):numpy.array([value.tolist()])}) + else: + syn_dict.update({str(name):value}) + return syn_dict + def _convergent_connect(self, presynaptic_indices, postsynaptic_index, **connection_parameters): """ Connect a neuron to one or more other neurons with a static connection. - `sources` -- a 1D array of pre-synaptic cell IDs - `target` -- the ID of the post-synaptic cell. - - TO UPDATE + `presynaptic_indices` - 1D array of presynaptic indices + `postsynaptic_index` - integer - the index of the postsynaptic neuron + `connection_parameters` - dict whose keys are native NEST parameter names. Values may be scalars or arrays. """ #logger.debug("Connecting to index %s from %s with %s" % (postsynaptic_index, presynaptic_indices, connection_parameters)) - presynaptic_cells = self.pre.all_cells[presynaptic_indices] + + presynaptic_cells = self.pre.all_cells[presynaptic_indices].astype(int).tolist() postsynaptic_cell = self.post[postsynaptic_index] - assert presynaptic_cells.size == presynaptic_indices.size + postsynaptic_cell_id = [int(postsynaptic_cell)] assert len(presynaptic_cells) > 0, presynaptic_cells + self._sources.extend(presynaptic_cells) + syn_dict = { + 'model': self.nest_synapse_model, + 'synapse_label': self.nest_synapse_label, + } + + # Weights require some special handling weights = connection_parameters.pop('weight') if self.receptor_type == 'inhibitory' and self.post.conductance_based: weights *= -1 # NEST wants negative values for inhibitory weights, even if these are conductances + if "stdp" in self.nest_synapse_model: + syn_dict["Wmax"] = -1.2345e6 # just some very large negative value to avoid + # NEST complaining about weight and Wmax having different signs + # (see https://github.com/NeuralEnsemble/PyNN/issues/636) + # Will be overwritten below. + connection_parameters["Wmax"] *= -1 if hasattr(self.post, "celltype") and hasattr(self.post.celltype, "receptor_scale"): # this is a bit of a hack weights *= self.post.celltype.receptor_scale # needed for the Izhikevich model - delays = connection_parameters.pop('delay') - # Create connections, with weights and delays - # Setting other connection parameters is done afterwards - if postsynaptic_cell.celltype.standard_receptor_type: - try: - if not numpy.isscalar(weights): - weights = numpy.array([weights]) - if not numpy.isscalar(delays): - delays = numpy.array([delays]) - syn_dict = {'model': self.nest_synapse_model, - 'weight': weights, 'delay': delays, - 'synapse_label': self.nest_synapse_label} - nest.Connect(presynaptic_cells.astype(int).tolist(), - [int(postsynaptic_cell)], - 'all_to_all', - syn_dict) - except nest.NESTError as e: - errmsg = "%s. presynaptic_cells=%s, postsynaptic_cell=%s, weights=%s, delays=%s, synapse model='%s'" % ( - e, presynaptic_cells, postsynaptic_cell, - weights, delays, self.nest_synapse_model) - raise errors.ConnectionError(errmsg) - else: - receptor_type = postsynaptic_cell.celltype.get_receptor_type(self.receptor_type) - if numpy.isscalar(weights): - weights = repeat(weights) - if numpy.isscalar(delays): - delays = repeat(delays) - for pre, w, d in zip(presynaptic_cells, weights, delays): - nest.Connect([pre], [postsynaptic_cell], - 'one_to_one', - {'weight': w, 'delay': d, 'receptor_type': receptor_type, - 'model': self.nest_synapse_model, - 'synapse_label': self.nest_synapse_label}) - - # Book-keeping - self._connections = None # reset the caching of the connection list, since this will have to be recalculated - self._sources.extend(presynaptic_cells) + delays = connection_parameters.pop('delay') - # Clean the connection parameters + # Clean the connection parameters by removing parameters that are + # used by PyNN but should not be passed to NEST connection_parameters.pop('tau_minus', None) # TODO: set tau_minus on the post-synaptic cells connection_parameters.pop('dendritic_delay_fraction', None) connection_parameters.pop('w_min_always_zero_in_NEST', None) - # We need to distinguish between common synapse parameters and local ones - # We just get the parameters of the first connection (is there an easier way?) - if self._common_synapse_property_names is None: - self._identify_common_synapse_properties() - - # Set connection parameters other than weight and delay - if connection_parameters: - #logger.debug(connection_parameters) - sort_indices = numpy.argsort(presynaptic_cells) - connections = nest.GetConnections(source=numpy.unique(presynaptic_cells.astype(int)).tolist(), - target=[int(postsynaptic_cell)], - synapse_model=self.nest_synapse_model, - synapse_label=self.nest_synapse_label) - for name, value in connection_parameters.items(): - value = make_sli_compatible(value) - if name not in self._common_synapse_property_names: - #logger.debug("Setting %s=%s for connections %s" % (name, value, connections)) - if isinstance(value, numpy.ndarray): - # the str() is to work around a bug handling unicode names in SetStatus in NEST 2.4.1 when using Python 2 - nest.SetStatus(connections, str(name), value[sort_indices].tolist()) + # Create connections and set parameters + try: + # nest.Connect expects a 2D array + if not numpy.isscalar(weights): + weights = numpy.array([weights]) + if not numpy.isscalar(delays): + delays = numpy.array([delays]) + syn_dict.update({'weight': weights, 'delay': delays}) + + if postsynaptic_cell.celltype.standard_receptor_type: + # For Tsodyks-Markram synapses models we set the "tau_psc" parameter to match + # the relevant "tau_syn" parameter from the post-synaptic neuron. + if 'tsodyks' in self.nest_synapse_model: + if self.receptor_type == 'inhibitory': + param_name = postsynaptic_cell.celltype.translations['tau_syn_I']['translated_name'] + elif self.receptor_type == 'excitatory': + param_name = postsynaptic_cell.celltype.translations['tau_syn_E']['translated_name'] else: - nest.SetStatus(connections, str(name), value) - else: - self._set_common_synapse_property(name, value) + raise NotImplementedError() + syn_dict["tau_psc"] = nest.GetStatus(postsynaptic_cell_id, param_name)[0] + else: + syn_dict.update( + {"receptor_type": postsynaptic_cell.celltype.get_receptor_type( + self.receptor_type)}) + + # For parameters other than weight and delay, we need to know if they are "common" + # parameters (the same for all synapses) or "local" (different synapses can have + # different values), as this affects how they are set. + # + # To introspect which parameters are common, we need an existing connection, so + # the first time we create connections we pass just the weight and delay, and set + # the other parameters later. We then get the list of common parameters and cache + # it so that in subsequent Connect() calls we can pass all of the local + # (non-common) parameters. + if self._common_synapse_property_names is None: + nest.Connect(presynaptic_cells, + postsynaptic_cell_id, + 'all_to_all', + syn_dict) + self._identify_common_synapse_properties() + + # Retrieve connections so that we can set additional + # parameters using nest.SetStatus + connections = nest.GetConnections(source=presynaptic_cells, + target=postsynaptic_cell_id, + synapse_model=self.nest_synapse_model, + synapse_label=self.nest_synapse_label) + sort_indices = numpy.argsort(presynaptic_cells) # not sure why we need to sort here + for name, value in connection_parameters.items(): + if name not in self._common_synapse_property_names: + value = make_sli_compatible(value) + if isinstance(value, numpy.ndarray): + nest.SetStatus(connections, name, value[sort_indices].tolist()) + else: + nest.SetStatus(connections, name, value) + else: + self._set_common_synapse_property(name, value) + else: + # Since we know which parameters are common, we can set the non-common + # parameters directly in the nest.Connect call + syn_dict = self._update_syn_params(syn_dict, connection_parameters) + nest.Connect(presynaptic_cells, + postsynaptic_cell_id, + 'all_to_all', + syn_dict) + # and then set the common parameters + for name, value in connection_parameters.items(): + if name in self._common_synapse_property_names: + self._set_common_synapse_property(name, value) - def _identify_common_synapse_properties(self): - """ - Use the connection between the sample indices to distinguish - between local and common synapse properties. - """ - sample_connection = nest.GetConnections(source=[int(self._sources[0])], - synapse_model=self.nest_synapse_model, - synapse_label=self.nest_synapse_label)[:1] + except nest.kernel.NESTError as e: + errmsg = "%s. presynaptic_cells=%s, postsynaptic_cell=%s, weights=%s, delays=%s, synapse model='%s'" % ( + e, presynaptic_cells, postsynaptic_cell, + weights, delays, self.nest_synapse_model) + raise errors.ConnectionError(errmsg) - local_parameters = nest.GetStatus(sample_connection)[0].keys() - all_parameters = nest.GetDefaults(self.nest_synapse_model).keys() - self._common_synapse_property_names = [name for name in all_parameters - if name not in local_parameters] + # Reset the caching of the connection list, since this will have to be recalculated + self._connections = None + self._simulator.state.stale_connection_cache = True def _set_attributes(self, parameter_space): + if "tau_minus" in parameter_space.keys() and not parameter_space["tau_minus"].is_homogeneous: + raise ValueError("tau_minus cannot be heterogeneous " + "within a single Projection with NEST.") parameter_space.evaluate(mask=(slice(None), self.post._mask_local)) # only columns for connections that exist on this machine sources = numpy.unique(self._sources).tolist() if self._common_synapse_property_names is None: @@ -248,8 +297,11 @@ def _set_attributes(self, parameter_space): for name, value in connection_parameters.items(): if name == "weight" and self.receptor_type == 'inhibitory' and self.post.conductance_based: value *= -1 # NEST uses negative values for inhibitory weights, even if these are conductances - value = make_sli_compatible(value) - if name not in self._common_synapse_property_names: + if name == "tau_minus": # set on the post-synaptic cell + nest.SetStatus(self.post.local_cells.astype(int).tolist(), + {"tau_minus": simplify(value)}) + elif name not in self._common_synapse_property_names: + value = make_sli_compatible(value) if len(source_mask) > 1: nest.SetStatus(connections, name, value[source_mask]) elif isinstance(value, numpy.ndarray): # OneToOneConnector @@ -278,9 +330,19 @@ def _set_common_synapse_property(self, name, value): " Please call sim.nest.reset() to reset " "your network and start over!".format(name)) if hasattr(value, "__len__"): - value = value[0] - self._common_synapse_properties[name] = value - nest.SetDefaults(self.nest_synapse_model, name, value) + value1 = value[0] + else: + value1 = value + self._common_synapse_properties[name] = value1 + # we delay make_sli_compatible until this late stage so that we can + # distinguish "parameter is an array consisting of scalar values" + # (one value per connection) from + # "parameter is a scalar value containing an array" + # (one value for the entire projection) + # In the latter case the value is wrapped in a Sequence object, + # which is removed by make_sli_compatible + value2 = make_sli_compatible(value1) + nest.SetDefaults(self.nest_synapse_model, name, value2) #def saveConnections(self, file, gather=True, compatible_output=True): # """ @@ -320,7 +382,8 @@ def _get_attributes_as_list(self, names): nest_names.append('target') else: nest_names.append(name) - values = numpy.array(nest.GetStatus(self.nest_connections, nest_names)) # ought to preserve int type for source, target + values = nest.GetStatus(self.nest_connections, nest_names) + values = numpy.array(values) # ought to preserve int type for source, target if 'weight' in names: # other attributes could also have scale factors - need to use translation mechanisms scale_factors = numpy.ones(len(names)) scale_factors[names.index('weight')] = 0.001 @@ -328,9 +391,9 @@ def _get_attributes_as_list(self, names): scale_factors[names.index('weight')] *= -1 # NEST uses negative values for inhibitory weights, even if these are conductances values *= scale_factors if 'presynaptic_index' in names: - values[:, names.index('presynaptic_index')] -= self.pre.first_id + values[:, names.index('presynaptic_index')] = self.pre.id_to_index(values[:, names.index('presynaptic_index')]) if 'postsynaptic_index' in names: - values[:, names.index('postsynaptic_index')] -= self.post.first_id + values[:, names.index('postsynaptic_index')] = self.post.id_to_index(values[:, names.index('postsynaptic_index')]) values = values.tolist() for i in xrange(len(values)): values[i] = tuple(values[i]) diff --git a/pyNN/nest/recording.py b/pyNN/nest/recording.py index 66bef64af..4feb98e0f 100644 --- a/pyNN/nest/recording.py +++ b/pyNN/nest/recording.py @@ -1,6 +1,6 @@ """ -:copyright: Copyright 2006-2016 by the PyNN team, see AUTHORS. +:copyright: Copyright 2006-2020 by the PyNN team, see AUTHORS. :license: CeCILL, see LICENSE for details. """ @@ -23,8 +23,8 @@ def _set_status(obj, parameters): """Wrapper around nest.SetStatus() to add a more informative error message.""" try: nest.SetStatus(obj, parameters) - except nest.hl_api.NESTError as e: - raise nest.hl_api.NESTError("%s. Parameter dictionary was: %s" % (e, parameters)) + except nest.kernel.NESTError as e: + raise nest.kernel.NESTError("%s. Parameter dictionary was: %s" % (e, parameters)) class RecordingDevice(object): @@ -57,21 +57,32 @@ def get_data(self, variable, desired_ids, clear=False): ids = events['senders'] values = events[nest_variable] * scale_factor # I'm hoping numpy optimises for the case where scale_factor = 1, otherwise should avoid this multiplication in that case data = {} - for id in desired_ids: - data[id] = values[ids == id] - if variable != 'times': + recorded_ids = set(ids) + + for id in recorded_ids: + data[id]=[] + + for id,v in zip(ids,values): + data[id].append(v) + + desired_and_existing_ids = numpy.intersect1d(numpy.array(list(recorded_ids)),numpy.array(desired_ids)) + data = {k : data[k] for k in desired_and_existing_ids} + + if variable != 'times': + for id in desired_ids: # NEST does not record values at the zeroth time step, so we # add them here. if variable not in self._initial_values: self._initial_values[variable] = {} - initial_value = self._initial_values[variable].get(id, + initial_value = self._initial_values[variable].get(int(id), id.get_initial_value(variable)) - data[id] = numpy.concatenate((numpy.hstack([initial_value]), data[id])) + data[int(id)] = [initial_value] + data.get(int(id),[]) # if `get_data()` is called in the middle of a simulation, the # value at the last time point will become the initial value for # the next time `get_data()` is called if clear: - self._initial_values[variable][id] = data[id][-1] + self._initial_values[variable][int(id)] = data[int(id)][-1] + return data @@ -163,8 +174,8 @@ def add_variable(self, variable): # device_parameters.update(to_file=True, to_memory=False) # try: # nest.SetStatus(self.device, device_parameters) -# except nest.hl_api.NESTError as e: -# raise nest.hl_api.NESTError("%s. Parameter dictionary was: %s" % (e, device_parameters)) +# except nest.kernel.NESTError as e: +# raise nest.kernel.NESTError("%s. Parameter dictionary was: %s" % (e, device_parameters)) # # self.record_from = [] # self._local_files_merged = False @@ -406,7 +417,7 @@ def _record(self, variable, new_ids, sampling_interval=None): def _get_sampling_interval(self): return nest.GetStatus(self._multimeter.device, "interval")[0] - + def _set_sampling_interval(self, value): if value is not None: nest.SetStatus(self._multimeter.device, {"interval": value}) @@ -423,13 +434,13 @@ def _reset(self): self._multimeter = Multimeter() self._spike_detector = SpikeDetector() - def _get_spiketimes(self, id): - return self._spike_detector.get_spiketimes([id])[id] # hugely inefficient - to be optimized later + def _get_spiketimes(self, ids): + return self._spike_detector.get_spiketimes(ids) # hugely inefficient - to be optimized later def _get_all_signals(self, variable, ids, clear=False): data = self._multimeter.get_data(variable, ids, clear=clear) if len(ids) > 0: - return numpy.vstack([data[i] for i in ids]).T + return numpy.array([data[i] for i in ids]).T #JACOMMENT: this is very expensive but not sure how to get rid of it else: return numpy.array([]) diff --git a/pyNN/nest/simulator.py b/pyNN/nest/simulator.py index e22f982b9..6c84d83bc 100644 --- a/pyNN/nest/simulator.py +++ b/pyNN/nest/simulator.py @@ -16,7 +16,7 @@ modules. -:copyright: Copyright 2006-2016 by the PyNN team, see AUTHORS. +:copyright: Copyright 2006-2020 by the PyNN team, see AUTHORS. :license: CeCILL, see LICENSE for details. """ @@ -43,7 +43,7 @@ def _get(self): def _set(self, val): try: nest.SetKernelStatus({name: dtype(val)}) - except nest.NESTError as e: + except nest.kernel.NESTError as e: reraise(e, "%s = %s (%s)" % (name, val, type(val))) return property(fget=_get, fset=_set) @@ -53,10 +53,15 @@ class _State(common.control.BaseState): def __init__(self): super(_State, self).__init__() + try: + nest.Install('pynn_extensions') + self.extensions_loaded = True + except nest.kernel.NESTError as err: + self.extensions_loaded = False self.initialized = False self.optimize = False self.spike_precision = "off_grid" - self.verbosity = "warning" + self.verbosity = "error" self._cache_num_processes = nest.GetKernelStatus()['num_processes'] # avoids blocking if only some nodes call num_processes # do the same for rank? # allow NEST to erase previously written files (defaut with all the other simulators) @@ -64,6 +69,7 @@ def __init__(self): self.tempdirs = [] self.recording_devices = [] self.populations = [] # needed for reset + self.stale_connection_cache = False @property def t(self): @@ -82,9 +88,13 @@ def min_delay(self): return nest.GetKernelStatus('min_delay') def set_delays(self, min_delay, max_delay): + # this assumes we never set max_delay without also setting min_delay if min_delay != 'auto': min_delay = float(min_delay) - max_delay = float(max_delay) + if max_delay == 'auto': + max_delay = 10.0 + else: + max_delay = float(max_delay) nest.SetKernelStatus({'min_delay': min_delay, 'max_delay': max_delay}) @@ -105,6 +115,7 @@ def _get_spike_precision(self): return ogs and "off_grid" or "on_grid" def _set_spike_precision(self, precision): + self._spike_precision = precision if precision == 'off_grid': nest.SetKernelStatus({'off_grid_spiking': True}) self.default_recording_precision = 15 @@ -116,7 +127,7 @@ def _set_spike_precision(self, precision): spike_precision = property(fget=_get_spike_precision, fset=_set_spike_precision) def _set_verbosity(self, verbosity): - nest.sli_run("M_%s setverbosity" % verbosity.upper()) + nest.set_verbosity('M_{}'.format(verbosity.upper())) verbosity = property(fset=_set_verbosity) def run(self, simtime): @@ -152,9 +163,11 @@ def clear(self): self.recording_devices = [] self.recorders = set() # clear the sli stack, if this is not done --> memory leak cause the stack increases - nest.sr('clear') + nest.ll_api.sr('clear') # reset the simulation kernel nest.ResetKernel() + # but this reverts some of the PyNN settings, so we have to repeat them (see NEST #716) + self.spike_precision = self._spike_precision # set tempdir tempdir = tempfile.mkdtemp() self.tempdirs.append(tempdir) # append tempdir to tempdirs list diff --git a/pyNN/nest/standardmodels/cells.py b/pyNN/nest/standardmodels/cells.py index c064125eb..a60a0520d 100644 --- a/pyNN/nest/standardmodels/cells.py +++ b/pyNN/nest/standardmodels/cells.py @@ -1,7 +1,7 @@ """ Standard cells for nest -:copyright: Copyright 2006-2016 by the PyNN team, see AUTHORS. +:copyright: Copyright 2006-2020 by the PyNN team, see AUTHORS. :license: CeCILL, see LICENSE for details. """ @@ -28,12 +28,12 @@ class IF_curr_alpha(cells.IF_curr_alpha): nest_name = {"on_grid": "iaf_psc_alpha", "off_grid": "iaf_psc_alpha"} standard_receptor_type = True - + class IF_curr_exp(cells.IF_curr_exp): - - __doc__ = cells.IF_curr_exp.__doc__ - + + __doc__ = cells.IF_curr_exp.__doc__ + translations = build_translations( ('v_rest', 'E_L'), ('v_reset', 'V_reset'), @@ -48,11 +48,11 @@ class IF_curr_exp(cells.IF_curr_exp): nest_name = {"on_grid": 'iaf_psc_exp', "off_grid": 'iaf_psc_exp_ps'} standard_receptor_type = True - + class IF_cond_alpha(cells.IF_cond_alpha): - __doc__ = cells.IF_cond_alpha.__doc__ + __doc__ = cells.IF_cond_alpha.__doc__ translations = build_translations( ('v_rest', 'E_L'), @@ -70,12 +70,12 @@ class IF_cond_alpha(cells.IF_cond_alpha): nest_name = {"on_grid": "iaf_cond_alpha", "off_grid": "iaf_cond_alpha"} standard_receptor_type = True - + class IF_cond_exp(cells.IF_cond_exp): - __doc__ = cells.IF_cond_exp.__doc__ - + __doc__ = cells.IF_cond_exp.__doc__ + translations = build_translations( ('v_rest', 'E_L'), ('v_reset', 'V_reset'), @@ -96,7 +96,7 @@ class IF_cond_exp(cells.IF_cond_exp): class IF_cond_exp_gsfa_grr(cells.IF_cond_exp_gsfa_grr): - __doc__ = cells.IF_cond_exp_gsfa_grr.__doc__ + __doc__ = cells.IF_cond_exp_gsfa_grr.__doc__ translations = build_translations( ('v_rest', 'E_L'), @@ -123,10 +123,10 @@ class IF_cond_exp_gsfa_grr(cells.IF_cond_exp_gsfa_grr): class IF_facets_hardware1(cells.IF_facets_hardware1): - - __doc__ = cells.IF_facets_hardware1.__doc__ - # in 'iaf_cond_exp', the dimension of C_m is pF, + __doc__ = cells.IF_facets_hardware1.__doc__ + + # in 'iaf_cond_exp', the dimension of C_m is pF, # while in the pyNN context, cm is given in nF translations = build_translations( ('v_reset', 'V_reset'), @@ -148,17 +148,17 @@ class IF_facets_hardware1(cells.IF_facets_hardware1): class HH_cond_exp(cells.HH_cond_exp): - - __doc__ = cells.HH_cond_exp.__doc__ - + + __doc__ = cells.HH_cond_exp.__doc__ + translations = build_translations( - ('gbar_Na', 'g_Na', 1000.0), # uS --> nS + ('gbar_Na', 'g_Na', 1000.0), # uS --> nS ('gbar_K', 'g_K', 1000.0), ('g_leak', 'g_L', 1000.0), ('cm', 'C_m', 1000.0), # nF --> pF ('v_offset', 'V_T'), ('e_rev_Na', 'E_Na'), - ('e_rev_K', 'E_K'), + ('e_rev_K', 'E_K'), ('e_rev_leak', 'E_L'), ('e_rev_E', 'E_ex'), ('e_rev_I', 'E_in'), @@ -169,15 +169,15 @@ class HH_cond_exp(cells.HH_cond_exp): nest_name = {"on_grid": "hh_cond_exp_traub", "off_grid": "hh_cond_exp_traub"} standard_receptor_type = True - - + + class EIF_cond_alpha_isfa_ista(cells.EIF_cond_alpha_isfa_ista): - __doc__ = cells.EIF_cond_alpha_isfa_ista.__doc__ + __doc__ = cells.EIF_cond_alpha_isfa_ista.__doc__ translations = build_translations( ('cm', 'C_m', 1000.0), # nF -> pF - ('tau_refrac', 't_ref'), + ('tau_refrac', 't_ref'), ('v_spike', 'V_peak'), ('v_reset', 'V_reset'), ('v_rest', 'E_L'), @@ -200,7 +200,7 @@ class EIF_cond_alpha_isfa_ista(cells.EIF_cond_alpha_isfa_ista): class SpikeSourcePoisson(cells.SpikeSourcePoisson): - __doc__ = cells.SpikeSourcePoisson.__doc__ + __doc__ = cells.SpikeSourcePoisson.__doc__ translations = build_translations( ('rate', 'rate'), @@ -264,8 +264,8 @@ class SpikeSourceGamma(cells.SpikeSourceGamma): class SpikeSourceInhGamma(cells.SpikeSourceInhGamma): - - __doc__ = cells.SpikeSourceInhGamma.__doc__ + + __doc__ = cells.SpikeSourceInhGamma.__doc__ translations = build_translations( ('a', 'a'), @@ -317,12 +317,12 @@ class SpikeSourceArray(cells.SpikeSourceArray): class EIF_cond_exp_isfa_ista(cells.EIF_cond_exp_isfa_ista): - + __doc__ = cells.EIF_cond_exp_isfa_ista.__doc__ translations = build_translations( ('cm', 'C_m', 1000.0), # nF -> pF - ('tau_refrac', 't_ref'), + ('tau_refrac', 't_ref'), ('v_spike', 'V_peak'), ('v_reset', 'V_reset'), ('v_rest', 'E_L'), @@ -345,7 +345,7 @@ class EIF_cond_exp_isfa_ista(cells.EIF_cond_exp_isfa_ista): class Izhikevich(cells.Izhikevich): __doc__ = cells.Izhikevich.__doc__ - + translations = build_translations( ('a', 'a'), ('b', 'b'), diff --git a/pyNN/nest/standardmodels/electrodes.py b/pyNN/nest/standardmodels/electrodes.py index eb0ff8c92..af2742cdc 100644 --- a/pyNN/nest/standardmodels/electrodes.py +++ b/pyNN/nest/standardmodels/electrodes.py @@ -8,7 +8,7 @@ ACSource -- a sine modulated current. -:copyright: Copyright 2006-2016 by the PyNN team, see AUTHORS. +:copyright: Copyright 2006-2020 by the PyNN team, see AUTHORS. :license: CeCILL, see LICENSE for details. """ @@ -57,7 +57,7 @@ def _delay_correction(self, value): """ A change in a device requires a min_delay to take effect at the target """ - corrected = value - state.min_delay + corrected = value - self.min_delay # set negative times to zero if isinstance(value, numpy.ndarray): corrected = numpy.where(corrected > 0, corrected, 0.0) @@ -78,29 +78,29 @@ def _phase_correction(self, start, freq, phase): def _check_step_times(self, times, amplitudes, resolution): # ensure that all time stamps are non-negative - if not (times >= 0.0).all(): + if numpy.min(times) < 0: raise ValueError("Step current cannot accept negative timestamps.") # ensure that times provided are of strictly increasing magnitudes - dt_times = numpy.diff(times) - if not all(dt_times>0.0): + if len(times)> 1 and numpy.min(numpy.diff(times)) <= 0: raise ValueError("Step current timestamps should be monotonically increasing.") # NEST specific: subtract min_delay from times (set to 0.0, if result is negative) times = self._delay_correction(times) # find the last element <= dt (we find >dt and then go one element back) # this corresponds to the first timestamp that can be used by NEST for current injection - ctr = numpy.searchsorted(times, state.dt, side="right") - 1 + ctr = numpy.searchsorted(times, resolution, side="right") - 1 if ctr >= 0: - times[ctr] = state.dt + times[ctr] = resolution times = times[ctr:] amplitudes = amplitudes[ctr:] # map timestamps to actual simulation time instants based on specified dt - for ind in range(len(times)): - times[ind] = self._round_timestamp(times[ind], resolution) + #for ind in range(len(times)): + # times[ind] = self._round_timestamp(times[ind], resolution) + times = self._round_timestamp(times,resolution) # remove duplicate timestamps, and corresponding amplitudes, after mapping step_times, step_indices = numpy.unique(times[::-1], return_index=True) step_times = step_times.tolist() step_indices = len(times)-step_indices-1 - step_amplitudes = [amplitudes[i] for i in step_indices] + step_amplitudes = amplitudes[step_indices] #[amplitudes[i] for i in step_indices] return step_times, step_amplitudes def set_native_parameters(self, parameters): @@ -110,7 +110,8 @@ def set_native_parameters(self, parameters): assert isinstance(value, Sequence) step_times = parameters["amplitude_times"].value step_amplitudes = parameters["amplitude_values"].value - step_times, step_amplitudes = self._check_step_times(step_times, step_amplitudes, state.dt) + + step_times, step_amplitudes = self._check_step_times(step_times, step_amplitudes, self.timestep) parameters["amplitude_times"].value = step_times parameters["amplitude_values"].value = step_amplitudes nest.SetStatus(self._device, {key: step_amplitudes, diff --git a/pyNN/nest/standardmodels/synapses.py b/pyNN/nest/standardmodels/synapses.py index d3e50e2c5..a812065e9 100644 --- a/pyNN/nest/standardmodels/synapses.py +++ b/pyNN/nest/standardmodels/synapses.py @@ -1,7 +1,7 @@ """ Synapse Dynamics classes for nest -:copyright: Copyright 2006-2016 by the PyNN team, see AUTHORS. +:copyright: Copyright 2006-2020 by the PyNN team, see AUTHORS. :license: CeCILL, see LICENSE for details. """ @@ -27,13 +27,13 @@ class StaticSynapse(synapses.StaticSynapse, NESTSynapseMixin): class STDPMechanism(synapses.STDPMechanism, NESTSynapseMixin): """Specification of STDP models.""" - + base_translations = build_translations( ('weight', 'weight', 1000.0), # nA->pA, uS->nS ('delay', 'delay'), ('dendritic_delay_fraction', 'dendritic_delay_fraction') ) # will be extended by translations from timing_dependence, etc. - + def __init__(self, timing_dependence=None, weight_dependence=None, voltage_dependence=None, dendritic_delay_fraction=1.0, weight=0.0, delay=None): @@ -69,7 +69,7 @@ def _get_nest_synapse_model(self): synapse_defaults.pop("dendritic_delay_fraction") synapse_defaults.pop("w_min_always_zero_in_NEST") # Tau_minus is a parameter of the post-synaptic cell, not of the connection - synapse_defaults.pop("tau_minus") + synapse_defaults.pop("tau_minus", None) synapse_defaults = make_sli_compatible(synapse_defaults) nest.SetDefaults(base_model + '_lbl', synapse_defaults) @@ -94,9 +94,9 @@ class SimpleStochasticSynapse(synapses.SimpleStochasticSynapse, NESTSynapseMixin translations = build_translations( ('weight', 'weight', 1000.0), ('delay', 'delay'), - ('p', 'p'), + ('p', 'p_transmit'), ) - nest_name = 'simple_stochastic_synapse' + nest_name = 'bernoulli_synapse' class StochasticTsodyksMarkramSynapse(synapses.StochasticTsodyksMarkramSynapse, NESTSynapseMixin): @@ -198,6 +198,29 @@ def __init__(self, w_min=0.0, w_max=1.0, mu_plus=0.5, mu_minus=0.5): synapses.GutigWeightDependence.__init__(self, w_min, w_max) +def _translate_A_minus_forwards(**parameters): + A_minus = parameters["A_minus"] + A_plus = parameters["A_plus"] + if A_plus == 0: + # can't divide by zero, and value of alpha has no + # effect (since it will be multiplied by zero in NEST) + # so we just store the provided value of A_minus + alpha = A_minus + # to-do: handle the case where A_plus is an array with some zero values + else: + alpha = A_minus / A_plus + return alpha + +def _translate_A_minus_reverse(**parameters): + alpha = parameters["alpha"] + lambda_ = parameters["lambda"] + if lambda_ == 0: + A_minus = alpha # presumed to have been stored by _translate_A_minus_forwards + else: + A_minus = alpha * lambda_ + return A_minus + + class SpikePairRule(synapses.SpikePairRule): __doc__ = synapses.SpikePairRule.__doc__ @@ -205,7 +228,48 @@ class SpikePairRule(synapses.SpikePairRule): ('tau_plus', 'tau_plus'), ('tau_minus', 'tau_minus'), # defined in post-synaptic neuron ('A_plus', 'lambda'), - ('A_minus', 'alpha', 'A_minus/A_plus', 'alpha*lambda'), + ('A_minus', 'alpha', _translate_A_minus_forwards, _translate_A_minus_reverse), ) possible_models = set(['stdp_synapse']) #,'stdp_synapse_hom']) + +class SpikePairRule_(STDPMechanism, synapses.MultiplicativeWeightDependence, synapses.SpikePairRule): + __doc__ = synapses.SpikePairRule.__doc__ + + ''' + translations = build_translations( + ('w_max', 'wmax'), + ('w_min', 'w_min_always_zero_in_NEST'), + ('tau_plus', 'tauLTP'), + ('tau_minus', 'tauLTD'), + ('A_plus', 'aLTP'), + ('A_minus', 'aLTD'), + + ) + ''' + possible_models = set(['stdp_synapse']) #,'stdp_synapse_hom']) + + def __init__(self, w_min=0.0, w_max=1.0, tau_plus=20.0, tau_minus=20.0, A_plus=0.01, A_minus=0.01, \ + dendritic_delay_fraction=1.0, weight=0.0, delay=None): + ''' + def __init__(self, wmin=0.0, wmax=1.0, tauLTP=20.0, tauLTD=20.0, aLTP=0.01, aLTD=0.01, \ + dendritic_delay_fraction=1.0, weight=0.0, delay=None): + ''' + if w_min != 0: + raise Exception("Non-zero minimum weight is not supported by NEST.") + ''' + parameters = dict(locals()) + parameters.pop('self') + super(SpikePairRule_, self).__init__(self, **parameters) + + + super(SpikePairRule_, self).__init__(w_min=wmin, w_max=wmax, tau_plus=tauLTP, tau_minus=tauLTD, A_plus=aLTP, A_minus=aLTD, \ + dendritic_delay_fraction=dendritic_delay_fraction, weight = weight, delay=delay) + ''' + STDPMechanism.__init__(self, timing_dependence=None, weight_dependence=None, \ + voltage_dependence=None, dendritic_delay_fraction=dendritic_delay_fraction, weight = weight, delay=delay) + + synapses.MultiplicativeWeightDependence.__init__(self, w_min=w_min, w_max=w_max) + + synapses.SpikePairRule.__init__(self, tau_plus=tau_plus, tau_minus=tau_minus, A_plus=A_plus, A_minus=A_minus) + # synapses.SpikePairRule.__init__(self, tau_plus=tauLTP, tau_minus=tauLTD, A_plus=aLTP, A_minus=aLTD) diff --git a/pyNN/nest/synapses.py b/pyNN/nest/synapses.py index 3909fc78b..d8de09fd3 100644 --- a/pyNN/nest/synapses.py +++ b/pyNN/nest/synapses.py @@ -1,13 +1,14 @@ """ Definition of NativeSynapseType class for NEST -:copyright: Copyright 2006-2016 by the PyNN team, see AUTHORS. +:copyright: Copyright 2006-2020 by the PyNN team, see AUTHORS. :license: CeCILL, see LICENSE for details. """ import nest from pyNN.models import BaseSynapseType +from pyNN.errors import NoModelAvailableError from .simulator import state from .conversion import make_pynn_compatible, make_sli_compatible @@ -20,7 +21,8 @@ def get_synapse_defaults(model_name): 'num_connectors', 'receptor_type', 'synapsemodel', 'property_object', 'element_type', 'type', 'sizeof', 'has_delay', 'synapse_model', 'requires_symmetric', - 'weight_recorder'] + 'weight_recorder', 'init_flag', 'next_readout_time', + 'synapse_id'] default_params = {} for name, value in defaults.items(): if name not in ignore: @@ -39,7 +41,15 @@ def _get_nest_synapse_model(self): synapse_defaults[name] = value.evaluate(simplify=True) synapse_defaults = make_sli_compatible(synapse_defaults) synapse_defaults.pop("tau_minus", None) - nest.SetDefaults(self.nest_name + '_lbl', synapse_defaults) + try: + nest.SetDefaults(self.nest_name + '_lbl', synapse_defaults) + except nest.kernel.NESTError as err: + if not state.extensions_loaded: + raise NoModelAvailableError( + "{self.__class__.__name__} is not available." + "There was a problem loading NEST extensions".format(self=self) + ) + raise return self.nest_name + '_lbl' def _get_minimum_delay(self): diff --git a/pyNN/network.py b/pyNN/network.py new file mode 100644 index 000000000..2d7cd2a1c --- /dev/null +++ b/pyNN/network.py @@ -0,0 +1,108 @@ +""" + + +""" + +import sys +import inspect +from itertools import chain +try: + basestring +except NameError: + basestring = str +from neo.io import get_io +from pyNN.common import Population, PopulationView, Projection, Assembly + + +class Network(object): + """ + docstring + """ + + def __init__(self, *components): + self._populations = set([]) + self._views = set([]) + self._assemblies = set([]) + self._projections = set([]) + self.add(*components) + + @property + def populations(self): + return frozenset(self._populations) + + @property + def views(self): + return frozenset(self._views) + + @property + def assemblies(self): + return frozenset(self._assemblies) + + @property + def projections(self): + return frozenset(self._projections) + + @property + def sim(self): + """Figure out which PyNN backend module this Network is using.""" + # we assume there is only one. Could be mixed if using multiple simulators + # at once. + populations_module = inspect.getmodule(list(self.populations)[0].__class__) + return sys.modules[".".join(populations_module.__name__.split(".")[:-1])] + + def count_neurons(self): + return sum(population.size for population in chain(self.populations)) + + def count_connections(self): + return sum(projection.size() for projection in chain(self.projections)) + + def add(self, *components): + for component in components: + if isinstance(component, Population): + self._populations.add(component) + elif isinstance(component, PopulationView): + self._views.add(component) + self._populations.add(component.parent) + elif isinstance(component, Assembly): + self._assemblies.add(component) + self._populations.update(component.populations) + elif isinstance(component, Projection): + self._projections.add(component) + # todo: check that pre and post populations/views/assemblies have been added + else: + raise TypeError() + + def get_component(self, label): + for obj in chain(self.populations, self.views, self.assemblies, self.projections): + if obj.label == label: + return obj + return None + + def filter(self, cell_types=None): + """Return an Assembly of all components that have a cell type in the list""" + if cell_types is None: + raise NotImplementedError() + else: + if cell_types == "all": + return self.sim.Assembly(*(pop for pop in self.populations + if pop.celltype.injectable)) # or could use len(receptor_types) > 0 + else: + return self.sim.Assembly(*(pop for pop in self.populations + if pop.celltype.__class__ in cell_types)) + + def record(self, variables, to_file=None, sampling_interval=None, include_spike_source=True): + for obj in chain(self.populations, self.assemblies): + if include_spike_source or obj.injectable: # spike sources are not injectable + obj.record(variables, to_file=to_file, sampling_interval=sampling_interval) + + def get_data(self, variables='all', gather=True, clear=False, annotations=None): + return [assembly.get_data(variables, gather, clear, annotations) + for assembly in self.assemblies] + + def write_data(self, io, variables='all', gather=True, clear=False, annotations=None): + if isinstance(io, basestring): + io = get_io(io) + data = self.get_data(variables, gather, clear, annotations) + #if self._simulator.state.mpi_rank == 0 or gather is False: + if True: # tmp. Need to handle MPI + io.write(data) diff --git a/pyNN/neuroml/__init__.py b/pyNN/neuroml/__init__.py index 965259a3e..84aa4f2ec 100644 --- a/pyNN/neuroml/__init__.py +++ b/pyNN/neuroml/__init__.py @@ -1,6 +1,7 @@ """ Export of PyNN models to NeuroML 2 +See https://github.com/NeuroML/NeuroML2/issues/73 for more details Contact Padraig Gleeson for more details @@ -52,7 +53,7 @@ def setup(timestep=DEFAULT_TIMESTEP, min_delay=DEFAULT_MIN_DELAY, save_format = extra_params.get('save_format', "xml") # Create network - net = neuroml.Network(id="network") + net = neuroml.Network(id=nml_doc.id) nml_doc.networks.append(net) lems_sim = simulator._get_lems_sim(reset=True) diff --git a/pyNN/neuroml/populations.py b/pyNN/neuroml/populations.py index 14afde2ef..f02470d08 100644 --- a/pyNN/neuroml/populations.py +++ b/pyNN/neuroml/populations.py @@ -119,6 +119,15 @@ def is_local(id): for id in self.all_cells: id.parent = self simulator.state.id_counter += self.size + + + def annotate(self, **annotations): + print("Updating annotations: %s"%annotations) + for k in annotations: + + self.pop.properties.append(neuroml.Property(k, annotations[k])) + + self.annotations.update(annotations) def _set_initial_value_array(self, variable, initial_values): pass diff --git a/pyNN/neuroml/projections.py b/pyNN/neuroml/projections.py index a030f5a3b..f6dd98d6b 100644 --- a/pyNN/neuroml/projections.py +++ b/pyNN/neuroml/projections.py @@ -16,6 +16,7 @@ from pyNN import common from pyNN.core import ezip from pyNN.space import Space + from . import simulator import logging @@ -32,13 +33,27 @@ class Connection(common.Connection): attributes. """ - def __init__(self, pre, post, projection, conn_id, pre_pop_comp, post_pop_comp, **attributes): - #logger.debug("Creating Connection: %s -> %s" % (pre, post)) + def __init__(self, pre_index, post_index, presynaptic_population, postsynaptic_population, projection_nml, conn_id, pre_pop_comp, post_pop_comp, **attributes): + #logger.info("Creating Connection: %s -> %s (%s)" % (pre_index, post_index, projection_nml)) + + self.presynaptic_index = pre_index + self.postsynaptic_index = post_index + + nml_pre_index = pre_index + nml_post_index = post_index - self.presynaptic_index = pre - self.postsynaptic_index = post - projection.connection_wds.append(neuroml.ConnectionWD(id=conn_id,pre_cell_id="../%s/%i/%s"%(projection.presynaptic_population,pre,pre_pop_comp), - post_cell_id="../%s/%i/%s"%(projection.postsynaptic_population,post,post_pop_comp), weight=attributes['WEIGHT'], delay='%sms'%attributes['DELAY'])) + pre_pop = presynaptic_population + if isinstance(presynaptic_population, common.PopulationView): + pre_pop = presynaptic_population.parent + nml_pre_index = presynaptic_population.index_in_grandparent([pre_index])[0] + + post_pop = postsynaptic_population + if isinstance(postsynaptic_population, common.PopulationView): + post_pop = postsynaptic_population.parent + nml_post_index = postsynaptic_population.index_in_grandparent([post_index])[0] + + projection_nml.connection_wds.append(neuroml.ConnectionWD(id=conn_id,pre_cell_id="../%s/%i/%s"%(pre_pop.label,nml_pre_index,pre_pop_comp), + post_cell_id="../%s/%i/%s"%(post_pop.label,nml_post_index,post_pop_comp), weight=attributes['WEIGHT'], delay='%sms'%attributes['DELAY'])) for name, value in attributes.items(): setattr(self, name, value) @@ -59,6 +74,11 @@ def __init__(self, presynaptic_population, postsynaptic_population, connector, synapse_type, source, receptor_type, space, label) + logger.debug("Creating Projection: %s -> %s (%s)" % (presynaptic_population, postsynaptic_population, synapse_type)) + + self.presynaptic_population = presynaptic_population + self.postsynaptic_population = postsynaptic_population + nml_doc = simulator._get_nml_doc() net = nml_doc.networks[0] @@ -94,12 +114,20 @@ def __init__(self, presynaptic_population, postsynaptic_population, syn.tau_syn = postsynaptic_population.celltype.parameter_space[tau_key].base_value - self.pre_pop_comp = '%s_%s'%(presynaptic_population.celltype.__class__.__name__, presynaptic_population.label) - self.post_pop_comp = '%s_%s'%(postsynaptic_population.celltype.__class__.__name__, postsynaptic_population.label) + + pre_pop = presynaptic_population.label + if isinstance(presynaptic_population, common.PopulationView): + pre_pop = presynaptic_population.parent.label + post_pop = postsynaptic_population.label + if isinstance(postsynaptic_population, common.PopulationView): + post_pop = postsynaptic_population.parent.label + + self.pre_pop_comp = '%s_%s'%(presynaptic_population.celltype.__class__.__name__, pre_pop) + self.post_pop_comp = '%s_%s'%(postsynaptic_population.celltype.__class__.__name__, post_pop) logger.debug("Creating Projection: %s" % (nml_proj_id)) - self.projection = neuroml.Projection(id=nml_proj_id, presynaptic_population=presynaptic_population.label, - postsynaptic_population=postsynaptic_population.label, synapse=syn_id) + self.projection = neuroml.Projection(id=nml_proj_id, presynaptic_population=pre_pop, + postsynaptic_population=post_pop, synapse=syn_id) net.projections.append(self.projection) @@ -122,5 +150,13 @@ def _convergent_connect(self, presynaptic_indices, postsynaptic_index, for pre_idx, other in ezip(presynaptic_indices, *connection_parameters.values()): other_attributes = dict(zip(connection_parameters.keys(), other)) self.connections.append( - Connection(pre_idx, postsynaptic_index, self.projection, len(self.connections), self.pre_pop_comp, self.post_pop_comp, **other_attributes) + Connection(pre_idx, + postsynaptic_index, + self.presynaptic_population, + self.postsynaptic_population, + self.projection, + len(self.connections), + self.pre_pop_comp, + self.post_pop_comp, + **other_attributes) ) \ No newline at end of file diff --git a/pyNN/neuroml/recording.py b/pyNN/neuroml/recording.py index c54be930c..f16569967 100644 --- a/pyNN/neuroml/recording.py +++ b/pyNN/neuroml/recording.py @@ -15,12 +15,9 @@ import logging logger = logging.getLogger("PyNN_NeuroML") - class Recorder(recording.Recorder): _simulator = simulator - - def __init__(self, population, file=None): super(Recorder, self).__init__(population, file=file) self.event_output_files = [] @@ -70,7 +67,14 @@ def _record(self, variable, new_ids, sampling_interval=None): def _get_spiketimes(self, id): - return numpy.array([id, id+5], dtype=float) % self._simulator.state.t + + if hasattr(id, "__len__"): + spks = {} + for i in id: + spks[i] = numpy.array([i, i + 5], dtype=float) % self._simulator.state.t + return spks + else: + return numpy.array([id, id + 5], dtype=float) % self._simulator.state.t def _get_all_signals(self, variable, ids, clear=False): # assuming not using cvode, otherwise need to get times as well and use IrregularlySampledAnalogSignal diff --git a/pyNN/neuroml/simulator.py b/pyNN/neuroml/simulator.py index b64444851..fa442d782 100644 --- a/pyNN/neuroml/simulator.py +++ b/pyNN/neuroml/simulator.py @@ -53,7 +53,7 @@ def _get_lems_sim(reference=None,reset=False): reference = _get_nml_doc().id if lems_sim == None or reset: # Note: values will be over written - lems_sim = LEMSSimulation("Sim_%s"%reference, 100, 0.01, target="network",comment=comment%'LEMS') + lems_sim = LEMSSimulation("Sim_%s"%reference, 100, 0.01, target=reference,comment=comment%'LEMS') return lems_sim class ID(int, common.IDMixin): diff --git a/pyNN/neuroml/standardmodels/cells.py b/pyNN/neuroml/standardmodels/cells.py index 62fe53bd5..edae65795 100644 --- a/pyNN/neuroml/standardmodels/cells.py +++ b/pyNN/neuroml/standardmodels/cells.py @@ -49,7 +49,7 @@ class IF_curr_alpha(cells.IF_curr_alpha): ) def add_to_nml_doc(self, nml_doc, population): - cell = neuroml.IF_curr_alpha(id="%s_%s"%(self.__class__.__name__, population.label)) + cell = neuroml.IF_curr_alpha(id="%s_%s"%(self.__class__.__name__, population.label if population else '0')) nml_doc.IF_curr_alpha.append(cell) add_params(self, cell) return cell.id @@ -71,7 +71,7 @@ class IF_curr_exp(cells.IF_curr_exp): ) def add_to_nml_doc(self, nml_doc, population): - cell = neuroml.IF_curr_exp(id="%s_%s"%(self.__class__.__name__, population.label)) + cell = neuroml.IF_curr_exp(id="%s_%s"%(self.__class__.__name__, population.label if population else '0')) nml_doc.IF_curr_exp.append(cell) add_params(self, cell) return cell.id @@ -94,7 +94,7 @@ class IF_cond_alpha(cells.IF_cond_alpha): ) def add_to_nml_doc(self, nml_doc, population): - cell = neuroml.IF_cond_alpha(id="%s_%s"%(self.__class__.__name__, population.label)) + cell = neuroml.IF_cond_alpha(id="%s_%s"%(self.__class__.__name__, population.label if population else '0')) nml_doc.IF_cond_alpha.append(cell) add_params(self, cell) return cell.id @@ -118,7 +118,7 @@ class IF_cond_exp(cells.IF_cond_exp): ) def add_to_nml_doc(self, nml_doc, population): - cell = neuroml.IF_cond_exp(id="%s_%s"%(self.__class__.__name__, population.label)) + cell = neuroml.IF_cond_exp(id="%s_%s"%(self.__class__.__name__, population.label if population else '0')) nml_doc.IF_cond_exp.append(cell) add_params(self, cell) return cell.id @@ -147,7 +147,7 @@ class HH_cond_exp(cells.HH_cond_exp): ) def add_to_nml_doc(self, nml_doc, population): - cell = neuroml.HH_cond_exp(id="%s_%s"%(self.__class__.__name__, population.label)) + cell = neuroml.HH_cond_exp(id="%s_%s"%(self.__class__.__name__, population.label if population else '0')) nml_doc.HH_cond_exp.append(cell) add_params(self, cell) return cell.id @@ -166,7 +166,7 @@ class SpikeSourcePoisson(cells.SpikeSourcePoisson): ) def add_to_nml_doc(self, nml_doc, population): - cell = neuroml.SpikeSourcePoisson(id="%s_%s"%(self.__class__.__name__, population.label)) + cell = neuroml.SpikeSourcePoisson(id="%s_%s"%(self.__class__.__name__, population.label if population else '0')) nml_doc.SpikeSourcePoisson.append(cell) cell.start = '%sms'%self.parameter_space['start'].base_value cell.duration = '%sms'%self.parameter_space['duration'].base_value @@ -181,7 +181,7 @@ class SpikeSourceArray(cells.SpikeSourceArray): ) def add_to_nml_doc(self, nml_doc, population): - cell = neuroml.SpikeArray(id="%s_%s"%(self.__class__.__name__, population.label)) + cell = neuroml.SpikeArray(id="%s_%s"%(self.__class__.__name__, population.label if population else '0')) index=0 spikes = self.parameter_space['spike_times'] @@ -214,8 +214,8 @@ class EIF_cond_alpha_isfa_ista(cells.EIF_cond_alpha_isfa_ista): ) def add_to_nml_doc(self, nml_doc, population): - cell = neuroml.IF_curr_exp(id="%s_%s"%(self.__class__.__name__, population.label)) - nml_doc.IF_curr_exp.append(cell) + cell = neuroml.EIF_cond_alpha_isfa_ista(id="%s_%s"%(self.__class__.__name__, population.label if population else '0')) + nml_doc.EIF_cond_alpha_isfa_ista.append(cell) add_params(self, cell) return cell.id @@ -242,7 +242,7 @@ class EIF_cond_exp_isfa_ista(cells.EIF_cond_exp_isfa_ista): ) def add_to_nml_doc(self, nml_doc, population): - cell = neuroml.EIF_cond_exp_isfa_ista(id="%s_%s"%(self.__class__.__name__, population.label)) + cell = neuroml.EIF_cond_exp_isfa_ista(id="%s_%s"%(self.__class__.__name__, population.label if population else '0')) nml_doc.EIF_cond_exp_isfa_ista.append(cell) add_params(self, cell) return cell.id @@ -261,7 +261,7 @@ class Izhikevich(cells.Izhikevich): receptor_scale = 1e-3 # synaptic weight is in mV, so need to undo usual weight scaling def add_to_nml_doc(self, nml_doc, population): - cell = neuroml.Izhikevich(id="%s_%s"%(self.__class__.__name__, population.label)) + cell = neuroml.Izhikevich(id="%s_%s"%(self.__class__.__name__, population.label if population else '0')) nml_doc.Izhikevich.append(cell) add_params(self, cell) return cell.id diff --git a/pyNN/neuroml/standardmodels/electrodes.py b/pyNN/neuroml/standardmodels/electrodes.py index 313f5a65b..142b5dc23 100644 --- a/pyNN/neuroml/standardmodels/electrodes.py +++ b/pyNN/neuroml/standardmodels/electrodes.py @@ -103,12 +103,11 @@ def add_to_nml_doc(self, nml_doc, cells): duration='%sms'%(self.stop-self.start), amplitude='%snA'%self.amplitude) - self.nml_doc = _get_nml_doc() found = False - for pg in self.nml_doc.pulse_generators: + for pg in nml_doc.pulse_generators: if pg.id==id: found = True if not found: - self.nml_doc.pulse_generators.append(pg) + nml_doc.pulse_generators.append(pg) return pg.id diff --git a/pyNN/neuron/__init__.py b/pyNN/neuron/__init__.py index edcb54a3c..8c5daf35c 100644 --- a/pyNN/neuron/__init__.py +++ b/pyNN/neuron/__init__.py @@ -2,7 +2,7 @@ """ nrnpython implementation of the PyNN API. -:copyright: Copyright 2006-2016 by the PyNN team, see AUTHORS. +:copyright: Copyright 2006-2020 by the PyNN team, see AUTHORS. :license: CeCILL, see LICENSE for details. """ @@ -26,12 +26,11 @@ from pyNN.neuron.standardmodels.electrodes import * from pyNN.neuron.populations import Population, PopulationView, Assembly from pyNN.neuron.projections import Projection -from pyNN.neuron.cells import NativeCellType -from pyNN.neuron.synapses import NativeSynapseType -#try: -# from . import nineml -#except ImportError: -# pass # nineml is an optional dependency +from pyNN.neuron.cells import NativeCellType, IntFire1, IntFire2, IntFire4 +try: + from . import nineml +except ImportError: + pass # nineml is an optional dependency from .nineml import nineml_cell_type, nineml_synapse_type import logging @@ -44,7 +43,7 @@ def list_standard_models(): """Return a list of all the StandardCellType classes available for this simulator.""" - return [obj.__name__ for obj in globals().values() if (isinstance(obj, type) and + return [obj.__name__ for obj in globals().values() if (isinstance(obj, type) and issubclass(obj, StandardCellType) and obj is not StandardCellType)] diff --git a/pyNN/neuron/cells.py b/pyNN/neuron/cells.py index cc2d55ed5..8be2d7777 100644 --- a/pyNN/neuron/cells.py +++ b/pyNN/neuron/cells.py @@ -2,7 +2,7 @@ """ Definition of cell classes for the neuron module. -:copyright: Copyright 2006-2016 by the PyNN team, see AUTHORS. +:copyright: Copyright 2006-2020 by the PyNN team, see AUTHORS. :license: CeCILL, see LICENSE for details. """ @@ -581,10 +581,12 @@ class VectorSpikeSource(hclass(h.VecStim)): parameter_names = ('spike_times',) def __init__(self, spike_times=[]): + self.recording = False self.spike_times = spike_times self.source = self self.source_section = None self.rec = None + self._recorded_spikes = numpy.array([]) def _set_spike_times(self, spike_times): # spike_times should be a Sequence object @@ -595,6 +597,8 @@ def _set_spike_times(self, spike_times): if numpy.any(spike_times.value[:-1] > spike_times.value[1:]): raise errors.InvalidParameterValueError("Spike times given to SpikeSourceArray must be in increasing order") self.play(self._spike_times) + if self.recording: + self._recorded_spikes = numpy.hstack((self._recorded_spikes, spike_times.value)) def _get_spike_times(self): return self._spike_times @@ -602,10 +606,94 @@ def _get_spike_times(self): spike_times = property(fget=_get_spike_times, fset=_set_spike_times) + @property + def recording(self): + return self._recording + + @recording.setter + def recording(self, value): + self._recording = value + if value: + # when we turn recording on, the cell may already have had its spike times assigned + self._recorded_spikes = numpy.hstack((self._recorded_spikes, self.spike_times)) + + def get_recorded_spike_times(self): + return self._recorded_spikes + def clear_past_spikes(self): """If previous recordings are cleared, need to remove spikes from before the current time.""" - end = self._spike_times.indwhere(">", h.t) - if end > 0: - self._spike_times.remove(0, end - 1) # range is inclusive + self._recorded_spikes = self._recorded_spikes[self._recorded_spikes > h.t] + + +class ArtificialCell(object): + """Wraps NEURON 'ARTIFICIAL_CELL' models for PyNN""" + + def __init__(self, mechanism_name, **parameters): + self.source = getattr(h, mechanism_name)() + for name, value in parameters.items(): + setattr(self.source, name, value) + dummy = nrn.Section() + + # needed for PyNN + self.source_section = dummy # todo: only need a single dummy for entire network, not one per cell + self.parameter_names = ('tau', 'refrac') + self.traces = {} + self.spike_times = h.Vector(0) + self.rec = h.NetCon(self.source, None) + self.recording_time = False + self.default = self.source + + def _set_tau(self, value): + self.source.tau = value + def _get_tau(self): + return self.source.tau + tau = property(fget=_get_tau, fset=_set_tau) - + def _set_refrac(self, value): + self.source.refrac = value + def _get_refrac(self): + return self.source.refrac + refrac = property(fget=_get_refrac, fset=_set_refrac) + + # ... gkbar and g_leak properties defined similarly + + def memb_init(self): + self.source.m = self.m_init + + +class IntFire1(NativeCellType): + default_parameters = {'tau': 10.0, 'refrac': 5.0} + default_initial_values = {'m': 0.0} + recordable = ['m'] + units = {'m': 'dimensionless'} + receptor_types = ['default'] + model = ArtificialCell + extra_parameters = {"mechanism_name": "IntFire1"} + + +class IntFire2(NativeCellType): + default_parameters = {'taum': 10.0, 'taus': 20.0, 'ib': 0.0} + default_initial_values = {'m': 0.0, 'i': 0.0} + recordable = ['m', 'i'] + units = {'m' : 'dimensionless', 'i': 'dimensionless'} + receptor_types = ['default'] + model = ArtificialCell + extra_parameters = {"mechanism_name": "IntFire2"} + + +class IntFire4(NativeCellType): + default_parameters = { + 'taum': 50.0, + 'taue': 5.0, + 'taui1': 10.0, + 'taui2': 20.0, + } + default_initial_values = {'m': 0.0, 'e': 0.0, 'i1': 0.0, 'i2': 0.0} + recordable = ['e', 'i1', 'i2', 'm'] + units = {'e' : 'dimensionless', + 'i1' : 'dimensionless', + 'i2' : 'dimensionless', + 'm' : 'dimensionless'} + receptor_types = ['default'] + model = ArtificialCell + extra_parameters = {"mechanism_name": "IntFire4"} diff --git a/pyNN/neuron/connectors.py b/pyNN/neuron/connectors.py index 280d449b8..7a438456a 100644 --- a/pyNN/neuron/connectors.py +++ b/pyNN/neuron/connectors.py @@ -1,7 +1,7 @@ """ Connection method classes for the neuron module -:copyright: Copyright 2006-2016 by the PyNN team, see AUTHORS. +:copyright: Copyright 2006-2020 by the PyNN team, see AUTHORS. :license: CeCILL, see LICENSE for details. """ diff --git a/pyNN/neuron/populations.py b/pyNN/neuron/populations.py index 9d641fb71..abec317d7 100644 --- a/pyNN/neuron/populations.py +++ b/pyNN/neuron/populations.py @@ -2,7 +2,7 @@ """ nrnpython implementation of the PyNN API. -:copyright: Copyright 2006-2016 by the PyNN team, see AUTHORS. +:copyright: Copyright 2006-2020 by the PyNN team, see AUTHORS. :license: CeCILL, see LICENSE for details. """ @@ -56,7 +56,7 @@ def _set_initial_value_array(self, variable, initial_values): if isinstance(initial_values.base_value, RandomDistribution) and initial_values.base_value.rng.parallel_safe: local_values = initial_values.evaluate()[self._mask_local] else: - local_values = initial_values[self._mask_local] + local_values = initial_values[self._mask_local] for cell, value in zip(self, local_values): setattr(cell._cell, "%s_init" % variable, value) @@ -99,7 +99,7 @@ def _create_cells(self): # perhaps should check for that self.first_id = simulator.state.gid_counter self.last_id = simulator.state.gid_counter + self.size - 1 - self.all_cells = numpy.array([id for id in range(self.first_id, self.last_id + 1)], + self.all_cells = numpy.array([id for id in range(self.first_id, self.last_id + 1)], simulator.ID) # mask_local is used to extract those elements from arrays that apply to the cells on the current node diff --git a/pyNN/neuron/projections.py b/pyNN/neuron/projections.py index 7200cf235..2e44b70f5 100644 --- a/pyNN/neuron/projections.py +++ b/pyNN/neuron/projections.py @@ -2,7 +2,7 @@ """ nrnpython implementation of the PyNN API. -:copyright: Copyright 2006-2016 by the PyNN team, see AUTHORS. +:copyright: Copyright 2006-2020 by the PyNN team, see AUTHORS. :license: CeCILL, see LICENSE for details. """ @@ -41,7 +41,7 @@ def __init__(self, presynaptic_population, postsynaptic_population, space, label) self._connections = dict((index, defaultdict(list)) for index in self.post._mask_local.nonzero()[0]) connector.connect(self) - self._presynaptic_components = dict((index, {}) for index in + self._presynaptic_components = dict((index, {}) for index in self.pre._mask_local.nonzero()[0]) if self.synapse_type.presynaptic_type: self._configure_presynaptic_components() @@ -100,17 +100,17 @@ def _convergent_connect(self, presynaptic_indices, postsynaptic_index, def _configure_presynaptic_components(self): """ - For gap junctions potentially other complex synapse types the presynaptic side of the + For gap junctions potentially other complex synapse types the presynaptic side of the connection also needs to be initiated. This is a little tricky with sources distributed on - different nodes as the parameters need to be gathered to the node where the source is + different nodes as the parameters need to be gathered to the node where the source is hosted before it can be set """ # Get the list of all connections on all nodes - conn_list = numpy.array(self.get(self.synapse_type.get_parameter_names(), 'list', + conn_list = numpy.array(self.get(self.synapse_type.get_parameter_names(), 'list', gather='all', with_address=True)) - # Loop through each of the connections where the presynaptic index (first column) is on + # Loop through each of the connections where the presynaptic index (first column) is on # the local node - mask_local = numpy.array(numpy.in1d(numpy.squeeze(conn_list[:, 0]), + mask_local = numpy.array(numpy.in1d(numpy.squeeze(conn_list[:, 0]), numpy.nonzero(self.pre._mask_local)[0]), dtype=bool) for conn in conn_list[mask_local, :]: pre_idx = int(conn[0]) @@ -124,7 +124,7 @@ def _set_attributes(self, parameter_space): if self.synapse_type.presynaptic_type: presyn_param_space = deepcopy(parameter_space) presyn_param_space.evaluate(mask=(slice(None), self.pre._mask_local)) - for component, connection_parameters in zip(self._presynaptic_components.values(), + for component, connection_parameters in zip(self._presynaptic_components.values(), presyn_param_space.columns()): for name, value in connection_parameters.items(): for index in component: diff --git a/pyNN/neuron/recording.py b/pyNN/neuron/recording.py index ac4fc9da9..de807ca6c 100644 --- a/pyNN/neuron/recording.py +++ b/pyNN/neuron/recording.py @@ -1,6 +1,6 @@ """ -:copyright: Copyright 2006-2016 by the PyNN team, see AUTHORS. +:copyright: Copyright 2006-2020 by the PyNN team, see AUTHORS. :license: CeCILL, see LICENSE for details. """ @@ -24,6 +24,8 @@ def _record(self, variable, new_ids, sampling_interval=None): for id in new_ids: if id._cell.rec is not None: id._cell.rec.record(id._cell.spike_times) + else: # SpikeSourceArray + id._cell.recording = True else: self.sampling_interval = sampling_interval or self._simulator.state.dt for id in new_ids: @@ -94,8 +96,18 @@ def _clear_simulator(self): id._cell.clear_past_spikes() def _get_spiketimes(self, id): - spikes = numpy.array(id._cell.spike_times) - return spikes[spikes <= simulator.state.t + 1e-9] + if hasattr(id, "__len__"): + all_spiketimes = {} + for cell_id in id: + if cell_id._cell.rec is None: # SpikeSourceArray + spikes = cell_id._cell.get_recorded_spike_times() + else: + spikes = numpy.array(cell_id._cell.spike_times) + all_spiketimes[cell_id] = spikes[spikes <= simulator.state.t + 1e-9] + return all_spiketimes + else: + spikes = numpy.array(id._cell.spike_times) + return spikes[spikes <= simulator.state.t + 1e-9] def _get_all_signals(self, variable, ids, clear=False): # assuming not using cvode, otherwise need to get times as well and use IrregularlySampledAnalogSignal diff --git a/pyNN/neuron/simulator.py b/pyNN/neuron/simulator.py index 6d8d9da27..fd72d1de1 100644 --- a/pyNN/neuron/simulator.py +++ b/pyNN/neuron/simulator.py @@ -15,7 +15,7 @@ All other functions and classes are private, and should not be used by other modules. -:copyright: Copyright 2006-2016 by the PyNN team, see AUTHORS. +:copyright: Copyright 2006-2020 by the PyNN team, see AUTHORS. :license: CeCILL, see LICENSE for details. """ @@ -35,9 +35,9 @@ logger = logging.getLogger("PyNN") name = "NEURON" # for use in annotating output data -# Instead of starting the projection var-GID range from 0, the first _MIN_PROJECTION_VARGID are +# Instead of starting the projection var-GID range from 0, the first _MIN_PROJECTION_VARGID are # reserved for other potential uses -_MIN_PROJECTION_VARGID = 1000000 +_MIN_PROJECTION_VARGID = 1000000 # --- Internal NEURON functionality -------------------------------------------- @@ -274,8 +274,8 @@ def finalize(self, quit=False): def get_vargids(self, projection, pre_idx, post_idx): """ - Get new "variable"-GIDs (as opposed to the "cell"-GIDs) for a given pre->post connection - pair for a given projection. + Get new "variable"-GIDs (as opposed to the "cell"-GIDs) for a given pre->post connection + pair for a given projection. `projection` -- projection `pre_idx` -- index of the presynaptic cell @@ -287,12 +287,12 @@ def get_vargids(self, projection, pre_idx, post_idx): # Get the projection with the current maximum vargid offset if len(self.vargid_offsets): newest_proj, offset = max(self.vargid_offsets.items(), key=itemgetter(1)) - # Allocate it a large enough range for a mutual all-to-all connection (assumes that + # Allocate it a large enough range for a mutual all-to-all connection (assumes that # there are no duplicate pre_idx->post_idx connections for the same projection. If # that is really desirable a new projection will need to be used) offset += 2 * len(newest_proj.pre) * len(newest_proj.post) else: - offset = _MIN_PROJECTION_VARGID + offset = _MIN_PROJECTION_VARGID self.vargid_offsets[projection] = offset pre_post_vargid = offset + 2 * (pre_idx + post_idx * len(projection.pre)) post_pre_vargid = pre_post_vargid + 1 @@ -381,7 +381,7 @@ def _setup_plasticity(self, synapse_type, parameters): mechanism = synapse_type.model self.weight_adjuster = getattr(h, mechanism)(0.5) if synapse_type.postsynaptic_variable == 'spikes': -### parameters['allow_update_on_post'] = int(False) # for compatibility with NEST + parameters['allow_update_on_post'] = int(False) # for compatibility with NEST self.ddf = parameters.pop('dendritic_delay_fraction') # If ddf=1, the synaptic delay # `d` is considered to occur entirely in the post-synaptic @@ -407,10 +407,6 @@ def _setup_plasticity(self, synapse_type, parameters): self.post2wa.delay = self.nc.delay * self.ddf self.post2wa.weight[0] = -1 self.pre2wa.weight[0] = 1 - if self.pre2wa.wcnt() > 1: # set channels - print("Setting pre- and post-synaptic event channels") - self.pre2wa.weight[1] = 0 - self.post2wa.weight[1] = 1 else: self.pre2wa.weight[0] = self.nc.weight[0] parameters.pop('x', None) # for the Tsodyks-Markram model @@ -467,46 +463,46 @@ def __init__(self, projection, pre, post, **parameters): self.postsynaptic_index = post segment_name = projection.receptor_type # Strip 'gap' string from receptor_type (not sure about this, it is currently appended to - # the available synapse types in the NCML model segments but is not really necessary and + # the available synapse types in the NCML model segments but is not really necessary and # it feels a bit hacky but it makes the list of receptor types more comprehensible) - if segment_name.endswith('.gap'): + if segment_name.endswith('.gap'): segment_name = segment_name[:-4] self.segment = getattr(projection.post[post]._cell, segment_name) pre_post_vargid, post_pre_vargid = state.get_vargids(projection, pre, post) - self._make_connection(self.segment, parameters.pop('weight'), pre_post_vargid, + self._make_connection(self.segment, parameters.pop('weight'), pre_post_vargid, post_pre_vargid, projection.pre[pre], projection.post[post]) - + def _make_connection(self, segment, weight, local_to_remote_vargid, remote_to_local_vargid, - local_gid, remote_gid): + local_gid, remote_gid): logger.debug("Setting source_var on local cell {} to connect to target_var on remote " "cell {} with vargid {} on process {}" - .format(local_gid, remote_gid, local_to_remote_vargid, + .format(local_gid, remote_gid, local_to_remote_vargid, state.mpi_rank)) - # Set up the source reference for the local->remote connection - state.parallel_context.source_var(segment(0.5)._ref_v, local_to_remote_vargid) + # Set up the source reference for the local->remote connection + state.parallel_context.source_var(segment(0.5)._ref_v, local_to_remote_vargid) # Create the gap_junction and set its weight self.gap = h.Gap(0.5, sec=segment) self.gap.g = weight # Connect the gap junction with the source_var logger.debug("Setting target_var on local cell {} to connect to source_var on remote " "cell {} with vargid {} on process {}" - .format(local_gid, remote_gid, remote_to_local_vargid, + .format(local_gid, remote_gid, remote_to_local_vargid, state.mpi_rank)) # set up the target reference for the remote->local connection state.parallel_context.target_var(self.gap._ref_vgap, remote_to_local_vargid) - + def _set_weight(self, w): self.gap.g = w def _get_weight(self): """Gap junction conductance in µS.""" return self.gap.g - + weight = property(_get_weight, _set_weight) - + def as_tuple(self, *attribute_names): return tuple(getattr(self, name) for name in attribute_names) - + class GapJunctionPresynaptic(GapJunction): """ @@ -514,19 +510,19 @@ class GapJunctionPresynaptic(GapJunction): so it shares its functionality with the GapJunction connection object, with the exception that the pre and post synaptic cells are switched """ - + def __init__(self, projection, pre, post, **parameters): self.presynaptic_index = pre self.postsynaptic_index = post - if projection.source.endswith('.gap'): + if projection.source.endswith('.gap'): segment_name = projection.source[:-4] else: segment_name = projection.source self.segment = getattr(projection.pre[pre]._cell, segment_name) pre_post_vargid, post_pre_vargid = state.get_vargids(projection, pre, post) - self._make_connection(self.segment, parameters.pop('weight'), post_pre_vargid, + self._make_connection(self.segment, parameters.pop('weight'), post_pre_vargid, pre_post_vargid, projection.post[post], projection.pre[pre]) - + def generate_synapse_property(name): def _get(self): @@ -535,12 +531,12 @@ def _get(self): def _set(self, val): setattr(self.weight_adjuster, name, val) return property(_get, _set) -setattr(Connection, 'w_max', generate_synapse_property('wmax')) -setattr(Connection, 'w_min', generate_synapse_property('wmin')) -setattr(Connection, 'A_plus', generate_synapse_property('aLTP')) -setattr(Connection, 'A_minus', generate_synapse_property('aLTD')) -setattr(Connection, 'tau_plus', generate_synapse_property('tauLTP')) -setattr(Connection, 'tau_minus', generate_synapse_property('tauLTD')) +setattr(Connection, 'wmax', generate_synapse_property('wmax')) +setattr(Connection, 'wmin', generate_synapse_property('wmin')) +setattr(Connection, 'aLTP', generate_synapse_property('aLTP')) +setattr(Connection, 'aLTD', generate_synapse_property('aLTD')) +setattr(Connection, 'tauLTP', generate_synapse_property('tauLTP')) +setattr(Connection, 'tauLTD', generate_synapse_property('tauLTD')) setattr(Connection, 'U', generate_synapse_property('U')) setattr(Connection, 'tau_rec', generate_synapse_property('tau_rec')) setattr(Connection, 'tau_facil', generate_synapse_property('tau_facil')) diff --git a/pyNN/neuron/standardmodels/cells.py b/pyNN/neuron/standardmodels/cells.py index a0846ae87..db81aba86 100644 --- a/pyNN/neuron/standardmodels/cells.py +++ b/pyNN/neuron/standardmodels/cells.py @@ -2,7 +2,7 @@ """ Standard base_cells for the neuron module. -:copyright: Copyright 2006-2016 by the PyNN team, see AUTHORS. +:copyright: Copyright 2006-2020 by the PyNN team, see AUTHORS. :license: CeCILL, see LICENSE for details. """ diff --git a/pyNN/neuron/standardmodels/electrodes.py b/pyNN/neuron/standardmodels/electrodes.py index d784b332c..f91e9e393 100644 --- a/pyNN/neuron/standardmodels/electrodes.py +++ b/pyNN/neuron/standardmodels/electrodes.py @@ -7,7 +7,7 @@ NoisyCurrentSource -- a Gaussian whitish noise current. ACSource -- a sine modulated current. -:copyright: Copyright 2006-2016 by the PyNN team, see AUTHORS. +:copyright: Copyright 2006-2020 by the PyNN team, see AUTHORS. :license: CeCILL, see LICENSE for details. """ @@ -210,8 +210,9 @@ def __init__(self, **parameters): def _generate(self): # Not efficient at all... Is there a way to have those vectors computed on the fly ? # Otherwise should have a buffer mechanism - self.times = numpy.arange(self.start, self.stop + simulator.state.dt, simulator.state.dt) - tmp = numpy.arange(0, self.stop - self.start, simulator.state.dt) + temp_num_t = int(round(((self.stop + simulator.state.dt) - self.start) / simulator.state.dt)) + tmp = simulator.state.dt * numpy.arange(temp_num_t) + self.times = tmp + self.start self.amplitudes = self.offset + self.amplitude * numpy.sin(tmp * 2 * numpy.pi * self.frequency / 1000. + 2 * numpy.pi * self.phase / 360) self.amplitudes[-1] = 0.0 @@ -238,7 +239,8 @@ def __init__(self, **parameters): def _generate(self): ## Not efficient at all... Is there a way to have those vectors computed on the fly ? ## Otherwise should have a buffer mechanism - self.times = numpy.arange(self.start, self.stop, max(self.dt, simulator.state.dt)) + temp_num_t = int(round((self.stop - self.start) / max(self.dt, simulator.state.dt))) + self.times = self.start + max(self.dt, simulator.state.dt) * numpy.arange(temp_num_t) self.times = numpy.append(self.times, self.stop) self.amplitudes = self.mean + self.stdev * numpy.random.randn(len(self.times)) self.amplitudes[-1] = 0.0 diff --git a/pyNN/neuron/standardmodels/synapses.py b/pyNN/neuron/standardmodels/synapses.py index 4d8fd4860..3de977781 100644 --- a/pyNN/neuron/standardmodels/synapses.py +++ b/pyNN/neuron/standardmodels/synapses.py @@ -1,7 +1,7 @@ """ Synapse Dynamics classes for the neuron module. -:copyright: Copyright 2006-2016 by the PyNN team, see AUTHORS. +:copyright: Copyright 2006-2020 by the PyNN team, see AUTHORS. :license: CeCILL, see LICENSE for details. """ @@ -43,7 +43,7 @@ class ElectricalSynapse(BaseSynapse, synapses.ElectricalSynapse): model = 'Gap' def _get_minimum_delay(self): - return state.min_delay + return state.min_delay class STDPMechanism(BaseSynapse, synapses.STDPMechanism): @@ -200,7 +200,7 @@ class SpikePairRule(BaseSynapse, synapses.SpikePairRule): class Vogels2011Rule(synapses.Vogels2011Rule): __doc__ = synapses.Vogels2011Rule.__doc__ - + translations = build_translations( ('tau', 'tau'), ('eta', 'eta'), diff --git a/pyNN/nineml/__init__.py b/pyNN/nineml/__init__.py index 9c8a6056c..ce3b6c55d 100644 --- a/pyNN/nineml/__init__.py +++ b/pyNN/nineml/__init__.py @@ -1,7 +1,7 @@ """ Export of PyNN scripts as NineML. -:copyright: Copyright 2006-2016 by the PyNN team, see AUTHORS. +:copyright: Copyright 2006-2020 by the PyNN team, see AUTHORS. :license: CeCILL, see LICENSE for details. """ import logging diff --git a/pyNN/nineml/cells.py b/pyNN/nineml/cells.py index 76a5d300b..92d863f3e 100644 --- a/pyNN/nineml/cells.py +++ b/pyNN/nineml/cells.py @@ -1,7 +1,7 @@ """ Cell models generated from 9ML -:copyright: Copyright 2006-2016 by the PyNN team, see AUTHORS. +:copyright: Copyright 2006-2020 by the PyNN team, see AUTHORS. :license: CeCILL, see LICENSE for details. """ @@ -118,4 +118,3 @@ def __new__(cls, name, bases, dct): dct["builder"](flat_component, dct["weight_variables"], hierarchical_mode=True) return type.__new__(cls, name, bases, dct) - diff --git a/pyNN/nineml/connectors.py b/pyNN/nineml/connectors.py index 881451d34..0ce28ab81 100644 --- a/pyNN/nineml/connectors.py +++ b/pyNN/nineml/connectors.py @@ -1,14 +1,14 @@ """ Export of PyNN scripts as NineML. -:copyright: Copyright 2006-2016 by the PyNN team, see AUTHORS. +:copyright: Copyright 2006-2020 by the PyNN team, see AUTHORS. :license: CeCILL, see LICENSE for details. """ import nineml.user as nineml from pyNN import connectors -from .utility import build_parameter_set, catalog_url +from utility import build_parameter_set, catalog_url class ConnectorMixin(object): @@ -26,7 +26,7 @@ def to_nineml(self, label): class FixedProbabilityConnector(ConnectorMixin, connectors.FixedProbabilityConnector): - definition_url = "%s/connectionrules/random_fixed_probability.xml" % catalog_url + definition_url = "%s/connectionrules/random_fixed_probability.xml" % catalog_url parameter_names = ('p_connect', 'allow_self_connections') diff --git a/pyNN/nineml/projections.py b/pyNN/nineml/projections.py index 351041bb7..7ff313681 100644 --- a/pyNN/nineml/projections.py +++ b/pyNN/nineml/projections.py @@ -6,6 +6,7 @@ :license: CeCILL, see LICENSE for details. """ +from itertools import repeat, izip import nineml.user as nineml from pyNN import common diff --git a/pyNN/nineml/read.py b/pyNN/nineml/read.py index eb545f05d..ef2bdd6d7 100644 --- a/pyNN/nineml/read.py +++ b/pyNN/nineml/read.py @@ -4,7 +4,7 @@ Classes: Network -- container for a network model. -:copyright: Copyright 2006-2016 by the PyNN team, see AUTHORS. +:copyright: Copyright 2006-2020 by the PyNN team, see AUTHORS. :license: CeCILL, see LICENSE for details. """ diff --git a/pyNN/nineml/synapses.py b/pyNN/nineml/synapses.py index 4994fe38f..b238f5efe 100644 --- a/pyNN/nineml/synapses.py +++ b/pyNN/nineml/synapses.py @@ -1,5 +1,5 @@ """ -:copyright: Copyright 2006-2016 by the PyNN team, see AUTHORS. +:copyright: Copyright 2006-2020 by the PyNN team, see AUTHORS. :license: CeCILL, see LICENSE for details. """ diff --git a/pyNN/nineml/utility.py b/pyNN/nineml/utility.py index 4d9741e0e..54a4c4cf4 100644 --- a/pyNN/nineml/utility.py +++ b/pyNN/nineml/utility.py @@ -1,7 +1,7 @@ # encoding: utf-8 """ -:copyright: Copyright 2006-2016 by the PyNN team, see AUTHORS. +:copyright: Copyright 2006-2020 by the PyNN team, see AUTHORS. :license: CeCILL, see LICENSE for details. """ diff --git a/pyNN/parameters.py b/pyNN/parameters.py index bd739ccc5..84500ca47 100644 --- a/pyNN/parameters.py +++ b/pyNN/parameters.py @@ -1,7 +1,7 @@ """ Parameter set handling -:copyright: Copyright 2006-2016 by the PyNN team, see AUTHORS. +:copyright: Copyright 2006-2020 by the PyNN team, see AUTHORS. :license: CeCILL, see LICENSE for details. """ @@ -17,6 +17,7 @@ from pyNN import errors from pyNN.random import RandomDistribution, NativeRNG from lazyarray import larray, partial_shape +import numpy as np class LazyArray(larray): @@ -239,7 +240,6 @@ class ParameterSpace(object): .. _`lazy array`: https://lazyarray.readthedocs.org/ """ - def __init__(self, parameters, schema=None, shape=None, component=None): """ diff --git a/pyNN/random.py b/pyNN/random.py index 507d50aad..37d4386f7 100644 --- a/pyNN/random.py +++ b/pyNN/random.py @@ -10,7 +10,7 @@ RandomDistribution - produces random numbers from a specific distribution -:copyright: Copyright 2006-2016 by the PyNN team, see AUTHORS. +:copyright: Copyright 2006-2020 by the PyNN team, see AUTHORS. :license: CeCILL, see LICENSE for details. """ @@ -93,20 +93,20 @@ def next(self, n=None, distribution=None, parameters=None, mask=None): * `n` is 0, return an empty array. If called with distribution=None, returns uniformly distributed floats in the range [0, 1) - + If `mask` is provided, it should be a boolean or integer NumPy array, indicating that only a subset of the random numbers should be returned. - + Example:: - + rng.next(5, mask=np.array([True, False, True, False, True])) - + or:: - + rng.next(5, mask=np.array([0, 2, 4])) - + will each return only three values. - + If the rng is "parallel safe", an array of n values will be drawn from the rng, and the mask applied. If the rng is not parallel safe, the contents of the mask are disregarded, only its @@ -419,10 +419,10 @@ def _resolve_parameters(self, positional, named): def lazily_evaluate(self, mask=None, shape=None): """ Generate an array of random numbers of the requested shape. - + If a mask is given, produce only enough numbers to fill the region defined by the mask (hence 'lazily'). - + This method is called by the lazyarray `evaluate()` and `_partially_evaluate()` methods. """ diff --git a/pyNN/recording/__init__.py b/pyNN/recording/__init__.py index 8569fe62a..d00b55234 100644 --- a/pyNN/recording/__init__.py +++ b/pyNN/recording/__init__.py @@ -5,7 +5,7 @@ These classes and functions are not part of the PyNN API, and are only for internal use. -:copyright: Copyright 2006-2016 by the PyNN team, see AUTHORS. +:copyright: Copyright 2006-2020 by the PyNN team, see AUTHORS. :license: CeCILL, see LICENSE for details. """ @@ -15,6 +15,7 @@ import os from copy import copy from collections import defaultdict +from warnings import warn from pyNN import errors import neo from datetime import datetime @@ -87,7 +88,7 @@ def gather_blocks(data, ordered=True): D = gather_dict(D) blocks = list(D.values()) merged = data - if mpi_comm.rank == MPI_ROOT: + if mpi_comm.rank == MPI_ROOT: merged = blocks[0] for block in blocks[1:]: merged.merge(block) @@ -220,9 +221,7 @@ def record(self, variables, ids, sampling_interval=None): Add the cells in `ids` to the sets of recorded cells for the given variables. """ logger.debug('Recorder.record(<%d cells>)' % len(ids)) - if sampling_interval is not None: - if sampling_interval != self.sampling_interval and len(self.recorded) > 0: - raise ValueError("All neurons in a population must be recorded with the same sampling interval.") + self._check_sampling_interval(sampling_interval) ids = set([id for id in ids if id.local]) for variable in normalize_variables_arg(variables): @@ -232,6 +231,18 @@ def record(self, variables, ids, sampling_interval=None): self.recorded[variable] = self.recorded[variable].union(ids) self._record(variable, new_ids, sampling_interval) + def _check_sampling_interval(self, sampling_interval): + """ + Check whether record() has been called previously with a different sampling interval + (we exclude recording of spikes, as the sampling interval does not apply in that case) + """ + if sampling_interval is not None and sampling_interval != self.sampling_interval: + recorded_variables = list(self.recorded.keys()) + if "spikes" in recorded_variables: + recorded_variables.remove("spikes") + if len(recorded_variables) > 0: + raise ValueError("All neurons in a population must be recorded with the same sampling interval.") + def reset(self): """Reset the list of things to be recorded.""" self._reset() @@ -253,15 +264,23 @@ def _get_current_segment(self, filter_ids=None, variables='all', clear=False): for variable in variables_to_include: if variable == 'spikes': t_stop = self._simulator.state.t * pq.ms # must run on all MPI nodes - segment.spiketrains = [ - neo.SpikeTrain(self._get_spiketimes(id), - t_start=self._recording_start_time, - t_stop=t_stop, - units='ms', - source_population=self.population.label, - source_id=int(id), - source_index=self.population.id_to_index(id)) - for id in sorted(self.filter_recorded('spikes', filter_ids))] + sids = sorted(self.filter_recorded('spikes', filter_ids)) + data = self._get_spiketimes(sids) + + segment.spiketrains = [] + for id in sids: + times = pq.Quantity(data.get(int(id), []), pq.ms) + if times.size > 0 and times.max() > t_stop: + warn("Recorded at least one spike after t_stop") + times = times[times <= t_stop] + segment.spiketrains.append( + neo.SpikeTrain(times, + t_start=self._recording_start_time, + t_stop=t_stop, + units='ms', + source_population=self.population.label, + source_id=int(id),source_index=self.population.id_to_index(int(id))) + ) else: ids = sorted(self.filter_recorded(variable, filter_ids)) signal_array = self._get_all_signals(variable, ids, clear=clear) diff --git a/pyNN/recording/files.py b/pyNN/recording/files.py index fd7c32978..67c574aea 100644 --- a/pyNN/recording/files.py +++ b/pyNN/recording/files.py @@ -9,7 +9,7 @@ NumpyBinaryFile HDF5ArrayFile - requires PyTables -:copyright: Copyright 2006-2016 by the PyNN team, see AUTHORS. +:copyright: Copyright 2006-2020 by the PyNN team, see AUTHORS. :license: CeCILL, see LICENSE for details. """ diff --git a/pyNN/serialization/__init__.py b/pyNN/serialization/__init__.py new file mode 100644 index 000000000..8733b78f9 --- /dev/null +++ b/pyNN/serialization/__init__.py @@ -0,0 +1,5 @@ +""" +Functions for exporting and importing networks to/from files +""" + +from .sonata import import_from_sonata, export_to_sonata, asciify, load_sonata_simulation_plan diff --git a/pyNN/serialization/sonata.py b/pyNN/serialization/sonata.py new file mode 100644 index 000000000..90ef4452f --- /dev/null +++ b/pyNN/serialization/sonata.py @@ -0,0 +1,1244 @@ +# encoding: utf-8 +""" +Support for the SONATA format (https://github.com/AllenInstitute/sonata/) + +Public functions +---------------- + +- export_to_sonata() +- import_from_sonata() +- load_sonata_simulation_plan() + +Usage +----- + +This module would typically be used as follows:: + + from pyNN.serialization import import_from_sonata, load_sonata_simulation_plan + import pyNN.neuron as sim + + simulation_plan = load_sonata_simulation_plan("simulation_config.json") + simulation_plan.setup(sim) + net = import_from_sonata("circuit_config.json", sim) + simulation_plan.execute(net) + + +:copyright: Copyright 2018 by the PyNN team, see AUTHORS. +:license: CeCILL, see LICENSE for details. +""" + +import os +from os.path import join, isdir, exists +from collections import defaultdict +import shutil +from string import Template +import csv +from warnings import warn +import json +import logging +try: + basestring +except NameError: # Python 3 + basestring = str + +try: + import h5py + HAVE_H5PY = True +except ImportError: + HAVE_H5PY = False +import numpy as np +from pyNN.network import Network +from pyNN.parameters import Sequence + + +# Note: The SonataIO class will be moved to Neo once fully implemented + +#from neo.io import SonataIO +import neo +from neo.io.baseio import BaseIO + + +class SonataIO(BaseIO): + """ + Neo IO module for simulation input and output in the SONATA format. + + See https://github.com/AllenInstitute/sonata/blob/master/docs/SONATA_DEVELOPER_GUIDE.md + + Currently only supports spike files. + Support for current inputs and for reports will be implemented soon. + """ + + def __init__(self, base_dir, + spikes_file="spikes.h5", + spikes_sort_order=None, + report_config=None, + node_sets=None): + if not HAVE_H5PY: + raise Exception("You need to install h5py to use SonataIO") + self.base_dir = base_dir + self.spike_file = spikes_file + self.spikes_sort_order = spikes_sort_order + self.report_config = report_config + self.node_sets = node_sets + + def read(self): + """ + Read all data* from a SONATA dataset directory. + + Returns a list of Blocks. + + (*Currently only spike data supported) + """ + file_path = join(self.base_dir, self.spike_file) + block = neo.Block(file_origin=file_path) + segment = neo.Segment(file_origin=file_path) + spikes_file = h5py.File(file_path, 'r') + for gid in np.unique(spikes_file['spikes']['gids']): + index = spikes_file['spikes']['gids'][()] == gid + spike_times = spikes_file['spikes']['timestamps'][index] + segment.spiketrains.append( + neo.SpikeTrain(spike_times, + t_stop = spike_times.max() + 1.0, + t_start=0.0, + units='ms', + source_id=gid) + ) + block.segments.append(segment) + return [block] + + def write(self, blocks): + """ + Write a list of Blocks to SONATA HDF5 files. + + """ + if not os.path.isdir(self.base_dir): + os.makedirs(self.base_dir) + # Write spikes + spike_file_path = join(self.base_dir, self.spike_file) + spikes_file = h5py.File(spike_file_path, 'w') + spike_trains = [] + for block in blocks: + for segment in block.segments: + spike_trains.extend(segment.spiketrains) + n_spikes = sum(st.size for st in spike_trains) + + spikes_group = spikes_file.create_group("spikes") + all_spike_times = np.hstack(st.rescale('ms').magnitude + for st in spike_trains).astype(np.float64) + gids = np.hstack(st.annotations["source_index"] * np.ones(st.shape, dtype=np.uint64) + for st in spike_trains) + # todo: handle sorting + spikes_group.create_dataset("timestamps", data=all_spike_times, dtype=np.float64) + spikes_group.create_dataset("gids", data=gids, dtype=np.uint64) + spikes_file.close() + logger.info("Wrote spike output to {}".format(spike_file_path)) + + # Write signals + for report_name, report_metadata in self.report_config.items(): + file_name = report_metadata.get("file_name", report_name + ".h5") + file_path = join(self.base_dir, file_name) + + signal_file = h5py.File(file_path, 'w') + targets = self.node_sets[report_metadata["cells"]] + for block in blocks: + for (assembly, mask) in targets: + if block.name == assembly.label: + if len(block.segments) > 1: + raise NotImplementedError() + signal = block.segments[0].filter(name=report_metadata["variable_name"]) + if len(signal) != 1: + raise NotImplementedError() + + node_ids = np.arange(assembly.size)[mask] + + report_group = signal_file.create_group("report") + population_group = report_group.create_group(assembly.label) + dataset = population_group.create_dataset("data", data=signal[0].magnitude) + dataset.attrs["units"] = signal[0].units.dimensionality.string + dataset.attrs["variable_name"] = report_metadata["variable_name"] + n = dataset.shape[1] + mapping_group = population_group.create_group("mapping") + mapping_group.create_dataset("node_ids", data=node_ids) + # "gids" not in the spec, but expected by some bmtk utils + mapping_group.create_dataset("gids", data=node_ids) + #mapping_group.create_dataset("index_pointers", data=np.zeros((n,))) + mapping_group.create_dataset("index_pointer", data=np.arange(0, n+1)) # ??spec unclear + mapping_group.create_dataset("element_ids", data=np.zeros((n,))) + mapping_group.create_dataset("element_pos", data=np.zeros((n,))) + time_ds = mapping_group.create_dataset("time", + data=(float(signal[0].t_start.rescale('ms')), + float(signal[0].t_stop.rescale('ms')), + float(signal[0].sampling_period.rescale('ms')))) + time_ds.attrs["units"] = "ms" + logger.info("Wrote block {} to {}".format(block.name, file_path)) + signal_file.close() + + +MAGIC = 0x0a7a +logger = logging.getLogger("pyNN.serialization.sonata") + +# ----- utility functions, not intended for use outside this module ---------- + +def asciify(label): + """To be safe, we will use only ascii for strings inside HDF5""" + return label.replace(u"→", "-").encode('ascii') + + +def cast(value): + """Try to cast strings to numeric values""" + try: + value = int(value) + except ValueError: + try: + value = float(value) + except ValueError: + pass + return value + + +def to_string(s): + if isinstance(s, bytes): + s = s.decode('utf-8') + return s + + +def read_types_file(file_path, node_or_edge): + """Read node type or edge type parameters from a SONATA CSV file. + + Returns a dict representing the parameters row-wise, indexed by the type id. + """ + with open(file_path) as csv_file: + csv_reader = csv.DictReader(csv_file, delimiter=' ', quotechar='"') + types_table = list(csv_reader) + types_map = {} + id_label = "{}_type_id".format(node_or_edge) + for row in types_table: + types_map[int(row[id_label])] = row # NodeType(**row) + logger.info(types_map) + return types_map + + +def sonata_id_to_index(population, id): + # this relies on SONATA ids being sequential + if "first_sonata_id" in population.annotations: + offset = population.annotations["first_sonata_id"] + else: + raise Exception("Population not annotated with SONATA ids") + return id - offset + + +def condense(value, types_array): + """Transform parameters taken from SONATA CSV and/or HDF5 files + into a suitable form for PyNN. + + Arguments + --------- + + value - NumPy array or dict + NumPy arrays are returned directly. + Dicts should have node type ids as keys and the parameter values + for the different types as values. Where all node/edge types have the same + value, this single value is returned. Where different node/edge types have + different values for a given parameter, a NumPy array of size equal + to the number of nodes/edges in the SONATA group (cells in the PyNN Population + or connections in the PyNN Projection) is constructed to contain the different + parameter values. + types_array - NumPy array + Subset of the data from "/nodes//node_type_id" or + from "/edges//edge_type_id" that applies to this group. + Needed to construct parameter arrays. + """ + # todo: use lazyarray + if isinstance(value, np.ndarray): + return value + elif isinstance(value, dict): + assert len(value) > 0 + value_array = np.array(list(value.values())) + if np.all(value_array == value_array[0]): + return value_array[0] + else: + if np.issubdtype(value_array.dtype, np.number): + new_value = np.ones_like(types_array) * np.nan + elif np.issubdtype(value_array.dtype, np.str_): + new_value = np.array(["UNDEFINED"] * types_array.size) + else: + raise TypeError("Cannot handle annotations that are neither numbers or strings") + for node_type_id, val in value.items(): + new_value[types_array == node_type_id] = val + return new_value + else: + raise TypeError("Unexpected type. Expected Numpy array or dict, got {}".format(type(value))) + + +def load_config(config_file): + """Load a SONATA circuit or simulation config file + + This performs substitutions for the variables in the "manifest" + section, then returns the config as a dict. + """ + with open(config_file) as fp: + config = json.load(fp) + + # Build substitutions from manifest + substitutions = {} + for key, value in config["manifest"].items(): + if key.startswith('$'): + key = key[1:] + substitutions[key] = value + for key, value in substitutions.items(): + if '$' in value: + substitutions[key] = Template(value).substitute(**substitutions) + + # Perform substitutions + def traverse(obj): + if isinstance(obj, dict): + return {k: traverse(v) for k, v in obj.items()} + elif isinstance(obj, list): + return [traverse(elem) for elem in obj] + else: + if isinstance(obj, basestring) and obj.startswith('$'): + return Template(obj).substitute(**substitutions) + else: + return obj + + return traverse(config) + + +# ----- public functions ----------------------------------------------------- + +def export_to_sonata(network, output_path, target="PyNN", overwrite=False): + """Export a PyNN network in SONATA format + + If `target` is "neuron" or "NEURON", then PyNN cell types are exported as + single compartment neurons with NEURON .mod files, and only StaticSynapses are supported. + + If `target` is "PyNN", then the names of PyNN standard cells and synapse models + are used in the exported files. This allows simulations with any PyNN-supported + simulator. + + If `target` is "nest" or "NEST", then the names of NEST cell and synapse models + are used in the exported files. + + + A "node group" in SONATA corresponds approximately to a PyNN Population or PopulationView. + A "node population" in SONATA corresponds approximately to a PyNN Assembly, except that + node populations must be disjoint, whereas a given neuron may be in more than one + PyNN Assembly (it is PyNN Populations that are disjoint). + + In this first version of the export, we simplify this by exporting each Population + as an implicit Assembly with a single member, at the cost of losing some information about + the PyNN network structure. This approach could be improved in future. + """ + if not HAVE_H5PY: + raise Exception("You need to install h5py to use SONATA") + + # --- define directory layout --- + config = { + "target_simulator": target, + "manifest": { + "$BASE_DIR": "{}".format(output_path), + "$NETWORK_DIR": "$BASE_DIR/networks", + "$COMPONENT_DIR": "$BASE_DIR/components" + }, + "components": { + "morphologies_dir": "$COMPONENT_DIR/morphologies", + "synaptic_models_dir": "$COMPONENT_DIR/synapse_dynamics", + "point_neuron_models_dir": "$COMPONENT_DIR/point_neuron_dynamics", + "mechanisms_dir": "$COMPONENT_DIR/mechanisms", + "biophysical_neuron_models_dir": "$COMPONENT_DIR/biophysical_neuron_dynamics", + "templates": "$COMPONENT_DIR/hoc_templates", + }, + "networks": { + "nodes": [], + "edges":[] + } + } + + base_dir = config["manifest"]["$BASE_DIR"] + network_dir = Template(config["manifest"]["$NETWORK_DIR"]).substitute(BASE_DIR=base_dir) + component_dir = Template(config["manifest"]["$COMPONENT_DIR"]).substitute(BASE_DIR=base_dir) + + for directory in (base_dir, network_dir, component_dir): + if exists(directory) and isdir(directory) and overwrite: + shutil.rmtree(directory) + os.makedirs(directory) + + # --- export neuronal morphologies --- + # - not necessary for the current version of PyNN + + # --- export NMODL files for neuron and synapse models --- + # - note that this assumes that plasticity mechanisms are + # implemented as part of the synapse model rather than as + # separate weight-adjuster mechanisms + # - also note that future versions of this format may + # allow exporting mechanisms in LEMS format + if target.lower() == "neuron": + raise NotImplementedError + + # --- export biophysical neuron channel distribution --- + # - not necessary for the current version of PyNN + + # --- export nodes --- + # - we define a separate SONATA node population for each PyNN Population + # - we may in future use node groups and/or node types to support PopulationViews + # - Assemblies are not explicitly represented in the SONATA structure, + # rather their constituent Populations are exported individually. + + for i, population in enumerate(network.populations): + + config["networks"]["nodes"].append({ + "nodes_file": "$NETWORK_DIR/nodes_{}.h5".format(population.label), + "node_types_file": "$NETWORK_DIR/node_types_{}.csv".format(population.label) + }) + node_type_path = Template(config["networks"]["nodes"][i]["node_types_file"]).substitute(NETWORK_DIR=network_dir) + nodes_path = Template(config["networks"]["nodes"][i]["nodes_file"]).substitute(NETWORK_DIR=network_dir) + + n = population.size + population_label = asciify(population.label) + csv_rows = [] + csv_columns = set() + node_type_info = { + "node_type_id": i, + } + if "SpikeSource" in population.celltype.__class__.__name__: + node_type_info["model_type"] = "virtual" + else: + if target.lower() == "neuron": + node_type_info["model_type"] = "single_compartment" + elif target.lower() in ("pynn", "nest"): + node_type_info["model_type"] = "point_neuron" + node_type_info["model_template"] = "{}:{}".format(target.lower(), + population.celltype.__class__.__name__) + else: + raise NotImplementedError + group_label = 0 #"default" + # todo: add "population" column + + # write HDF5 file + nodes_file = h5py.File(nodes_path, 'w') + nodes_file.attrs["version"] = (0, 1) # ??? unclear what is the required format or the current version! + nodes_file.attrs["magic"] = MAGIC # needs to be uint32 + root = nodes_file.create_group("nodes") # todo: add attribute with network name + default = root.create_group(population_label) # we use a single node group for the full Population + # todo: check and fix the dtypes in the following + default.create_dataset("node_id", data=population.all_cells.astype('i4'), dtype='i4') + default.create_dataset("node_type_id", data=i * np.ones((n,)), dtype='i2') + default.create_dataset("node_group_id", data=np.array([group_label] * n), dtype='i2') # todo: calculate the max label size + # required data type not specified. Optional? + default.create_dataset("node_group_index", data=np.arange(n, dtype=int), dtype='i2') + + # parameters + node_group = default.create_group(str(group_label)) + node_params_group = node_group.create_group("dynamics_params") + for parameter_name in population.celltype.default_parameters: + if parameter_name == "spike_times": + warn("spike times should be added manually to simulation_config") + else: + # we could make a single get call to get all params at once, at the expense + # of higher memory usage. To profile... + values = population.get(parameter_name, gather=True, simplify=True) + if isinstance(values, np.ndarray): + # array, put into the HDF5 file and put 'NONE' in the CSV file + node_params_group.create_dataset(parameter_name, data=values) + node_type_info[parameter_name] = "NONE" + else: + # scalar, put into the CSV file + node_type_info[parameter_name] = values + + # positions in space + x, y, z = population.positions + node_group.create_dataset('x', data=x) + node_group.create_dataset('y', data=y) + node_group.create_dataset('z', data=z) + + csv_rows.append(node_type_info) + csv_columns.update(node_type_info.keys()) + + nodes_file.close() + + # now write csv file + field_names = sorted(set.union(*(set(row) for row in csv_rows))) # todo: `node_type_id` must be first + with open(node_type_path, 'w') as csv_file: + csv_writer = csv.DictWriter(csv_file, + fieldnames=field_names, + delimiter=' ', + quotechar='"') + csv_writer.writeheader() + for row in csv_rows: + logger.info(row) + for column_name in csv_columns: + if column_name not in row: + row[column_name] = "NONE" + csv_writer.writerow(row) + + # --- export edges --- + # - we define a separate group and edge-type for each PyNN Projection + + for i, projection in enumerate(network.projections): + projection_label = asciify(projection.label) + config["networks"]["edges"].append({ + "edges_file": "$NETWORK_DIR/edges_{}.h5".format(projection_label), + "edge_types_file": "$NETWORK_DIR/edge_types_{}.csv".format(projection_label) + }) + edge_type_path = Template(config["networks"]["edges"][i]["edge_types_file"]).substitute(NETWORK_DIR=network_dir) + edges_path = Template(config["networks"]["edges"][i]["edges_file"]).substitute(NETWORK_DIR=network_dir) + + n = projection.size() + csv_rows = [] + edge_type_info = { + "edge_type_id": i, + "model_template": "{}:{}".format(target.lower(), + projection.synapse_type.__class__.__name__), + "receptor_type": projection.receptor_type + } + parameter_names = list(projection.synapse_type.default_parameters) + values = np.array( + projection.get(parameter_names, format="list", gather=True, with_address=True) + ) + source_index = values[:, 0].astype(int) + target_index = values[:, 1].astype(int) + source_gids = projection.pre.all_cells[source_index].astype('i4') + target_gids = projection.post.all_cells[target_index].astype('i4') + group_label = 0 # "default" + + # Write HDF5 file + edges_file = h5py.File(edges_path, 'w') + root = edges_file.create_group("edges") # todo: add attribute with network name + + default_edge_pop = root.create_group(projection_label) + default_edge_pop.create_dataset("source_node_id", data=source_gids, dtype='i4') + default_edge_pop.create_dataset("target_node_id", data=target_gids, dtype='i4') + default_edge_pop["source_node_id"].attrs["node_population"] = asciify(projection.pre.label) # todo: handle PopualtionViews + default_edge_pop["target_node_id"].attrs["node_population"] = asciify(projection.post.label) + default_edge_pop.create_dataset("edge_type_id", data=i * np.ones((n,)), dtype='i2') + default_edge_pop.create_dataset("edge_group_id", data=np.array([group_label] * n), dtype='i2') #S32') # todo: calculate the max label size + default_edge_pop.create_dataset("edge_group_index", data=np.arange(n, dtype=int), dtype='i2') + + edge_group = default_edge_pop.create_group(str(group_label)) + edge_params = edge_group.create_group("dynamics_params") + for j, parameter_name in zip(range(2, values.shape[1]), parameter_names): + if isinstance(values[:, j], np.ndarray): + # array, put into the HDF5 file + edge_params.create_dataset(parameter_name, data=values[:, j]) + else: + # scalar, put into the CSV file + # for now, this will never be the case - need to detect homogeneous case + edge_type_info[parameter_name] = values[:, j] + + csv_rows.append(edge_type_info) + + # todo: add receptor_type to csv_rows + + edges_file.close() + + # now write csv file + field_names = sorted(set.union(*(set(row) for row in csv_rows))) + with open(edge_type_path, 'w') as csv_file: + csv_writer = csv.DictWriter(csv_file, + fieldnames=field_names, + delimiter=' ', + quotechar='"') + csv_writer.writeheader() + for row in csv_rows: + csv_writer.writerow(row) + + # --- write the config file --- + + with open(join(output_path, "circuit_config.json"), "w") as fp: + json.dump(config, fp, indent=2) + + # --- export recording configuration --- + # todo + + +def import_from_sonata(config_file, sim): + """ + We map a SONATA population to a PyNN Assembly, since both allow heterogeneous cell types. + We map a SONATA node group to a PyNN Population, since both have homogeneous parameter + namespaces. + SONATA node types are used to give different parameters to different subsets of nodes in a group. + This can be handled in PyNN by indexing and, equivalently, by defining PopulationViews. + We map a SONATA edge group to a PyNN Projection, i.e. a SONATA edge population may + result in multiple PyNN Projections. + """ + if not HAVE_H5PY: + raise Exception("You need to install h5py to use SONATA") + + config = load_config(config_file) + + if config.get("target_simulator", None) not in ("PyNN", "NEST"): + warn("`target_simulator` is not set to 'PyNN' or 'NEST'. Proceeding with caution...") + + sonata_node_populations = [] + for nodes_config in config["networks"]["nodes"]: + + # Load node types into node_types_map + node_types_map = read_types_file(nodes_config["node_types_file"], 'node') + + # Open nodes file, check it is valid + nodes_file = h5py.File(nodes_config["nodes_file"], 'r') + version = nodes_file.attrs.get("version", None) + magic = nodes_file.attrs.get("magic", None) + if magic is not None and magic != MAGIC: + # for now we assume that not all SONATA files will have the magic attribute set + raise Exception("Invalid SONATA file") + + # Read data about node populations and groups + sonata_node_populations.extend([ + NodePopulation.from_data(np_label, np_data, node_types_map, config) + for np_label, np_data in nodes_file["nodes"].items() + ]) + + sonata_edge_populations = [] + + if "edges" in config["networks"]: + for edges_config in config["networks"]["edges"]: + + # Load edge types into edge_types_map + edge_types_map = read_types_file(edges_config["edge_types_file"], 'edge') + + # Open edges file, check it is valid + edges_file = h5py.File(edges_config["edges_file"], 'r') + version = edges_file.attrs.get("version", None) + magic = edges_file.attrs.get("magic", None) + if magic is not None and magic != MAGIC: + # for now we assume that not all SONATA files will have the magic attribute set + raise Exception("Invalid SONATA file") + + # Read data about edge populations and groups + + sonata_edge_populations.extend([ + EdgePopulation.from_data(ep_label, ep_data, edge_types_map, config) + for ep_label, ep_data in edges_file["edges"].items() + ]) + + # Now map the SONATA data structures to PyNN ones + + net = Network() + for node_population in sonata_node_populations: + assembly = node_population.to_assembly(sim) + net.add(assembly) + for edge_population in sonata_edge_populations: + projections = edge_population.to_projections(net, sim) + net.add(*projections) + + return net + + +def load_sonata_simulation_plan(config_file): + """Create a simulation plan (what to record, etc.) from a simulation config file.""" + config = load_config(config_file) + plan = SimulationPlan(**config) + return plan + + +# ----- internal API --------------------------------------------------------- + +# The following classes are not intended to be instantiated directly, but +# are used internally by the public functions. + + +class NodePopulation(object): + """Representation of a SONATA node population""" + + @classmethod + def from_data(cls, name, h5_data, node_types_map, config): + """Create a NodePopulation instance, containing one or more NodeGroups, from data. + + Arguments + --------- + + name : string + Taken from the SONATA nodes HDF5 file. + h5_data : HDF5 Group + The "/nodes/" group. + node_types_map : dict + Data loaded from node types CSV file. Top-level keys are node type ids. + config : dict + Circuit config loaded from JSON. + """ + obj = cls() + obj.name = name + obj.node_groups = [] + obj.node_ids = h5_data['node_id'] + + node_group_ids = h5_data['node_group_id'][()] + for ng_label in np.unique(node_group_ids): + mask = node_group_ids == ng_label + logger.info("NODE GROUP {}, size {}".format(ng_label, mask.sum())) + + node_type_array = h5_data['node_type_id'][mask] + node_group_index = h5_data['node_group_index'][mask].tolist() + obj.node_groups.append( + NodeGroup.from_data(ng_label, + node_type_array, + node_group_index, + h5_data[str(ng_label)], + node_types_map, + config) + ) + # todo: handle spatial structure - h5_data['x'], etc. + return obj + + def __repr__(self): + return "NodePopulation(name='{}', node_groups={})".format(self.name, self.node_groups) + + def to_assembly(self, sim): + """Create a PyNN Assembly from this NodePopulation. + + The Assembly will contain one Population for each NodeGroup. + """ + assembly = sim.Assembly(label=self.name) + assembly.annotations["first_sonata_id"] = self.node_ids[()].min() + for node_group in self.node_groups: + pop = node_group.to_population(sim) + assembly += pop + return assembly + + +class NodeGroup(object): + """Representation of a SONATA node population""" + + def __len__(self): + return self.node_types_array.size + + @property + def size(self): + return len(self) + + @classmethod + def from_data(cls, id, node_types_array, index, h5_data, node_types_map, config): + """Create a NodeGroup instance from data. + + Arguments + --------- + + id : integer + Taken from the SONATA nodes HDF5 file. + node_types_array : NumPy array + Subset of the data from "/nodes//node_type_id" + that applies to this group. + index : list + Subset of the data from "/nodes//node_group_index" + that applies to this group. + h5_data : HDF5 Group + The "/nodes//" group. + node_types_map : dict + Data loaded from node types CSV file. Top-level keys are node type ids. + config : dict + Circuit config loaded from JSON. + """ + obj = cls() + obj.id = id + obj.node_types_array = node_types_array + + parameters = defaultdict(dict) + node_type_ids = np.unique(node_types_array) + + # parameters defined directly in node_types csv file + for node_type_id in node_type_ids: + for name, value in node_types_map[node_type_id].items(): + parameters[name][node_type_id] = cast(value) + + # parameters defined in json files referenced from node_types.csv + if "dynamics_params" in parameters: + for node_type_id in node_type_ids: + parameter_file_name = parameters["dynamics_params"][node_type_id] + parameter_file_path = join(config["components"]["point_neuron_models_dir"], + parameter_file_name) + with open(parameter_file_path) as fp: + dynamics_params = json.load(fp) + + for name, value in dynamics_params.items(): + parameters[name][node_type_id] = value + + # parameters defined in .h5 files + if 'dynamics_params' in h5_data: + dynamics_params_group = h5_data['dynamics_params'] + # not sure the next bit is using `index` correctly + for key in dynamics_params_group.keys(): + parameters[key] = dynamics_params_group[key][index] + + obj.parameters = parameters + obj.config = config + logger.info(parameters) + + return obj + + def __repr__(self): + return "NodeGroup(id='{}', parameters={})".format(self.id, self.parameters) + + def get_cell_type(self, sim): + """Determine which PyNN cell type to use, and return its class.""" + cell_types = set() + model_types = self.parameters["model_type"] + for node_type_id, model_type in model_types.items(): + if model_type not in ("point_neuron", "point_process", "virtual"): + raise NotImplementedError("Only point neurons currently supported.") + + if model_type == "virtual": + if self.config.get("target_simulator") == "NEST": + cell_types.add("nest:spike_generator") + else: + cell_types.add("pyNN:SpikeSourceArray") + else: + cell_types.add(self.parameters["model_template"][node_type_id]) + + if len(cell_types) != 1: + raise Exception("Heterogeneous group, not currently supported.") + + cell_type = cell_types.pop() + prefix, cell_type_name = cell_type.split(":") + if prefix.lower() not in ("pynn", "nrn", "nest"): + raise NotImplementedError("Only PyNN, NEST and NEURON-native networks currently supported, not: %s (from %s)."% \ + (prefix, self.parameters["model_template"][node_type_id])) + if prefix.lower() == "nest": + cell_type_cls = sim.native_cell_type(cell_type_name) + if cell_type_name == "spike_generator": + cell_type_cls.uses_parrot = False + else: + cell_type_cls = getattr(sim, cell_type_name) + logger.info(" cell_type: {}".format(cell_type_cls)) + return cell_type_cls + + def to_population(self, sim): + """Create a PyNN Population from this NodeGroup.""" + cell_type_cls = self.get_cell_type(sim) + parameters = {} + annotations = {} + + for name, value in self.parameters.items(): + if name in cell_type_cls.default_parameters: + parameters[name] = condense(value, self.node_types_array) + else: + annotations[name] = condense(value, self.node_types_array) + # todo: handle spatial structure - nodes_file["nodes"][np_label][ng_label]['x'], etc. + + # temporary hack to work around problem with 300 Intfire cell example + if cell_type_cls.__name__ == 'IntFire1': + parameters['tau'] *= 1000.0 + parameters['refrac'] *= 1000.0 + # end hack + + cell_type = cell_type_cls(**parameters) + pop = sim.Population(self.size, + cell_type, + label=str(self.id)) + pop.annotate(**annotations) + logger.info("--------> {}".format(pop)) + # todo: create PopulationViews if multiple node_types + return pop + + +class EdgePopulation(object): + """Representation of a SONATA edge population""" + + @classmethod + def from_data(cls, name, h5_data, edge_types_map, config): + """Create an EdgePopulation instance, containing one or more EdgeGroups, from data. + + Arguments + --------- + + name : string + Taken from the SONATA edges HDF5 file. + h5_data : HDF5 Group + The "/edges/" group. + edge_types_map : dict + Data loaded from edge types CSV file. Top-level keys are edge type ids. + config : dict + Circuit config loaded from JSON. + """ + + obj = cls() + obj.name = name + obj.source_node_ids = h5_data["source_node_id"][()] + obj.source_node_population = to_string(h5_data["source_node_id"].attrs["node_population"]) + obj.target_node_ids = h5_data["target_node_id"][()] + obj.target_node_population = to_string(h5_data["target_node_id"].attrs["node_population"]) + + obj.edge_groups = [] + for eg_label in np.unique(h5_data['edge_group_id'][()]): + mask = h5_data['edge_group_id'][()] == eg_label + logger.info("EDGE GROUP {}, size {}".format(eg_label, mask.sum())) + + edge_type_array = h5_data['edge_type_id'][mask] + edge_group_index = h5_data['edge_group_index'][mask].tolist() + source_ids = obj.source_node_ids[mask] + target_ids = obj.target_node_ids[mask] + # note: it may be more efficient in an MPI context + # to defer the extraction of source_ids, etc. + + obj.edge_groups.append( + EdgeGroup.from_data(eg_label, + edge_type_array, + edge_group_index, + source_ids, + target_ids, + h5_data[str(eg_label)], + edge_types_map, + config) + ) + + + return obj + + def __repr__(self): + return "EdgePopulation(name='{}', edge_groups={})".format(self.name, self.edge_groups) + + def to_projections(self, net, sim): + """Create a list of PyNN Projections from this EdgePopulation.""" + pre = net.get_component(self.source_node_population) + post = net.get_component(self.target_node_population) + projections = [] + for edge_group in self.edge_groups: + projection = edge_group.to_projection(pre, post, self.name, sim) + projections.append(projection) + return projections + + +class EdgeGroup(object): + """Representation of a SONATA edge group.""" + + @classmethod + def from_data(cls, id, edge_types_array, index, source_ids, target_ids, + h5_data, edge_types_map, config): + """Create an EdgeGroup instance from data. + + Arguments + --------- + + id : integer + Taken from the SONATA edges HDF5 file. + node_types_array : NumPy array + Subset of the data from "/edges//edge_type_id" + that applies to this group. + index : list + Subset of the data from "/edges//edge_group_index" + that applies to this group. + h5_data : HDF5 Group + The "/edges//" group. + edge_types_map : dict + Data loaded from edge types CSV file. Top-level keys are edge type ids. + config : dict + Circuit config loaded from JSON. + """ + obj = cls() + obj.id = id + obj.edge_types_array = edge_types_array + obj.source_ids = source_ids + obj.target_ids = target_ids + + parameters = defaultdict(dict) + edge_type_ids = np.unique(edge_types_array) + + # parameters defined directly in edge_types csv file + for edge_type_id in edge_type_ids: + for name, value in edge_types_map[edge_type_id].items(): + parameters[name][edge_type_id] = cast(value) + + # parameters defined in json files referenced from edge_types.csv + if "dynamics_params" in parameters: + for edge_type_id in edge_type_ids: + parameter_file_name = parameters["dynamics_params"][edge_type_id] + parameter_file_path = join(config["components"]["synaptic_models_dir"], + parameter_file_name) + with open(parameter_file_path) as fp: + dynamics_params = json.load(fp) + + for name, value in dynamics_params.items(): + parameters[name][edge_type_id] = value + + # parameters defined in .h5 files + if 'dynamics_params' in h5_data: + dynamics_params_group = h5_data['dynamics_params'] + # not sure the next bit is using `index` correctly + for key in dynamics_params_group.keys(): + parameters[key] = dynamics_params_group[key][index] + if 'nsyns' in h5_data: + parameters['nsyns'] = h5_data['nsyns'][index] + if 'syn_weight' in h5_data: + parameters['syn_weight'] = h5_data['syn_weight'][index] + + obj.parameters = parameters + obj.config = config + logger.info(parameters) + return obj + + def __repr__(self): + return "EdgeGroup(id='{}', parameters={})".format(self.id, self.parameters) + + def get_synapse_and_receptor_type(self, sim): + """Determine which PyNN synapse and receptor type to use. + + Returns the synapse type class, and the receptor type label.""" + synapse_types = set() + + model_templates = self.parameters.get("model_template", None) + if model_templates: + for edge_type_id, model_template in model_templates.items(): + synapse_types.add(model_template) + + if len(synapse_types) != 1: + raise Exception("Heterogeneous group, not currently supported.") + + synapse_type = synapse_types.pop() + prefix, synapse_type_name = model_template.split(":") + if prefix.lower() not in ("pynn", "nrn", "nest"): + raise NotImplementedError("Only PyNN, NEST and NEURON-native networks currently supported.") + else: + prefix = "pyNN" + synapse_type_name = "StaticSynapse" + + if prefix == "nest": + synapse_type_cls = sim.native_synapse_type(synapse_type_name) + else: + synapse_type_cls = getattr(sim, synapse_type_name) + + receptor_types = self.parameters.get("receptor_type", None) + if receptor_types: + receptor_types = set(receptor_types.values()) + + if len(receptor_types) != 1: + raise Exception("Heterogeneous receptor types, not currently supported.") + # but should be, since SONATA egde groups can contain mixed excitatory + # and inhibitory connections. + # Would need to split into separate PyNN Projections, in this case. + + receptor_type = receptor_types.pop() + else: + receptor_type = "default" # temporary hack to make 300-cell example work, due to PyNN bug #597 + # value should really be None. + + logger.info(" synapse_type: {}".format(synapse_type_cls)) + logger.info(" receptor_type: {}".format(receptor_type)) + return synapse_type_cls, receptor_type + + def to_projection(self, pre, post, edge_population_name, sim): + """Create a PyNN Projection from this EdgeGroup. + + Arguments + --------- + + pre - PyNN Assembly + The assembly created from the pre-synaptic node population. + post - PyNN Assembly + The assembly created from the post-synaptic node population. + edge_population_name - string + Name of the edge population containing this edge group. + """ + synapse_type_cls, receptor_type = self.get_synapse_and_receptor_type(sim) + parameters = {} + annotations = {} + + for name, value in self.parameters.items(): + if name in synapse_type_cls.default_parameters: + parameters[name] = condense(value, self.edge_types_array) + elif name == "syn_weight": + parameters["weight"] = condense(value, self.edge_types_array) + else: + annotations[name] = value + + if "sign" in annotations: + # special case from the 300 IF example, not mentioned in the SONATA spec + # nor in the .mod file for IntFire1 + sign = condense(annotations["sign"], self.edge_types_array) + parameters["weight"] *= sign + + if "nsyns" in annotations: + # special case (?) from the 300 IF example, not mentioned in the SONATA spec + # nor in the .mod file for IntFire1 + nsyns = condense(annotations["nsyns"], self.edge_types_array) + parameters["weight"] *= nsyns + + conn_list_args = [ + sonata_id_to_index(pre, self.source_ids), + sonata_id_to_index(post, self.target_ids) + ] + column_names = [] + synapse_type_parameters = {} + for name, value in parameters.items(): + if isinstance(value, (np.ndarray)): + column_names.append(name) + conn_list_args.append(value) + else: + synapse_type_parameters[name] = value + + conn_list = np.array(conn_list_args).transpose() + connector = sim.FromListConnector(conn_list, + column_names=column_names) + syn = synapse_type_cls(**synapse_type_parameters) + prj = sim.Projection(pre, post, connector, syn, + receptor_type=receptor_type, + label="{}-{}".format(edge_population_name, self.id)) + prj.annotate(**annotations) + logger.info("--------> {}".format(prj)) + return prj + + +class SimulationPlan(object): + """ """ + + def __init__(self, run, inputs=None, output=None, reports=None, + target_simulator=None, node_sets_file=None, conditions=None, + manifest=None, **additional_sections): + self.run_config = run + self.inputs = inputs + self.output = output + self.reports = reports + self.target_simulator = target_simulator + self.node_sets_file = node_sets_file + self.conditions = conditions + self.manifest = manifest + self.additional_sections = additional_sections + if self.inputs is None: + self.inputs = {} + if self.reports is None: + self.reports = {} + if self.node_sets_file is not None: + with open(self.node_sets_file) as fp: + self.node_sets = json.load(fp) + # make all node set names lower case, needed by 300 IF neuron example + self.node_sets = {k.lower(): v for k, v in self.node_sets.items()} + # todo: handle compound node sets + + def setup(self, sim): + self.sim = sim + sim.setup(timestep=self.run_config["dt"]) + + def _get_target(self, config, net): + if "node_set" in config: # input config + targets = self.node_set_map[config["node_set"]] + elif "cells" in config: # recording config + # inconsistency in SONATA spec? Why not call this "node_set" also? + targets = self.node_set_map[config["cells"]] + return targets + + def _set_input_spikes(self, input_config, net): + # determine which assembly the spikes are for + targets = self._get_target(input_config, net) + if len(targets) != 1: + raise NotImplementedError() + base_assembly, mask = targets[0] + assembly = base_assembly[mask] + assert isinstance(assembly, self.sim.Assembly) + + # load spike data from file + if input_config["module"] != "h5": + raise NotImplementedError() + io = SonataIO(base_dir="", + spikes_file=input_config["input_file"]) + data = io.read() + assert len(data) == 1 + if "trial" in input_config: + raise NotImplementedError() + # assuming we can map trials to segments + assert len(data[0].segments) == 1 + spiketrains = data[0].segments[0].spiketrains + if len(spiketrains) != assembly.size: + raise NotImplementedError() + # todo: map cell ids in spikes file to ids/index in the population + assembly.set(spike_times=[Sequence(st.times.rescale('ms').magnitude) for st in spiketrains]) + + def _set_input_currents(self, input_config, net): + # determine which assembly the currents are for + if "input_file" in input_config: + raise NotImplementedError("Current clamp from source file not yet supported.") + targets = self._get_target(input_config, net) + if len(targets) != 1: + raise NotImplementedError() + base_assembly, mask = targets[0] + assembly = base_assembly[mask] + assert isinstance(assembly, self.sim.Assembly) + amplitude = input_config["amp"] # nA + if self.target_simulator == "NEST": + amplitude = input_config["amp"]/1000.0 # pA + + current_source = self.sim.DCSource(amplitude=amplitude, + start=input_config["delay"], + stop=input_config["delay"] + input_config["duration"]) + assembly.inject(current_source) + + def _calculate_node_set_map(self, net): + # for each "node set" in the config, determine which populations + # and node_ids it corresponds to + self.node_set_map = {} + + # first handle implicit node sets - i.e. each node population is an implicit node set + for assembly in net.assemblies: + self.node_set_map[assembly.label] = [(assembly, slice(None))] + + # now handle explictly-declared node sets + # todo: handle compound node sets + for node_set_name, node_set_definition in self.node_sets.items(): + if isinstance(node_set_definition, dict): # basic node set + filters = node_set_definition + if "population" in filters: + assemblies = [net.get_component(filters["population"])] + else: + assemblies = list(net.assemblies) + + self.node_set_map[node_set_name] = [] + for assembly in assemblies: + mask = True + for attr_name, attr_value in filters.items(): + print(attr_name, attr_value, "____") + if attr_name == "population": + continue + elif attr_name == "node_id": + # convert integer mask to boolean mask + node_mask = np.zeros(assembly.size, dtype=bool) + node_mask[attr_value] = True + mask = np.logical_and(mask, node_mask) + else: + values = assembly.get_annotations(attr_name)[attr_name] + mask = np.logical_and(mask, values == attr_value) + if isinstance(mask, (bool, np.bool_)) and mask == True: + mask = slice(None) + self.node_set_map[node_set_name].append((assembly, mask)) + elif isinstance(node_set_definition, list): # compound node set + raise NotImplementedError("Compound node sets not yet supported") + else: + raise TypeError("Expecting node set definition to be a list or dict") + + def execute(self, net): + self._calculate_node_set_map(net) + + # create/configure inputs + for input_name, input_config in self.inputs.items(): + if input_config["input_type"] == "spikes": + self._set_input_spikes(input_config, net) + elif input_config["input_type"] == "current_clamp": + self._set_input_currents(input_config, net) + else: + raise NotImplementedError("Only 'spikes' and 'current_clamp' supported") + + # configure recording + net.record('spikes', include_spike_source=False) # SONATA requires that we record spikes from all non-virtual nodes + for report_name, report_config in self.reports.items(): + targets = self._get_target(report_config, net) + for (base_assembly, mask) in targets: + assembly = base_assembly[mask] + assembly.record(report_config["variable_name"]) + + # run simulation + self.sim.run(self.run_config["tstop"]) + + # write output + if "overwrite_output_dir" in self.run_config: + directory = self.output["output_dir"] + if exists(directory) and isdir(directory): + shutil.rmtree(directory) + os.makedirs(directory) + io = SonataIO(self.output["output_dir"], + spikes_file=self.output.get("spikes_file", "spikes.h5"), + spikes_sort_order=self.output["spikes_sort_order"], + report_config=self.reports, + node_sets=self.node_set_map) + # todo: handle reports + net.write_data(io) + + @classmethod + def from_config(cls, config): + obj = cls(**config) + return obj diff --git a/pyNN/space.py b/pyNN/space.py index 4d3bdff68..2f994b6e9 100644 --- a/pyNN/space.py +++ b/pyNN/space.py @@ -17,7 +17,7 @@ Cuboid - representation of a cuboidal volume, for use with RandomStructure. Sphere - representation of a spherical volume, for use with RandomStructure. -:copyright: Copyright 2006-2016 by the PyNN team, see AUTHORS. +:copyright: Copyright 2006-2020 by the PyNN team, see AUTHORS. :license: CeCILL, see LICENSE for details. """ diff --git a/pyNN/standardmodels/__init__.py b/pyNN/standardmodels/__init__.py index 5afd24670..a314a28dc 100644 --- a/pyNN/standardmodels/__init__.py +++ b/pyNN/standardmodels/__init__.py @@ -13,7 +13,7 @@ STDPWeightDependence STDPTimingDependence -:copyright: Copyright 2006-2016 by the PyNN team, see AUTHORS. +:copyright: Copyright 2006-2020 by the PyNN team, see AUTHORS. :license: CeCILL, see LICENSE for details. """ @@ -26,6 +26,7 @@ import neo import quantities as pq + # ============================================================================== # Standard cells # ============================================================================== @@ -71,9 +72,12 @@ def native_parameters(self): """ return self.translate(self.parameter_space) - def translate(self, parameters): + def translate(self, parameters, copy=True): """Translate standardized model parameters to simulator-specific parameters.""" - _parameters = deepcopy(parameters) + if copy: + _parameters = deepcopy(parameters) + else: + _parameters = parameters cls = self.__class__ if parameters.schema != self.get_schema(): raise Exception("Schemas do not match: %s != %s" % (parameters.schema, self.get_schema())) # should replace this with a PyNN-specific exception type @@ -182,7 +186,7 @@ def __setattr__(self, name, value): else: object.__setattr__(self, name, value) - def set_parameters(self, **parameters): + def set_parameters(self, copy=True, **parameters): """ Set current source parameters, given as a sequence of parameter=value arguments. """ @@ -197,7 +201,7 @@ def set_parameters(self, **parameters): parameters = all_parameters else: parameters = ParameterSpace(parameters, self.get_schema(), (1,)) - parameters = self.translate(parameters) + parameters = self.translate(parameters, copy=copy) self.set_native_parameters(parameters) def get_parameters(self): @@ -213,7 +217,8 @@ def get_native_parameters(self): raise NotImplementedError def _round_timestamp(self, value, resolution): - return int(value/resolution+0.5) * resolution + # todo: consider using decimals module, since rounding of floating point numbers is so horrible + return numpy.rint(value/resolution) * resolution def get_data(self): """Return the recorded current as a Neo signal object""" @@ -240,9 +245,10 @@ def __init__(self, *args, **kwargs): def check_weights(weights, projection): - # if projection.post is an Assembly, some components might have cond-synapses, others curr, so need a more sophisticated check here - synapse_sign = projection.receptor_type - is_conductance = projection.post.conductance_based + # if projection.post is an Assembly, some components might have cond-synapses, others curr, + # so need a more sophisticated check here. For now, skipping check and emitting a warning + if hasattr(projection.post, "_homogeneous_synapses") and not projection.post._homogeneous_synapses: + warnings.warn("Not checking weights due to due mixture of synapse types") if isinstance(weights, numpy.ndarray): all_negative = (weights <= 0).all() all_positive = (weights >= 0).all() @@ -250,15 +256,19 @@ def check_weights(weights, projection): raise errors.ConnectionError("Weights must be either all positive or all negative") elif numpy.isreal(weights): all_positive = weights >= 0 - all_negative = weights < 0 + all_negative = weights <= 0 else: raise errors.ConnectionError("Weights must be a number or an array of numbers.") - if is_conductance or synapse_sign == 'excitatory': + if projection.post.conductance_based or projection.receptor_type == 'excitatory': if not all_positive: - raise errors.ConnectionError("Weights must be positive for conductance-based and/or excitatory synapses") - elif is_conductance is False and synapse_sign == 'inhibitory': + raise errors.ConnectionError( + "Weights must be positive for conductance-based and/or excitatory synapses" + ) + elif projection.post.conductance_based is False and projection.receptor_type == 'inhibitory': if not all_negative: - raise errors.ConnectionError("Weights must be negative for current-based, inhibitory synapses") + raise errors.ConnectionError( + "Weights must be negative for current-based, inhibitory synapses" + ) else: # This should never happen. raise Exception("Can't check weight, conductance status unknown.") @@ -281,7 +291,7 @@ def check_delays(delays, projection): class StandardSynapseType(StandardModelType, models.BaseSynapseType): parameter_checks = { 'weight': check_weights, - 'delay': check_delays + #'delay': check_delays # this needs to be revisited in the context of min_delay = "auto" } def get_schema(self): diff --git a/pyNN/standardmodels/cells.py b/pyNN/standardmodels/cells.py index f8fdd8115..3bdcda5ea 100644 --- a/pyNN/standardmodels/cells.py +++ b/pyNN/standardmodels/cells.py @@ -24,7 +24,7 @@ SpikeSourceArray SpikeSourceInhGamma -:copyright: Copyright 2006-2016 by the PyNN team, see AUTHORS. +:copyright: Copyright 2006-2020 by the PyNN team, see AUTHORS. :license: CeCILL, see LICENSE for details. """ @@ -325,6 +325,7 @@ class HH_cond_exp(StandardCellType): 'tau_syn_E': 0.2, # ms 'tau_syn_I': 2.0, 'i_offset': 0.0, # nA + } recordable = ['spikes', 'v', 'gsyn_exc', 'gsyn_inh'] receptor_types = ('excitatory', 'inhibitory', 'source_section.gap') @@ -332,6 +333,9 @@ class HH_cond_exp(StandardCellType): 'v': -65.0, # 'v_rest', 'gsyn_exc': 0.0, 'gsyn_inh': 0.0, + 'h': 1.0, + 'm': 0.0, + 'n': 0.0, } units = { 'v': 'mV', @@ -350,6 +354,9 @@ class HH_cond_exp(StandardCellType): 'tau_syn_E': 'ms', 'tau_syn_I': 'ms', 'i_offset': 'nA', + 'h': '', + 'm': '', + 'n': '', } diff --git a/pyNN/standardmodels/electrodes.py b/pyNN/standardmodels/electrodes.py index cc63562d1..7b6708eb2 100644 --- a/pyNN/standardmodels/electrodes.py +++ b/pyNN/standardmodels/electrodes.py @@ -2,7 +2,7 @@ Definition of default parameters (and hence, standard parameter names) for standard current source models. -:copyright: Copyright 2006-2016 by the PyNN team, see AUTHORS. +:copyright: Copyright 2006-2020 by the PyNN team, see AUTHORS. :license: CeCILL, see LICENSE for details. """ diff --git a/pyNN/standardmodels/synapses.py b/pyNN/standardmodels/synapses.py index 199235b35..c091324d0 100644 --- a/pyNN/standardmodels/synapses.py +++ b/pyNN/standardmodels/synapses.py @@ -13,7 +13,7 @@ GutigWeightDependence SpikePairRule -:copyright: Copyright 2006-2016 by the PyNN team, see AUTHORS. +:copyright: Copyright 2006-2020 by the PyNN team, see AUTHORS. :license: CeCILL, see LICENSE for details. """ @@ -40,7 +40,7 @@ class ElectricalSynapse(StandardSynapseType): """ A bidirectional electrical synapse (gap junction) with fixed conductance """ - + default_parameters = { 'weight': 0.0 # the (bidirectional) conductance of the gap junction (uS) } @@ -64,7 +64,7 @@ class TsodyksMarkramSynapse(StandardSynapseType): depression time constant (ms). `tau_facil`: facilitation time constant (ms). - + .. _`Tsodyks, Uziel and Markram (2000)`: http://www.jneurosci.org/content/20/1/RC50.long """ default_parameters = { @@ -176,7 +176,7 @@ def __init__(self, timing_dependence=None, weight_dependence=None, self.weight = weight self.delay = delay or self._get_minimum_delay() self._build_translations() - + def _build_translations(self): self.translations = self.__class__.base_translations # weight and delay for component in (self.timing_dependence, self.weight_dependence, self.voltage_dependence): @@ -418,17 +418,17 @@ def __init__(self, tau_plus=20.0, tau_minus=20.0, A_plus=0.01, A_minus=0.01): class Vogels2011Rule(STDPTimingDependence): """ - Timing-dependence rule from + Timing-dependence rule from Vogels TP, Sprekeler H, Zenke F, Clopath C, Gerstner W (2011) Inhibitory plasticity balances excitation and inhibition in sensory pathways and memory networks. Science 334:1569-73 http://dx.doi.org/10.1126/science.1211095 - + Potentiation depends on the coincidence of pre- and post-synaptic spikes but not on their order. Pre-synaptic spikes in the absence of post- synaptic ones produce depression. - + Also see http://senselab.med.yale.edu/modeldb/ShowModel.asp?model=143751 """ @@ -437,3 +437,4 @@ class Vogels2011Rule(STDPTimingDependence): 'eta': 1e-10, 'rho': 3.0 } + diff --git a/pyNN/utility/__init__.py b/pyNN/utility/__init__.py index dd5a834de..f0094f55a 100644 --- a/pyNN/utility/__init__.py +++ b/pyNN/utility/__init__.py @@ -12,7 +12,7 @@ Timer - a convenience wrapper around the time.time() function from the standard library. -:copyright: Copyright 2006-2016 by the PyNN team, see AUTHORS. +:copyright: Copyright 2006-2020 by the PyNN team, see AUTHORS. :license: CeCILL, see LICENSE for details. """ @@ -37,7 +37,7 @@ import functools import numpy from importlib import import_module - + from pyNN.core import deprecated @@ -88,12 +88,12 @@ def get_simulator(*arguments): """ Import and return a PyNN simulator backend module based on command-line arguments. - + The simulator name should be the first positional argument. If your script needs additional arguments, you can specify them as (name, help_text) tuples. If you need more complex argument handling, you should use argparse directly. - + Returns (simulator, command-line arguments) """ import argparse @@ -189,25 +189,33 @@ def load_population(filename, sim): return population -def normalized_filename(root, basename, extension, simulator, num_processes=None): +def normalized_filename(root, basename, extension, simulator, num_processes=None, use_iso8601=False): """ Generate a file path containing a timestamp and information about the simulator used and the number of MPI processes. - + The date is used as a sub-directory name, the date & time are included in the filename. + If use_iso8601 is True, follow https://en.wikipedia.org/wiki/ISO_8601 """ timestamp = datetime.now() + if use_iso8601: + date = timestamp.strftime("%Y-%m-%d") + date_time = timestamp.strftime("%Y-%m-%dT%H:%M:%S") + else: + date = timestamp.strftime("%Y%m%d") + date_time = timestamp.strftime("%Y%m%d-%H%M%S") + if num_processes: np = "_np%d" % num_processes else: np = "" return os.path.join(root, - timestamp.strftime("%Y%m%d"), + date, "%s_%s%s_%s.%s" % (basename, simulator, np, - timestamp.strftime("%Y%m%d-%H%M%S"), + date_time, extension)) @@ -409,7 +417,6 @@ def __init__(self, func): self.cached_value = None def __call__(self, *args): - import pdb; pdb.set_trace() if args == self.cached_args: print("using cached value") return self.cached_value diff --git a/pyNN/utility/plotting.py b/pyNN/utility/plotting.py index 927aa9e59..85963e50c 100644 --- a/pyNN/utility/plotting.py +++ b/pyNN/utility/plotting.py @@ -6,7 +6,7 @@ figures, it will probably be easier to use matplotlib or another plotting package directly rather than trying to extend this module. -:copyright: Copyright 2006-2016 by the PyNN team, see AUTHORS. +:copyright: Copyright 2006-2020 by the PyNN team, see AUTHORS. :license: CeCILL, see LICENSE for details. """ diff --git a/requirements.txt b/requirements.txt index 3a2b18bbd..18998e4a2 100644 --- a/requirements.txt +++ b/requirements.txt @@ -3,5 +3,8 @@ docutils>=0.10 mock>1.0 numpy>=1.8.2 quantities>=0.12.1 -lazyarray>=0.3.2 +lazyarray>=0.3.4 neo>=0.5.2 +setuptools>=20.5;python_version!="3.3" +nose +h5py;python_version!="3.3" diff --git a/setup.py b/setup.py index 22567dae1..46ba7d9cd 100644 --- a/setup.py +++ b/setup.py @@ -1,7 +1,19 @@ #!/usr/bin/env python -from distutils.core import setup -from distutils.command.build import build as _build +try: + from setuptools import setup + from setuptools.command.build_py import build_py as _build + from setuptools import version + if version.__version__ > '20.5': + tests_req = ['mpi4py', 'scipy;python_version>="3.4"', + 'matplotlib;python_version>="3.4"', 'Cheetah3', + 'h5py'] + else: + tests_req = ['mpi4py', 'Cheetah3'] +except ImportError: + from distutils.core import setup + from distutils.command.build_py import build_py as _build + import os import subprocess @@ -10,7 +22,7 @@ def run_command(path, working_directory): p = subprocess.Popen(path, shell=True, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.STDOUT, universal_newlines=True, - close_fds=True, cwd=working_directory) + cwd=working_directory) result = p.wait() stdout = p.stdout.readlines() return result, stdout @@ -23,6 +35,7 @@ def run(self): _build.run(self) # try to compile NEURON extensions nrnivmodl = self.find("nrnivmodl") + if nrnivmodl: print("nrnivmodl found at", nrnivmodl) result, stdout = run_command(nrnivmodl, @@ -71,15 +84,17 @@ def find(self, command): break return cmd + setup( name="PyNN", - version="0.9.2", + version="0.9.6", packages=['pyNN', 'pyNN.nest', 'pyNN.neuron', - 'pyNN.brian', 'pyNN.common', 'pyNN.mock', 'pyNN.neuroml', - 'pyNN.recording', 'pyNN.standardmodels', 'pyNN.descriptions', - 'pyNN.nest.standardmodels', 'pyNN.neuroml.standardmodels', - 'pyNN.neuron.standardmodels', 'pyNN.brian.standardmodels', - 'pyNN.utility', 'pyNN.nineml'], + 'pyNN.brian', 'pyNN.brian2', 'pyNN.common', 'pyNN.mock', 'pyNN.neuroml', + 'pyNN.recording', 'pyNN.standardmodels', 'pyNN.descriptions', + 'pyNN.nest.standardmodels', 'pyNN.neuroml.standardmodels', + 'pyNN.neuron.standardmodels', 'pyNN.brian.standardmodels', + 'pyNN.brian2.standardmodels', 'pyNN.utility', 'pyNN.nineml', + 'pyNN.serialization'], package_data={'pyNN': ['neuron/nmodl/*.mod', 'nest/extensions/*.h', 'nest/extensions/*.cpp', @@ -102,11 +117,18 @@ def find(self, command): 'Programming Language :: Python :: 2', 'Programming Language :: Python :: 2.7', 'Programming Language :: Python :: 3', - 'Programming Language :: Python :: 3.3', - 'Programming Language :: Python :: 3.4', - 'Programming Language :: Python :: 3.5', 'Programming Language :: Python :: 3.6', + 'Programming Language :: Python :: 3.7', + 'Programming Language :: Python :: 3.8', 'Topic :: Scientific/Engineering'], - cmdclass={'build': build}, + cmdclass={'build_py': build}, + install_requires=['numpy>=1.13.0', 'lazyarray>=0.3.4', 'neo>=0.8.0', + 'quantities>=0.12.1'], + extras_require={ + 'examples': ['matplotlib', 'scipy'], + 'plotting': ['matplotlib', 'scipy'], + 'MPI': ['mpi4py'], + 'sonata': ['h5py'] + }, + tests_require=tests_req ) - diff --git a/test/README b/test/README index fc7af1235..3040729c9 100644 --- a/test/README +++ b/test/README @@ -5,66 +5,4 @@ PyNN testing is divided into several different types of test: * running the example scripts * doctests - -NOTE: the test suite is currently being reorganised to work with nose (http://somethingaboutorange.com/mrl/projects/nose), -in order to facilitate continuous integration testing. - -Many of the scripts listed below have been temporarily moved to an `unsorted` directory, until they can be -integrated into the nose framework. - - - -API syntax consistency ----------------------- - -checkAPI.py - - -Unit tests ----------- - -In the `unittests` subdirectory. Tests can be run individually, or all at once -with coverage measurement using `alltests.sh`. - -Note that the `generictests.py` script takes the simulator backend as a -command-line argument. - -`generictests.py` should be run both with "python" and with "mpirun python". - - -Regression tests ----------------- - -Any time there is a bug/defect on the tracker, appropriate tests should be added to both -the `unittests` and `system` directories. - - -System tests ------------- - -These tests compare the output of different simulators for the same script. Each -test can be run directly by providing a parameter file on the command line, -e.g.: - -python test_synaptic_integration.py parameters/test_synaptic_integration.param neuron nest - -or it can be run with many different parameter sets using the explore_space.py -script, e.g.: - -python explore_space.py -n 5 -f ~/mpd.hosts test_synaptic_integration.py parameters/test_synaptic_integration.space neuron nest - - - - -Running the example scripts ---------------------------- - -test_examples.py -test_examples_mpi.py - - -Documentation tests -------------------- - -Tests that the code examples given in the documentation are correct. -XXXX +For full documentation on testing, see:http://neuralensemble.org/docs/PyNN/developers/contributing.html#testing diff --git a/test/benchmarks/Benchmark_PyNN-0.8dev_FixedNumberPost.py b/test/benchmarks/Benchmark_PyNN-0.8dev_FixedNumberPost.py index 2bffd7851..6f1019283 100644 --- a/test/benchmarks/Benchmark_PyNN-0.8dev_FixedNumberPost.py +++ b/test/benchmarks/Benchmark_PyNN-0.8dev_FixedNumberPost.py @@ -137,10 +137,10 @@ # === Setup recording ========================================================== print("%s Setting up recording..." % node_id) -exc_cells.record() -inh_cells.record() +exc_cells.record('spikes') +inh_cells.record('spikes') cells_to_record = range(n_cells_to_record) -exc_cells[cells_to_record].record_v() +exc_cells[list(cells_to_record)].record_v() times['t_record'] = timer.diff() @@ -162,13 +162,13 @@ # === Print(results to file ==================================================== -exc_spike_fn = "%s/VAbenchmark_%s_exc_%s_np%d_%d.ras" % (folder_name, benchmark, simulator_name, np, node_id) +exc_spike_fn = "%s/VAbenchmark_%s_exc_%s_np%d_%d.pkl" % (folder_name, benchmark, simulator_name, np, node_id) exc_cells.printSpikes(exc_spike_fn, gather=gather) print("%d Print(inh spikes to file..." % node_id) -inh_spike_fn = "%s/VAbenchmark_%s_inh_%s_np%d_%d.ras" % (folder_name, benchmark, simulator_name, np, node_id) +inh_spike_fn = "%s/VAbenchmark_%s_inh_%s_np%d_%d.pkl" % (folder_name, benchmark, simulator_name, np, node_id) inh_cells.printSpikes(inh_spike_fn, gather=gather) print("%d Print(voltage to file..." % node_id) -exc_cells[cells_to_record].print_v("%s/VAbenchmark_%s_exc_%s_np%d_%d.v" % (folder_name, benchmark, simulator_name, np, node_id), gather=gather) +exc_cells[list(cells_to_record)].print_v("%s/VAbenchmark_%s_exc_%s_np%d_%d.pkl" % (folder_name, benchmark, simulator_name, np, node_id), gather=gather) times['t_printSpikes'] = timer.diff() # === Load spike file and calculate conductances ==================== diff --git a/test/benchmarks/simple_network.py b/test/benchmarks/simple_network.py index f9b98c05a..3094e2549 100644 --- a/test/benchmarks/simple_network.py +++ b/test/benchmarks/simple_network.py @@ -81,7 +81,7 @@ def main_pynest(parameters): nest.SetKernelStatus({"resolution": 0.1}) timer.mark("setup") - p = nest.Create("iaf_neuron", n=P.n, params={"I_e": 1000.0}) + p = nest.Create("iaf_psc_alpha", n=P.n, params={"I_e": 1000.0}) timer.mark("build") # todo: add recording and data retrieval diff --git a/test/hardware/unittests/launch_test.py b/test/hardware/unittests/launch_test.py deleted file mode 100644 index 7c115270a..000000000 --- a/test/hardware/unittests/launch_test.py +++ /dev/null @@ -1,21 +0,0 @@ -import os -import inspect - -module_names = [] -for subdir, dirs, files in os.walk('./'): - for file in files: - fileName, fileExtension = os.path.splitext(file) - if fileExtension == '.py' and fileName != '__init__' and fileName != 'launch_test' and fileName != 'mocks': - module_names.append(fileName) - -modules = map(__import__, module_names) -for module in modules: - for name, obj in inspect.getmembers(module): - if inspect.isclass(obj): - d = dir(obj) - for d1 in d: - if not d1.find("test"): - function_name = module.__name__ + '.' + obj.__name__ + '.' + d1 - bash_command = "python -m unittest " + function_name - print(bash_command) - os.system(bash_command) diff --git a/test/hardware/unittests/mocks.py b/test/hardware/unittests/mocks.py deleted file mode 100644 index 406fce4d6..000000000 --- a/test/hardware/unittests/mocks.py +++ /dev/null @@ -1,57 +0,0 @@ -""" -Mock classes for unit tests - -:copyright: Copyright 2006-2016 by the PyNN team, see AUTHORS. -:license: CeCILL, see LICENSE for details. -""" - -from pyNN import random -import numpy - - -class MockRNG(random.WrappedRNG): - rng = None - - def __init__(self, start=0.0, delta=1, parallel_safe=True): - random.WrappedRNG.__init__(self, parallel_safe=parallel_safe) - self.start = start - self.delta = delta - - def _next(self, distribution, n, parameters): - if distribution == "uniform_int": - return self._next_int(n, parameters) - elif distribution == "binomial": - return self._next_binomial(n, parameters) - s = self.start - self.start += n * self.delta - return s + self.delta * numpy.arange(n) - - def _next_int(self, n, parameters): - low, high = parameters["low"], parameters["high"] - s = int(self.start) - self.start += n * self.delta - x = s + self.delta * numpy.arange(n) - return x % (high - low) + low - - def _next_binomial(self, n, parameters): - return self._next_int(n, {"low": 0, "high": parameters["n"]}) - - def permutation(self, arr): - return arr[::-1] - - -class MockRNG2(random.WrappedRNG): - rng = None - - def __init__(self, numbers, parallel_safe=True): - random.WrappedRNG.__init__(self, parallel_safe=parallel_safe) - self.numbers = numbers - self.i = 0 - - def _next(self, distribution, n, parameters): - x = self.numbers[self.i:self.i + n] - self.i += n - return x - - def permutation(self, arr): - return arr[::-1] diff --git a/test/hardware/unittests/test_assembly.py b/test/hardware/unittests/test_assembly.py deleted file mode 100644 index 39ac2cfe8..000000000 --- a/test/hardware/unittests/test_assembly.py +++ /dev/null @@ -1,386 +0,0 @@ -""" -Tests of the common implementation of the Assembly class, using the pyNN.mock -backend. - -:copyright: Copyright 2006-2016 by the PyNN team, see AUTHORS. -:license: CeCILL, see LICENSE for details. -""" - -try: - import unittest2 as unittest -except ImportError: - import unittest -import numpy -import quantities as pq -from numpy.testing import assert_array_equal, assert_array_almost_equal -from mock import Mock, patch -from .mocks import MockRNG -import pyNN.hardware.brainscales as sim - - -class AssemblyTest(unittest.TestCase): - - def setUp(self): - extra = {'loglevel': 0, 'useSystemSim': True, 'hardware': sim.hardwareSetup['one-hicann']} - sim.setup(**extra) - - def tearDown(self): - sim.end() - - def test_create_with_zero_populations(self): - a = sim.Assembly() - self.assertEqual(a.populations, []) - self.assertIsInstance(a.label, basestring) - - def test_create_with_one_population(self): - p = sim.Population(11, sim.IF_cond_exp()) - a = sim.Assembly(p) - self.assertEqual(a.populations, [p]) - self.assertIsInstance(a.label, basestring) - - def test_create_with_two_populations(self): - p1 = sim.Population(11, sim.IF_cond_exp()) - p2 = sim.Population(11, sim.IF_cond_exp()) - a = sim.Assembly(p1, p2, label="test") - self.assertEqual(a.populations, [p1, p2]) - self.assertEqual(a.label, "test") - - def test_create_with_non_population_should_raise_Exception(self): - self.assertRaises(TypeError, sim.Assembly, [1, 2, 3]) - - def test_size_property(self): - p1 = sim.Population(11, sim.IF_cond_exp()) - p2 = sim.Population(11, sim.IF_cond_exp()) - a = sim.Assembly(p1, p2, label="test") - self.assertEqual(a.size, p1.size + p2.size) - - def test_positions_property(self): - p1 = sim.Population(11, sim.IF_cond_exp()) - p2 = sim.Population(11, sim.IF_cond_exp()) - a = sim.Assembly(p1, p2, label="test") - assert_array_equal(a.positions, numpy.concatenate((p1.positions, p2.positions), axis=1)) - - def test__len__(self): - p1 = sim.Population(11, sim.IF_cond_exp()) - p2 = sim.Population(11, sim.IF_cond_exp()) - a = sim.Assembly(p1, p2, label="test") - self.assertEqual(len(a), len(p1) + len(p2)) - - def test_local_cells(self): - p1 = sim.Population(11, sim.IF_cond_exp()) - p2 = sim.Population(11, sim.IF_cond_exp()) - a = sim.Assembly(p1, p2, label="test") - assert_array_equal(a.local_cells, numpy.append(p1.local_cells, p2.local_cells)) - - def test_all_cells(self): - p1 = sim.Population(11, sim.IF_cond_exp()) - p2 = sim.Population(11, sim.IF_cond_exp()) - a = sim.Assembly(p1, p2, label="test") - assert_array_equal(a.all_cells, numpy.append(p1.all_cells, p2.all_cells)) - - def test_iter(self): - p1 = sim.Population(11, sim.IF_cond_exp()) - p2 = sim.Population(11, sim.IF_cond_exp()) - a = sim.Assembly(p1, p2, label="test") - assembly_ids = [id for id in a] - - def test__add__population(self): - p1 = sim.Population(11, sim.IF_cond_exp()) - p2 = sim.Population(11, sim.IF_cond_exp()) - a1 = sim.Assembly(p1) - self.assertEqual(a1.populations, [p1]) - a2 = a1 + p2 - self.assertEqual(a1.populations, [p1]) - self.assertEqual(a2.populations, [p1, p2]) - - def test__add__assembly(self): - p1 = sim.Population(11, sim.IF_cond_exp()) - p2 = sim.Population(11, sim.IF_cond_exp()) - p3 = sim.Population(11, sim.IF_cond_exp()) - a1 = sim.Assembly(p1, p2) - a2 = sim.Assembly(p2, p3) - a3 = a1 + a2 - self.assertEqual(a3.populations, [p1, p2, p3]) # or do we want [p1, p2, p3]? - - def test_add_inplace_population(self): - p1 = sim.Population(11, sim.IF_cond_exp()) - p2 = sim.Population(11, sim.IF_cond_exp()) - a = sim.Assembly(p1) - a += p2 - self.assertEqual(a.populations, [p1, p2]) - - def test_add_inplace_assembly(self): - p1 = sim.Population(11, sim.IF_cond_exp()) - p2 = sim.Population(11, sim.IF_cond_exp()) - p3 = sim.Population(11, sim.IF_cond_exp()) - a1 = sim.Assembly(p1, p2) - a2 = sim.Assembly(p2, p3) - a1 += a2 - self.assertEqual(a1.populations, [p1, p2, p3]) - - def test_add_invalid_object(self): - p1 = sim.Population(11, sim.IF_cond_exp()) - p2 = sim.Population(11, sim.IF_cond_exp()) - a = sim.Assembly(p1, p2) - self.assertRaises(TypeError, a.__add__, 42) - self.assertRaises(TypeError, a.__iadd__, 42) - - def test_initialize(self): - p1 = sim.Population(11, sim.IF_cond_exp()) - p2 = sim.Population(11, sim.IF_cond_exp()) - a = sim.Assembly(p1, p2) - v_init = -54.3 - a.initialize(v=v_init) - assert_array_equal(p2.initial_values['v'].evaluate(simplify=True), v_init) - - def test_describe(self): - p1 = sim.Population(11, sim.IF_cond_exp()) - p2 = sim.Population(11, sim.IF_cond_exp()) - a = sim.Assembly(p1, p2) - self.assertIsInstance(a.describe(), basestring) - self.assertIsInstance(a.describe(template=None), dict) - - def test_get_population(self): - p1 = sim.Population(11, sim.IF_cond_exp()) - p1.label = "pop1" - p2 = sim.Population(11, sim.IF_cond_exp()) - p2.label = "pop2" - a = sim.Assembly(p1, p2) - self.assertEqual(a.get_population("pop1"), p1) - self.assertEqual(a.get_population("pop2"), p2) - self.assertRaises(KeyError, a.get_population, "foo") - - def test_all_cells(self): - p1 = sim.Population(11, sim.IF_cond_exp()) - p2 = sim.Population(11, sim.IF_cond_exp()) - p3 = sim.Population(11, sim.IF_cond_exp()) - a = sim.Assembly(p1, p2, p3) - self.assertEqual(a.all_cells.size, - p1.all_cells.size + p2.all_cells.size + p3.all_cells.size) - self.assertEqual(a.all_cells[0], p1.all_cells[0]) - self.assertEqual(a.all_cells[-1], p3.all_cells[-1]) - assert_array_equal(a.all_cells, numpy.append(p1.all_cells, (p2.all_cells, p3.all_cells))) - - def test_local_cells(self): - p1 = sim.Population(11, sim.IF_cond_exp()) - p2 = sim.Population(11, sim.IF_cond_exp()) - p3 = sim.Population(11, sim.IF_cond_exp()) - a = sim.Assembly(p1, p2, p3) - self.assertEqual(a.local_cells.size, - p1.local_cells.size + p2.local_cells.size + p3.local_cells.size) - self.assertEqual(a.local_cells[0], p1.local_cells[0]) - self.assertEqual(a.local_cells[-1], p3.local_cells[-1]) - assert_array_equal(a.local_cells, numpy.append(p1.local_cells, (p2.local_cells, p3.local_cells))) - - def test_mask_local(self): - p1 = sim.Population(11, sim.IF_cond_exp()) - p2 = sim.Population(11, sim.IF_cond_exp()) - p3 = sim.Population(11, sim.IF_cond_exp()) - a = sim.Assembly(p1, p2, p3) - self.assertEqual(a._mask_local.size, - p1._mask_local.size + p2._mask_local.size + p3._mask_local.size) - self.assertEqual(a._mask_local[0], p1._mask_local[0]) - self.assertEqual(a._mask_local[-1], p3._mask_local[-1]) - assert_array_equal(a._mask_local, numpy.append(p1._mask_local, (p2._mask_local, p3._mask_local))) - assert_array_equal(a.local_cells, a.all_cells[a._mask_local]) - - def test_save_positions(self): - import os - p1 = sim.Population(2, sim.IF_cond_exp()) - p2 = sim.Population(2, sim.IF_cond_exp()) - p1.positions = numpy.arange(0, 6).reshape((2, 3)).T - p2.positions = numpy.arange(6, 12).reshape((2, 3)).T - a = sim.Assembly(p1, p2, label="test") - output_file = Mock() - a.save_positions(output_file) - assert_array_equal(output_file.write.call_args[0][0], - numpy.array([[int(p1[0]), 0, 1, 2], - [int(p1[1]), 3, 4, 5], - [int(p2[0]), 6, 7, 8], - [int(p2[1]), 9, 10, 11]])) - self.assertEqual(output_file.write.call_args[0][1], {'assembly': a.label}) - # arguably, the first column should contain indices, not ids. - - def test_repr(self): - p1 = sim.Population(11, sim.IF_cond_exp()) - p2 = sim.Population(11, sim.IF_cond_exp()) - p3 = sim.Population(11, sim.IF_cond_exp()) - a = sim.Assembly(p1, p2, p3) - self.assertIsInstance(repr(a), str) - - def test_ids_should_not_be_counted_twice(self): - p = sim.Population(11, sim.IF_cond_exp()) - pv1 = p[0:5] - a1 = sim.Assembly(p, pv1) - self.assertEqual(a1.size, p.size) - #a2 = sim.Assembly(pv1, p) - #self.assertEqual(a2.size, p.size) - #pv2 = p[3:7] - #a3 = sim.Assembly(pv1, pv2) - #self.assertEqual(a3.size, 7) - - def test_all_iterator(self): - p1 = sim.Population(11, sim.IF_cond_exp()) - p2 = sim.Population(6, sim.IF_cond_exp()) - p3 = sim.Population(3, sim.EIF_cond_exp_isfa_ista()) - a = sim.Assembly(p1, p2, p3) - assert hasattr(a.all(), "next") - ids = list(a.all()) - self.assertEqual(ids, p1.all_cells.tolist() + p2.all_cells.tolist() + p3.all_cells.tolist()) - - def test__homogeneous_synapses(self): - p1 = sim.Population(11, sim.IF_cond_exp()) - p2 = sim.Population(6, sim.IF_cond_exp()) - p3 = sim.Population(3, sim.EIF_cond_exp_isfa_ista()) - a1 = sim.Assembly(p1, p2) - a2 = sim.Assembly(p1, p3) - self.assertTrue(a1._homogeneous_synapses) - self.assertFalse(a2._homogeneous_synapses) - - def test_conductance_based(self): - p1 = sim.Population(11, sim.IF_cond_exp()) - p2 = sim.Population(6, sim.IF_cond_exp()) - p3 = sim.Population(3, sim.EIF_cond_exp_isfa_ista()) - a1 = sim.Assembly(p1, p2) - a2 = sim.Assembly(p1, p3) - self.assertTrue(a1.conductance_based) - self.assertFalse(a2.conductance_based) - - def test_first_and_last_id(self): - p1 = sim.Population(11, sim.IF_cond_exp()) - p2 = sim.Population(6, sim.IF_cond_exp()) - p3 = sim.Population(3, sim.EIF_cond_exp_isfa_ista()) - a = sim.Assembly(p3, p1, p2) - self.assertEqual(a.first_id, p1[0]) - self.assertEqual(a.last_id, p3[-1]) - - def test_id_to_index(self): - p1 = sim.Population(11, sim.IF_cond_exp()) - p2 = sim.Population(6, sim.IF_cond_exp()) - p3 = sim.Population(3, sim.EIF_cond_exp_isfa_ista()) - a = sim.Assembly(p3, p1, p2) - self.assertEqual(a.id_to_index(p3[0]), 0) - self.assertEqual(a.id_to_index(p1[0]), 3) - self.assertEqual(a.id_to_index(p2[0]), 14) - assert_array_equal(a.id_to_index([p1[0], p2[0], p3[0]]), [3, 14, 0]) - - def test_id_to_index_with_nonexistent_id(self): - p1 = sim.Population(11, sim.IF_cond_exp()) - p2 = sim.Population(6, sim.IF_cond_exp()) - p3 = sim.Population(3, sim.EIF_cond_exp_isfa_ista()) - a = sim.Assembly(p3, p1, p2) - self.assertRaises(IndexError, a.id_to_index, p3.last_id + 1) - - def test_getitem_int(self): - p1 = sim.Population(11, sim.IF_cond_exp()) - p2 = sim.Population(6, sim.IF_cond_exp()) - p3 = sim.Population(3, sim.EIF_cond_exp_isfa_ista()) - a = sim.Assembly(p3, p1, p2) - self.assertEqual(a[0], p3[0]) - self.assertEqual(a[3], p1[0]) - self.assertEqual(a[14], p2[0]) - - def test_getitem_slice(self): - p1 = sim.Population(11, sim.IF_cond_exp()) - p2 = sim.Population(6, sim.IF_cond_exp()) - p3 = sim.Population(3, sim.EIF_cond_exp_isfa_ista()) - a = sim.Assembly(p3, p1, p2) - a1 = a[0:3] - self.assertIsInstance(a1, sim.Assembly) - self.assertEqual(len(a1.populations), 1) - assert_array_equal(a1.populations[0].all_cells, p3[:].all_cells) - a2 = a[2:8] - self.assertEqual(len(a2.populations), 2) - assert_array_equal(a2.populations[0].all_cells, p3[2:].all_cells) - assert_array_equal(a2.populations[1].all_cells, p1[:5].all_cells) - - def test_getitem_array(self): - p1 = sim.Population(11, sim.IF_cond_exp()) - p2 = sim.Population(6, sim.IF_cond_exp()) - p3 = sim.Population(3, sim.EIF_cond_exp_isfa_ista()) - a = sim.Assembly(p3, p1, p2) - a1 = a[3, 5, 6, 10] - self.assertIsInstance(a1, sim.Assembly) - self.assertEqual(len(a1.populations), 1) - assert_array_equal(a1.populations[0].all_cells, [p1[0], p1[2], p1[3], p1[7]]) - a2 = a[17, 2, 10, 11, 19] - self.assertEqual(len(a2.populations), 3) - assert_array_equal(a2.populations[0].all_cells, p3[2:].all_cells) - assert_array_equal(a2.populations[1].all_cells, p1[7:9].all_cells) - assert_array_equal(a2.populations[2].all_cells, p2[3, 5].all_cells) - - def test_sample(self): - p1 = sim.Population(11, sim.IF_cond_exp()) - p2 = sim.Population(6, sim.IF_cond_exp()) - p3 = sim.Population(3, sim.EIF_cond_exp_isfa_ista()) - a = sim.Assembly(p3, p1, p2) - a1 = a.sample(10, rng=MockRNG()) - # MockRNG.permutation reverses the order - self.assertEqual(len(a1.populations), 2) - assert_array_equal(a1.populations[0].all_cells, p1[11:6:-1]) - assert_array_equal(a1.populations[1].all_cells, p2[6::-1]) - - def test_printSpikes(self): - # TODO: implement assert_deprecated - p1 = sim.Population(11, sim.IF_cond_exp()) - p2 = sim.Population(11, sim.IF_cond_exp()) - a = sim.Assembly(p1, p2, label="test") - a.record('spikes') - sim.run(10.0) - a.write_data = Mock() - a.printSpikes("foo.txt") - a.write_data.assert_called_with('foo.txt', 'spikes', True) - - def test_getSpikes(self): - p1 = sim.Population(11, sim.IF_cond_exp()) - p2 = sim.Population(11, sim.IF_cond_exp()) - a = sim.Assembly(p1, p2, label="test") - a.record('spikes') - sim.run(10.0) - a.get_data = Mock() - a.getSpikes() - a.get_data.assert_called_with('spikes', True) - - def test_print_v(self): - p1 = sim.Population(11, sim.IF_cond_exp()) - p2 = sim.Population(11, sim.IF_cond_exp()) - a = sim.Assembly(p1, p2, label="test") - a.record_v() - sim.run(10.0) - a.write_data = Mock() - a.print_v("foo.txt") - a.write_data.assert_called_with('foo.txt', 'v', True) - - def test_get_v(self): - p1 = sim.Population(11, sim.IF_cond_exp()) - p2 = sim.Population(11, sim.IF_cond_exp()) - a = sim.Assembly(p1, p2, label="test") - a.record_v() - sim.run(10.0) - a.get_data = Mock() - a.get_v() - a.get_data.assert_called_with('v', True) - - def test_print_gsyn(self): - p1 = sim.Population(11, sim.IF_cond_exp()) - p2 = sim.Population(11, sim.IF_cond_exp()) - a = sim.Assembly(p1, p2, label="test") - a.record_gsyn() - sim.run(10.0) - a.write_data = Mock() - a.print_gsyn("foo.txt") - a.write_data.assert_called_with('foo.txt', ['gsyn_exc', 'gsyn_inh'], True) - - def test_get_gsyn(self): - p1 = sim.Population(11, sim.IF_cond_exp()) - p2 = sim.Population(11, sim.IF_cond_exp()) - a = sim.Assembly(p1, p2, label="test") - a.record_gsyn() - sim.run(10.0) - a.get_data = Mock() - a.get_gsyn() - a.get_data.assert_called_with(['gsyn_exc', 'gsyn_inh'], True) - - -if __name__ == '__main__': - unittest.main() diff --git a/test/hardware/unittests/test_connectors.py b/test/hardware/unittests/test_connectors.py deleted file mode 100644 index a3c3021c3..000000000 --- a/test/hardware/unittests/test_connectors.py +++ /dev/null @@ -1,820 +0,0 @@ -""" -Tests of the Connector classes, using the pyNN.mock backend. - -:copyright: Copyright 2006-2016 by the PyNN team, see AUTHORS. -:license: CeCILL, see LICENSE for details. -""" - -try: - import unittest2 as unittest -except ImportError: - import unittest - -from pyNN import connectors, random, errors, space, recording -import numpy -import os -from numpy.testing import assert_array_equal, assert_array_almost_equal -from .mocks import MockRNG, MockRNG2 -import pyNN.mock as sim - -orig_mpi_get_config = random.get_mpi_config - - -def setUp(): - random.get_mpi_config = lambda: (0, 2) - - -def tearDown(): - random.get_mpi_config = orig_mpi_get_config - - -class TestOneToOneConnector(unittest.TestCase): - - def setUp(self): - sim.setup(num_processes=2, rank=0) - self.p1 = sim.Population(5, sim.IF_cond_exp()) - self.p2 = sim.Population(5, sim.HH_cond_exp()) - assert_array_equal(self.p2._mask_local, numpy.array([0, 1, 0, 1, 0], dtype=bool)) - - def test_connect_with_scalar_weights_and_delays(self): - C = connectors.OneToOneConnector(safe=False) - syn = sim.StaticSynapse(weight=5.0, delay=0.5) - prj = sim.Projection(self.p1, self.p2, C, syn) - self.assertEqual(prj.get(["weight", "delay"], format='list', gather=False), # use gather False because we are faking the MPI - [(1, 1, 5.0, 0.5), - (3, 3, 5.0, 0.5)]) - - def test_connect_with_random_weights(self): - rd = random.RandomDistribution('uniform', (0, 1), rng=MockRNG(delta=1.0)) - syn = sim.StaticSynapse(weight=rd, delay=0.5) - C = connectors.OneToOneConnector(safe=False) - prj = sim.Projection(self.p1, self.p2, C, syn) - self.assertEqual(prj.get(["weight", "delay"], format='list', gather=False), # use gather False because we are faking the MPI - [(1, 1, 1.0, 0.5), - (3, 3, 3.0, 0.5)]) - - -class TestAllToAllConnector(unittest.TestCase): - - def setUp(self): - sim.setup(num_processes=2, rank=1, min_delay=0.123) - self.p1 = sim.Population(4, sim.IF_cond_exp(), structure=space.Line()) - self.p2 = sim.Population(5, sim.HH_cond_exp(), structure=space.Line()) - assert_array_equal(self.p1._mask_local, numpy.array([0, 1, 0, 1], dtype=bool)) - assert_array_equal(self.p2._mask_local, numpy.array([0, 1, 0, 1, 0], dtype=bool)) - - def test_connect_with_scalar_weights_and_delays(self): - C = connectors.AllToAllConnector(safe=False) - syn = sim.StaticSynapse(weight=5.0, delay=0.5) - prj = sim.Projection(self.p1, self.p2, C, syn) - self.assertEqual(prj.get(["weight", "delay"], format='list', gather=False), # use gather False because we are faking the MPI - [(0, 1, 5.0, 0.5), - (1, 1, 5.0, 0.5), - (2, 1, 5.0, 0.5), - (3, 1, 5.0, 0.5), - (0, 3, 5.0, 0.5), - (1, 3, 5.0, 0.5), - (2, 3, 5.0, 0.5), - (3, 3, 5.0, 0.5)]) - nan = numpy.nan - assert_array_equal(prj.get('weight', format='array', gather=False), - numpy.array([[nan, 5.0, nan, 5.0, nan], - [nan, 5.0, nan, 5.0, nan], - [nan, 5.0, nan, 5.0, nan], - [nan, 5.0, nan, 5.0, nan]])) - - def test_connect_with_array_weights(self): - C = connectors.AllToAllConnector(safe=False) - syn = sim.StaticSynapse(weight=numpy.arange(0.0, 2.0, 0.1).reshape(4, 5), delay=0.5) - prj = sim.Projection(self.p1, self.p2, C, syn) - assert_array_almost_equal( - numpy.array(prj.get(["weight", "delay"], format='list', gather=False)), # use gather False because we are faking the MPI - numpy.array([(0, 1, 0.1, 0.5), - (1, 1, 0.6, 0.5), - (2, 1, 1.1, 0.5), - (3, 1, 1.6, 0.5), - (0, 3, 0.3, 0.5), - (1, 3, 0.8, 0.5), - (2, 3, 1.3, 0.5), - (3, 3, 1.8, 0.5)])) - nan = numpy.nan - assert_array_almost_equal(prj.get('weight', format='array', gather=False), - numpy.array([[nan, 0.1, nan, 0.3, nan], - [nan, 0.6, nan, 0.8, nan], - [nan, 1.1, nan, 1.3, nan], - [nan, 1.6, nan, 1.8, nan]]), - 9) - - def test_connect_with_random_weights_parallel_safe(self): - rd = random.RandomDistribution('uniform', (0, 1), rng=MockRNG(delta=1.0, parallel_safe=True)) - syn = sim.StaticSynapse(weight=rd, delay=0.5) - C = connectors.AllToAllConnector(safe=False) - prj = sim.Projection(self.p1, self.p2, C, syn) - # note that the outer loop is over the post-synaptic cells, the inner loop over the pre-synaptic - self.assertEqual(prj.get(["weight", "delay"], format='list', gather=False), # use gather False because we are faking the MPI - [(0, 1, 4.0, 0.5), - (1, 1, 5.0, 0.5), - (2, 1, 6.0, 0.5), - (3, 1, 7.0, 0.5), - (0, 3, 12.0, 0.5), - (1, 3, 13.0, 0.5), - (2, 3, 14.0, 0.5), - (3, 3, 15.0, 0.5)]) - nan = numpy.nan - assert_array_almost_equal(prj.get('weight', format='array', gather=False), - numpy.array([[nan, 4.0, nan, 12.0, nan], - [nan, 5.0, nan, 13.0, nan], - [nan, 6.0, nan, 14.0, nan], - [nan, 7.0, nan, 15.0, nan]]), - 9) - - def test_connect_with_distance_dependent_weights(self): - d_expr = "d+100" - syn = sim.StaticSynapse(weight=d_expr, delay=0.5) - C = connectors.AllToAllConnector(safe=False) - prj = sim.Projection(self.p1, self.p2, C, syn) - self.assertEqual(prj.get(["weight", "delay"], format='list', gather=False), # use gather False because we are faking the MPI - [(0, 1, 101.0, 0.5), - (1, 1, 100.0, 0.5), - (2, 1, 101.0, 0.5), - (3, 1, 102.0, 0.5), - (0, 3, 103.0, 0.5), - (1, 3, 102.0, 0.5), - (2, 3, 101.0, 0.5), - (3, 3, 100.0, 0.5)]) - - def test_connect_with_distance_dependent_weights_and_delays(self): - syn = sim.StaticSynapse(weight="d+100", delay="0.2+2*d") - C = connectors.AllToAllConnector(safe=False) - prj = sim.Projection(self.p1, self.p2, C, syn) - self.assertEqual(prj.get(["weight", "delay"], format='list', gather=False), # use gather False because we are faking the MPI - [(0, 1, 101.0, 2.2), - (1, 1, 100.0, 0.2), - (2, 1, 101.0, 2.2), - (3, 1, 102.0, 4.2), - (0, 3, 103.0, 6.2), - (1, 3, 102.0, 4.2), - (2, 3, 101.0, 2.2), - (3, 3, 100.0, 0.2)]) - - def test_connect_with_delays_None(self): - syn = sim.StaticSynapse(weight=0.1, delay=None) - C = connectors.AllToAllConnector() - assert C.safe - assert C.allow_self_connections - prj = sim.Projection(self.p1, self.p2, C, syn) - self.assertEqual(prj.get(["weight", "delay"], format='list', gather=False)[0][3], prj._simulator.state.min_delay) - - @unittest.skip('skipping this tests until I figure out how I want to refactor checks') - def test_connect_with_delays_too_small(self): - C = connectors.AllToAllConnector() - syn = sim.StaticSynapse(weight=0.1, delay=0.0) - self.assertRaises(errors.ConnectionError, sim.Projection, self.p1, self.p2, C, syn) - - @unittest.skip('skipping this tests until I figure out how I want to refactor checks') - def test_connect_with_list_delays_too_small(self): - delays = numpy.ones((self.p1.size, self.p2.size), float) - delays[2, 3] = sim.Projection._simulator.state.min_delay - 0.01 - syn = sim.StaticSynapse(weight=0.1, delay=delays) - C = connectors.AllToAllConnector() - self.assertRaises(errors.ConnectionError, sim.Projection, self.p1, self.p2, C, syn) - - -class TestFixedProbabilityConnector(unittest.TestCase): - - def setUp(self): - sim.setup(num_processes=2, rank=1, min_delay=0.123) - self.p1 = sim.Population(4, sim.IF_cond_exp(), structure=space.Line()) - self.p2 = sim.Population(5, sim.HH_cond_exp(), structure=space.Line()) - assert_array_equal(self.p2._mask_local, numpy.array([0, 1, 0, 1, 0], dtype=bool)) - - def test_connect_with_default_args(self): - C = connectors.FixedProbabilityConnector(p_connect=0.85, - rng=MockRNG(delta=0.1, parallel_safe=True)) - syn = sim.StaticSynapse() - prj = sim.Projection(self.p1, self.p2, C, syn) - - # 20 possible connections. Due to the mock RNG, only the - # first 9 are created (0,0), (1,0), (2,0), (3,0), (0,1), (1,1), (2,1), (3,1), (0,2) - # of these, (0,1), (1,1), (2,1), (3,1) are created on this node - self.assertEqual(prj.get(["weight", "delay"], format='list', gather=False), # use gather False because we are faking the MPI - [(0, 1, 0.0, 0.123), - (1, 1, 0.0, 0.123), - (2, 1, 0.0, 0.123), - (3, 1, 0.0, 0.123)]) - - def test_connect_with_default_args_again(self): - C = connectors.FixedProbabilityConnector(p_connect=0.5, - rng=MockRNG2(1 - numpy.array([1, 0, 0, 1, - 0, 0, 0, 1, - 1, 1, 0, 0, - 1, 0, 1, 0, - 1, 1, 0, 1]), - parallel_safe=True)) - syn = sim.StaticSynapse() - prj = sim.Projection(self.p1, self.p2, C, syn) - - # 20 possible connections. Due to the mock RNG, only the following - # are created (0,0), (3,0), (3,1), (0,2), (1,2), (0,3), (2,3), (0,4), (1,4), (3,4) - # of these, (3,1), (0,3), (2,3) are created on this node - # (note that the outer loop is over post-synaptic cells (columns), the inner loop over pre-synaptic (rows)) - nan = numpy.nan - assert_array_almost_equal(prj.get('delay', format='array', gather=False), - numpy.array([[nan, nan, nan, 0.123, nan], - [nan, nan, nan, nan, nan], - [nan, nan, nan, 0.123, nan], - [nan, 0.123, nan, nan, nan]]), - 9) - self.assertEqual(prj.get(["weight", "delay"], format='list', gather=False), # use gather False because we are faking the MPI - [(3, 1, 0.0, 0.123), - (0, 3, 0.0, 0.123), - (2, 3, 0.0, 0.123)]) - - def test_connect_with_weight_function(self): - C = connectors.FixedProbabilityConnector(p_connect=0.85, - rng=MockRNG(delta=0.1)) - syn = sim.StaticSynapse(weight=lambda d: 0.1 * d) - prj = sim.Projection(self.p1, self.p2, C, syn) - self.assertEqual(prj.get(["weight", "delay"], format='list', gather=False), # use gather False because we are faking the MPI - [(0, 1, 0.1, 0.123), - (1, 1, 0.0, 0.123), - (2, 1, 0.1, 0.123), - (3, 1, 0.2, 0.123)]) - - def test_connect_with_random_delays_parallel_safe(self): - rd = random.RandomDistribution('uniform', low=0.1, high=1.1, rng=MockRNG(start=1.0, delta=0.2, parallel_safe=True)) - syn = sim.StaticSynapse(delay=rd) - C = connectors.FixedProbabilityConnector(p_connect=0.5, - rng=MockRNG2(1 - numpy.array([1, 0, 0, 1, - 0, 0, 0, 1, - 1, 1, 0, 0, - 1, 0, 1, 0, - 1, 1, 0, 1]), - parallel_safe=True)) - prj = sim.Projection(self.p1, self.p2, C, syn) - nan = numpy.nan - assert_array_almost_equal(prj.get('delay', format='array', gather=False), - numpy.array([[nan, nan, nan, 2.0, nan], - [nan, nan, nan, nan, nan], - [nan, nan, nan, 2.2, nan], - [nan, 1.4, nan, nan, nan]]), - 9) - - #def test_connect_with_random_delays_parallel_unsafe(self): - # rd = random.RandomDistribution('uniform', [0.1, 1.1], rng=MockRNG(start=1.0, delta=0.2, parallel_safe=False)) - # syn = sim.StaticSynapse(delay=rd) - # C = connectors.FixedProbabilityConnector(p_connect=0.5, - # rng=MockRNG2(1 - numpy.array([1, 0, 0, 1, - # 0, 0, 0, 1, - # 1, 1, 0, 0, - # 1, 0, 1, 0, - # 1, 1, 0, 1]), - # parallel_safe=False)) - # prj = sim.Projection(self.p1, self.p2, C, syn) - # nan = numpy.nan - # assert_array_almost_equal(prj.get('delay', format='array', gather=False), - # numpy.array([[nan, nan, nan, 1.2, nan], - # [nan, nan, nan, nan, nan], - # [nan, nan, nan, 1.4, nan], - # [nan, 1.0, nan, nan, nan]]), - # 9) - - -class TestDistanceDependentProbabilityConnector(unittest.TestCase): - - def setUp(self): - sim.setup(num_processes=2, rank=1, min_delay=0.123) - self.p1 = sim.Population(4, sim.IF_cond_exp(), structure=space.Line()) - self.p2 = sim.Population(5, sim.HH_cond_exp(), structure=space.Line()) - assert_array_equal(self.p2._mask_local, numpy.array([0, 1, 0, 1, 0], dtype=bool)) - - def test_connect_with_default_args(self): - C = connectors.DistanceDependentProbabilityConnector(d_expression="d<1.5", - rng=MockRNG(delta=0.01)) - syn = sim.StaticSynapse() - prj = sim.Projection(self.p1, self.p2, C, syn) - # 20 possible connections. Only those with a sufficiently small distance - # are created - self.assertEqual(prj.get(["weight", "delay"], format='list', gather=False), # use gather False because we are faking the MPI - [(0, 1, 0.0, 0.123), - (1, 1, 0.0, 0.123), - (2, 1, 0.0, 0.123), - (2, 3, 0.0, 0.123), - (3, 3, 0.0, 0.123)]) - - -class TestFromListConnector(unittest.TestCase): - - def setUp(self): - sim.setup(num_processes=2, rank=1, min_delay=0.123) - self.p1 = sim.Population(4, sim.IF_cond_exp(), structure=space.Line()) - self.p2 = sim.Population(5, sim.HH_cond_exp(), structure=space.Line()) - assert_array_equal(self.p2._mask_local, numpy.array([0, 1, 0, 1, 0], dtype=bool)) - - def test_connect_with_valid_list(self): - connection_list = [ - (0, 0, 0.1, 0.1), - (3, 0, 0.2, 0.11), - (2, 3, 0.3, 0.12), # local - (2, 2, 0.4, 0.13), - (0, 1, 0.5, 0.14), # local - ] - C = connectors.FromListConnector(connection_list) - syn = sim.StaticSynapse() - prj = sim.Projection(self.p1, self.p2, C, syn) - self.assertEqual(prj.get(["weight", "delay"], format='list', gather=False), # use gather False because we are faking the MPI - [(0, 1, 0.5, 0.14), - (2, 3, 0.3, 0.12)]) - - def test_connect_with_out_of_range_index(self): - connection_list = [ - (0, 0, 0.1, 0.1), - (3, 0, 0.2, 0.11), - (2, 3, 0.3, 0.12), # local - (5, 1, 0.4, 0.13), # NON-EXISTENT - (0, 1, 0.5, 0.14), # local - ] - C = connectors.FromListConnector(connection_list) - syn = sim.StaticSynapse() - self.assertRaises(errors.ConnectionError, sim.Projection, self.p1, self.p2, C, syn) - - def test_with_plastic_synapse(self): - connection_list = [ - (0, 0, 0.1, 0.1, 100, 400), - (3, 0, 0.2, 0.11, 101, 500), - (2, 3, 0.3, 0.12, 102, 600), # local - (2, 2, 0.4, 0.13, 103, 700), - (0, 1, 0.5, 0.14, 104, 800), # local - ] - C = connectors.FromListConnector(connection_list, column_names=["weight", "delay", "U", "tau_rec"]) - syn = sim.TsodyksMarkramSynapse(U=99, tau_facil=88.8) - prj = sim.Projection(self.p1, self.p2, C, syn) - self.assertEqual(prj.get(["weight", "delay", "tau_facil", "tau_rec", "U"], format='list', gather=False), # use gather False because we are faking the MPI - [(0, 1, 0.5, 0.14, 88.8, 800.0, 104.0), - (2, 3, 0.3, 0.12, 88.8, 600.0, 102.0)]) - - -class TestFromFileConnector(unittest.TestCase): - - def setUp(self): - sim.setup(num_processes=2, rank=1, min_delay=0.123) - self.p1 = sim.Population(4, sim.IF_cond_exp(), structure=space.Line()) - self.p2 = sim.Population(5, sim.HH_cond_exp(), structure=space.Line()) - assert_array_equal(self.p2._mask_local, numpy.array([0, 1, 0, 1, 0], dtype=bool)) - self.connection_list = [ - (0, 0, 0.1, 0.1), - (3, 0, 0.2, 0.11), - (2, 3, 0.3, 0.12), # local - (2, 2, 0.4, 0.13), - (0, 1, 0.5, 0.14), # local - ] - - def tearDown(self): - for path in ("test.connections", "test.connections.1", "test.connections.2"): - if os.path.exists(path): - os.remove(path) - - def test_connect_with_standard_text_file_not_distributed(self): - numpy.savetxt("test.connections", self.connection_list) - C = connectors.FromFileConnector("test.connections", distributed=False) - syn = sim.StaticSynapse() - prj = sim.Projection(self.p1, self.p2, C, syn) - self.assertEqual(prj.get(["weight", "delay"], format='list', gather=False), # use gather False because we are faking the MPI - [(0, 1, 0.5, 0.14), - (2, 3, 0.3, 0.12)]) - - def test_connect_with_standard_text_file_distributed(self): - local_connection_list = [c for c in self.connection_list if c[1] % 2 == 1] - numpy.savetxt("test.connections.1", local_connection_list) - C = connectors.FromFileConnector("test.connections", distributed=True) - syn = sim.StaticSynapse() - prj = sim.Projection(self.p1, self.p2, C, syn) - self.assertEqual(prj.get(["weight", "delay"], format='list', gather=False), # use gather False because we are faking the MPI - [(0, 1, 0.5, 0.14), - (2, 3, 0.3, 0.12)]) - - def test_with_plastic_synapses_not_distributed(self): - connection_list = [ - (0, 0, 0.1, 0.1, 100, 100), - (3, 0, 0.2, 0.11, 110, 99), - (2, 3, 0.3, 0.12, 120, 98), # local - (2, 2, 0.4, 0.13, 130, 97), - (0, 1, 0.5, 0.14, 140, 96), # local - ] - file = recording.files.StandardTextFile("test.connections.2", mode='wb') - file.write(connection_list, {"columns": ["i", "j", "weight", "delay", "U", "tau_rec"]}) - C = connectors.FromFileConnector("test.connections.2", distributed=False) - syn = sim.TsodyksMarkramSynapse(tau_facil=88.8) - prj = sim.Projection(self.p1, self.p2, C, syn) - self.assertEqual(prj.get(["weight", "delay", "U", "tau_rec", "tau_facil"], format='list', gather=False), # use gather False because we are faking the MPI - [(0, 1, 0.5, 0.14, 140.0, 96.0, 88.8), - (2, 3, 0.3, 0.12, 120.0, 98.0, 88.8)]) - - -#class TestFixedNumberPostConnector(unittest.TestCase): -# -# def setUp(self): -# sim.setup(num_processes=2, rank=1, min_delay=0.123) -# self.p1 = sim.Population(4, sim.IF_cond_exp(), structure=space.Line()) -# self.p2 = sim.Population(5, sim.HH_cond_exp(), structure=space.Line()) -# assert_array_equal(self.p2._mask_local, numpy.array([0,1,0,1,0], dtype=bool)) -# -# def test_with_n_smaller_than_population_size(self): -# C = connectors.FixedNumberPostConnector(n=3, rng=MockRNG(delta=1)) -# syn = sim.StaticSynapse() -# prj = sim.Projection(self.p1, self.p2, C, syn) -# self.assertEqual(prj.get(["weight", "delay"], format='list', gather=False), # use gather False because we are faking the MPI -# [(0, 3, 0.0, 0.123), -# (1, 3, 0.0, 0.123), -# (2, 3, 0.0, 0.123), -# (3, 3, 0.0, 0.123),]) - - -class TestFixedNumberPreConnector(unittest.TestCase): - - def setUp(self): - sim.setup(num_processes=2, rank=1, min_delay=0.123) - self.p1 = sim.Population(4, sim.IF_cond_exp(), structure=space.Line()) - self.p2 = sim.Population(5, sim.HH_cond_exp(), structure=space.Line()) - assert_array_equal(self.p2._mask_local, numpy.array([0, 1, 0, 1, 0], dtype=bool)) - - def test_with_n_smaller_than_population_size(self): - C = connectors.FixedNumberPreConnector(n=3, rng=MockRNG(delta=1)) - syn = sim.StaticSynapse(weight="0.1*d") - prj = sim.Projection(self.p1, self.p2, C, syn) - self.assertEqual(prj.get(["weight", "delay"], format='list', gather=False), # use gather False because we are faking the MPI - [(3, 1, 0.2, 0.123), - (2, 1, 0.1, 0.123), - (1, 1, 0.0, 0.123), - (3, 3, 0.0, 0.123), - (2, 3, 0.1, 0.123), - (1, 3, 0.2, 0.123),]) - - def test_with_n_larger_than_population_size(self): - C = connectors.FixedNumberPreConnector(n=7, rng=MockRNG(delta=1)) - syn = sim.StaticSynapse() - prj = sim.Projection(self.p1, self.p2, C, syn) - self.assertEqual(prj.get(["weight", "delay"], format='list', gather=False), # use gather False because we are faking the MPI - [(0, 1, 0.0, 0.123), - (1, 1, 0.0, 0.123), - (2, 1, 0.0, 0.123), - (3, 1, 0.0, 0.123), - (3, 1, 0.0, 0.123), - (2, 1, 0.0, 0.123), - (1, 1, 0.0, 0.123), - (0, 3, 0.0, 0.123), - (1, 3, 0.0, 0.123), - (2, 3, 0.0, 0.123), - (3, 3, 0.0, 0.123), - (3, 3, 0.0, 0.123), - (2, 3, 0.0, 0.123), - (1, 3, 0.0, 0.123),]) - - def test_with_n_larger_than_population_size_no_self_connections(self): - C = connectors.FixedNumberPreConnector(n=7, allow_self_connections=False, rng=MockRNG(delta=1)) - syn = sim.StaticSynapse() - prj = sim.Projection(self.p2, self.p2, C, syn) - self.assertEqual(prj.get(["weight", "delay"], format='list', gather=False), # use gather False because we are faking the MPI - [(0, 1, 0.0, 0.123), - (2, 1, 0.0, 0.123), - (3, 1, 0.0, 0.123), - (4, 1, 0.0, 0.123), - (4, 1, 0.0, 0.123), - (3, 1, 0.0, 0.123), - (2, 1, 0.0, 0.123), - (0, 3, 0.0, 0.123), - (1, 3, 0.0, 0.123), - (2, 3, 0.0, 0.123), - (4, 3, 0.0, 0.123), - (4, 3, 0.0, 0.123), - (2, 3, 0.0, 0.123), - (1, 3, 0.0, 0.123),]) - - def test_with_replacement(self): - C = connectors.FixedNumberPreConnector(n=3, with_replacement=True, rng=MockRNG(delta=1)) - syn = sim.StaticSynapse() - prj = sim.Projection(self.p1, self.p2, C, syn) - self.assertEqual(prj.get(["weight", "delay"], format='list', gather=False), # use gather False because we are faking the MPI - [#(0, 0, 0.0, 0.123), - #(1, 0, 0.0, 0.123), - #(2, 0, 0.0, 0.123), - (3, 1, 0.0, 0.123), - (0, 1, 0.0, 0.123), - (1, 1, 0.0, 0.123), - #(2, 2, 0.0, 0.123), - #(3, 2, 0.0, 0.123), - #(0, 2, 0.0, 0.123), - (1, 3, 0.0, 0.123), - (2, 3, 0.0, 0.123), - (3, 3, 0.0, 0.123),]) - - def test_with_replacement_with_variable_n(self): - n = random.RandomDistribution('binomial', (5, 0.5), rng=MockRNG(start=1, delta=2)) - # should give (1, 3, 0, 2, 4) - C = connectors.FixedNumberPreConnector(n=n, with_replacement=True, rng=MockRNG(delta=1)) - syn = sim.StaticSynapse() - prj = sim.Projection(self.p1, self.p2, C, syn) - self.assertEqual(prj.get(["weight", "delay"], format='list', gather=False), # use gather False because we are faking the MPI - [#(0, 0, 0.0, 0.123), - (1, 1, 0.0, 0.123), - (2, 1, 0.0, 0.123), - (3, 1, 0.0, 0.123), - (0, 3, 0.0, 0.123), - (1, 3, 0.0, 0.123)]) - - def test_with_replacement_no_self_connections(self): - C = connectors.FixedNumberPreConnector(n=3, with_replacement=True, - allow_self_connections=False, rng=MockRNG(start=2, delta=1)) - syn = sim.StaticSynapse() - prj = sim.Projection(self.p2, self.p2, C, syn) - self.assertEqual(prj.get(["weight", "delay"], format='list', gather=False), # use gather False because we are faking the MPI - [#(2, 0, 0.0, 0.123), # [2, 3, 4] --> [2, 3, 4] - #(3, 0, 0.0, 0.123), - #(4, 0, 0.0, 0.123), - (0, 1, 0.0, 0.123), # [0, 1, 2] --> [0, 3, 2] - #(1, 1, 0.0, 0.123), - (3, 1, 0.0, 0.123), - (2, 1, 0.0, 0.123), - #(4, 2, 0.0, 0.123), # [4, 0, 1] --> [4, 0, 1] - #(0, 2, 0.0, 0.123), - #(1, 2, 0.0, 0.123), - (2, 3, 0.0, 0.123), # [2, 3, 4] --> [2, 0, 4] - #(3, 3, 0.0, 0.123), - (0, 3, 0.0, 0.123), - (4, 3, 0.0, 0.123), - ]) - - def test_no_replacement_no_self_connections(self): - C = connectors.FixedNumberPreConnector(n=3, with_replacement=False, - allow_self_connections=False, rng=MockRNG(start=2, delta=1)) - syn = sim.StaticSynapse() - prj = sim.Projection(self.p2, self.p2, C, syn) - self.assertEqual(prj.get(["weight", "delay"], format='list', gather=False), # use gather False because we are faking the MPI - [(4, 1, 0.0, 0.123), - (3, 1, 0.0, 0.123), - (2, 1, 0.0, 0.123), - (4, 3, 0.0, 0.123), - #(3, 3, 0.0, 0.123), - (2, 3, 0.0, 0.123), - (1, 3, 0.0, 0.123),]) - - def test_with_replacement_parallel_unsafe(self): - C = connectors.FixedNumberPreConnector(n=3, with_replacement=True, rng=MockRNG(delta=1, parallel_safe=False)) - syn = sim.StaticSynapse() - prj = sim.Projection(self.p1, self.p2, C, syn) - self.assertEqual(prj.get(["weight", "delay"], format='list', gather=False), # use gather False because we are faking the MPI - [(0, 1, 0.0, 0.123), - (1, 1, 0.0, 0.123), - (2, 1, 0.0, 0.123), - (3, 3, 0.0, 0.123), - (0, 3, 0.0, 0.123), - (1, 3, 0.0, 0.123),]) - - def test_no_replacement_parallel_unsafe(self): - C = connectors.FixedNumberPreConnector(n=3, with_replacement=False, rng=MockRNG(delta=1, parallel_safe=False)) - syn = sim.StaticSynapse() - prj = sim.Projection(self.p1, self.p2, C, syn) - self.assertEqual(prj.get(["weight", "delay"], format='list', gather=False), # use gather False because we are faking the MPI - [(3, 1, 0.0, 0.123), - (2, 1, 0.0, 0.123), - (1, 1, 0.0, 0.123), - (3, 3, 0.0, 0.123), - (2, 3, 0.0, 0.123), - (1, 3, 0.0, 0.123),]) - - -class TestArrayConnector(unittest.TestCase): - - def setUp(self): - sim.setup(num_processes=2, rank=1, min_delay=0.123) - self.p1 = sim.Population(3, sim.IF_cond_exp(), structure=space.Line()) - self.p2 = sim.Population(4, sim.HH_cond_exp(), structure=space.Line()) - assert_array_equal(self.p2._mask_local, numpy.array([1,0,1,0], dtype=bool)) - - def test_connect_with_scalar_weights_and_delays(self): - connections = numpy.array([ - [0, 1, 1, 0], - [1, 1, 0, 1], - [0, 0, 1, 0], - ], dtype=bool) - C = connectors.ArrayConnector(connections, safe=False) - syn = sim.StaticSynapse(weight=5.0, delay=0.5) - prj = sim.Projection(self.p1, self.p2, C, syn) - self.assertEqual(prj.get(["weight", "delay"], format='list', gather=False), # use gather False because we are faking the MPI - [(1, 0, 5.0, 0.5), - (0, 2, 5.0, 0.5), - (2, 2, 5.0, 0.5)]) - - def test_connect_with_random_weights_parallel_safe(self): - rd_w = random.RandomDistribution('uniform', (0, 1), rng=MockRNG(delta=1.0, parallel_safe=True)) - rd_d = random.RandomDistribution('uniform', (0, 1), rng=MockRNG(start=1.0, delta=0.1, parallel_safe=True)) - syn = sim.StaticSynapse(weight=rd_w, delay=rd_d) - connections = numpy.array([ - [0, 1, 1, 0], - [1, 1, 0, 1], - [0, 0, 1, 0], - ], dtype=bool) - C = connectors.ArrayConnector(connections, safe=False) - prj = sim.Projection(self.p1, self.p2, C, syn) - self.assertEqual(prj.get(["weight", "delay"], format='list', gather=False), # use gather False because we are faking the MPI - [(1, 0, 0.0, 1.0), - (0, 2, 3.0, 1.3), - (2, 2, 4.0, 1.4000000000000001)]) # better to do an "almost-equal" check - - -class TestCloneConnector(unittest.TestCase): - - def setUp(self): - sim.setup(num_processes=2, rank=1, min_delay=0.123) - self.p1 = sim.Population(4, sim.IF_cond_exp(), structure=space.Line()) - self.p2 = sim.Population(5, sim.HH_cond_exp(), structure=space.Line()) - assert_array_equal(self.p2._mask_local, numpy.array([0, 1, 0, 1, 0], dtype=bool)) - connection_list = [ - (0, 0, 0.0, 1.0), - (3, 0, 0.0, 1.0), - (2, 3, 0.0, 1.0), # local - (2, 2, 0.0, 1.0), - (0, 1, 0.0, 1.0), # local - ] - list_connector = connectors.FromListConnector(connection_list) - syn = sim.StaticSynapse() - self.ref_prj = sim.Projection(self.p1, self.p2, list_connector, syn) - self.orig_gather_dict = recording.gather_dict # create reference to original function - # The gather_dict function in recording needs to be temporarily replaced so it can work with - # a mock version of the function to avoid it throwing an mpi4py import error when setting - # the rank in pyNN.mock by hand to > 1 - - def mock_gather_dict(D, all=False): - return D - recording.gather_dict = mock_gather_dict - - def tearDown(self): - # restore original gather_dict function - recording.gather_dict = self.orig_gather_dict - - def test_connect(self): - syn = sim.StaticSynapse(weight=5.0, delay=0.5) - C = connectors.CloneConnector(self.ref_prj) - prj = sim.Projection(self.p1, self.p2, C, syn) - self.assertEqual(prj.get(["weight", "delay"], format='list', gather=False), # use gather False because we are faking the MPI - [(0, 1, 5.0, 0.5), - (2, 3, 5.0, 0.5)]) - - def test_connect_with_pre_post_mismatch(self): - syn = sim.StaticSynapse() - C = connectors.CloneConnector(self.ref_prj) - p3 = sim.Population(5, sim.IF_cond_exp(), structure=space.Line()) - self.assertRaises(errors.ConnectionError, sim.Projection, self.p1, p3, C, syn) - - -class TestIndexBasedProbabilityConnector(unittest.TestCase): - - class IndexBasedProbability(connectors.IndexBasedExpression): - - def __call__(self, i, j): - return numpy.array((i + j) % 3 == 0, dtype=float) - - class IndexBasedWeights(connectors.IndexBasedExpression): - - def __call__(self, i, j): - return numpy.array(i * j + 1, dtype=float) - - class IndexBasedDelays(connectors.IndexBasedExpression): - - def __call__(self, i, j): - return numpy.array(i + j + 1, dtype=float) - - def setUp(self): - sim.setup(num_processes=2, rank=1, min_delay=0.123) - self.p1 = sim.Population(5, sim.IF_cond_exp(), structure=space.Line()) - self.p2 = sim.Population(5, sim.HH_cond_exp(), structure=space.Line()) - assert_array_equal(self.p2._mask_local, numpy.array([1, 0, 1, 0, 1], dtype=bool)) - - def test_connect_with_scalar_weights_and_delays(self): - syn = sim.StaticSynapse(weight=1.0, delay=2) - C = connectors.IndexBasedProbabilityConnector(self.IndexBasedProbability()) - prj = sim.Projection(self.p1, self.p2, C, syn) - self.assertEqual(prj.get(["weight", "delay"], format='list', gather=False), # use gather False because we are faking the MPI - [(0, 0, 1, 2), - (3, 0, 1, 2), - (1, 2, 1, 2), - (4, 2, 1, 2), - (2, 4, 1, 2)]) - - def test_connect_with_index_based_weights(self): - syn = sim.StaticSynapse(weight=self.IndexBasedWeights(), delay=2) - C = connectors.IndexBasedProbabilityConnector(self.IndexBasedProbability()) - prj = sim.Projection(self.p1, self.p2, C, syn) - self.assertEqual(prj.get(["weight", "delay"], format='list', gather=False), # use gather False because we are faking the MPI - [(0, 0, 1, 2), - (3, 0, 1, 2), - (1, 2, 3, 2), - (4, 2, 9, 2), - (2, 4, 9, 2)]) - - def test_connect_with_index_based_delays(self): - syn = sim.StaticSynapse(weight=1.0, delay=self.IndexBasedDelays()) - C = connectors.IndexBasedProbabilityConnector(self.IndexBasedProbability()) - prj = sim.Projection(self.p1, self.p2, C, syn) - self.assertEqual(prj.get(["weight", "delay"], format='list', gather=False), # use gather False because we are faking the MPI - [(0, 0, 1, 1), - (3, 0, 1, 4), - (1, 2, 1, 4), - (4, 2, 1, 7), - (2, 4, 1, 7)]) - - -class TestDisplacementDependentProbabilityConnector(unittest.TestCase): - - def setUp(self): - sim.setup(num_processes=2, rank=1, min_delay=0.123) - self.p1 = sim.Population(9, sim.IF_cond_exp(), - structure=space.Grid2D(aspect_ratio=1.0, dx=1.0, dy=1.0)) - self.p2 = sim.Population(9, sim.HH_cond_exp(), - structure=space.Grid2D(aspect_ratio=1.0, dx=1.0, dy=1.0)) - assert_array_equal(self.p2._mask_local, numpy.array([1, 0, 1, 0, 1, 0, 1, 0, 1], dtype=bool)) - - def test_connect(self): - syn = sim.StaticSynapse(weight=1.0, delay=2) - - def displacement_expression(d): - return 0.5 * ((d[0] >= -1) * (d[0] <= 2)) + 0.25 * (d[1] >= 0) * (d[1] <= 1) - C = connectors.DisplacementDependentProbabilityConnector(displacement_expression, - rng=MockRNG(delta=0.01)) - prj = sim.Projection(self.p1, self.p2, C, syn) - self.assertEqual(prj.get(["weight", "delay"], format='list', gather=False), # use gather False because we are faking the MPI - [(0, 0, 1.0, 2.0), - (1, 0, 1.0, 2.0), - (2, 0, 1.0, 2.0), - (3, 0, 1.0, 2.0), - (4, 0, 1.0, 2.0), - (5, 0, 1.0, 2.0), - (6, 0, 1.0, 2.0), - (0, 2, 1.0, 2.0), - (1, 2, 1.0, 2.0), - (2, 2, 1.0, 2.0), - (3, 2, 1.0, 2.0), - (4, 2, 1.0, 2.0), - (5, 2, 1.0, 2.0), - (0, 4, 1.0, 2.0), - (1, 4, 1.0, 2.0), - (2, 4, 1.0, 2.0), - (3, 4, 1.0, 2.0), - (4, 4, 1.0, 2.0), - (5, 4, 1.0, 2.0), - (6, 4, 1.0, 2.0), - (7, 4, 1.0, 2.0), - (8, 4, 1.0, 2.0), - (0, 6, 1.0, 2.0), - (3, 6, 1.0, 2.0), - (6, 6, 1.0, 2.0), - (1, 8, 1.0, 2.0), - (2, 8, 1.0, 2.0)]) - - -@unittest.skip('skipping these tests until I figure out how I want to refactor checks') -class CheckTest(unittest.TestCase): - - def setUp(self): - self.MIN_DELAY = 0.123 - sim.setup(num_processes=2, rank=1, min_delay=0.123) - - def test_check_weights_with_scalar(self): - self.assertEqual(4.3, connectors.check_weights(4.3, 'excitatory', is_conductance=True)) - self.assertEqual(4.3, connectors.check_weights(4.3, 'excitatory', is_conductance=False)) - self.assertEqual(4.3, connectors.check_weights(4.3, 'inhibitory', is_conductance=True)) - self.assertEqual(-4.3, connectors.check_weights(-4.3, 'inhibitory', is_conductance=False)) - self.assertEqual(connectors.DEFAULT_WEIGHT, connectors.check_weights(None, 'excitatory', is_conductance=True)) - self.assertRaises(errors.ConnectionError, connectors.check_weights, 4.3, 'inhibitory', is_conductance=False) - self.assertRaises(errors.ConnectionError, connectors.check_weights, -4.3, 'inhibitory', is_conductance=True) - self.assertRaises(errors.ConnectionError, connectors.check_weights, -4.3, 'excitatory', is_conductance=True) - self.assertRaises(errors.ConnectionError, connectors.check_weights, -4.3, 'excitatory', is_conductance=False) - - def test_check_weights_with_array(self): - w = numpy.arange(10) - assert_array_equal(w, connectors.check_weights(w, 'excitatory', is_conductance=True)) - assert_array_equal(w, connectors.check_weights(w, 'excitatory', is_conductance=False)) - assert_array_equal(w, connectors.check_weights(w, 'inhibitory', is_conductance=True)) - self.assertRaises(errors.ConnectionError, connectors.check_weights, w, 'inhibitory', is_conductance=False) - w = numpy.arange(-10, 0) - assert_array_equal(w, connectors.check_weights(w, 'inhibitory', is_conductance=False)) - self.assertRaises(errors.ConnectionError, connectors.check_weights, w, 'inhibitory', is_conductance=True) - self.assertRaises(errors.ConnectionError, connectors.check_weights, w, 'excitatory', is_conductance=True) - self.assertRaises(errors.ConnectionError, connectors.check_weights, w, 'excitatory', is_conductance=False) - w = numpy.arange(-5, 5) - self.assertRaises(errors.ConnectionError, connectors.check_weights, w, 'excitatory', is_conductance=True) - self.assertRaises(errors.ConnectionError, connectors.check_weights, w, 'excitatory', is_conductance=False) - self.assertRaises(errors.ConnectionError, connectors.check_weights, w, 'inhibitory', is_conductance=True) - self.assertRaises(errors.ConnectionError, connectors.check_weights, w, 'inhibitory', is_conductance=False) - - def test_check_weights_with_invalid_value(self): - self.assertRaises(errors.ConnectionError, connectors.check_weights, "butterflies", 'excitatory', is_conductance=True) - - def test_check_weight_is_conductance_is_None(self): - # need to check that a log message was created - self.assertEqual(4.3, connectors.check_weights(4.3, 'excitatory', is_conductance=None)) - - def test_check_delay(self): - self.assertEqual(connectors.check_delays(2 * self.MIN_DELAY, self.MIN_DELAY, 1e99), 2 * self.MIN_DELAY) - self.assertRaises(errors.ConnectionError, connectors.check_delays, 0.5 * self.MIN_DELAY, self.MIN_DELAY, 1e99) - self.assertRaises(errors.ConnectionError, connectors.check_delays, 3.0, self.MIN_DELAY, 2.0) diff --git a/test/hardware/unittests/test_population.py b/test/hardware/unittests/test_population.py deleted file mode 100644 index 117714537..000000000 --- a/test/hardware/unittests/test_population.py +++ /dev/null @@ -1,507 +0,0 @@ -""" -Tests of the common implementation of the Population class, using the pyNN.mock -backend. - -:copyright: Copyright 2006-2016 by the PyNN team, see AUTHORS. -:license: CeCILL, see LICENSE for details. -""" - -try: - import unittest2 as unittest -except ImportError: - import unittest -import numpy -from numpy.testing import assert_array_equal, assert_array_almost_equal -import quantities as pq -from mock import Mock -from mocks import MockRNG -from pyNN import random, errors, space -from pyNN.parameters import Sequence - -if True: - import pyNN.hardware.brainscales as sim - ParameterValueOutOfRangeError = sim.range_checker.ParameterValueOutOfRangeError - IF_cond_exp = sim.Hardware_IF_cond_exp - EIF_cond_exp_isfa_ista = sim.Hardware_EIF_cond_exp_isfa_ista -else: - import pyNN.mock as sim - IF_cond_exp = sim.IF_cond_exp - EIF_cond_exp_isfa_ista = sim.EIF_cond_exp_isfa_ista - - -class PopulationTest(unittest.TestCase): - - def setUp(self): - if True: - extra = {'loglevel': 0, 'useSystemSim': True, 'hardware': sim.hardwareSetup['one-hicann']} - else: - extra = {} - sim.setup(**extra) - - def tearDown(self): - sim.end() - - def test_create_with_standard_cell_simple(self): - - p = sim.Population(11, IF_cond_exp()) - self.assertEqual(p.size, 11) - self.assertIsInstance(p.label, basestring) - self.assertIsInstance(p.celltype, IF_cond_exp) - self.assertIsInstance(p._structure, space.Line) - self.assertEqual(p._positions, None) - self.assertEqual(p.initial_values.keys(), p.celltype.default_initial_values.keys()) - - def test_create_with_parameters(self): - p = sim.Population(4, IF_cond_exp(**{'tau_m': lambda i: 12.3 + 0.1 * i, - 'cm': 0.2, - 'tau_syn_E': numpy.array([1.0, 2.0, 3.0, 4.0])})) - cm, tau_m, tau_syn_E = p.get(('cm', 'tau_m', 'tau_syn_E'), gather=True) - assert_array_almost_equal(tau_m, numpy.array([12.3, 12.4, 12.5, 12.6]), decimal=12) - self.assertEqual(cm, 0.2) - assert_array_equal(tau_syn_E, numpy.array([1.0, 2.0, 3.0, 4.0])) - - # test create native cell - - # test create native cell with params - - # test create with structure - def test_create_with_implicit_grid(self): - p = sim.Population((11,), IF_cond_exp()) - self.assertEqual(p.size, 11) - self.assertIsInstance(p.structure, space.Line) - p = sim.Population((5, 6), IF_cond_exp()) - self.assertEqual(p.size, 30) - self.assertIsInstance(p.structure, space.Grid2D) - p = sim.Population((2, 3, 4), IF_cond_exp()) - self.assertEqual(p.size, 24) - self.assertIsInstance(p.structure, space.Grid3D) - self.assertRaises(Exception, sim.Population, (2, 3, 4, 5), IF_cond_exp()) - - #def test_create_with_initial_values(): - - def test_id_to_index(self): - p = sim.Population(11, IF_cond_exp()) - self.assertEqual(p.id_to_index(p[0]), 0) - self.assertEqual(p.id_to_index(p[10]), 10) - - def test_id_to_index_with_array(self): - p = sim.Population(11, IF_cond_exp()) - assert_array_equal(p.id_to_index(p.all_cells[3:9:2]), numpy.arange(3, 9, 2)) - - def test_id_to_index_with_populationview(self): - p = sim.Population(11, IF_cond_exp()) - view = p[3:7] - self.assertIsInstance(view, sim.PopulationView) - assert_array_equal(p.id_to_index(view), numpy.arange(3, 7)) - - def test_id_to_index_with_invalid_id(self): - p = sim.Population(11, IF_cond_exp()) - self.assertRaises(ValueError, p.id_to_index, p.last_id + 1) - self.assertRaises(ValueError, p.id_to_index, p.first_id - 1) - - def test_id_to_index_with_invalid_ids(self): - p = sim.Population(11, IF_cond_exp()) - self.assertRaises(ValueError, p.id_to_index, [p.first_id - 1] + p.all_cells[0:3].tolist()) - - #def test_id_to_local_index(): - - # test structure property - def test_set_structure(self): - p = sim.Population(11, IF_cond_exp()) - p.positions = numpy.arange(33).reshape(3, 11) - new_struct = space.Grid2D() - p.structure = new_struct - self.assertEqual(p.structure, new_struct) - self.assertEqual(p._positions, None) - - # test positions property - def test_get_positions(self): - p = sim.Population(11, IF_cond_exp()) - pos1 = numpy.arange(33).reshape(3, 11) - p._structure = Mock() - p._structure.generate_positions = Mock(return_value=pos1) - self.assertEqual(p._positions, None) - assert_array_equal(p.positions, pos1) - - pos2 = 1 + numpy.arange(33).reshape(3, 11) - p.positions = pos2 - assert_array_equal(p.positions, pos2) - - def test_set_positions(self): - p = sim.Population(11, IF_cond_exp()) - assert p._structure != None - new_positions = numpy.random.uniform(size=(3, 11)) - p.positions = new_positions - self.assertEqual(p.structure, None) - assert_array_equal(p.positions, new_positions) - new_positions[0, 0] = 99.9 - self.assertNotEqual(p.positions[0, 0], 99.9) - - def test_position_generator(self): - p = sim.Population(11, IF_cond_exp()) - assert_array_equal(p.position_generator(0), p.positions[:, 0]) - assert_array_equal(p.position_generator(10), p.positions[:, 10]) - assert_array_equal(p.position_generator(-1), p.positions[:, 10]) - assert_array_equal(p.position_generator(-11), p.positions[:, 0]) - self.assertRaises(IndexError, p.position_generator, 11) - self.assertRaises(IndexError, p.position_generator, -12) - - def test__getitem__int(self): - # Should return the correct ID object - p = sim.Population(12, IF_cond_exp()) - self.assertEqual(p[11], 11 + p[0]) - self.assertRaises(IndexError, p.__getitem__, 12) - self.assertEqual(p[-1], 11 + p[0]) - - def test__getitem__slice(self): - # Should return a PopulationView with the correct parent and value - # of all_cells - p = sim.Population(17, IF_cond_exp()) - pv = p[3:9] - self.assertEqual(pv.parent, p) - assert_array_almost_equal(pv.all_cells, p.all_cells[3:9]) - - def test__getitem__list(self): - p = sim.Population(23, IF_cond_exp()) - pv = p[range(3, 9)] - self.assertEqual(pv.parent, p) - assert_array_almost_equal(pv.all_cells, p.all_cells[3:9]) - - def test__getitem__tuple(self): - p = sim.Population(23, IF_cond_exp()) - pv = p[(3, 5, 7)] - self.assertEqual(pv.parent, p) - assert_array_almost_equal(pv.all_cells, p.all_cells[[3, 5, 7]]) - - def test__getitem__invalid(self): - p = sim.Population(23, IF_cond_exp()) - self.assertRaises(TypeError, p.__getitem__, "foo") - - def test__len__(self): - # len(p) should give the global size (all MPI nodes) - p = sim.Population(77, IF_cond_exp()) - self.assertEqual(len(p), p.size, 77) - - def test_iter(self): - p = sim.Population(6, IF_cond_exp()) - itr = p.__iter__() - assert hasattr(itr, "next") - self.assertEqual(len(list(itr)), 6) - - def test___add__two(self): - # adding two populations should give an Assembly - p1 = sim.Population(6, EIF_cond_exp_isfa_ista()) - p2 = sim.Population(17, IF_cond_exp()) - assembly = p1 + p2 - self.assertIsInstance(assembly, sim.Assembly) - self.assertEqual(assembly.populations, [p1, p2]) - - def test___add__three(self): - # adding three populations should give an Assembly - p1 = sim.Population(6, IF_cond_exp()) - p2 = sim.Population(17, EIF_cond_exp_isfa_ista()) - p3 = sim.Population(9, sim.SpikeSourceArray()) - assembly = p1 + p2 + p3 - self.assertIsInstance(assembly, sim.Assembly) - self.assertEqual(assembly.populations, [p1, p2, p3]) - - def test_nearest(self): - p = sim.Population(13, IF_cond_exp()) - p.positions = numpy.arange(39).reshape((13, 3)).T - self.assertEqual(p.nearest((0.0, 1.0, 2.0)), p[0]) - self.assertEqual(p.nearest((3.0, 4.0, 5.0)), p[1]) - self.assertEqual(p.nearest((36.0, 37.0, 38.0)), p[12]) - self.assertEqual(p.nearest((1.49, 2.49, 3.49)), p[0]) - self.assertEqual(p.nearest((1.51, 2.51, 3.51)), p[1]) - - x, y, z = 4, 5, 6 - p = sim.Population((x, y, z), IF_cond_exp()) - self.assertEqual(p.nearest((0.0, 0.0, 0.0)), p[0]) - self.assertEqual(p.nearest((0.0, 0.0, 1.0)), p[1]) - self.assertEqual(p.nearest((0.0, 1.0, 0.0)), p[z]) - self.assertEqual(p.nearest((1.0, 0.0, 0.0)), p[y * z]) - self.assertEqual(p.nearest((3.0, 2.0, 1.0)), p[3 * y * z + 2 * z + 1]) - self.assertEqual(p.nearest((3.49, 2.49, 1.49)), p[3 * y * z + 2 * z + 1]) - self.assertEqual(p.nearest((3.49, 2.49, 1.51)), p[3 * y * z + 2 * z + 2]) - #self.assertEqual(p.nearest((3.49,2.49,1.5)), p[3*y*z+2*z+2]) # known to fail - #self.assertEqual(p.nearest((2.5,2.5,1.5)), p[3*y*z+3*y+2]) - - def test_sample(self): - p = sim.Population(13, IF_cond_exp()) - rng = Mock() - rng.permutation = Mock(return_value=numpy.array([7, 4, 8, 12, 0, 3, 9, 1, 2, 11, 5, 10, 6])) - pv = p.sample(5, rng=rng) - assert_array_equal(pv.all_cells, - p.all_cells[[7, 4, 8, 12, 0]]) - - def test_get_multiple_homogeneous_params_with_gather(self): - p = sim.Population(4, IF_cond_exp(**{'tau_m': 12.3, 'cm': 0.2, 'i_offset': 0.0})) - cm, tau_m = p.get(('cm', 'tau_m'), gather=True) - self.assertIsInstance(cm, float) - self.assertEqual(cm, 0.2) - self.assertEqual(tau_m, 12.3) - - def test_get_single_param_with_gather(self): - p = sim.Population(4, IF_cond_exp(tau_m=12.3, cm=0.2, i_offset=0.)) - tau_m = p.get('tau_m', gather=True) - self.assertEqual(tau_m, 12.3) - - def test_get_multiple_inhomogeneous_params_with_gather(self): - p = sim.Population(4, IF_cond_exp(tau_m=[12.3, 12.4, 12.5, 12.6], - cm=0.2, - tau_syn_E=lambda i: 1.0 + 1.0 * i)) - cm, tau_m, tau_syn_E = p.get(('cm', 'tau_m', 'tau_syn_E'), gather=True) - self.assertIsInstance(cm, float) - self.assertIsInstance(tau_m, numpy.ndarray) - assert_array_equal(tau_m, numpy.array([12.3, 12.4, 12.5, 12.6])) - self.assertEqual(cm, 0.2) - assert_array_almost_equal(tau_syn_E, numpy.array([1.0, 2.0, 3.0, 4.0]), decimal=12) - - def test_get_sequence_param(self): - p = sim.Population(3, sim.SpikeSourceArray(spike_times=[Sequence([1, 2, 3, 4]), - Sequence([2, 3, 4, 5]), - Sequence([3, 4, 5, 6])])) - spike_times = p.get('spike_times') - self.assertEqual(spike_times.size, 3) - assert_array_equal(spike_times[1], Sequence([2, 3, 4, 5])) - - def test_set(self): - p = sim.Population(4, IF_cond_exp, {'tau_m': 14.0, 'v_reset': -50., 'tau_syn_E': 1.0}) - rng = MockRNG(start=12.31, delta=0.01, parallel_safe=True) - p.set(tau_m=random.RandomDistribution('uniform', (0.5, 1.5), rng=rng), v_reset=-60) - tau_m, v_reset, tau_syn_E = p.get(('tau_m', 'v_reset', 'tau_syn_E'), gather=True) - assert_array_equal(tau_m, numpy.array([12.31, 12.32, 12.33, 12.34])) - assert_array_equal(v_reset, -60.0**numpy.ones((4,))) - assert_array_equal(tau_syn_E, 1.0 * numpy.ones((4,))) - - def test_set_invalid_name(self): - p = sim.Population(9, IF_cond_exp()) - self.assertRaises(errors.NonExistentParameterError, p.set, foo=13.2) - - def test_set_invalid_type(self): - p = sim.Population(9, IF_cond_exp()) - self.assertRaises(errors.InvalidParameterValueError, p.set, tau_m={}) - self.assertRaises(errors.InvalidParameterValueError, p.set, v_reset='bar') - - def test_set_sequence(self): - p = sim.Population(3, sim.SpikeSourceArray()) - p.set(spike_times=[Sequence([1, 2, 3, 4]), - Sequence([2, 3, 4, 5]), - Sequence([3, 4, 5, 6])]) - spike_times = p.get('spike_times', gather=True) - self.assertEqual(spike_times.size, 3) - assert_array_equal(spike_times[1], Sequence([2, 3, 4, 5])) - - def test_set_array(self): - p = sim.Population(5, IF_cond_exp()) - p.set(v_thresh=-50.0 + numpy.arange(5)) - assert_array_equal(p.get('v_thresh', gather=True), - numpy.array([-50.0, -49.0, -48.0, -47.0, -46.0])) - - def test_set_random_distribution_parallel_unsafe(self): - orig_rcfg = random.get_mpi_config - random.get_mpi_config = lambda: (1, 2) - sim.simulator.state.num_processes = 2 - sim.simulator.state.mpi_rank = 1 - p = sim.Population(4, IF_cond_exp(tau_syn_E=1.0)) - rng = MockRNG(start=1.5, delta=0.01, parallel_safe=False) - p.set(tau_syn_E=random.RandomDistribution('uniform', (0.8, 3.0), rng=rng)) - tau_syn_E = p.get('tau_syn_E', gather=False) - assert_array_equal(tau_syn_E, numpy.array([1.5, 1.51])) - random.get_mpi_config = orig_rcfg - sim.simulator.state.num_processes = 1 - sim.simulator.state.mpi_rank = 0 - - def test_set_random_distribution_parallel_safe(self): - orig_rcfg = random.get_mpi_config - random.get_mpi_config = lambda: (1, 2) - sim.simulator.state.num_processes = 2 - sim.simulator.state.mpi_rank = 1 - p = sim.Population(4, IF_cond_exp(tau_syn_E=1.0)) - rng = MockRNG(start=2.0, delta=0.01, parallel_safe=True) - p.set(tau_syn_E=random.RandomDistribution('uniform', (0.1, 3.0), rng=rng)) - tau_syn_E = p.get('tau_syn_E', gather=False) - assert_array_equal(tau_syn_E, numpy.array([2.01, 2.03])) - random.get_mpi_config = orig_rcfg - sim.simulator.state.num_processes = 1 - sim.simulator.state.mpi_rank = 0 - - def test_tset(self): - p = sim.Population(17, IF_cond_exp()) - p.set = Mock() - tau_m = numpy.linspace(10.0, 20.0, num=p.size) - p.tset("tau_m", tau_m) - p.set.assert_called_with(tau_m=tau_m) - - def test_rset(self): - p = sim.Population(17, IF_cond_exp()) - p.set = Mock() - v_reset = random.RandomDistribution('uniform', low=-70.0, high=-60.0) - p.rset("v_reset", v_reset) - p.set.assert_called_with(v_reset=v_reset) - - ##def test_set_with_native_rng(): - - def test_initialize(self): - p = sim.Population(17, EIF_cond_exp_isfa_ista()) - v_init = numpy.linspace(-70.0, -60.0, num=p.size) - w_init = 0.1 - p.initialize(v=v_init, w=w_init) - assert_array_equal(p.initial_values['v'].evaluate(simplify=True), v_init) - assert_array_equal(p.initial_values['w'].evaluate(simplify=True), w_init) - # should call p.record(('v', 'w')) and check that the recorded data starts with the initial value - - def test_can_record(self): - p = sim.Population(17, EIF_cond_exp_isfa_ista()) - assert p.can_record('v') - assert p.can_record('spikes') - assert not p.can_record('foo') - assert not p.can_record('w') - assert not p.can_record('gsyn_inh') - - def test_record_with_single_variable(self): - p = sim.Population(14, EIF_cond_exp_isfa_ista()) - p.record('v') - sim.run(12.3) - data = p.get_data(gather=True).segments[0] - self.assertEqual(len(data.analogsignals), 1) - n_values = int(round(12.3 / sim.get_time_step())) + 1 - self.assertEqual(data.analogsignals[0].name, 'v') - self.assertEqual(data.analogsignals[0].shape, (n_values, p.size)) - - def test_record_with_multiple_variables(self): - p = sim.Population(2, EIF_cond_exp_isfa_ista()) - p.record(('v', 'spikes')) - sim.run(10.0) - data = p.get_data(gather=True).segments[0] - self.assertEqual(len(data.analogsignals), 1) - n_values = int(round(10.0 / sim.get_time_step())) + 1 - names = set(arr.name for arr in data.analogsignals) - self.assertEqual(names, set(('v'))) - for arr in data.analogsignals: - self.assertEqual(arr.shape, (n_values, p.size)) - - def test_record_v(self): - p = sim.Population(2, EIF_cond_exp_isfa_ista()) - p.record = Mock() - p.record_v("arg1") - p.record.assert_called_with('v', "arg1") - - def test_record_gsyn(self): - p = sim.Population(2, EIF_cond_exp_isfa_ista()) - p.record = Mock() - p.record_gsyn("arg1") - p.record.assert_called_with(['gsyn_exc', 'gsyn_inh'], "arg1") - - def test_record_invalid_variable(self): - p = sim.Population(14, IF_cond_exp()) - self.assertRaises(errors.RecordingError, - p.record, ('v', 'w')) # can't record w from this celltype - - def test_get_data_no_gather(self): - self.fail() - - def test_printSpikes(self): - # TODO: implement assert_deprecated - p = sim.Population(3, IF_cond_exp()) - p.record('spikes') - sim.run(10.0) - p.write_data = Mock() - p.printSpikes("foo.txt") - p.write_data.assert_called_with('foo.txt', 'spikes', True) - - def test_getSpikes(self): - p = sim.Population(3, IF_cond_exp()) - p.record('spikes') - sim.run(10.0) - p.get_data = Mock() - p.getSpikes() - p.get_data.assert_called_with('spikes', True) - - def test_print_v(self): - p = sim.Population(3, IF_cond_exp()) - p.record_v() - sim.run(10.0) - p.write_data = Mock() - p.print_v("foo.txt") - p.write_data.assert_called_with('foo.txt', 'v', True) - - def test_get_v(self): - p = sim.Population(3, IF_cond_exp()) - p.record_v() - sim.run(10.0) - p.get_data = Mock() - p.get_v() - p.get_data.assert_called_with('v', True) - - def test_get_spike_counts(self): - p = sim.Population(3, EIF_cond_exp_isfa_ista()) - p.record('spikes') - sim.run(100.0) - self.assertEqual(p.get_spike_counts(), - {p.all_cells[0]: 2, - p.all_cells[1]: 2, - p.all_cells[2]: 2}) - - def test_mean_spike_count(self): - p = sim.Population(14, EIF_cond_exp_isfa_ista()) - p.record('spikes') - sim.run(100.0) - self.assertEqual(p.mean_spike_count(), 2.0) - - def test_meanSpikeCount(self): - p = sim.Population(14, EIF_cond_exp_isfa_ista()) - p.record('spikes') - sim.run(100.0) - p.mean_spike_count = Mock() - p.meanSpikeCount() - self.assertTrue(p.mean_spike_count.called) - - def test_inject(self): - p = sim.Population(3, IF_cond_exp()) - cs = Mock() - p.inject(cs) - meth, args, kwargs = cs.method_calls[0] - self.assertEqual(meth, "inject_into") - self.assertEqual(args, (p,)) - - def test_inject_into_invalid_celltype(self): - p = sim.Population(3, sim.SpikeSourceArray()) - self.assertRaises(TypeError, p.inject, Mock()) - - # test describe method - def test_describe(self): - p = sim.Population(11, IF_cond_exp()) - self.assertIsInstance(p.describe(), basestring) - self.assertIsInstance(p.describe(template=None), dict) - -# ------------------------------------------ -# specific hardware test -# ------------------------------------------ - #def test_out_of_range_parameter_homogeneous(self): - #ifcell = IF_cond_exp(cm=0.2) - #self.assertRaises(ParameterValueOutOfRangeError, IF_cond_exp, cm=0.9) - - #def test_out_of_range_parameter_function(self): - #ifcell = IF_cond_exp(**{'cm': lambda i: 0.2 + 0.1*i}) - #self.assertRaises(ParameterValueOutOfRangeError, sim.Population, 4, ifcell) - - #def test_out_of_range_parameter_array_one_cell(self): - #self.assertRaises(ParameterValueOutOfRangeError, IF_cond_exp,**{'cm': numpy.array([0.9])}) - - #def test_out_of_range_parameter_function_one_cell(self): - #ifcell = IF_cond_exp(**{'cm': lambda i: 0.3 + 0.1*i}) - #self.assertRaises(ParameterValueOutOfRangeError, sim.Population, 1, ifcell) - - #def test_out_of_range_parameter_homogeneous_pop(self): - #self.assertRaises(ParameterValueOutOfRangeError, sim.Population, 4, IF_cond_exp(**{'cm': 0.9})) - - #def test_out_of_range_parameter_array_pop(self): - #self.assertRaises(ParameterValueOutOfRangeError, sim.Population, 4, IF_cond_exp(**{'cm': numpy.array([0.2, 0.2, 0.9, 0.2])})) - - #def test_out_of_range_parameter_function_pop(self): - #p = sim.Population(4, IF_cond_exp(**{'cm': lambda i: 0.2 + 0.0*i})) - #self.assertRaises(ParameterValueOutOfRangeError, sim.Population, 4, IF_cond_exp(**{'cm': lambda i: 0.2 + 0.1*i})) - -if __name__ == "__main__": - unittest.main() diff --git a/test/hardware/unittests/test_populationview.py b/test/hardware/unittests/test_populationview.py deleted file mode 100644 index 1bc6e50b0..000000000 --- a/test/hardware/unittests/test_populationview.py +++ /dev/null @@ -1,417 +0,0 @@ -""" -Tests of the common implementation of the PopulationView class, using the -pyNN.mock backend. - -:copyright: Copyright 2006-2016 by the PyNN team, see AUTHORS. -:license: CeCILL, see LICENSE for details. -""" - -try: - import unittest2 as unittest -except ImportError: - import unittest -import numpy -from numpy.testing import assert_array_equal, assert_array_almost_equal -import quantities as pq -from mock import Mock, patch -from .mocks import MockRNG -import pyNN.hardware.brainscales as sim -from pyNN import random, errors, space -from pyNN.parameters import Sequence - - -class PopulationViewTest(unittest.TestCase): - - def setUp(self): - extra = {'loglevel': 0, 'useSystemSim': True, 'hardware': sim.hardwareSetup['one-hicann']} - sim.setup(**extra) - - def tearDown(self): - sim.end() - - # test create with population parent and mask selector - def test_create_with_slice_selector(self): - p = sim.Population(11, sim.IF_cond_exp()) - mask = slice(3, 9, 2) - pv = sim.PopulationView(parent=p, selector=mask) - self.assertEqual(pv.parent, p) - self.assertEqual(pv.size, 3) - self.assertEqual(pv.mask, mask) - assert_array_equal(pv.all_cells, numpy.array([p.all_cells[3], p.all_cells[5], p.all_cells[7]])) - #assert_array_equal(pv.local_cells, numpy.array([p.all_cells[3]])) - #assert_array_equal(pv._mask_local, numpy.array([1,0,0], dtype=bool)) - self.assertEqual(pv.celltype, p.celltype) - self.assertEqual(pv.first_id, p.all_cells[3]) - self.assertEqual(pv.last_id, p.all_cells[7]) - - def test_create_with_boolean_array_selector(self): - p = sim.Population(11, sim.IF_cond_exp()) - mask = numpy.array([0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0], dtype=bool) - pv = sim.PopulationView(parent=p, selector=mask) - assert_array_equal(pv.all_cells, numpy.array([p.all_cells[3], p.all_cells[5], p.all_cells[7]])) - #assert_array_equal(pv.mask, mask) - - def test_create_with_index_array_selector(self): - p = sim.Population(11, sim.EIF_cond_exp_isfa_ista()) - mask = numpy.array([3, 5, 7]) - pv = sim.PopulationView(parent=p, selector=mask) - assert_array_equal(pv.all_cells, numpy.array([p.all_cells[3], p.all_cells[5], p.all_cells[7]])) - assert_array_equal(pv.mask, mask) - - # test create with populationview parent and mask selector - def test_create_with_slice_selector(self): - p = sim.Population(11, sim.EIF_cond_exp_isfa_ista()) - mask1 = slice(0, 9, 1) - pv1 = sim.PopulationView(parent=p, selector=mask1) - assert_array_equal(pv1.all_cells, p.all_cells[0:9]) - mask2 = slice(3, 9, 2) - pv2 = sim.PopulationView(parent=pv1, selector=mask2) - self.assertEqual(pv2.parent, pv1) # or would it be better to resolve the parent chain up to an actual Population? - assert_array_equal(pv2.all_cells, numpy.array([p.all_cells[3], p.all_cells[5], p.all_cells[7]])) - #assert_array_equal(pv2._mask_local, numpy.array([1,0,0], dtype=bool)) - - # test initial values property - - def test_structure_property(self): - p = sim.Population(11, sim.SpikeSourcePoisson()) - mask = slice(3, 9, 2) - pv = sim.PopulationView(parent=p, selector=mask) - self.assertEqual(pv.structure, p.structure) - - # test positions property - def test_get_positions(self): - p = sim.Population(11, sim.IF_cond_exp()) - ppos = numpy.random.uniform(size=(3, 11)) - p._positions = ppos - pv = sim.PopulationView(parent=p, selector=slice(3, 9, 2)) - assert_array_equal(pv.positions, numpy.array([ppos[:, 3], ppos[:, 5], ppos[:, 7]]).T) - - def test_id_to_index(self): - p = sim.Population(11, sim.EIF_cond_exp_isfa_ista()) - pv = p[2, 5, 7, 8] - self.assertEqual(pv.id_to_index(pv[0]), 0) - self.assertEqual(pv.id_to_index(pv[3]), 3) - self.assertEqual(pv.id_to_index(p[2]), 0) - self.assertEqual(pv.id_to_index(p[8]), 3) - - def test_id_to_index_with_array(self): - p = sim.Population(121, sim.EIF_cond_exp_isfa_ista()) - pv = p[2, 5, 7, 8, 19, 37, 49, 82, 83, 99] - assert_array_equal(pv.id_to_index(pv.all_cells[3:9:2]), numpy.arange(3, 9, 2)) - - def test_id_to_index_with_invalid_id(self): - p = sim.Population(11, sim.EIF_cond_exp_isfa_ista()) - pv = p[2, 5, 7, 8] - self.assertRaises(IndexError, pv.id_to_index, p[0]) - self.assertRaises(IndexError, pv.id_to_index, p[9]) - -# def test_id_to_index_with_invalid_ids(self): -# p = sim.Population(11, sim.EIF_cond_exp_isfa_ista()) -# pv = p[2, 5, 7, 8] -# self.assertRaises(IndexError, pv.id_to_index, p.all_cells[[2, 5, 6]]) -# currently failing - - ##def test_id_to_local_index(): - - ## test structure property - def test_set_structure(self): - p = sim.Population(11, sim.IF_cond_exp(), structure=space.Grid2D()) - pv = p[2, 5, 7, 8] - new_struct = space.Line() - - def set_struct(struct): - pv.structure = struct - self.assertRaises(AttributeError, set_struct, new_struct) - - ## test positions property - def test_get_positions(self): - p = sim.Population(11, sim.IF_cond_exp()) - pos = numpy.arange(33).reshape(3, 11) - p.positions = pos - pv = p[2, 5, 7, 8] - assert_array_equal(pv.positions, pos[:, [2, 5, 7, 8]]) - - def test_position_generator(self): - p = sim.Population(11, sim.IF_cond_exp()) - pv = p[2, 5, 7, 8] - assert_array_equal(pv.position_generator(0), p.positions[:, 2]) - assert_array_equal(pv.position_generator(3), p.positions[:, 8]) - assert_array_equal(pv.position_generator(-1), p.positions[:, 8]) - assert_array_equal(pv.position_generator(-4), p.positions[:, 2]) - self.assertRaises(IndexError, pv.position_generator, 4) - self.assertRaises(IndexError, pv.position_generator, -5) - - def test__getitem__int(self): - # Should return the correct ID object - p = sim.Population(12, sim.IF_cond_exp()) - pv = p[1, 5, 6, 8, 11] - - self.assertEqual(pv[0], p[1], 42) - self.assertEqual(pv[4], p[11], 53) - self.assertRaises(IndexError, pv.__getitem__, 6) - self.assertEqual(pv[-1], p[11], 53) - - def test__getitem__slice(self): - # Should return a PopulationView with the correct parent and value - # of all_cells - p = sim.Population(17, sim.EIF_cond_exp_isfa_ista()) - pv1 = p[1, 5, 6, 8, 11, 12, 15, 16] - - pv2 = pv1[2:6] - self.assertEqual(pv2.parent, pv1) - self.assertEqual(pv2.grandparent, p) - assert_array_equal(pv2.all_cells, pv1.all_cells[[2, 3, 4, 5]]) - assert_array_equal(pv2.all_cells, p.all_cells[[6, 8, 11, 12]]) - - def test__getitem__list(self): - p = sim.Population(23, sim.EIF_cond_exp_isfa_ista()) - pv1 = p[1, 5, 6, 8, 11, 12, 15, 16, 19, 20] - - pv2 = pv1[range(3, 8)] - self.assertEqual(pv2.parent, pv1) - assert_array_almost_equal(pv2.all_cells, p.all_cells[[8, 11, 12, 15, 16]]) - - def test__getitem__tuple(self): - p = sim.Population(23, sim.EIF_cond_exp_isfa_ista()) - pv1 = p[1, 5, 6, 8, 11, 12, 15, 16, 19, 20] - - pv2 = pv1[(3, 5, 7)] - self.assertEqual(pv2.parent, pv1) - assert_array_almost_equal(pv2.all_cells, p.all_cells[[8, 12, 16]]) - - def test__getitem__invalid(self): - p = sim.Population(23, sim.EIF_cond_exp_isfa_ista()) - pv = p[1, 5, 6, 8, 11, 12, 15, 16, 19, 20] - self.assertRaises(TypeError, pv.__getitem__, "foo") - - def test__len__(self): - # len(p) should give the global size (all MPI nodes) - p = sim.Population(77, sim.IF_cond_exp()) - pv = p[1, 5, 6, 8, 11, 12, 15, 16, 19, 20] - self.assertEqual(len(pv), pv.size, 10) - - def test_iter(self): - p = sim.Population(33, sim.IF_cond_exp()) - pv = p[1, 5, 6, 8, 11, 12] - itr = pv.__iter__() - assert hasattr(itr, "next") - self.assertEqual(len(list(itr)), 6) - - def test___add__two(self): - # adding two population views should give an Assembly - pv1 = sim.Population(6, sim.IF_cond_exp())[2, 3, 5] - pv2 = sim.Population(17, sim.IF_cond_exp())[4, 2, 16] - assembly = pv1 + pv2 - self.assertIsInstance(assembly, sim.Assembly) - self.assertEqual(assembly.populations, [pv1, pv2]) - - def test___add__three(self): - # adding three population views should give an Assembly - pv1 = sim.Population(6, sim.IF_cond_exp())[0:3] - pv2 = sim.Population(17, sim.IF_cond_exp())[1, 5, 14] - pv3 = sim.Population(9, sim.EIF_cond_exp_isfa_ista())[3:8] - assembly = pv1 + pv2 + pv3 - self.assertIsInstance(assembly, sim.Assembly) - self.assertEqual(assembly.populations, [pv1, pv2, pv3]) - - def test_nearest(self): - p = sim.Population(13, sim.IF_cond_exp()) - p.positions = numpy.arange(39).reshape((13, 3)).T - pv = p[0, 2, 5, 11] - self.assertEqual(pv.nearest((0.0, 1.0, 2.0)), pv[0]) - self.assertEqual(pv.nearest((3.0, 4.0, 5.0)), pv[0]) - self.assertEqual(pv.nearest((36.0, 37.0, 38.0)), pv[3]) - self.assertEqual(pv.nearest((1.49, 2.49, 3.49)), pv[0]) - self.assertEqual(pv.nearest((1.51, 2.51, 3.51)), pv[0]) - - def test_sample(self): - p = sim.Population(13, sim.IF_cond_exp()) - pv1 = p[0, 3, 7, 10, 12] - - rng = Mock() - rng.permutation = Mock(return_value=numpy.array([3, 1, 0, 2, 4])) - pv2 = pv1.sample(3, rng=rng) - assert_array_equal(pv2.all_cells, - p.all_cells[[10, 3, 0]]) - - def test_get_multiple_homogeneous_params_with_gather(self): - p = sim.Population(10, sim.IF_cond_exp, {'tau_m': 12.3, 'cm': 0.2, 'i_offset': 0.}) - pv = p[3:7] - cm, tau_m = pv.get(('cm', 'tau_m'), gather=True) - self.assertEqual(cm, 0.987) - self.assertEqual(tau_m, 12.3) - - def test_get_single_homogeneous_param_with_gather(self): - p = sim.Population(4, sim.IF_cond_exp, {'tau_m': 12.3, 'cm': 0.2, 'i_offset': 0.}) - pv = p[:] - cm = pv.get('cm', gather=True) - self.assertEqual(cm, 0.987) - - def test_get_multiple_inhomogeneous_params_with_gather(self): - p = sim.Population(4, sim.IF_cond_exp(tau_m=[12.1, 12.2, 12.3, 12.4], - cm=0.2, - i_offset=lambda i: 0. * i)) - pv = p[0, 1, 3] - cm, tau_m, i_offset = pv.get(('cm', 'tau_m', 'i_offset'), gather=True) - self.assertIsInstance(cm, float) - self.assertIsInstance(tau_m, numpy.ndarray) - assert_array_equal(tau_m, numpy.array([12.1, 12.2, 12.4])) - self.assertEqual(cm, 0.2) - assert_array_almost_equal(i_offset, numpy.array([0., 0., 0.]), decimal=12) - - def test_get_sequence_param(self): - p = sim.Population(3, sim.SpikeSourceArray, - {'spike_times': [Sequence([1, 2, 3, 4]), - Sequence([2, 3, 4, 5]), - Sequence([3, 4, 5, 6])]}) - pv = p[1:] - spike_times = pv.get('spike_times') - self.assertEqual(spike_times.size, 2) - assert_array_equal(spike_times[1], Sequence([3, 4, 5, 6])) - - def test_set(self): - p = sim.Population(4, sim.IF_cond_exp, {'tau_m': 12.3, 'cm': 0.2, 'i_offset': 0.0}) - pv = p[:3] - rng = MockRNG(start=1.21, delta=0.01, parallel_safe=True) - pv.set(cm=0.2, tau_m=random.RandomDistribution('uniform', (9.8, 12.3), rng=rng)) - tau_m, cm, i_offset = p.get(('tau_m', 'cm', 'i_offset'), gather=True) - assert_array_equal(cm, numpy.array([0.2, 0.2, 0.2, 0.2])) - assert_array_equal(tau_m, numpy.array([9.87, 9.87, 9.87, 12.3])) - assert_array_equal(i_offset, 0. * numpy.zeros((4,))) - - tau_m, cm, i_offset = pv.get(('tau_m', 'cm', 'i_offset'), gather=True) - assert_array_equal(cm, numpy.array([0.2, 0.2, 0.2])) - assert_array_equal(tau_m, numpy.array([9.87, 9.87, 9.87])) - assert_array_equal(i_offset, 0. * numpy.ones((3,))) - - def test_set_invalid_name(self): - p = sim.Population(9, sim.EIF_cond_exp_isfa_ista()) - pv = p[3:5] - self.assertRaises(errors.NonExistentParameterError, pv.set, foo=13.2) - - def test_set_invalid_type(self): - p = sim.Population(9, sim.IF_cond_exp()) - pv = p[::3] - self.assertRaises(errors.InvalidParameterValueError, pv.set, tau_m={}) - self.assertRaises(errors.InvalidParameterValueError, pv.set, v_reset='bar') - - def test_set_sequence(self): - p = sim.Population(5, sim.SpikeSourceArray()) - pv = p[0, 2, 4] - pv.set(spike_times=[Sequence([1, 2, 3, 4]), - Sequence([2, 3, 4, 5]), - Sequence([3, 4, 5, 6])]) - spike_times = p.get('spike_times', gather=True) - self.assertEqual(spike_times.size, 5) - assert_array_equal(spike_times[1], Sequence([])) - assert_array_equal(spike_times[2], Sequence([2, 3, 4, 5])) - - def test_set_array(self): - p = sim.Population(5, sim.IF_cond_exp, {'v_thresh': -54.3}) - pv = p[2:] - pv.set(v_thresh=-50.0 + numpy.arange(3)) - assert_array_equal(p.get('v_thresh', gather=True), - numpy.array([-54.3, -54.3, -50.0, -49.0, -48.0])) - - def test_tset(self): - p = sim.Population(17, sim.EIF_cond_exp_isfa_ista()) - pv = p[::4] - pv.set = Mock() - tau_m = numpy.linspace(10.0, 20.0, num=pv.size) - pv.tset("tau_m", tau_m) - pv.set.assert_called_with(tau_m=tau_m) - - def test_rset(self): - p = sim.Population(17, sim.EIF_cond_exp_isfa_ista()) - pv = p[::4] - pv.set = Mock() - v_rest = random.RandomDistribution('uniform', low=-70.0, high=-60.0) - pv.rset("v_rest", v_rest) - pv.set.assert_called_with(v_rest=v_rest) - - def test_can_record(self): - pv = sim.Population(17, sim.EIF_cond_exp_isfa_ista())[::2] - assert pv.can_record('v') - assert not pv.can_record('w') - assert not pv.can_record('gsyn_inh') - assert pv.can_record('spikes') - assert not pv.can_record('foo') - - def test_record_with_single_variable(self): - p = sim.Population(14, sim.EIF_cond_exp_isfa_ista()) - pv = p[0, 4, 6, 13] - pv.record('v') - sim.run(12.3) - data = p.get_data(gather=True).segments[0] - self.assertEqual(len(data.analogsignals), 1) - n_values = int(round(12.3 / sim.get_time_step())) + 1 - self.assertEqual(data.analogsignals[0].name, 'v') - self.assertEqual(data.analogsignals[0].shape, (n_values, pv.size)) - - def test_record_with_multiple_variables(self): - p = sim.Population(4, sim.EIF_cond_exp_isfa_ista()) - pv = p[0, 3] - pv.record(('v', 'spikes')) - sim.run(10.0) - data = p.get_data(gather=True).segments[0] - self.assertEqual(len(data.analogsignals), 1) - n_values = int(round(10.0 / sim.get_time_step())) + 1 - names = set(arr.name for arr in data.analogsignals) - self.assertEqual(names, set(('v'))) - for arr in data.analogsignals: - self.assertEqual(arr.shape, (n_values, pv.size)) - - def test_record_v(self): - pv = sim.Population(2, sim.EIF_cond_exp_isfa_ista())[0:1] - pv.record = Mock() - pv.record_v("arg1") - pv.record.assert_called_with('v', "arg1") - - def test_record_gsyn(self): - pv = sim.Population(2, sim.EIF_cond_exp_isfa_ista())[1:] - pv.record = Mock() - pv.record_gsyn("arg1") - pv.record.assert_called_with(['gsyn_exc', 'gsyn_inh'], "arg1") - - def test_record_invalid_variable(self): - pv = sim.Population(14, sim.EIF_cond_exp_isfa_ista())[::3] - self.assertRaises(errors.RecordingError, - pv.record, ('v', 'gsyn_exc')) # can't record gsyn_exc from this celltype - - def test_get_spike_counts(self): - p = sim.Population(5, sim.EIF_cond_exp_isfa_ista()) - pv = p[0, 1, 4] - pv.record('spikes') - sim.run(100.0) - self.assertEqual(p.get_spike_counts(), - {p.all_cells[0]: 2, - p.all_cells[1]: 2, - p.all_cells[4]: 2}) - - def test_mean_spike_count(self): - p = sim.Population(14, sim.EIF_cond_exp_isfa_ista()) - pv = p[2::3] - pv.record('spikes') - sim.run(100.0) - self.assertEqual(p.mean_spike_count(), 2.0) - - def test_inject(self): - pv = sim.Population(3, sim.EIF_cond_exp_isfa_ista())[1, 2] - cs = Mock() - pv.inject(cs) - meth, args, kwargs = cs.method_calls[0] - self.assertEqual(meth, "inject_into") - self.assertEqual(args, (pv,)) - - def test_inject_into_invalid_celltype(self): - pv = sim.Population(3, sim.SpikeSourceArray())[:2] - self.assertRaises(TypeError, pv.inject, Mock()) - - # test describe method - def test_describe(self): - pv = sim.Population(11, sim.IF_cond_exp())[::4] - self.assertIsInstance(pv.describe(), basestring) - self.assertIsInstance(pv.describe(template=None), dict) - -if __name__ == "__main__": - unittest.main() diff --git a/test/hardware/unittests/test_projection.py b/test/hardware/unittests/test_projection.py deleted file mode 100644 index 1e70b5680..000000000 --- a/test/hardware/unittests/test_projection.py +++ /dev/null @@ -1,241 +0,0 @@ -""" -Tests of the common implementation of the Projection class, using the -pyNN.mock backend. - -:copyright: Copyright 2006-2016 by the PyNN team, see AUTHORS. -:license: CeCILL, see LICENSE for details. -""" - -try: - import unittest2 as unittest -except ImportError: - import unittest -import numpy -import os -from numpy.testing import assert_array_equal, assert_array_almost_equal - -from mock import Mock, patch -from .mocks import MockRNG -import pyNN.mock as sim -#import pyNN.neuron as sim -#import pyNN.nest as sim - -from pyNN import random, errors, space -from pyNN.parameters import Sequence - - -def _sort_by_column(A, col): - A = numpy.array(A) - array_index = numpy.argsort(A[:, col], kind='mergesort') - return A[array_index] - - -class ProjectionTest(unittest.TestCase): - - def setUp(self): - sim.setup() - self.p1 = sim.Population(7, sim.IF_cond_exp()) - self.p2 = sim.Population(4, sim.IF_cond_exp()) - self.p3 = sim.Population(5, sim.IF_curr_alpha()) - self.syn1 = sim.StaticSynapse(weight=0.123, delay=0.5) - self.random_connect = sim.FixedNumberPostConnector(n=2) - self.syn2 = sim.StaticSynapse(weight=0.456, delay=0.4) - self.all2all = sim.AllToAllConnector() - self.syn3 = sim.TsodyksMarkramSynapse(weight=0.789, delay=0.6, U=100.0, tau_rec=500) - - def test_create_simple(self): - prj = sim.Projection(self.p1, self.p2, connector=self.all2all, synapse_type=self.syn2) - - def test_create_with_presynaptic_assembly(self): - prj = sim.Projection(self.p1 + self.p2, self.p2, connector=self.all2all, synapse_type=self.syn2) - - def test_create_with_homogeneous_postsynaptic_assembly(self): - prj = sim.Projection(self.p1, self.p1 + self.p2, connector=self.all2all, synapse_type=self.syn2) - - def test_create_with_inhomogeneous_postsynaptic_assembly(self): - self.assertRaises(errors.ConnectionError, sim.Projection, - self.p1, self.p1 + self.p3, connector=self.all2all, synapse_type=self.syn2) - - def test_create_with_fast_synapse_dynamics(self): - depressing = sim.TsodyksMarkramSynapse(U=0.5, tau_rec=800.0, tau_facil=0.0) - prj = sim.Projection(self.p1, self.p2, connector=self.all2all, - synapse_type=depressing) - - def test_create_with_invalid_type(self): - self.assertRaises(errors.ConnectionError, sim.Projection, - self.p1, "foo", connector=self.all2all, - synapse_type=self.syn2) - - def test_size_with_gather(self): - prj = sim.Projection(self.p1, self.p2, connector=self.all2all, synapse_type=self.syn2) - self.assertEqual(prj.size(gather=True), self.p1.size * self.p2.size) - -# Need to extend the mock backend before setting synaptic parameters can be properly tested - - #def test_set_weights(self): - # prj = sim.Projection(self.p1, self.p2, connector=self.all2all, synapse_type=self.syn2) - # prj.set(weight=0.789) - # weights = prj.get("weight", format="array", gather=False) # use gather False because we are faking the MPI - # target = 0.789*numpy.ones((self.p1.size, self.p2.size)) - # assert_array_equal(weights, target) - - #def test_randomize_weights(self): - # orig_len = sim.Projection.__len__ - # sim.Projection.__len__ = Mock(return_value=42) - # p1 = sim.Population(7, sim.IF_cond_exp) - # p2 = sim.Population(7, sim.IF_cond_exp) - # prj = sim.Projection(p1, p2, connector=Mock()) - # prj.set = Mock() - # rd = Mock() - # rd.next = Mock(return_value=777) - # prj.randomizeWeights(rd) - # rd.next.assert_called_with(len(prj)) - # prj.set.assert_called_with('weight', 777) - # sim.Projection.__len__ = orig_len - # - #def test_set_delays(self): - # p1 = sim.Population(7, sim.IF_cond_exp) - # p2 = sim.Population(7, sim.IF_cond_exp) - # prj = sim.Projection(p1, p2, connector=Mock()) - # prj.set = Mock() - # prj.setDelays(0.5) - # prj.set.assert_called_with('delay', 0.5) - # - #def test_randomize_delays(self): - # orig_len = sim.Projection.__len__ - # sim.Projection.__len__ = Mock(return_value=42) - # p1 = sim.Population(7, sim.IF_cond_exp) - # p2 = sim.Population(7, sim.IF_cond_exp) - # prj = sim.Projection(p1, p2, connector=Mock()) - # prj.set = Mock() - # rd = Mock() - # rd.next = Mock(return_value=777) - # prj.randomizeDelays(rd) - # rd.next.assert_called_with(len(prj)) - # prj.set.assert_called_with('delay', 777) - # sim.Projection.__len__ = orig_len - # - #def test_set_synapse_dynamics_param(self): - # p1 = sim.Population(7, sim.IF_cond_exp) - # p2 = sim.Population(7, sim.IF_cond_exp) - # prj = sim.Projection(p1, p2, connector=Mock()) - # prj.set = Mock() - # prj.setComposedSynapseType('U', 0.5) - # prj.set.assert_called_with('U', 0.5) - # - def test_get_weights_as_list(self): - prj = sim.Projection(self.p1, self.p2, connector=self.all2all, synapse_type=self.syn2) - weights = prj.get("weight", format="list") - weights = _sort_by_column(weights, 1)[:5] - target = numpy.array( - [(0, 0, 0.456), - (1, 0, 0.456), - (2, 0, 0.456), - (3, 0, 0.456), - (4, 0, 0.456),]) - assert_array_equal(weights, target) - - def test_get_weights_as_list_no_address(self): - prj = sim.Projection(self.p1, self.p2, connector=self.all2all, synapse_type=self.syn2) - weights = prj.get("weight", format="list", with_address=False)[:5] - target = 0.456 * numpy.ones((5,)) - assert_array_equal(weights, target) - - def test_get_weights_as_array(self): - prj = sim.Projection(self.p1, self.p2, connector=self.all2all, synapse_type=self.syn2) - weights = prj.get("weight", format="array", gather=False) # use gather False because we are faking the MPI - target = 0.456 * numpy.ones((self.p1.size, self.p2.size)) - assert_array_equal(weights, target) - - def test_get_weights_as_array_with_multapses(self): - C = sim.FixedNumberPreConnector(n=7, rng=MockRNG(delta=1)) - prj = sim.Projection(self.p2, self.p3, C, synapse_type=self.syn1) - # because we use a fake RNG, it is always the last three presynaptic cells which receive the double connection - target = numpy.array([ - [0.123, 0.123, 0.123, 0.123, 0.123], - [0.246, 0.246, 0.246, 0.246, 0.246], - [0.246, 0.246, 0.246, 0.246, 0.246], - [0.246, 0.246, 0.246, 0.246, 0.246], - ]) - weights = prj.get("weight", format="array", gather=False) # use gather False because we are faking the MPI - assert_array_equal(weights, target) - - def test_get_plasticity_attribute_as_list(self): - U_distr = random.RandomDistribution('uniform', low=0.4, high=0.6, rng=MockRNG(start=0.5, delta=0.001)) - depressing = sim.TsodyksMarkramSynapse(U=U_distr, tau_rec=lambda d: 800.0 + d, tau_facil=0.0) - prj = sim.Projection(self.p1, self.p2, connector=self.all2all, - synapse_type=depressing) - U = prj.get("U", format="list") - U = _sort_by_column(U, 1)[:5] - U_target = numpy.array( - [(0, 0, 0.5), - (1, 0, 0.501), - (2, 0, 0.502), - (3, 0, 0.503), - (4, 0, 0.504),]) - assert_array_equal(U, U_target) - tau_rec = prj.get("tau_rec", format="list") - tau_rec = _sort_by_column(tau_rec, 1)[:5] - tau_rec_target = numpy.array( - [(0, 0, 800), - (1, 0, 801), - (2, 0, 802), - (3, 0, 803), - (4, 0, 804),]) - assert_array_equal(tau_rec, tau_rec_target) - - #def test_get_delays(self): - # p1 = sim.Population(7, sim.IF_cond_exp) - # p2 = sim.Population(7, sim.IF_cond_exp) - # prj = sim.Projection(p1, p2, connector=Mock()) - # prj.get = Mock() - # prj.getDelays(format='list', gather=False) - # prj.get.assert_called_with('delay', 'list') - - def test_save_connections_with_gather(self): - filename = "test.connections" - if os.path.exists(filename): - os.remove(filename) - prj = sim.Projection(self.p1, self.p2, connector=self.all2all, synapse_type=self.syn3) - prj.save('connections', filename, gather=True) - assert os.path.exists(filename) - os.remove(filename) - - #def test_print_weights_as_list(self): - # filename = "test.weights" - # if os.path.exists(filename): - # os.remove(filename) - # p1 = sim.Population(7, sim.IF_cond_exp) - # p2 = sim.Population(7, sim.IF_cond_exp) - # prj = sim.Projection(p1, p2, connector=Mock()) - # prj.get = Mock(return_value=range(5)) - # prj.printWeights(filename, format='list', gather=False) - # prj.get.assert_called_with('weight', format='list', gather=False) - # assert os.path.exists(filename) - # os.remove(filename) - # - #def test_print_weights_as_array(self): - # filename = "test.weights" - # if os.path.exists(filename): - # os.remove(filename) - # p1 = sim.Population(7, sim.IF_cond_exp) - # p2 = sim.Population(7, sim.IF_cond_exp) - # prj = sim.Projection(p1, p2, connector=Mock()) - # prj.get = Mock(return_value=numpy.arange(5.0)) - # prj.printWeights(filename, format='array', gather=False) - # prj.get.assert_called_with('weight', format='array', gather=False) - # assert os.path.exists(filename) - # os.remove(filename) - - def test_describe(self): - prj = sim.Projection(self.p1, self.p2, connector=self.all2all, - synapse_type=self.syn2) - self.assertIsInstance(prj.describe(engine='string'), basestring) - self.assertIsInstance(prj.describe(template=None), dict) - - def test_weightHistogram(self): - prj = sim.Projection(self.p1, self.p2, connector=self.all2all, - synapse_type=self.syn2) - n, bins = prj.weightHistogram(min=0.0, max=1.0) - assert_array_equal(bins, numpy.linspace(0, 1.0, num=11)) - assert_array_equal(n, numpy.array([0, 0, 0, 0, prj.size(), 0, 0, 0, 0, 0])) diff --git a/test/hardware/unittests/test_simulation_control.py b/test/hardware/unittests/test_simulation_control.py deleted file mode 100644 index 98e8e7e8f..000000000 --- a/test/hardware/unittests/test_simulation_control.py +++ /dev/null @@ -1,71 +0,0 @@ -""" -Tests of the common implementation of the simulation control functions, using -the pyNN.mock backend. - -:copyright: Copyright 2006-2016 by the PyNN team, see AUTHORS. -:license: CeCILL, see LICENSE for details. -""" - -try: - import unittest2 as unittest -except ImportError: - import unittest -import pyNN.hardware.brainscales as sim - -try: - from mpi4py import MPI -except ImportError: - MPI = None - -if MPI: - mpi_comm = MPI.COMM_WORLD - -extra = {'loglevel': 0, 'useSystemSim': True, 'hardware': sim.hardwareSetup['one-hicann']} - - -class TestSimulationControl(unittest.TestCase): - - def test_setup(self): - self.assertRaises(Exception, sim.setup, min_delay=1.0, max_delay=0.9, **extra) - self.assertRaises(Exception, sim.setup, mindelay=1.0, **extra) # } common - self.assertRaises(Exception, sim.setup, maxdelay=10.0, **extra) # } misspellings - self.assertRaises(Exception, sim.setup, dt=0.1, **extra) # } - self.assertRaises(Exception, sim.setup, timestep=0.1, min_delay=0.09, **extra) - - def test_end(self): - sim.setup(**extra) - sim.end() # need a better test - - def test_run(self): - sim.setup(**extra) - self.assertEqual(sim.run(100.0), 100.0) - - def test_reset(self): - sim.setup(**extra) - sim.run(100.0) - sim.reset() - self.assertEqual(sim.get_current_time(), 0.0) - - def test_time_step(self): - sim.setup(0.123, min_delay=0.246, **extra) - self.assertEqual(sim.get_time_step(), 0.123) - - def test_min_delay(self): - sim.setup(0.123, min_delay=0.246, **extra) - self.assertEqual(sim.get_min_delay(), 0.246) - - def test_max_delay(self): - sim.setup(max_delay=9.87, **extra) - self.assertEqual(sim.get_max_delay(), 9.87) - - @unittest.skipUnless(MPI, "test requires mpi4py") - def test_num_processes(self): - self.assertEqual(sim.num_processes(), mpi_comm.size) - - @unittest.skipUnless(MPI, "test requires mpi4py") - def test_rank(self): - self.assertEqual(sim.rank(), mpi_comm.rank) - - -if __name__ == '__main__': - unittest.main() diff --git a/test/system/scenarios/__init__.py b/test/system/scenarios/__init__.py index cd972deef..2e59a2461 100644 --- a/test/system/scenarios/__init__.py +++ b/test/system/scenarios/__init__.py @@ -1,8 +1,6 @@ # encoding: utf-8 from testconfig import config -#import pdb -#pdb.set_trace() if 'testFile' in config: file_name = config['testFile'] diff --git a/test/system/scenarios/scenario3.py b/test/system/scenarios/scenario3.py index 9c6abbe37..cb6146ecd 100644 --- a/test/system/scenarios/scenario3.py +++ b/test/system/scenarios/scenario3.py @@ -7,13 +7,17 @@ from .registry import register -@register(exclude=["moose", "nemo", "brian"]) +@register(exclude=["moose", "nemo", "brian", "brian2"]) def scenario3(sim): """ Simple feed-forward network network with additive STDP. The second half of the presynaptic neurons fires faster than the second half, so their connections should be potentiated more. """ + try: + import scipy.stats + except ImportError: + raise SkipTest init_logging(logfile=None, debug=True) second = 1000.0 @@ -81,23 +85,15 @@ def scenario3(sim): expected_rate = (r1 + r2) / 2 errmsg = "actual rate: %g expected rate: %g" % (actual_rate, expected_rate) assert abs(actual_rate - expected_rate) < 1, errmsg - #assert abs(pre[:50].mean_spike_count()/duration - r1) < 1 - #assert abs(pre[50:].mean_spike_count()/duration- r2) < 1 final_weights = connections.get('weight', format='array', gather=False) assert initial_weights[0, 0] != final_weights[0, 0] - try: - import scipy.stats - except ImportError: - raise SkipTest - t, p = scipy.stats.ttest_ind(initial_weights[:50, :].flat, initial_weights[50:, :].flat) - assert p > 0.05, p t, p = scipy.stats.ttest_ind(final_weights[:50, :].flat, final_weights[50:, :].flat) assert p < 0.01, p assert final_weights[:50, :].mean() < final_weights[50:, :].mean() sim.end() return initial_weights, final_weights, pre, post, connections - + if __name__ == '__main__': from pyNN.utility import get_simulator diff --git a/test/system/scenarios/scenario4.py b/test/system/scenarios/scenario4.py index e8c88ce6e..5f8137e18 100644 --- a/test/system/scenarios/scenario4.py +++ b/test/system/scenarios/scenario4.py @@ -10,7 +10,7 @@ logger = logging.getLogger("TEST") -@register(exclude=["nemo"]) +@register(exclude=["nemo", "brian2"]) # to fix for Brian 2 def scenario4(sim): """ Network with spatial structure diff --git a/test/system/scenarios/test_cell_types.py b/test/system/scenarios/test_cell_types.py index 062ce553d..a915fa7b8 100644 --- a/test/system/scenarios/test_cell_types.py +++ b/test/system/scenarios/test_cell_types.py @@ -7,8 +7,10 @@ have_scipy = True except ImportError: have_scipy = False +from numpy.testing import assert_array_equal import quantities as pq from nose.tools import assert_greater, assert_less, assert_raises +from pyNN.parameters import Sequence from pyNN.errors import InvalidParameterValueError from .registry import register @@ -23,15 +25,15 @@ def test_EIF_cond_alpha_isfa_ista(sim, plot_figure=False): ifcell.initialize(v=-65, w=0) sim.run(200.0) data = ifcell.get_data().segments[0] - expected_spike_times = numpy.array([10.02, 25.52, 43.18, 63.42, 86.67, 113.13, 142.69, 174.79]) + expected_spike_times = numpy.array([10.015, 25.515, 43.168, 63.41, 86.649, 113.112, 142.663, 174.76]) if plot_figure: import matplotlib.pyplot as plt - vm = data.analogsignals[0] + vm = data.filter(name="v")[0] plt.plot(vm.times, vm) plt.plot(expected_spike_times, -40 * numpy.ones_like(expected_spike_times), "ro") plt.savefig("test_EIF_cond_alpha_isfa_ista_%s.png" % sim.__name__) diff = (data.spiketrains[0].rescale(pq.ms).magnitude - expected_spike_times) / expected_spike_times - assert abs(diff).max() < 0.01, abs(diff).max() + assert abs(diff).max() < 0.01, abs(diff).max() sim.end() return data test_EIF_cond_alpha_isfa_ista.__test__ = False @@ -60,13 +62,17 @@ def test_HH_cond_exp(sim, plot_figure=False): hhcell.record('v') sim.run(20.0) v = hhcell.get_data().segments[0].filter(name='v')[0] + if plot_figure: + import matplotlib.pyplot as plt + plt.plot(v.times, v) + plt.savefig("test_HH_cond_exp_%s.png" % sim.__name__) sim.end() first_spike = v.times[numpy.where(v > 0)[0][0]] assert first_spike / pq.ms - 2.95 < 0.01 test_HH_cond_exp.__test__ = False -@register(exclude=['nemo', 'brian']) +@register(exclude=['nemo', 'brian', 'brian2']) # see issue 370 def issue367(sim, plot_figure=False): # AdEx dynamics for delta_T=0 sim.setup(timestep=0.001, min_delay=0.1, max_delay=4.0) @@ -148,7 +154,7 @@ def test_SpikeSourcePoisson(sim, plot_figure=False): test_SpikeSourcePoisson.__test__ = False -@register(exclude=['brian']) +@register(exclude=['brian','brian2']) def test_SpikeSourceGamma(sim, plot_figure=False): try: from scipy.stats import kstest @@ -204,7 +210,7 @@ def test_SpikeSourceGamma(sim, plot_figure=False): test_SpikeSourceGamma.__test__ = False -@register(exclude=['brian']) +@register(exclude=['brian','brian2']) def test_SpikeSourcePoissonRefractory(sim, plot_figure=False): try: from scipy.stats import kstest @@ -262,7 +268,6 @@ def test_SpikeSourcePoissonRefractory(sim, plot_figure=False): test_SpikeSourcePoissonRefractory.__test__ = False - @register() def issue511(sim): """Giving SpikeSourceArray an array of non-ordered spike times should produce an InvalidParameterValueError error""" @@ -271,6 +276,25 @@ def issue511(sim): assert_raises(InvalidParameterValueError, sim.Population, 2, celltype) +@register() +def test_update_SpikeSourceArray(sim, plot_figure=False): + sim.setup() + sources = sim.Population(2, sim.SpikeSourceArray(spike_times=[])) + sources.record('spikes') + sim.run(10.0) + sources.set(spike_times=[ + Sequence([12, 15, 18]), + Sequence([17, 19]) + ]) + sim.run(10.0) + sources.set(spike_times=[ + Sequence([22, 25]), + Sequence([23, 27, 29]) + ]) + sim.run(10.0) + data = sources.get_data().segments[0].spiketrains + assert_array_equal(data[0].magnitude, numpy.array([12, 15, 18, 22, 25])) +test_update_SpikeSourceArray.__test__ = False # todo: add test of Izhikevich model @@ -286,4 +310,5 @@ def issue511(sim): test_SpikeSourcePoisson(sim, plot_figure=args.plot_figure) test_SpikeSourceGamma(sim, plot_figure=args.plot_figure) test_SpikeSourcePoissonRefractory(sim, plot_figure=args.plot_figure) - issue511(sim) \ No newline at end of file + issue511(sim) + test_update_SpikeSourceArray(sim, plot_figure=args.plot_figure) diff --git a/test/system/scenarios/test_connection_handling.py b/test/system/scenarios/test_connection_handling.py index 1b18d84a3..87e990943 100644 --- a/test/system/scenarios/test_connection_handling.py +++ b/test/system/scenarios/test_connection_handling.py @@ -45,6 +45,103 @@ def connection_access_weight_and_delay(sim): target) connection_access_weight_and_delay.__test__ = False +@register() +def issue672(sim): + """ + Check that creating new Projections does not mess up existing ones. + """ + sim.setup(verbosity="error") + + p1 = sim.Population(5, sim.IF_curr_exp()) + p2 = sim.Population(4, sim.IF_curr_exp()) + p3 = sim.Population(6, sim.IF_curr_exp()) + + prj1 = sim.Projection(p2, p3, sim.AllToAllConnector(), sim.StaticSynapse(weight=lambda d: d)) + # Get weight array of first Projection + wA = prj1.get("weight", format="array") + # Create a new Projection + prj2 = sim.Projection(p2, p3, sim.AllToAllConnector(), sim.StaticSynapse(weight=lambda w: 1)) + # Get weight array of first Projection again + # - incorrect use of caching could lead to this giving different results + wB = prj1.get("weight", format="array") + + assert_array_equal(wA, wB) + + +# @register() +# def update_synaptic_plasticity_parameters(sim): +# sim.setup() +# p1 = sim.Population(3, sim.IF_cond_exp(), label="presynaptic") +# p2 = sim.Population(2, sim.IF_cond_exp(), label="postsynaptic") + +# stdp_model = sim.STDPMechanism( +# timing_dependence=sim.SpikePairRule(tau_plus=20.0, tau_minus=20.0, +# A_plus=0.011, A_minus=0.012), +# weight_dependence=sim.AdditiveWeightDependence(w_min=0, w_max=0.0000001), +# weight=0.00000005, +# delay=0.2) +# connections = sim.Projection(p1, p2, sim.AllToAllConnector(), stdp_model) + +# assert (connections.get("A_minus", format="array") == 0.012).all() +# connections.set(A_minus=0.013) +# assert (connections.get("A_minus", format="array") == 0.013).all() +# connections.set(A_minus=np.array([0.01, 0.011, 0.012, 0.013, 0.014, 0.015])) +# assert_array_equal(connections.get("A_minus", format="array"), +# np.array([[0.01, 0.011], [0.012, 0.013], [0.014, 0.015]])) + + +@register(exclude=["brian", "brian2"]) +def issue652(sim): + """Correctly handle A_plus = 0 in SpikePairRule.""" + sim.setup() + + neural_population1 = sim.Population(10, sim.IF_cond_exp()) + neural_population2 = sim.Population(10, sim.IF_cond_exp()) + + amount_of_neurons_to_connect_to = 5 + synaptic_weight = 0.5 + + synapse_type = sim.STDPMechanism( + weight=synaptic_weight, + timing_dependence=sim.SpikePairRule( + tau_plus=20, + tau_minus=20, + A_plus=0.0, + A_minus=0.0, + ), + weight_dependence=sim.AdditiveWeightDependence(w_min=0, w_max=1) + ) + + connection_to_input = sim.Projection( + neural_population1, neural_population2, + sim.FixedNumberPreConnector(amount_of_neurons_to_connect_to), synapse_type + ) + + a_plus, a_minus = connection_to_input.get(["A_plus", "A_minus"], format="array") + assert_equal(a_plus[~np.isnan(a_plus)][0], 0.0) + assert_equal(a_minus[~np.isnan(a_minus)][0], 0.0) + + synapse_type = sim.STDPMechanism( + weight=synaptic_weight, + timing_dependence=sim.SpikePairRule( + tau_plus=20, + tau_minus=20, + A_plus=0.0, + A_minus=0.5, + ), + weight_dependence=sim.AdditiveWeightDependence(w_min=0, w_max=1) + ) + + connection_to_input = sim.Projection( + neural_population1, neural_population2, + sim.FixedNumberPreConnector(amount_of_neurons_to_connect_to), synapse_type + ) + + a_plus, a_minus = connection_to_input.get(["A_plus", "A_minus"], format="array") + assert_equal(a_plus[~np.isnan(a_plus)][0], 0.0) + assert_equal(a_minus[~np.isnan(a_minus)][0], 0.5) + + if __name__ == '__main__': from pyNN.utility import get_simulator diff --git a/test/system/scenarios/test_connectors.py b/test/system/scenarios/test_connectors.py index 2aa51ae0c..a428c41d5 100644 --- a/test/system/scenarios/test_connectors.py +++ b/test/system/scenarios/test_connectors.py @@ -193,14 +193,67 @@ def issue309(sim): synapse_type = sim.StaticSynapse(weight=0.1, delay="0.2+0.3*d") prj_a2a = sim.Projection(p, p, sim.AllToAllConnector(allow_self_connections=False), synapse_type) prj_fp1 = sim.Projection(p, p, sim.FixedProbabilityConnector(p_connect=1, allow_self_connections=False), synapse_type) - assert_equal(prj_a2a.get('weight', format='list', gather=False), - prj_fp1.get('weight', format='list', gather=False)) - assert_equal(prj_a2a.get('delay', format='list', gather=False), - prj_fp1.get('delay', format='list', gather=False)) + assert_equal(sorted(prj_a2a.get('weight', format='list', gather=False)), + sorted(prj_fp1.get('weight', format='list', gather=False))) + assert_equal(sorted(prj_a2a.get('delay', format='list', gather=False)), + sorted(prj_fp1.get('delay', format='list', gather=False))) assert_equal(prj_fp1.size(), 20) # 20 rather than 25 because self-connections are excluded sim.end() +@register(exclude=['brian', 'brian2']) # need to implement projection.get() for pre/post assemblies in Brian +def issue622(sim): + sim.setup() + pop = sim.Population(10, sim.IF_cond_exp, {}, label="pop") + + view1 = sim.PopulationView(pop, [2, 3, 4]) + view2 = sim.PopulationView(pop, [2, 3, 4]) + + proj1 = sim.Projection(view1, view2, + sim.AllToAllConnector(allow_self_connections=False), + sim.StaticSynapse(weight=0.015, delay=1.0), receptor_type='excitatory') + proj2 = sim.Projection(view1, view1, + sim.AllToAllConnector(allow_self_connections=False), + sim.StaticSynapse(weight=0.015, delay=1.0), receptor_type='excitatory') + + w1 = proj1.get("weight", "list") + w2 = proj2.get("weight", "list") + + assert_equal(set(w1), set(w2)) + assert_equal(set(w1), + set([(0.0, 1.0, 0.015), (0.0, 2.0, 0.015), (1.0, 0.0, 0.015), + (1.0, 2.0, 0.015), (2.0, 0.0, 0.015), (2.0, 1.0, 0.015)])) + + # partially overlapping views + print("Now with partial overlap") + view3 = sim.PopulationView(pop, [3, 4, 5, 6]) + + proj3 = sim.Projection(view1, view3, + sim.AllToAllConnector(allow_self_connections=False), + sim.StaticSynapse(weight=0.015, delay=1.0), receptor_type='excitatory') + + w3 = proj3.get("weight", "list") + assert_equal(set(w3), + set([ + (0.0, 0.0, 0.015), (0.0, 1.0, 0.015), (0.0, 2.0, 0.015), (0.0, 3.0, 0.015), + (1.0, 1.0, 0.015), (1.0, 2.0, 0.015), (1.0, 3.0, 0.015), + (2.0, 0.0, 0.015), (2.0, 2.0, 0.015), (2.0, 3.0, 0.015) + ])) + + view4 = sim.PopulationView(pop, [0, 1]) + assmbl = view3 + view4 + proj4 = sim.Projection(view1, assmbl, + sim.FixedProbabilityConnector(p_connect=0.99999, allow_self_connections=False), + sim.StaticSynapse(weight=0.015, delay=1.0), receptor_type='excitatory') + w4 = proj4.get("weight", "list") + assert_equal(set(w4), + set([ + (0, 0, 0.015), (0, 1, 0.015), (0, 2, 0.015), (0, 3, 0.015), (0, 4, 0.015), (0, 5, 0.015), + (1, 1, 0.015), (1, 2, 0.015), (1, 3, 0.015), (1, 4, 0.015), (1, 5, 0.015), + (2, 0, 0.015), (2, 2, 0.015), (2, 3, 0.015), (2, 4, 0.015), (2, 5, 0.015), + ])) + + if __name__ == '__main__': from pyNN.utility import get_simulator sim, args = get_simulator() diff --git a/test/system/scenarios/test_electrodes.py b/test/system/scenarios/test_electrodes.py index c8e75167c..18ba5c708 100644 --- a/test/system/scenarios/test_electrodes.py +++ b/test/system/scenarios/test_electrodes.py @@ -369,8 +369,8 @@ def issue487(sim): assert_true (numpy.isclose(v_step_2_arr[0:int(step_2.times[0]/dt)], v_rest).all()) -@register(exclude=["brian"]) # todo: fix for Brian -def issue_465_474(sim): +@register() +def issue_465_474_630(sim): """ Checks the current traces recorded for each of the four types of electrodes in pyNN, and verifies that: @@ -380,7 +380,7 @@ def issue_465_474(sim): 4) Change in Vm begins at the immediate next time instant following current injection """ sim_dt = 0.1 - sim.setup(min_delay=1.0, timestep = sim_dt) + sim.setup(min_delay=1.0, timestep=sim_dt) v_rest = -60.0 cells = sim.Population(4, sim.IF_curr_exp(v_thresh=-55.0, tau_refrac=5.0, v_rest=v_rest)) @@ -441,12 +441,18 @@ def issue_465_474(sim): assert_true (i_noise.t_start == 0.0 * pq.ms and numpy.isclose(float(i_noise.times[-1]), simtime)) assert_true (i_step.t_start == 0.0 * pq.ms and numpy.isclose(float(i_step.times[-1]), simtime)) - # test to check current changes at the expected time instant + # test to check current changes at start time instant assert_true (i_ac[(int(start / sim_dt)) - 1, 0] == 0 * pq.nA and i_ac[int(start / sim_dt), 0] != 0 * pq.nA) assert_true (i_dc[int(start / sim_dt) - 1, 0] == 0 * pq.nA and i_dc[int(start / sim_dt), 0] != 0 * pq.nA) assert_true (i_noise[int(start / sim_dt) - 1, 0] == 0 * pq.nA and i_noise[int(start / sim_dt), 0] != 0 * pq.nA) assert_true (i_step[int(start / sim_dt) - 1, 0] == 0 * pq.nA and i_step[int(start / sim_dt), 0] != 0 * pq.nA) + # test to check current changes appropriately at stop time instant - issue #630 + assert_true (i_ac[(int(stop / sim_dt)) - 1, 0] != 0.0 * pq.nA and i_ac[(int(stop / sim_dt)), 0] == 0.0 * pq.nA ) + assert_true (i_dc[(int(stop / sim_dt)) - 1, 0] != 0.0 * pq.nA and i_ac[(int(stop / sim_dt)), 0] == 0.0 * pq.nA ) + assert_true (i_noise[(int(stop / sim_dt)) - 1, 0] != 0.0 * pq.nA and i_ac[(int(stop / sim_dt)), 0] == 0.0 * pq.nA ) + assert_true (i_step[(int(stop / sim_dt)) - 1, 0] != 0.2 * pq.nA and i_ac[(int(stop / sim_dt)), 0] == 0.0 * pq.nA ) + # test to check vm changes at the time step following current initiation assert_true (numpy.isclose(float(v_ac[int(start / sim_dt), 0].item()), v_rest) and v_ac[int(start / sim_dt) + 1] != v_rest * pq.mV) assert_true (numpy.isclose(float(v_dc[int(start / sim_dt), 0].item()), v_rest) and v_dc[int(start / sim_dt) + 1] != v_rest * pq.mV) @@ -537,7 +543,7 @@ def get_len(data): assert_raises(ValueError, sim.StepCurrentSource, times=[0.4, 0.2, 0.8], amplitudes=[0.5, -0.5, 0.5]) # 1.3) Check mapping of time values and removal of duplicates - step = sim.StepCurrentSource(times=[0.41, 0.42, 0.85], + step = sim.StepCurrentSource(times=[0.41, 0.42, 0.86], amplitudes=[0.5, -0.5, 0.5]) assert_equal(get_len(step.times), 2) assert_equal(get_len(step.amplitudes), 2) @@ -574,14 +580,14 @@ def get_len(data): assert_raises(ValueError, sim.StepCurrentSource, times=[0.5, 0.4999, 0.8], amplitudes=[0.5, -0.5, 0.5]) # 2.3) Check mapping of time values and removal of duplicates - step = sim.StepCurrentSource(times=[0.451, 0.452, 0.85], + step = sim.StepCurrentSource(times=[0.451, 0.452, 0.86], amplitudes=[0.5, -0.5, 0.5]) assert_equal(get_len(step.times), 2) assert_equal(get_len(step.amplitudes), 2) if "pyNN.brian" in str(sim): # Brian requires time in seconds (s) assert_true (abs(step.times[0]-0.45*1e-3) < 1e-9) - assert_true (abs(step.times[1]-0.85*1e-3) < 1e-9) + assert_true (abs(step.times[1]-0.86*1e-3) < 1e-9) # Brain requires amplitudes in amperes (A) assert_true (step.amplitudes[0] == -0.5*1e-9) assert_true (step.amplitudes[1] == 0.5*1e-9) @@ -595,10 +601,48 @@ def get_len(data): # But NEST has time stamps reduced by min_delay if "pyNN.nest" in str(sim): assert_true (abs(step.times[0]-0.44) < 1e-9) - assert_true (abs(step.times[1]-0.84) < 1e-9) + assert_true (abs(step.times[1]-0.85) < 1e-9) else: # neuron assert_true (abs(step.times[0]-0.45) < 1e-9) - assert_true (abs(step.times[1]-0.85) < 1e-9) + assert_true (abs(step.times[1]-0.86) < 1e-9) + + +@register() +def issue631(sim): + """ + Test to ensure that recording of multiple electrode currents do not + interfere with one another. + """ + sim_dt = 0.1 + sim.setup(timestep=sim_dt, min_delay=sim_dt) + + cells = sim.Population(1, sim.IF_curr_exp(v_rest = -65.0, v_thresh=-55.0, tau_refrac=5.0))#, i_offset=-1.0*amp)) + dc_source = sim.DCSource(amplitude=0.5, start=25, stop=50) + ac_source = sim.ACSource(start=75, stop=125, amplitude=0.5, offset=0.25, frequency=100.0, phase=0.0) + noisy_source = sim.NoisyCurrentSource(mean=0.5, stdev=0.05, start=150, stop=175, dt=1.0) + step_source = sim.StepCurrentSource(times=[200, 225, 250], amplitudes=[0.4, 0.6, 0.2]) + + cells[0].inject(dc_source) + cells[0].inject(ac_source) + cells[0].inject(noisy_source) + cells[0].inject(step_source) + + dc_source.record() + ac_source.record() + noisy_source.record() + step_source.record() + + sim.run(275.0) + + i_dc = dc_source.get_data() + i_ac = ac_source.get_data() + i_noisy = noisy_source.get_data() + i_step = step_source.get_data() + + assert_true (numpy.all(i_dc.magnitude[:int(25.0 / sim_dt) - 1:] == 0) and numpy.all(i_dc.magnitude[int(50.0 / sim_dt):] == 0)) + assert_true (numpy.all(i_ac.magnitude[:int(75.0 / sim_dt) - 1:] == 0) and numpy.all(i_ac.magnitude[int(125.0 / sim_dt):] == 0)) + assert_true (numpy.all(i_noisy.magnitude[:int(150.0 / sim_dt) - 1:] == 0) and numpy.all(i_noisy.magnitude[int(175.0 / sim_dt):] == 0)) + assert_true (numpy.all(i_step.magnitude[:int(200.0 / sim_dt) - 1:] == 0)) if __name__ == '__main__': @@ -614,6 +658,7 @@ def get_len(data): issue451(sim) issue483(sim) issue487(sim) - issue_465_474(sim) + issue_465_474_630(sim) issue497(sim) issue512(sim) + issue631(sim) diff --git a/test/system/scenarios/test_recording.py b/test/system/scenarios/test_recording.py index 5ae6eb91a..82e85013d 100644 --- a/test/system/scenarios/test_recording.py +++ b/test/system/scenarios/test_recording.py @@ -99,7 +99,7 @@ def test_record_vm_and_gsyn_from_assembly(sim): test_record_vm_and_gsyn_from_assembly.__test__ = False -@register(exclude='brian') # brian does not support off_grid. To fix? +@register(exclude=["brian", "brian2"]) # brian does not support off_grid. To fix? def issue259(sim): """ A test that retrieving data with "clear=True" gives correct spike trains. @@ -166,7 +166,7 @@ def test_mix_procedural_and_oo(sim): test_mix_procedural_and_oo.__test__ = False -@register(exclude=['brian']) # todo: known to fail with Brian, but should work +@register(exclude=['brian', 'brian2']) # todo: known to fail with Brian, but should work def test_record_with_filename(sim): """ Test to ensure that Simulator and Population recording work properly diff --git a/test/system/scenarios/test_simulation_control.py b/test/system/scenarios/test_simulation_control.py index 3a0f839f2..f4cc281b1 100644 --- a/test/system/scenarios/test_simulation_control.py +++ b/test/system/scenarios/test_simulation_control.py @@ -27,6 +27,7 @@ def test_reset(sim): for segment in data.segments[1:]: assert_array_almost_equal(segment.analogsignals[0], data.segments[0].analogsignals[0], 10) + test_reset.__test__ = False diff --git a/test/system/scenarios/test_synapse_types.py b/test/system/scenarios/test_synapse_types.py index 0bdc9a3b7..51fe38cff 100644 --- a/test/system/scenarios/test_synapse_types.py +++ b/test/system/scenarios/test_synapse_types.py @@ -11,7 +11,7 @@ from .registry import register -@register(exclude=['moose', 'nemo', 'brian']) +@register(exclude=['moose', 'nemo', 'brian', 'brian2']) def test_simple_stochastic_synapse(sim, plot_figure=False): # in this test we connect sim.setup(min_delay=0.5) @@ -44,7 +44,10 @@ def test_simple_stochastic_synapse(sim, plot_figure=False): assert_less(crossings[1].size, 0.6*spike_times.size) assert_greater(crossings[1].size, 0.4*spike_times.size) assert_equal(crossings[3].size, spike_times.size) - assert_not_equal(crossings[1], crossings[2]) + try: + assert_not_equal(crossings[1], crossings[2]) + except ValueError: + assert not (crossings[1] == crossings[2]).all() print(crossings[1].size / spike_times.size) return data diff --git a/test/system/test_brian.py b/test/system/test_brian.py index 1fa1ef390..804af7f9c 100644 --- a/test/system/test_brian.py +++ b/test/system/test_brian.py @@ -1,7 +1,7 @@ from nose.plugins.skip import SkipTest from nose.tools import assert_equal import numpy -from numpy.testing import assert_array_equal +from numpy.testing import assert_array_equal, assert_array_almost_equal from .scenarios.registry import registry try: @@ -78,3 +78,23 @@ def test_tsodyks_markram_synapse(): sim.run(100.0) tau_psc = prj._brian_synapses[0][0].tau_syn.data * 1e3 # s --> ms assert_array_equal(tau_psc, numpy.arange(0.2, 0.7, 0.1)) + + +def test_issue_634(): + if not have_brian: + raise SkipTest + sim = pyNN.brian + sim.setup() + cells = sim.Population(1, sim.IF_curr_exp(v_thresh=-55.0, tau_refrac=5.0, v_rest=-60.0)) + dc1_source = sim.DCSource(amplitude=0.5, start=25, stop=50) + dc2_source = sim.DCSource(amplitude=-0.5, start=40, stop=80) + cells[0].inject(dc1_source) + cells[0].inject(dc2_source) + dc1_source.record() + dc2_source.record() + dc1_source._record_old() + sim.run(100.0) + i_dc1 = dc1_source.get_data() + i_dc2 = dc2_source.get_data() + i_dc_total_times, i_dc_total = dc1_source._get_data_old() + assert_array_almost_equal(numpy.squeeze(i_dc1.magnitude+i_dc2.magnitude), i_dc_total, decimal=6) diff --git a/test/system/test_brian2.py b/test/system/test_brian2.py new file mode 100644 index 000000000..e9f5e5aa4 --- /dev/null +++ b/test/system/test_brian2.py @@ -0,0 +1,80 @@ +from nose.plugins.skip import SkipTest +from nose.tools import assert_equal +import numpy +from numpy.testing import assert_array_equal +from .scenarios.registry import registry + +try: + import pyNN.brian2 + have_brian2 = True +except ImportError: + have_brian2 = False + + +def test_scenarios(): + for scenario in registry: + if "brian2" not in scenario.exclude: + scenario.description = "{}(brian2)".format(scenario.__name__) + if have_brian2: + yield scenario, pyNN.brian2 + else: + raise SkipTest + + +def test_ticket235(): + if not have_brian2: + raise SkipTest + pynnn = pyNN.brian2 + pynnn.setup() + p1 = pynnn.Population(9, pynnn.IF_curr_alpha(), structure=pynnn.space.Grid2D()) + p2 = pynnn.Population(9, pynnn.IF_curr_alpha(), structure=pynnn.space.Grid2D()) + p1.record('spikes', to_file=False) + p2.record('spikes', to_file=False) + prj1_2 = pynnn.Projection(p1, p2, pynnn.OneToOneConnector(), pynnn.StaticSynapse(weight=10.0), receptor_type='excitatory') + # we note that the connectivity is as expected: a uniform diagonal + prj1_2.get('weight', format='array') + src = pynnn.DCSource(amplitude=70) + src.inject_into(p1[:]) + pynnn.run(50) + n_spikes_p1 = p1.get_spike_counts() + # We see that both populations have fired uniformly as expected: + n_spikes_p2 = p2.get_spike_counts() + for n in n_spikes_p1.values(): + assert_equal(n, n_spikes_p1[p1[1]]) + for n in n_spikes_p2.values(): + assert_equal(n, n_spikes_p2[p2[1]]) + # With this new setup, only the second p2 unit should fire: + # prj1_2.set(weight=[0, 20, 0, 0, 0, 0, 0, 0, 0]) + new_weights = numpy.where(numpy.eye(9), 0, numpy.nan) + new_weights[1, 1] = 20.0 + prj1_2.set(weight=new_weights) + # This looks good: + prj1_2.get('weight', format='array') + pynnn.run(50) + n_spikes_p1 = p1.get_spike_counts() + for n in n_spikes_p1.values(): + assert_equal(n, n_spikes_p1[p1[1]]) + # p2[1] should be ahead in spikes count, and others should not have + # fired more. It is not what I observe: + n_spikes_p2 = p2.get_spike_counts() + assert n_spikes_p2[p2[1]] > n_spikes_p2[p2[0]] + + +def test_tsodyks_markram_synapse(): + if not have_brian2: + raise SkipTest + sim = pyNN.brian2 + sim.setup() + spike_source = sim.Population(1, sim.SpikeSourceArray(spike_times=numpy.arange(10, 100, 10))) + neurons = sim.Population(5, sim.IF_cond_exp(e_rev_I=-75, tau_syn_I=numpy.arange(0.2, 0.7, 0.1))) + synapse_type = sim.TsodyksMarkramSynapse(U=0.04, tau_rec=100.0, + tau_facil=1000.0, weight=0.01, + delay=0.5) + connector = sim.AllToAllConnector() + prj = sim.Projection(spike_source, neurons, connector, + receptor_type='inhibitory', + synapse_type=synapse_type) + neurons.record('gsyn_inh') + sim.run(100.0) + tau_psc = prj._brian2_synapses[0][0].tau_syn_ * 1e3 # s --> ms + assert_array_equal(tau_psc, numpy.arange(0.2, 0.7, 0.1)) diff --git a/test/system/test_nest.py b/test/system/test_nest.py index 98a197143..3cc51caaf 100644 --- a/test/system/test_nest.py +++ b/test/system/test_nest.py @@ -1,7 +1,8 @@ from nose.plugins.skip import SkipTest from .scenarios.registry import registry -from nose.tools import assert_equal, assert_not_equal +from nose.tools import assert_equal, assert_not_equal, assert_raises from pyNN.utility import init_logging, assert_arrays_equal +from pyNN.random import RandomDistribution import numpy try: @@ -73,9 +74,8 @@ def test_record_native_model(): def test_native_stdp_model(): - #if not have_nest: - if True: - raise SkipTest("Causes core dump with NEST master") + if not have_nest: + raise SkipTest nest = pyNN.nest from pyNN.utility import init_logging @@ -186,7 +186,7 @@ def test_tsodyks_markram_synapse(): synapse_type=synapse_type) neurons.record('gsyn_inh') sim.run(100.0) - connections = nest.GetConnections(prj._sources.tolist(), synapse_model=prj.nest_synapse_model) + connections = nest.GetConnections(numpy.unique(prj._sources).tolist(), synapse_model=prj.nest_synapse_model) tau_psc = numpy.array(nest.GetStatus(connections, 'tau_psc')) assert_arrays_equal(tau_psc, numpy.arange(0.2, 0.7, 0.1)) @@ -271,6 +271,62 @@ def test_issue529(): prj_plastic = sim.Projection(p1, p2, ee_connector, receptor_type='excitatory', synapse_type=stdp) +def test_issue662a(): + """Setting tau_minus to a random distribution fails...""" + if not have_nest: + raise SkipTest + import nest + sim = pyNN.nest + + sim.setup() + p1 = sim.Population(5, sim.SpikeSourcePoisson(rate=100.0)) + p2 = sim.Population(10, sim.IF_cond_exp()) + + syn = sim.STDPMechanism( + timing_dependence=sim.SpikePairRule( + A_plus = 0.2, + A_minus = 0.1, + tau_minus = RandomDistribution('uniform', (20,40)), + tau_plus = RandomDistribution('uniform', (10,20)) + ), + weight_dependence=sim.AdditiveWeightDependence(w_min=0.0, w_max=0.01) + ) + + assert_raises(ValueError, sim.Projection, p1, p2, sim.AllToAllConnector(), + synapse_type=syn, receptor_type='excitatory') + + +def test_issue662b(): + """Setting tau_minus to a random distribution fails...""" + if not have_nest: + raise SkipTest + import nest + sim = pyNN.nest + + sim.setup(min_delay=0.5) + p1 = sim.Population(5, sim.SpikeSourcePoisson(rate=100.0)) + p2 = sim.Population(10, sim.IF_cond_exp()) + + syn = sim.STDPMechanism( + timing_dependence=sim.SpikePairRule( + A_plus = 0.2, + A_minus = 0.1, + tau_minus = 30, + tau_plus = RandomDistribution('uniform', (10,20)) + ), + weight_dependence=sim.AdditiveWeightDependence(w_min=0.0, w_max=0.01), + weight=0.005 + ) + + connections = sim.Projection(p1, p2, sim.AllToAllConnector(), + synapse_type=syn, + receptor_type='inhibitory') + + connections.set(tau_minus=25) #RandomDistribution('uniform', (20,40))) + # todo: check this worked + assert_raises(ValueError, connections.set, tau_minus=RandomDistribution('uniform', (20,40))) + + if __name__ == '__main__': #data = test_random_seeds() test_native_electrode_types() \ No newline at end of file diff --git a/test/system/test_neuron.py b/test/system/test_neuron.py index 7e4c47f40..b203ca97f 100644 --- a/test/system/test_neuron.py +++ b/test/system/test_neuron.py @@ -183,14 +183,16 @@ def test_record_native_model(): data = p1.get_data().segments[0].analogsignals assert_equal(len(data), 2) # one array per variable - assert_equal(data[0].name, 'apical(1.0).v') - assert_equal(data[1].name, 'soma(0.5).ina') - assert_equal(data[0].sampling_rate, 10.0 * pq.kHz) - assert_equal(data[0].units, pq.mV) - assert_equal(data[1].units, pq.mA / pq.cm**2) - assert_equal(data[0].t_start, 0.0 * pq.ms) - assert_equal(data[0].t_stop, 250.1 * pq.ms) # would prefer if it were 250.0, but this is a fundamental Neo issue - assert_equal(data[0].shape, (2501, 10)) + names = set(sig.name for sig in data) + assert_equal(names, set(('apical(1.0).v', 'soma(0.5).ina'))) + apical_v = [sig for sig in data if sig.name == 'apical(1.0).v'][0] + soma_i = [sig for sig in data if sig.name == 'soma(0.5).ina'][0] + assert_equal(apical_v.sampling_rate, 10.0 * pq.kHz) + assert_equal(apical_v.units, pq.mV) + assert_equal(soma_i.units, pq.mA / pq.cm**2) + assert_equal(apical_v.t_start, 0.0 * pq.ms) + assert_equal(apical_v.t_stop, 250.1 * pq.ms) # would prefer if it were 250.0, but this is a fundamental Neo issue + assert_equal(apical_v.shape, (2501, 10)) return data @@ -212,3 +214,22 @@ def test_tsodyks_markram_synapse(): sim.run(100.0) tau_psc = numpy.array([c.weight_adjuster.tau_syn for c in prj.connections]) assert_array_equal(tau_psc, numpy.arange(0.2, 0.7, 0.1)) + + +def test_artificial_cells(): + if not have_neuron: + raise SkipTest + sim = pyNN.neuron + sim.setup() + input = sim.Population(1, sim.SpikeSourceArray(spike_times=numpy.arange(10, 100, 10))) + p1 = sim.Population(3, sim.IntFire1(tau=10, refrac=2)) + p2 = sim.Population(3, sim.IntFire2()) + p3 = sim.Population(3, sim.IntFire4()) + projections = [] + for p in (p1, p2, p3): + projections.append( + sim.Projection(input, p, sim.AllToAllConnector(), sim.StaticSynapse(weight=0.1, delay=0.5), + receptor_type="default") + ) + p.record('m') + sim.run(100.0) diff --git a/test/system/test_serialization.py b/test/system/test_serialization.py new file mode 100644 index 000000000..0995bf433 --- /dev/null +++ b/test/system/test_serialization.py @@ -0,0 +1,61 @@ + +from nose.plugins.skip import SkipTest +from numpy.testing import assert_array_almost_equal + +import pyNN.nest as sim +from pyNN.random import RandomDistribution as RD +from pyNN.network import Network +from pyNN.serialization import export_to_sonata, import_from_sonata, asciify + +try: + import h5py + HAVE_H5PY = True +except ImportError: + HAVE_H5PY = False + + +def test(): + if not HAVE_H5PY: + raise SkipTest + + sim.setup() + + p1 = sim.Population(10, + sim.IF_cond_exp( + v_rest=-65, + tau_m=lambda i: 10 + 0.1*i, + cm=RD('normal', (0.5, 0.05))), + label="population_one") + p2 = sim.Population(20, + sim.IF_curr_alpha( + v_rest=-64, + tau_m=lambda i: 11 + 0.1*i), + label="population_two") + + prj = sim.Projection(p1, p2, + sim.FixedProbabilityConnector(p_connect=0.5), + synapse_type=sim.StaticSynapse(weight=RD('uniform', [0.0, 0.1]), + delay=0.5), + receptor_type='excitatory') + + net = Network(p1, p2, prj) + + export_to_sonata(net, "tmp_serialization_test", overwrite=True) + + net2 = import_from_sonata("tmp_serialization_test/circuit_config.json", sim) + + + for orig_population in net.populations: + imp_population = net2.get_component(orig_population.label) + assert orig_population.size == imp_population.size + for name in orig_population.celltype.default_parameters: + assert_array_almost_equal(orig_population.get(name), imp_population.get(name), 12) + + w1 = prj.get('weight', format='array') + prj2 = net2.get_component(asciify(prj.label).decode('utf-8') + "-0") + w2 = prj2.get('weight', format='array') + assert_array_almost_equal(w1, w2, 12) + + +if __name__ == "__main__": + test() \ No newline at end of file diff --git a/test/unittests/backends/__init__.py b/test/unittests/backends/__init__.py deleted file mode 100644 index bca5f6749..000000000 --- a/test/unittests/backends/__init__.py +++ /dev/null @@ -1 +0,0 @@ -# encoding: utf-8 diff --git a/test/unittests/backends/glob_import.py b/test/unittests/backends/glob_import.py deleted file mode 100644 index 5946d23c1..000000000 --- a/test/unittests/backends/glob_import.py +++ /dev/null @@ -1,37 +0,0 @@ -# encoding: utf-8 - -from .. import test_simulation_control -from .. import test_population -from .. import test_populationview -from .. import test_assembly -from .. import test_connectors_parallel -from .. import test_connectors_serial -from .. import test_projection - -exclude_modules = ['test_connectors_parallel'] - -try: - import unittest2 as unittest -except ImportError: - import unittest - -from nose.plugins.skip import SkipTest -from registry import registry -from sys import modules - - -def is_included(sim_name, scenario, module_name): - """ - Checks if the simulator sim_name is included in the test called scenario - """ - included = False - short_module_name = module_name.split('.')[-1] - if short_module_name in exclude_modules: - included = False - elif sim_name not in scenario.exclude: - included = True - return included - - -def skip(): - raise SkipTest diff --git a/test/unittests/backends/registry.py b/test/unittests/backends/registry.py deleted file mode 100644 index 8e04ecadd..000000000 --- a/test/unittests/backends/registry.py +++ /dev/null @@ -1,28 +0,0 @@ -REG_ATTR = '' - -registry = [] - - -def register(exclude=[]): - def inner_register(scenario): - setattr(scenario, REG_ATTR, True) - scenario.exclude = exclude - return scenario - return inner_register - - -def runTest(self): - pass - - -def register_class(): - def inner_register(cls): - cls.registry = [] - if cls not in registry: - setattr(cls, "runTest", eval("runTest")) - registry.append(cls) - for name, func in list(cls.__dict__.items()): - if hasattr(func, REG_ATTR): - cls.registry.append(func) - return cls - return inner_register diff --git a/test/unittests/backends/test_brian.py b/test/unittests/backends/test_brian.py deleted file mode 100644 index ec2316e93..000000000 --- a/test/unittests/backends/test_brian.py +++ /dev/null @@ -1,56 +0,0 @@ -# -------------------------------------------------- -# get common imports from __init__.py -# -------------------------------------------------- - -from .glob_import import * - -# -------------------------------------------------- -# CHANGE the name below for a new simulator backend -# -------------------------------------------------- - -sim_name = "brian" - -# -------------------------------------------------- -# CHANGE below only for a new hardware simulator backend -# -------------------------------------------------- - -try: - import pyNN.brian as sim - have_sim = True -except ImportError: - have_sim = False - - -def setUp(): - pass - - -def tearDown(): - pass - -extra = {} - -# -------------------------------------------------- -# DON'T CHANGE below this line -# -------------------------------------------------- - - -def test_scenarios(sim_name=sim_name, have_sim=have_sim): - for TestClass in registry: - module_name = TestClass.__module__ - test_class = TestClass() - for scenario in test_class.registry: - if is_included(sim_name=sim_name, scenario=scenario, module_name=module_name): - scenario.description = scenario.__name__ - if have_sim: - test_class.setUp(sim, **extra) - yield scenario, test_class, sim - test_class.tearDown(sim) - else: - yield skip - else: - yield skip - -if __name__ == "__main__": - import unittest - unittest.main() diff --git a/test/unittests/backends/test_hardware_brainscales.py b/test/unittests/backends/test_hardware_brainscales.py deleted file mode 100644 index 21d49dae0..000000000 --- a/test/unittests/backends/test_hardware_brainscales.py +++ /dev/null @@ -1,88 +0,0 @@ -# -------------------------------------------------- -# get common imports from __init__.py -# -------------------------------------------------- - -from .glob_import import * -import unittest - -# -------------------------------------------------- -# CHANGE the name below for a new simulator backend -# -------------------------------------------------- - -sim_name = "hardware.brainscales" - -# -------------------------------------------------- -# CHANGE below only for a new hardware simulator backend -# -------------------------------------------------- - -try: - import pyNN.hardware.brainscales as sim - have_sim = True -except ImportError: - have_sim = False - - -def setUp(): - pass - - -def tearDown(): - pass - - -extra = { - 'loglevel': 0, - 'ignoreHWParameterRanges': True, - 'useSystemSim': True, - 'hardware': sim.hardwareSetup['one-hicann'], - 'allowStandardTypeSubstitution': True - } - - -class PopulationViewTest(unittest.TestCase): - - def setUp(self): - sim.setup(**extra) - - def tearDown(self): - sim.end() - - def test_can_record_populationview(self): - pv = sim.Population(17, sim.EIF_cond_exp_isfa_ista())[::2] - assert pv.can_record('v') - assert not pv.can_record('w') - assert not pv.can_record('gsyn_inh') - assert pv.can_record('spikes') - assert not pv.can_record('foo') - - def test_can_record_population(self, sim=sim): - p = sim.Population(17, sim.EIF_cond_exp_isfa_ista()) - assert p.can_record('v') - assert not p.can_record('w') - assert not p.can_record('gsyn_inh') - assert p.can_record('spikes') - assert not p.can_record('foo') - -# -------------------------------------------------- -# DON'T CHANGE below this line -# -------------------------------------------------- - - -def test_scenarios(sim_name=sim_name, have_sim=have_sim): - for TestClass in registry: - module_name = TestClass.__module__ - test_class = TestClass() - for scenario in test_class.registry: - if is_included(sim_name=sim_name, scenario=scenario, module_name=module_name): - scenario.description = scenario.__name__ - if have_sim: - test_class.setUp(sim, **extra) - yield scenario, test_class, sim - test_class.tearDown(sim) - else: - yield skip - else: - yield skip - -if __name__ == "__main__": - unittest.main() diff --git a/test/unittests/backends/test_mock.py b/test/unittests/backends/test_mock.py deleted file mode 100644 index d4ba99027..000000000 --- a/test/unittests/backends/test_mock.py +++ /dev/null @@ -1,55 +0,0 @@ -# -------------------------------------------------- -# get common imports from __init__.py -# -------------------------------------------------- - -from .glob_import import * - -# -------------------------------------------------- -# CHANGE the name below for a new simulator backend -# -------------------------------------------------- - -sim_name = "mock" - -# -------------------------------------------------- -# CHANGE below only for a new hardware simulator backend -# -------------------------------------------------- - -try: - import pyNN.mock as sim - have_sim = True -except ImportError: - have_sim = False - - -def setUp(): - pass - - -def tearDown(): - pass - -extra = {} - -# -------------------------------------------------- -# DON'T CHANGE below this line -# -------------------------------------------------- - - -def test_scenarios(sim_name=sim_name, have_sim=have_sim): - for TestClass in registry: - module_name = TestClass.__module__ - test_class = TestClass() - for scenario in test_class.registry: - if is_included(sim_name=sim_name, scenario=scenario, module_name=module_name): - scenario.description = scenario.__name__ - if have_sim: - test_class.setUp(sim, **extra) - yield scenario, test_class, sim - test_class.tearDown(sim) - else: - yield skip - else: - yield skip - -if __name__ == "__main__": - unittest.main() diff --git a/test/unittests/backends/test_nest.py b/test/unittests/backends/test_nest.py deleted file mode 100644 index bde54f585..000000000 --- a/test/unittests/backends/test_nest.py +++ /dev/null @@ -1,57 +0,0 @@ -# -------------------------------------------------- -# get common imports from __init__.py -# -------------------------------------------------- - -from .glob_import import * - -# -------------------------------------------------- -# CHANGE the name below for a new simulator backend -# -------------------------------------------------- - -sim_name = "nest" - -# -------------------------------------------------- -# CHANGE below only for a new hardware simulator backend -# -------------------------------------------------- - -try: - import pyNN.nest as sim - have_sim = True -except ImportError: - have_sim = False - - -def setUp(): - pass - - -def tearDown(): - sim.setup(verbosity='error') - - -extra = {} - -# -------------------------------------------------- -# DON'T CHANGE below this line -# -------------------------------------------------- - - -def test_scenarios(sim_name=sim_name, have_sim=have_sim): - for TestClass in registry: - module_name = TestClass.__module__ - test_class = TestClass() - for scenario in test_class.registry: - if is_included(sim_name=sim_name, scenario=scenario, module_name=module_name): - scenario.description = scenario.__name__ - if have_sim: - test_class.setUp(sim, **extra) - yield scenario, test_class, sim - test_class.tearDown(sim) - else: - yield skip - else: - yield skip - -if __name__ == "__main__": - import unittest - unittest.main() diff --git a/test/unittests/backends/test_neuron.py b/test/unittests/backends/test_neuron.py deleted file mode 100644 index ea7227b21..000000000 --- a/test/unittests/backends/test_neuron.py +++ /dev/null @@ -1,55 +0,0 @@ -# -------------------------------------------------- -# get common imports from __init__.py -# -------------------------------------------------- - -from .glob_import import * - -# -------------------------------------------------- -# CHANGE the name below for a new simulator backend -# -------------------------------------------------- - -sim_name = "neuron" - -# -------------------------------------------------- -# CHANGE below only for a new hardware simulator backend -# -------------------------------------------------- - -try: - import pyNN.neuron as sim - have_sim = True -except ImportError: - have_sim = False - - -def setUp(): - pass - - -def tearDown(): - pass - -extra = {} - -# -------------------------------------------------- -# DON'T CHANGE below this line -# -------------------------------------------------- - - -def test_scenarios(sim_name=sim_name, have_sim=have_sim): - for TestClass in registry: - module_name = TestClass.__module__ - test_class = TestClass() - for scenario in test_class.registry: - if is_included(sim_name=sim_name, scenario=scenario, module_name=module_name): - scenario.description = scenario.__name__ - if have_sim: - test_class.setUp(sim, **extra) - yield scenario, test_class, sim - test_class.tearDown(sim) - else: - yield skip - else: - yield skip - -if __name__ == "__main__": - unittest.main() diff --git a/test/unittests/backends/test_spiNNaker.py b/test/unittests/backends/test_spiNNaker.py deleted file mode 100644 index 7d1ec62c6..000000000 --- a/test/unittests/backends/test_spiNNaker.py +++ /dev/null @@ -1,56 +0,0 @@ -# -------------------------------------------------- -# get common imports from __init__.py -# -------------------------------------------------- - -from .glob_import import * - -# -------------------------------------------------- -# CHANGE the name below for a new simulator backend -# -------------------------------------------------- - -sim_name = "spiNNaker" - -# -------------------------------------------------- -# CHANGE below only for a new hardware simulator backend -# -------------------------------------------------- - -try: - import pyNN.spiNNaker as sim - have_sim = True -except ImportError: - have_sim = False - - -def setUp(): - pass - - -def tearDown(): - pass - -extra = {} - -# -------------------------------------------------- -# DON'T CHANGE below this line -# -------------------------------------------------- - - -def test_scenarios(sim_name=sim_name, have_sim=have_sim): - for TestClass in registry: - module_name = TestClass.__module__ - test_class = TestClass() - for scenario in test_class.registry: - if is_included(sim_name=sim_name, scenario=scenario, module_name=module_name): - scenario.description = scenario.__name__ - if have_sim: - test_class.setUp(sim, **extra) - yield scenario, test_class, sim - test_class.tearDown(sim) - else: - yield skip - else: - yield skip - -if __name__ == "__main__": - import unittest - unittest.main() diff --git a/test/unittests/mocks.py b/test/unittests/mocks.py index a88138486..616d6548a 100644 --- a/test/unittests/mocks.py +++ b/test/unittests/mocks.py @@ -1,7 +1,7 @@ """ Mock classes for unit tests -:copyright: Copyright 2006-2016 by the PyNN team, see AUTHORS. +:copyright: Copyright 2006-2020 by the PyNN team, see AUTHORS. :license: CeCILL, see LICENSE for details. """ @@ -71,6 +71,6 @@ def _next(self, distribution, n, parameters): x.dtype = int x[0] = 1 return x - + def permutation(self, arr): return arr[::-1] diff --git a/test/unittests/setup.cfg b/test/unittests/setup.cfg deleted file mode 100644 index 75aaf4161..000000000 --- a/test/unittests/setup.cfg +++ /dev/null @@ -1,2 +0,0 @@ -[nosetests] -exclude=backends \ No newline at end of file diff --git a/test/unittests/test_assembly.py b/test/unittests/test_assembly.py index d17af98ec..93e02a9af 100644 --- a/test/unittests/test_assembly.py +++ b/test/unittests/test_assembly.py @@ -2,7 +2,7 @@ Tests of the common implementation of the Assembly class, using the pyNN.mock backend. -:copyright: Copyright 2006-2016 by the PyNN team, see AUTHORS. +:copyright: Copyright 2006-2020 by the PyNN team, see AUTHORS. :license: CeCILL, see LICENSE for details. """ @@ -26,8 +26,6 @@ import pyNN.mock as sim from pyNN.parameters import Sequence -from .backends.registry import register_class, register - def setUp(): pass @@ -35,9 +33,8 @@ def setUp(): def tearDown(): pass - -@register_class() + class AssemblyTest(unittest.TestCase): def setUp(self, sim=sim, **extra): @@ -45,75 +42,64 @@ def setUp(self, sim=sim, **extra): def tearDown(self, sim=sim): sim.end() - - @register() + def test_create_with_zero_populations(self, sim=sim): a = sim.Assembly() self.assertEqual(a.populations, []) self.assertIsInstance(a.label, basestring) - @register() def test_create_with_one_population(self, sim=sim): p = sim.Population(11, sim.IF_cond_exp()) a = sim.Assembly(p) self.assertEqual(a.populations, [p]) self.assertIsInstance(a.label, basestring) - @register() def test_create_with_two_populations(self, sim=sim): p1 = sim.Population(11, sim.IF_cond_exp()) p2 = sim.Population(11, sim.IF_cond_exp()) a = sim.Assembly(p1, p2, label="test") self.assertEqual(a.populations, [p1, p2]) self.assertEqual(a.label, "test") - - @register() + def test_create_with_non_population_should_raise_Exception(self, sim=sim): self.assertRaises(TypeError, sim.Assembly, [1, 2, 3]) - - @register() + def test_size_property(self, sim=sim): p1 = sim.Population(11, sim.IF_cond_exp()) p2 = sim.Population(11, sim.IF_cond_exp()) a = sim.Assembly(p1, p2, label="test") self.assertEqual(a.size, p1.size + p2.size) - - @register() + def test_positions_property(self, sim=sim): p1 = sim.Population(11, sim.IF_cond_exp()) p2 = sim.Population(11, sim.IF_cond_exp()) a = sim.Assembly(p1, p2, label="test") assert_array_equal(a.positions, numpy.concatenate((p1.positions, p2.positions), axis=1)) - - @register() + def test__len__(self, sim=sim): p1 = sim.Population(11, sim.IF_cond_exp()) p2 = sim.Population(11, sim.IF_cond_exp()) a = sim.Assembly(p1, p2, label="test") self.assertEqual(len(a), len(p1) + len(p2)) - - @register() + def test_local_cells(self, sim=sim): p1 = sim.Population(11, sim.IF_cond_exp()) p2 = sim.Population(11, sim.IF_cond_exp()) a = sim.Assembly(p1, p2, label="test") assert_array_equal(a.local_cells, numpy.append(p1.local_cells, p2.local_cells)) - - @register() + def test_all_cells(self, sim=sim): p1 = sim.Population(11, sim.IF_cond_exp()) p2 = sim.Population(11, sim.IF_cond_exp()) a = sim.Assembly(p1, p2, label="test") assert_array_equal(a.all_cells, numpy.append(p1.all_cells, p2.all_cells)) - - @register() + def test_iter(self, sim=sim): p1 = sim.Population(11, sim.IF_cond_exp()) p2 = sim.Population(11, sim.IF_cond_exp()) a = sim.Assembly(p1, p2, label="test") assembly_ids = [id for id in a] - - @register() + def test__add__population(self, sim=sim): p1 = sim.Population(11, sim.IF_cond_exp()) p2 = sim.Population(11, sim.IF_cond_exp()) @@ -122,8 +108,7 @@ def test__add__population(self, sim=sim): a2 = a1 + p2 self.assertEqual(a1.populations, [p1]) self.assertEqual(a2.populations, [p1, p2]) - - @register() + def test__add__assembly(self, sim=sim): p1 = sim.Population(11, sim.IF_cond_exp()) p2 = sim.Population(11, sim.IF_cond_exp()) @@ -132,16 +117,14 @@ def test__add__assembly(self, sim=sim): a2 = sim.Assembly(p2, p3) a3 = a1 + a2 self.assertEqual(a3.populations, [p1, p2, p3]) # or do we want [p1, p2, p3]? - - @register() + def test_add_inplace_population(self, sim=sim): p1 = sim.Population(11, sim.IF_cond_exp()) p2 = sim.Population(11, sim.IF_cond_exp()) a = sim.Assembly(p1) a += p2 self.assertEqual(a.populations, [p1, p2]) - - @register() + def test_add_inplace_assembly(self, sim=sim): p1 = sim.Population(11, sim.IF_cond_exp()) p2 = sim.Population(11, sim.IF_cond_exp()) @@ -150,16 +133,14 @@ def test_add_inplace_assembly(self, sim=sim): a2 = sim.Assembly(p2, p3) a1 += a2 self.assertEqual(a1.populations, [p1, p2, p3]) - - @register() + def test_add_invalid_object(self, sim=sim): p1 = sim.Population(11, sim.IF_cond_exp()) p2 = sim.Population(11, sim.IF_cond_exp()) a = sim.Assembly(p1, p2) self.assertRaises(TypeError, a.__add__, 42) self.assertRaises(TypeError, a.__iadd__, 42) - - @register() + def test_initialize(self, sim=sim): p1 = sim.Population(11, sim.IF_cond_exp()) p2 = sim.Population(11, sim.IF_cond_exp()) @@ -167,16 +148,14 @@ def test_initialize(self, sim=sim): v_init = -54.3 a.initialize(v=v_init) assert_array_equal(p2.initial_values['v'].evaluate(simplify=True), v_init) - - @register() + def test_describe(self, sim=sim): p1 = sim.Population(11, sim.IF_cond_exp()) p2 = sim.Population(11, sim.IF_cond_exp()) a = sim.Assembly(p1, p2) self.assertIsInstance(a.describe(), basestring) self.assertIsInstance(a.describe(template=None), dict) - - @register() + def test_get_population(self, sim=sim): p1 = sim.Population(11, sim.IF_cond_exp()) p1.label = "pop1" @@ -186,45 +165,43 @@ def test_get_population(self, sim=sim): self.assertEqual(a.get_population("pop1"), p1) self.assertEqual(a.get_population("pop2"), p2) self.assertRaises(KeyError, a.get_population, "foo") - - @register() + def test_all_cells(self, sim=sim): p1 = sim.Population(11, sim.IF_cond_exp()) p2 = sim.Population(11, sim.IF_cond_exp()) p3 = sim.Population(11, sim.IF_cond_exp()) a = sim.Assembly(p1, p2, p3) self.assertEqual(a.all_cells.size, - p1.all_cells.size + p2.all_cells.size + p3.all_cells.size) + p1.all_cells.size + p2.all_cells.size + p3.all_cells.size) self.assertEqual(a.all_cells[0], p1.all_cells[0]) self.assertEqual(a.all_cells[-1], p3.all_cells[-1]) assert_array_equal(a.all_cells, numpy.append(p1.all_cells, (p2.all_cells, p3.all_cells))) - - @register() + def test_local_cells(self, sim=sim): p1 = sim.Population(11, sim.IF_cond_exp()) p2 = sim.Population(11, sim.IF_cond_exp()) p3 = sim.Population(11, sim.IF_cond_exp()) a = sim.Assembly(p1, p2, p3) self.assertEqual(a.local_cells.size, - p1.local_cells.size + p2.local_cells.size + p3.local_cells.size) + p1.local_cells.size + p2.local_cells.size + p3.local_cells.size) self.assertEqual(a.local_cells[0], p1.local_cells[0]) self.assertEqual(a.local_cells[-1], p3.local_cells[-1]) - assert_array_equal(a.local_cells, numpy.append(p1.local_cells, (p2.local_cells, p3.local_cells))) - - @register() + assert_array_equal(a.local_cells, numpy.append( + p1.local_cells, (p2.local_cells, p3.local_cells))) + def test_mask_local(self, sim=sim): p1 = sim.Population(11, sim.IF_cond_exp()) p2 = sim.Population(11, sim.IF_cond_exp()) p3 = sim.Population(11, sim.IF_cond_exp()) a = sim.Assembly(p1, p2, p3) self.assertEqual(a._mask_local.size, - p1._mask_local.size + p2._mask_local.size + p3._mask_local.size) + p1._mask_local.size + p2._mask_local.size + p3._mask_local.size) self.assertEqual(a._mask_local[0], p1._mask_local[0]) self.assertEqual(a._mask_local[-1], p3._mask_local[-1]) - assert_array_equal(a._mask_local, numpy.append(p1._mask_local, (p2._mask_local, p3._mask_local))) + assert_array_equal(a._mask_local, numpy.append( + p1._mask_local, (p2._mask_local, p3._mask_local))) assert_array_equal(a.local_cells, a.all_cells[a._mask_local]) - - @register() + def test_save_positions(self, sim=sim): import os p1 = sim.Population(2, sim.IF_cond_exp()) @@ -235,13 +212,12 @@ def test_save_positions(self, sim=sim): output_file = Mock() a.save_positions(output_file) assert_array_equal(output_file.write.call_args[0][0], - numpy.array([[0, 0, 1, 2], - [1, 3, 4, 5], - [2, 6, 7, 8], - [3, 9, 10, 11]])) + numpy.array([[0, 0, 1, 2], + [1, 3, 4, 5], + [2, 6, 7, 8], + [3, 9, 10, 11]])) self.assertEqual(output_file.write.call_args[0][1], {'assembly': a.label}) - @register() def test_repr(self, sim=sim): p1 = sim.Population(11, sim.IF_cond_exp()) p2 = sim.Population(11, sim.IF_cond_exp()) @@ -249,7 +225,6 @@ def test_repr(self, sim=sim): a = sim.Assembly(p1, p2, p3) self.assertIsInstance(repr(a), str) - @register() def test_ids_should_not_be_counted_twice(self, sim=sim): p = sim.Population(11, sim.IF_cond_exp()) pv1 = p[0:5] @@ -261,7 +236,6 @@ def test_ids_should_not_be_counted_twice(self, sim=sim): #a3 = sim.Assembly(pv1, pv2) #self.assertEqual(a3.size, 7) - @register() def test_all_iterator(self, sim=sim): p1 = sim.Population(11, sim.IF_cond_exp()) p2 = sim.Population(6, sim.IF_cond_alpha()) @@ -269,37 +243,33 @@ def test_all_iterator(self, sim=sim): a = sim.Assembly(p1, p2, p3) assert hasattr(a.all(), "next") or hasattr(a.all(), "__next__") # 2nd form is for Py3 ids = list(a.all()) - self.assertEqual(ids, p1.all_cells.tolist() + p2.all_cells.tolist() + p3.all_cells.tolist()) + self.assertEqual(ids, p1.all_cells.tolist() + + p2.all_cells.tolist() + p3.all_cells.tolist()) - @register(exclude=['hardware.brainscales']) def test__homogeneous_synapses(self, sim=sim): p1 = sim.Population(11, sim.IF_cond_exp()) p2 = sim.Population(6, sim.IF_cond_alpha()) a1 = sim.Assembly(p1, p2) self.assertTrue(a1._homogeneous_synapses) - - @register(exclude=['hardware.brainscales']) + def test__non_homogeneous_synapses(self, sim=sim): p1 = sim.Population(11, sim.IF_cond_exp()) p3 = sim.Population(3, sim.IF_curr_exp()) a2 = sim.Assembly(p1, p3) self.assertFalse(a2._homogeneous_synapses) - @register(exclude=['hardware.brainscales']) def test_conductance_based(self, sim=sim): p1 = sim.Population(11, sim.IF_cond_exp()) p2 = sim.Population(6, sim.IF_cond_alpha()) a1 = sim.Assembly(p1, p2) self.assertTrue(a1.conductance_based) - - @register(exclude=['hardware.brainscales']) + def test_not_conductance_based(self, sim=sim): p1 = sim.Population(11, sim.IF_cond_exp()) p3 = sim.Population(3, sim.IF_curr_exp()) a2 = sim.Assembly(p1, p3) self.assertFalse(a2.conductance_based) - @register() def test_first_and_last_id(self, sim=sim): p1 = sim.Population(11, sim.IF_cond_exp()) p2 = sim.Population(6, sim.IF_cond_alpha()) @@ -308,7 +278,6 @@ def test_first_and_last_id(self, sim=sim): self.assertEqual(a.first_id, p1[0]) self.assertEqual(a.last_id, p3[-1]) - @register() def test_id_to_index(self, sim=sim): p1 = sim.Population(11, sim.IF_cond_exp()) p2 = sim.Population(6, sim.IF_cond_alpha()) @@ -318,8 +287,7 @@ def test_id_to_index(self, sim=sim): self.assertEqual(a.id_to_index(p1[0]), 3) self.assertEqual(a.id_to_index(p2[0]), 14) assert_array_equal(a.id_to_index([p1[0], p2[0], p3[0]]), [3, 14, 0]) - - @register() + def test_id_to_index_with_nonexistent_id(self, sim=sim): p1 = sim.Population(11, sim.IF_cond_exp()) p2 = sim.Population(6, sim.IF_cond_alpha()) @@ -327,7 +295,6 @@ def test_id_to_index_with_nonexistent_id(self, sim=sim): a = sim.Assembly(p3, p1, p2) self.assertRaises(IndexError, a.id_to_index, p3.last_id + 1) - @register() def test_getitem_int(self, sim=sim): p1 = sim.Population(11, sim.IF_cond_exp()) p2 = sim.Population(6, sim.IF_cond_alpha()) @@ -337,7 +304,6 @@ def test_getitem_int(self, sim=sim): self.assertEqual(a[3], p1[0]) self.assertEqual(a[14], p2[0]) - @register() def test_getitem_slice(self, sim=sim): p1 = sim.Population(11, sim.IF_cond_exp()) p2 = sim.Population(6, sim.IF_cond_alpha()) @@ -352,7 +318,6 @@ def test_getitem_slice(self, sim=sim): assert_array_equal(a2.populations[0].all_cells, p3[2:].all_cells) assert_array_equal(a2.populations[1].all_cells, p1[:5].all_cells) - @register() def test_getitem_array(self, sim=sim): p1 = sim.Population(11, sim.IF_cond_exp()) p2 = sim.Population(6, sim.IF_cond_alpha()) @@ -368,7 +333,6 @@ def test_getitem_array(self, sim=sim): assert_array_equal(a2.populations[1].all_cells, p1[7:9].all_cells) assert_array_equal(a2.populations[2].all_cells, p2[3, 5].all_cells) - @register() def test_sample(self, sim=sim): p1 = sim.Population(11, sim.IF_cond_exp()) p2 = sim.Population(6, sim.IF_cond_alpha()) @@ -380,7 +344,6 @@ def test_sample(self, sim=sim): assert_array_equal(a1.populations[0].all_cells, p1[11:6:-1]) assert_array_equal(a1.populations[1].all_cells, p2[6::-1]) - @register(exclude=['hardware.brainscales']) def test_get_data_with_gather(self, sim=sim): t1 = 12.3 t2 = 13.4 @@ -411,7 +374,7 @@ def test_get_data_with_gather(self, sim=sim): self.assertEqual(v.units, pq.mV) self.assertEqual(v.sampling_period, 0.1 * pq.ms) self.assertEqual(len(seg0.spiketrains), 0) - + seg1 = data.segments[1] self.assertEqual(len(seg1.analogsignals), 2) w = seg1.filter(name='w')[0] @@ -420,10 +383,9 @@ def test_get_data_with_gather(self, sim=sim): self.assertEqual(w.shape, (num_points, p3.size)) self.assertEqual(v.t_start, 0.0) self.assertEqual(len(seg1.spiketrains), a.size) - #assert_array_equal(seg1.spiketrains[7], + # assert_array_equal(seg1.spiketrains[7], # numpy.array([a.first_id+7, a.first_id+7+5]) % t3) - @register() def test_printSpikes(self, sim=sim): # TODO: implement assert_deprecated p1 = sim.Population(11, sim.IF_cond_exp()) @@ -435,7 +397,6 @@ def test_printSpikes(self, sim=sim): a.printSpikes("foo.txt") a.write_data.assert_called_with('foo.txt', 'spikes', True) - @register() def test_getSpikes(self, sim=sim): p1 = sim.Population(11, sim.IF_cond_exp()) p2 = sim.Population(11, sim.IF_cond_exp()) @@ -446,7 +407,6 @@ def test_getSpikes(self, sim=sim): a.getSpikes() a.get_data.assert_called_with('spikes', True) - @register() def test_print_v(self, sim=sim): p1 = sim.Population(11, sim.IF_cond_exp()) p2 = sim.Population(11, sim.IF_cond_exp()) @@ -457,7 +417,6 @@ def test_print_v(self, sim=sim): a.print_v("foo.txt") a.write_data.assert_called_with('foo.txt', 'v', True) - @register() def test_get_v(self, sim=sim): p1 = sim.Population(11, sim.IF_cond_exp()) p2 = sim.Population(11, sim.IF_cond_exp()) @@ -468,7 +427,6 @@ def test_get_v(self, sim=sim): a.get_v() a.get_data.assert_called_with('v', True) - @register(exclude=['hardware.brainscales']) def test_print_gsyn(self, sim=sim): p1 = sim.Population(11, sim.IF_cond_exp()) p2 = sim.Population(11, sim.IF_cond_exp()) @@ -479,7 +437,6 @@ def test_print_gsyn(self, sim=sim): a.print_gsyn("foo.txt") a.write_data.assert_called_with('foo.txt', ['gsyn_exc', 'gsyn_inh'], True) - @register(exclude=['hardware.brainscales']) def test_get_gsyn(self, sim=sim): p1 = sim.Population(11, sim.IF_cond_exp()) p2 = sim.Population(11, sim.IF_cond_exp()) @@ -490,17 +447,17 @@ def test_get_gsyn(self, sim=sim): a.get_gsyn() a.get_data.assert_called_with(['gsyn_exc', 'gsyn_inh'], True) - @register() def test_get_multiple_homogeneous_params_with_gather(self, sim=sim): - p1 = sim.Population(4, sim.IF_cond_exp(**{'tau_m': 12.3, 'tau_syn_E': 0.987, 'tau_syn_I': 0.7})) - p2 = sim.Population(4, sim.IF_curr_exp(**{'tau_m': 12.3, 'tau_syn_E': 0.987, 'tau_syn_I': 0.7})) + p1 = sim.Population(4, sim.IF_cond_exp( + **{'tau_m': 12.3, 'tau_syn_E': 0.987, 'tau_syn_I': 0.7})) + p2 = sim.Population(4, sim.IF_curr_exp( + **{'tau_m': 12.3, 'tau_syn_E': 0.987, 'tau_syn_I': 0.7})) a = p1 + p2 tau_syn_E, tau_m = a.get(('tau_syn_E', 'tau_m'), gather=True) self.assertIsInstance(tau_syn_E, float) self.assertEqual(tau_syn_E, 0.987) self.assertAlmostEqual(tau_m, 12.3) - @register() def test_get_single_param_with_gather(self, sim=sim): p1 = sim.Population(4, sim.IF_cond_exp(tau_m=12.3, tau_syn_E=0.987, tau_syn_I=0.7)) p2 = sim.Population(3, sim.IF_cond_exp(tau_m=23.4, tau_syn_E=0.987, tau_syn_I=0.7)) @@ -510,7 +467,6 @@ def test_get_single_param_with_gather(self, sim=sim): tau_m = a.get('tau_m', gather=True) assert_array_equal(tau_m, numpy.array([12.3, 12.3, 12.3, 12.3, 23.4, 23.4, 23.4])) - @register() def test_get_multiple_inhomogeneous_params_with_gather(self, sim=sim): p1 = sim.Population(4, sim.IF_cond_exp(tau_m=12.3, tau_syn_E=[0.987, 0.988, 0.989, 0.990], @@ -522,11 +478,12 @@ def test_get_multiple_inhomogeneous_params_with_gather(self, sim=sim): tau_syn_E, tau_m, tau_syn_I = a.get(('tau_syn_E', 'tau_m', 'tau_syn_I'), gather=True) self.assertIsInstance(tau_m, float) self.assertIsInstance(tau_syn_E, numpy.ndarray) - assert_array_equal(tau_syn_E, numpy.array([0.987, 0.988, 0.989, 0.990, 0.991, 0.992, 0.993])) + assert_array_equal(tau_syn_E, numpy.array( + [0.987, 0.988, 0.989, 0.990, 0.991, 0.992, 0.993])) self.assertAlmostEqual(tau_m, 12.3) - assert_array_almost_equal(tau_syn_I, numpy.array([0.5, 0.6, 0.7, 0.8, 0.9, 1.0, 1.1]), decimal=12) + assert_array_almost_equal(tau_syn_I, numpy.array( + [0.5, 0.6, 0.7, 0.8, 0.9, 1.0, 1.1]), decimal=12) - @register(exclude=['nest', 'neuron', 'brian', 'hardware.brainscales', 'spiNNaker']) def test_get_multiple_params_no_gather(self, sim=sim): sim.simulator.state.num_processes = 2 sim.simulator.state.mpi_rank = 1 @@ -546,7 +503,6 @@ def test_get_multiple_params_no_gather(self, sim=sim): sim.simulator.state.num_processes = 1 sim.simulator.state.mpi_rank = 0 - @register() def test_get_sequence_param(self, sim=sim): p1 = sim.Population(3, sim.SpikeSourceArray(spike_times=[Sequence([1, 2, 3, 4]), Sequence([2, 3, 4, 5]), @@ -558,7 +514,6 @@ def test_get_sequence_param(self, sim=sim): self.assertEqual(spike_times.size, 5) assert_array_equal(spike_times[3], Sequence([4, 5, 6, 7])) - @register() def test_inject(self, sim=sim): p1 = sim.Population(3, sim.IF_curr_alpha()) p2 = sim.Population(5, sim.IF_cond_exp()) @@ -572,16 +527,16 @@ def test_inject(self, sim=sim): self.assertEqual(meth, "inject_into") self.assertEqual(args, (p2,)) - @register(exclude=['nest', 'neuron', 'brian', 'hardware.brainscales', 'spiNNaker']) def test_mean_spike_count(self, sim=sim): p1 = sim.Population(14, sim.EIF_cond_exp_isfa_ista()) p2 = sim.Population(37, sim.IF_cond_alpha()) a = p1 + p2 p1.record('spikes') p2.record('spikes') - #a.record('spikes') + # a.record('spikes') sim.run(100.0) - self.assertEqual(a.mean_spike_count(), 2.0) # mock backend always produces two spikes per population + # mock backend always produces two spikes per population + self.assertEqual(a.mean_spike_count(), 2.0) if __name__ == '__main__': diff --git a/test/unittests/test_brian.py b/test/unittests/test_brian.py index d83f34071..c8c54e818 100644 --- a/test/unittests/test_brian.py +++ b/test/unittests/test_brian.py @@ -46,5 +46,6 @@ def test_partitioning(self): self.assertEqual(prj._localize_index(5), (1, 1)) self.assertEqual(prj._localize_index(7), (1, 3)) + if __name__ == '__main__': unittest.main() diff --git a/test/unittests/test_connectors_parallel.py b/test/unittests/test_connectors_parallel.py index 40f8b0088..5e4bfae96 100644 --- a/test/unittests/test_connectors_parallel.py +++ b/test/unittests/test_connectors_parallel.py @@ -1,7 +1,7 @@ """ Tests of the Connector classes, using the pyNN.mock backend. -:copyright: Copyright 2006-2016 by the PyNN team, see AUTHORS. +:copyright: Copyright 2006-2020 by the PyNN team, see AUTHORS. :license: CeCILL, see LICENSE for details. """ @@ -18,7 +18,6 @@ from .mocks import MockRNG, MockRNG2 import pyNN.mock as sim -from .backends.registry import register_class, register orig_mpi_get_config = random.get_mpi_config @@ -29,9 +28,8 @@ def setUp(): def tearDown(): random.get_mpi_config = orig_mpi_get_config - -@register_class() + class TestOneToOneConnector(unittest.TestCase): def setUp(self, sim=sim, **extra): @@ -39,11 +37,10 @@ def setUp(self, sim=sim, **extra): self.p1 = sim.Population(5, sim.IF_cond_exp()) self.p2 = sim.Population(5, sim.HH_cond_exp()) assert_array_equal(self.p2._mask_local, numpy.array([0, 1, 0, 1, 0], dtype=bool)) - + def tearDown(self, sim=sim): sim.end() - @register() def test_connect_with_scalar_weights_and_delays(self, sim=sim): C = connectors.OneToOneConnector(safe=False) syn = sim.StaticSynapse(weight=5.0, delay=0.5) @@ -52,7 +49,6 @@ def test_connect_with_scalar_weights_and_delays(self, sim=sim): [(1, 1, 5.0, 0.5), (3, 3, 5.0, 0.5)]) - @register() def test_connect_with_random_weights(self, sim=sim): rd = random.RandomDistribution('uniform', (0, 1), rng=MockRNG(delta=1.0)) syn = sim.StaticSynapse(weight=rd, delay=0.5) @@ -63,7 +59,6 @@ def test_connect_with_random_weights(self, sim=sim): (3, 3, 3.0, 0.5)]) -@register_class() class TestAllToAllConnector(unittest.TestCase): def setUp(self, sim=sim, **extra): @@ -73,7 +68,6 @@ def setUp(self, sim=sim, **extra): assert_array_equal(self.p1._mask_local, numpy.array([0, 1, 0, 1], dtype=bool)) assert_array_equal(self.p2._mask_local, numpy.array([0, 1, 0, 1, 0], dtype=bool)) - @register() def test_connect_with_scalar_weights_and_delays(self, sim=sim): C = connectors.AllToAllConnector(safe=False) syn = sim.StaticSynapse(weight=5.0, delay=0.5) @@ -94,13 +88,13 @@ def test_connect_with_scalar_weights_and_delays(self, sim=sim): [nan, 5.0, nan, 5.0, nan], [nan, 5.0, nan, 5.0, nan]])) - @register() def test_connect_with_array_weights(self, sim=sim): C = connectors.AllToAllConnector(safe=False) syn = sim.StaticSynapse(weight=numpy.arange(0.0, 2.0, 0.1).reshape(4, 5), delay=0.5) prj = sim.Projection(self.p1, self.p2, C, syn) assert_array_almost_equal( - numpy.array(prj.get(["weight", "delay"], format='list', gather=False)), # use gather False because we are faking the MPI + # use gather False because we are faking the MPI + numpy.array(prj.get(["weight", "delay"], format='list', gather=False)), numpy.array([(0, 1, 0.1, 0.5), (1, 1, 0.6, 0.5), (2, 1, 1.1, 0.5), @@ -117,9 +111,9 @@ def test_connect_with_array_weights(self, sim=sim): [nan, 1.6, nan, 1.8, nan]]), 9) - @register() def test_connect_with_random_weights_parallel_safe(self, sim=sim): - rd = random.RandomDistribution('uniform', (0, 1), rng=MockRNG(delta=1.0, parallel_safe=True)) + rd = random.RandomDistribution( + 'uniform', (0, 1), rng=MockRNG(delta=1.0, parallel_safe=True)) syn = sim.StaticSynapse(weight=rd, delay=0.5) C = connectors.AllToAllConnector(safe=False) prj = sim.Projection(self.p1, self.p2, C, syn) @@ -141,7 +135,6 @@ def test_connect_with_random_weights_parallel_safe(self, sim=sim): [nan, 7.0, nan, 15.0, nan]]), 9) - @register() def test_connect_with_distance_dependent_weights(self, sim=sim): d_expr = "d+100" syn = sim.StaticSynapse(weight=d_expr, delay=0.5) @@ -157,7 +150,6 @@ def test_connect_with_distance_dependent_weights(self, sim=sim): (2, 3, 101.0, 0.5), (3, 3, 100.0, 0.5)]) - @register() def test_connect_with_distance_dependent_weights_and_delays(self, sim=sim): syn = sim.StaticSynapse(weight="d+100", delay="0.2+2*d") C = connectors.AllToAllConnector(safe=False) @@ -172,24 +164,22 @@ def test_connect_with_distance_dependent_weights_and_delays(self, sim=sim): (2, 3, 101.0, 2.2), (3, 3, 100.0, 0.2)]) - @register() def test_connect_with_delays_None(self, sim=sim): syn = sim.StaticSynapse(weight=0.1, delay=None) C = connectors.AllToAllConnector() assert C.safe assert C.allow_self_connections prj = sim.Projection(self.p1, self.p2, C, syn) - self.assertEqual(prj.get(["weight", "delay"], format='list', gather=False)[0][3], prj._simulator.state.min_delay) + self.assertEqual(prj.get(["weight", "delay"], format='list', gather=False)[ + 0][3], prj._simulator.state.min_delay) - @register() - @unittest.skip('skipping this tests until I figure out how I want to refactor checks') + @unittest.skip('skipping this test until refactoring of delay checks is complete') def test_connect_with_delays_too_small(self, sim=sim): - C = connectors.AllToAllConnector() + C = connectors.AllToAllConnector(safe=True) syn = sim.StaticSynapse(weight=0.1, delay=0.0) self.assertRaises(errors.ConnectionError, sim.Projection, self.p1, self.p2, C, syn) - @register() - @unittest.skip('skipping this tests until I figure out how I want to refactor checks') + @unittest.skip('skipping this tests until refactoring of delay checks is complete') def test_connect_with_list_delays_too_small(self, sim=sim): delays = numpy.ones((self.p1.size, self.p2.size), float) delays[2, 3] = sim.Projection._simulator.state.min_delay - 0.01 @@ -198,7 +188,6 @@ def test_connect_with_list_delays_too_small(self, sim=sim): self.assertRaises(errors.ConnectionError, sim.Projection, self.p1, self.p2, C, syn) -@register_class() class TestFixedProbabilityConnector(unittest.TestCase): def setUp(self, sim=sim): @@ -207,7 +196,6 @@ def setUp(self, sim=sim): self.p2 = sim.Population(5, sim.HH_cond_exp(), structure=space.Line()) assert_array_equal(self.p2._mask_local, numpy.array([0, 1, 0, 1, 0], dtype=bool)) - @register() def test_connect_with_default_args(self, sim=sim): C = connectors.FixedProbabilityConnector(p_connect=0.85, rng=MockRNG(delta=0.1, parallel_safe=True)) @@ -223,7 +211,6 @@ def test_connect_with_default_args(self, sim=sim): (2, 1, 0.0, 0.123), (3, 1, 0.0, 0.123)]) - @register() def test_connect_with_default_args_again(self, sim=sim): C = connectors.FixedProbabilityConnector(p_connect=0.5, rng=MockRNG2(1 - numpy.array([1, 0, 0, 1, @@ -251,7 +238,6 @@ def test_connect_with_default_args_again(self, sim=sim): (0, 3, 0.0, 0.123), (2, 3, 0.0, 0.123)]) - @register() def test_connect_with_probability_1(self, sim=sim): # see https://github.com/NeuralEnsemble/PyNN/issues/309 C = connectors.FixedProbabilityConnector(p_connect=1, @@ -269,9 +255,8 @@ def test_connect_with_probability_1(self, sim=sim): (1, 3, 0.0, 0.123), (2, 3, 0.0, 0.123), (3, 3, 0.0, 0.123) - ]) + ]) - @register() def test_connect_with_weight_function(self, sim=sim): C = connectors.FixedProbabilityConnector(p_connect=0.85, rng=MockRNG(delta=0.1)) @@ -283,9 +268,9 @@ def test_connect_with_weight_function(self, sim=sim): (2, 1, 0.1, 0.123), (3, 1, 0.2, 0.123)]) - @register() def test_connect_with_random_delays_parallel_safe(self, sim=sim): - rd = random.RandomDistribution('uniform', low=0.1, high=1.1, rng=MockRNG(start=1.0, delta=0.2, parallel_safe=True)) + rd = random.RandomDistribution('uniform', low=0.1, high=1.1, + rng=MockRNG(start=1.0, delta=0.2, parallel_safe=True)) syn = sim.StaticSynapse(delay=rd) C = connectors.FixedProbabilityConnector(p_connect=0.5, rng=MockRNG2(1 - numpy.array([1, 0, 0, 1, @@ -303,7 +288,7 @@ def test_connect_with_random_delays_parallel_safe(self, sim=sim): [nan, 1.4, nan, nan, nan]]), 9) - #def test_connect_with_random_delays_parallel_unsafe(self, sim=sim): + # def test_connect_with_random_delays_parallel_unsafe(self, sim=sim): # rd = random.RandomDistribution('uniform', [0.1, 1.1], rng=MockRNG(start=1.0, delta=0.2, parallel_safe=False)) # syn = sim.StaticSynapse(delay=rd) # C = connectors.FixedProbabilityConnector(p_connect=0.5, @@ -323,7 +308,6 @@ def test_connect_with_random_delays_parallel_safe(self, sim=sim): # 9) -@register_class() class TestDistanceDependentProbabilityConnector(unittest.TestCase): def setUp(self, sim=sim): @@ -332,7 +316,6 @@ def setUp(self, sim=sim): self.p2 = sim.Population(5, sim.HH_cond_exp(), structure=space.Line()) assert_array_equal(self.p2._mask_local, numpy.array([0, 1, 0, 1, 0], dtype=bool)) - @register() def test_connect_with_default_args(self, sim=sim): C = connectors.DistanceDependentProbabilityConnector(d_expression="d<1.5", rng=MockRNG(delta=0.01)) @@ -348,7 +331,6 @@ def test_connect_with_default_args(self, sim=sim): (3, 3, 0.0, 0.123)]) -@register_class() class TestFromListConnector(unittest.TestCase): def setUp(self, sim=sim): @@ -357,7 +339,6 @@ def setUp(self, sim=sim): self.p2 = sim.Population(5, sim.HH_cond_exp(), structure=space.Line()) assert_array_equal(self.p2._mask_local, numpy.array([0, 1, 0, 1, 0], dtype=bool)) - @register() def test_connect_with_valid_list(self, sim=sim): connection_list = [ (0, 0, 0.1, 0.1), @@ -365,7 +346,7 @@ def test_connect_with_valid_list(self, sim=sim): (2, 3, 0.3, 0.12), # local (2, 2, 0.4, 0.13), (0, 1, 0.5, 0.14), # local - ] + ] C = connectors.FromListConnector(connection_list) syn = sim.StaticSynapse() prj = sim.Projection(self.p1, self.p2, C, syn) @@ -373,7 +354,6 @@ def test_connect_with_valid_list(self, sim=sim): [(0, 1, 0.5, 0.14), (2, 3, 0.3, 0.12)]) - @register() def test_connect_with_out_of_range_index(self, sim=sim): connection_list = [ (0, 0, 0.1, 0.1), @@ -381,12 +361,11 @@ def test_connect_with_out_of_range_index(self, sim=sim): (2, 3, 0.3, 0.12), # local (5, 1, 0.4, 0.13), # NON-EXISTENT (0, 1, 0.5, 0.14), # local - ] + ] C = connectors.FromListConnector(connection_list) syn = sim.StaticSynapse() self.assertRaises(errors.ConnectionError, sim.Projection, self.p1, self.p2, C, syn) - @register() def test_with_plastic_synapse(self, sim=sim): connection_list = [ (0, 0, 0.1, 0.1, 100, 400), @@ -394,15 +373,15 @@ def test_with_plastic_synapse(self, sim=sim): (2, 3, 0.3, 0.12, 102, 600), # local (2, 2, 0.4, 0.13, 103, 700), (0, 1, 0.5, 0.14, 104, 800), # local - ] - C = connectors.FromListConnector(connection_list, column_names=["weight", "delay", "U", "tau_rec"]) + ] + C = connectors.FromListConnector(connection_list, column_names=[ + "weight", "delay", "U", "tau_rec"]) syn = sim.TsodyksMarkramSynapse(U=99, tau_facil=88.8) prj = sim.Projection(self.p1, self.p2, C, syn) self.assertEqual(prj.get(["weight", "delay", "tau_facil", "tau_rec", "U"], format='list', gather=False), # use gather False because we are faking the MPI [(0, 1, 0.5, 0.14, 88.8, 800.0, 104.0), (2, 3, 0.3, 0.12, 88.8, 600.0, 102.0)]) - @register() def test_with_stdp_synapse(self, sim=sim): connection_list = [ (0, 0, 0.1, 0.1, 10.0, 0.4), @@ -410,8 +389,9 @@ def test_with_stdp_synapse(self, sim=sim): (2, 3, 0.3, 0.12, 10.2, 0.6), # local (2, 2, 0.4, 0.13, 10.3, 0.7), (0, 1, 0.5, 0.14, 10.4, 0.8), # local - ] - C = connectors.FromListConnector(connection_list, column_names=["weight", "delay", "tau_plus", "w_max"]) + ] + C = connectors.FromListConnector(connection_list, column_names=[ + "weight", "delay", "tau_plus", "w_max"]) syn = sim.STDPMechanism(timing_dependence=sim.SpikePairRule(tau_plus=12.3, tau_minus=33.3), weight_dependence=sim.MultiplicativeWeightDependence(w_max=1.11), weight=0.321, delay=0.2) @@ -421,7 +401,6 @@ def test_with_stdp_synapse(self, sim=sim): (2, 3, 0.3, 0.12, 10.2, 33.3, 0.6)]) -@register_class() class TestFromFileConnector(unittest.TestCase): def setUp(self, sim=sim): @@ -435,14 +414,13 @@ def setUp(self, sim=sim): (2, 3, 0.3, 0.12), # local (2, 2, 0.4, 0.13), (0, 1, 0.5, 0.14), # local - ] + ] def tearDown(self, sim=sim): for path in ("test.connections", "test.connections.1", "test.connections.2"): if os.path.exists(path): os.remove(path) - @register() def test_connect_with_standard_text_file_not_distributed(self, sim=sim): numpy.savetxt("test.connections", self.connection_list) C = connectors.FromFileConnector("test.connections", distributed=False) @@ -452,7 +430,6 @@ def test_connect_with_standard_text_file_not_distributed(self, sim=sim): [(0, 1, 0.5, 0.14), (2, 3, 0.3, 0.12)]) - @register() def test_connect_with_standard_text_file_distributed(self, sim=sim): local_connection_list = [c for c in self.connection_list if c[1] % 2 == 1] numpy.savetxt("test.connections.1", local_connection_list) @@ -463,7 +440,6 @@ def test_connect_with_standard_text_file_distributed(self, sim=sim): [(0, 1, 0.5, 0.14), (2, 3, 0.3, 0.12)]) - @register() def test_with_plastic_synapses_not_distributed(self, sim=sim): connection_list = [ (0, 0, 0.1, 0.1, 100, 100), @@ -471,7 +447,7 @@ def test_with_plastic_synapses_not_distributed(self, sim=sim): (2, 3, 0.3, 0.12, 120, 98), # local (2, 2, 0.4, 0.13, 130, 97), (0, 1, 0.5, 0.14, 140, 96), # local - ] + ] file = recording.files.StandardTextFile("test.connections.2", mode='wb') file.write(connection_list, {"columns": ["i", "j", "weight", "delay", "U", "tau_rec"]}) C = connectors.FromFileConnector("test.connections.2", distributed=False) @@ -482,7 +458,6 @@ def test_with_plastic_synapses_not_distributed(self, sim=sim): (2, 3, 0.3, 0.12, 120.0, 98.0, 88.8)]) -@register_class() class TestFixedNumberPostConnector(unittest.TestCase): def setUp(self, sim=sim): @@ -491,7 +466,6 @@ def setUp(self, sim=sim): self.p2 = sim.Population(5, sim.HH_cond_exp(), structure=space.Line()) assert_array_equal(self.p2._mask_local, numpy.array([0, 1, 0, 1, 0], dtype=bool)) - @register() def test_with_n_smaller_than_population_size(self, sim=sim): C = connectors.FixedNumberPostConnector(n=3, rng=MockRNG(delta=1)) syn = sim.StaticSynapse(weight="0.5*d") @@ -504,7 +478,6 @@ def test_with_n_smaller_than_population_size(self, sim=sim): (2, 3, 0.5, 0.123), (3, 3, 0.0, 0.123)]) - @register() def test_with_n_larger_than_population_size(self, sim=sim): C = connectors.FixedNumberPostConnector(n=7, rng=MockRNG(delta=1)) syn = sim.StaticSynapse() @@ -524,9 +497,9 @@ def test_with_n_larger_than_population_size(self, sim=sim): (3, 3, 0.0, 0.123), (3, 3, 0.0, 0.123)]) - @register() def test_with_n_larger_than_population_size_no_self_connections(self, sim=sim): - C = connectors.FixedNumberPostConnector(n=7, allow_self_connections=False, rng=MockRNG(delta=1)) + C = connectors.FixedNumberPostConnector( + n=7, allow_self_connections=False, rng=MockRNG(delta=1)) syn = sim.StaticSynapse() prj = sim.Projection(self.p2, self.p2, C, syn) # connections as follows: (pre - list of post) @@ -550,9 +523,8 @@ def test_with_n_larger_than_population_size_no_self_connections(self, sim=sim): (2, 3, 0.0, 0.123), (2, 3, 0.0, 0.123), (4, 3, 0.0, 0.123), - (4, 3, 0.0, 0.123),]) + (4, 3, 0.0, 0.123), ]) - @register() def test_with_replacement(self, sim=sim): C = connectors.FixedNumberPostConnector(n=3, with_replacement=True, rng=MockRNG(delta=1)) syn = sim.StaticSynapse() @@ -568,10 +540,9 @@ def test_with_replacement(self, sim=sim): (1, 3, 0.0, 0.123), (2, 3, 0.0, 0.123)]) - @register() def test_with_replacement_with_variable_n(self, sim=sim): n = random.RandomDistribution('binomial', (5, 0.5), rng=MockRNG(start=1, delta=2)) - # should give (1, 3, 0, 2) + # should give (1, 3, 0, 2) C = connectors.FixedNumberPostConnector(n=n, with_replacement=True, rng=MockRNG(delta=1)) syn = sim.StaticSynapse() prj = sim.Projection(self.p1, self.p2, C, syn) @@ -583,10 +554,9 @@ def test_with_replacement_with_variable_n(self, sim=sim): [(1, 1, 0.0, 0.123), (1, 3, 0.0, 0.123)]) - @register() def test_with_replacement_no_self_connections(self, sim=sim): C = connectors.FixedNumberPostConnector(n=3, with_replacement=True, - allow_self_connections=False, rng=MockRNG(start=2, delta=1)) + allow_self_connections=False, rng=MockRNG(start=2, delta=1)) syn = sim.StaticSynapse() prj = sim.Projection(self.p2, self.p2, C, syn) # 0 - 2 3 4 @@ -602,7 +572,6 @@ def test_with_replacement_no_self_connections(self, sim=sim): (4, 3, 0.0, 0.123)]) -@register_class() class TestFixedNumberPreConnector(unittest.TestCase): def setUp(self, sim=sim): @@ -611,7 +580,6 @@ def setUp(self, sim=sim): self.p2 = sim.Population(5, sim.HH_cond_exp(), structure=space.Line()) assert_array_equal(self.p2._mask_local, numpy.array([0, 1, 0, 1, 0], dtype=bool)) - @register() def test_with_n_smaller_than_population_size(self, sim=sim): C = connectors.FixedNumberPreConnector(n=3, rng=MockRNG(delta=1)) syn = sim.StaticSynapse(weight="0.1*d") @@ -622,9 +590,8 @@ def test_with_n_smaller_than_population_size(self, sim=sim): (1, 1, 0.0, 0.123), (3, 3, 0.0, 0.123), (2, 3, 0.1, 0.123), - (1, 3, 0.2, 0.123),]) + (1, 3, 0.2, 0.123), ]) - @register() def test_with_n_larger_than_population_size(self, sim=sim): C = connectors.FixedNumberPreConnector(n=7, rng=MockRNG(delta=1)) syn = sim.StaticSynapse() @@ -643,11 +610,11 @@ def test_with_n_larger_than_population_size(self, sim=sim): (3, 3, 0.0, 0.123), (3, 3, 0.0, 0.123), (2, 3, 0.0, 0.123), - (1, 3, 0.0, 0.123),]) + (1, 3, 0.0, 0.123), ]) - @register() def test_with_n_larger_than_population_size_no_self_connections(self, sim=sim): - C = connectors.FixedNumberPreConnector(n=7, allow_self_connections=False, rng=MockRNG(delta=1)) + C = connectors.FixedNumberPreConnector( + n=7, allow_self_connections=False, rng=MockRNG(delta=1)) syn = sim.StaticSynapse() prj = sim.Projection(self.p2, self.p2, C, syn) self.assertEqual(prj.get(["weight", "delay"], format='list', gather=False), # use gather False because we are faking the MPI @@ -664,66 +631,62 @@ def test_with_n_larger_than_population_size_no_self_connections(self, sim=sim): (4, 3, 0.0, 0.123), (4, 3, 0.0, 0.123), (2, 3, 0.0, 0.123), - (1, 3, 0.0, 0.123),]) + (1, 3, 0.0, 0.123), ]) - @register() def test_with_replacement(self, sim=sim): C = connectors.FixedNumberPreConnector(n=3, with_replacement=True, rng=MockRNG(delta=1)) syn = sim.StaticSynapse() prj = sim.Projection(self.p1, self.p2, C, syn) self.assertEqual(prj.get(["weight", "delay"], format='list', gather=False), # use gather False because we are faking the MPI - [#(0, 0, 0.0, 0.123), - #(1, 0, 0.0, 0.123), - #(2, 0, 0.0, 0.123), - (3, 1, 0.0, 0.123), - (0, 1, 0.0, 0.123), - (1, 1, 0.0, 0.123), - #(2, 2, 0.0, 0.123), - #(3, 2, 0.0, 0.123), - #(0, 2, 0.0, 0.123), - (1, 3, 0.0, 0.123), - (2, 3, 0.0, 0.123), - (3, 3, 0.0, 0.123),]) + [ # (0, 0, 0.0, 0.123), + #(1, 0, 0.0, 0.123), + #(2, 0, 0.0, 0.123), + (3, 1, 0.0, 0.123), + (0, 1, 0.0, 0.123), + (1, 1, 0.0, 0.123), + #(2, 2, 0.0, 0.123), + #(3, 2, 0.0, 0.123), + #(0, 2, 0.0, 0.123), + (1, 3, 0.0, 0.123), + (2, 3, 0.0, 0.123), + (3, 3, 0.0, 0.123), ]) - @register() def test_with_replacement_with_variable_n(self, sim=sim): n = random.RandomDistribution('binomial', (5, 0.5), rng=MockRNG(start=1, delta=2)) - # should give (1, 3, 0, 2, 4) + # should give (1, 3, 0, 2, 4) C = connectors.FixedNumberPreConnector(n=n, with_replacement=True, rng=MockRNG(delta=1)) syn = sim.StaticSynapse() prj = sim.Projection(self.p1, self.p2, C, syn) self.assertEqual(prj.get(["weight", "delay"], format='list', gather=False), # use gather False because we are faking the MPI - [#(0, 0, 0.0, 0.123), - (1, 1, 0.0, 0.123), - (2, 1, 0.0, 0.123), - (3, 1, 0.0, 0.123), - (0, 3, 0.0, 0.123), - (1, 3, 0.0, 0.123)]) + [ # (0, 0, 0.0, 0.123), + (1, 1, 0.0, 0.123), + (2, 1, 0.0, 0.123), + (3, 1, 0.0, 0.123), + (0, 3, 0.0, 0.123), + (1, 3, 0.0, 0.123)]) - @register() def test_with_replacement_no_self_connections(self, sim=sim): C = connectors.FixedNumberPreConnector(n=3, with_replacement=True, allow_self_connections=False, rng=MockRNG(start=2, delta=1)) syn = sim.StaticSynapse() prj = sim.Projection(self.p2, self.p2, C, syn) self.assertEqual(prj.get(["weight", "delay"], format='list', gather=False), # use gather False because we are faking the MPI - [#(2, 0, 0.0, 0.123), # [2, 3, 4] --> [2, 3, 4] - #(3, 0, 0.0, 0.123), - #(4, 0, 0.0, 0.123), - (0, 1, 0.0, 0.123), # [0, 1, 2] --> [0, 3, 2] - #(1, 1, 0.0, 0.123), - (3, 1, 0.0, 0.123), - (2, 1, 0.0, 0.123), - #(4, 2, 0.0, 0.123), # [4, 0, 1] --> [4, 0, 1] - #(0, 2, 0.0, 0.123), - #(1, 2, 0.0, 0.123), - (2, 3, 0.0, 0.123), # [2, 3, 4] --> [2, 0, 4] - #(3, 3, 0.0, 0.123), - (0, 3, 0.0, 0.123), - (4, 3, 0.0, 0.123), - ]) + [ # (2, 0, 0.0, 0.123), # [2, 3, 4] --> [2, 3, 4] + #(3, 0, 0.0, 0.123), + #(4, 0, 0.0, 0.123), + (0, 1, 0.0, 0.123), # [0, 1, 2] --> [0, 3, 2] + #(1, 1, 0.0, 0.123), + (3, 1, 0.0, 0.123), + (2, 1, 0.0, 0.123), + # (4, 2, 0.0, 0.123), # [4, 0, 1] --> [4, 0, 1] + #(0, 2, 0.0, 0.123), + #(1, 2, 0.0, 0.123), + (2, 3, 0.0, 0.123), # [2, 3, 4] --> [2, 0, 4] + #(3, 3, 0.0, 0.123), + (0, 3, 0.0, 0.123), + (4, 3, 0.0, 0.123), + ]) - @register() def test_no_replacement_no_self_connections(self, sim=sim): C = connectors.FixedNumberPreConnector(n=3, with_replacement=False, allow_self_connections=False, rng=MockRNG(start=2, delta=1)) @@ -736,11 +699,11 @@ def test_no_replacement_no_self_connections(self, sim=sim): (4, 3, 0.0, 0.123), #(3, 3, 0.0, 0.123), (2, 3, 0.0, 0.123), - (1, 3, 0.0, 0.123),]) + (1, 3, 0.0, 0.123), ]) - @register() def test_with_replacement_parallel_unsafe(self, sim=sim): - C = connectors.FixedNumberPreConnector(n=3, with_replacement=True, rng=MockRNG(delta=1, parallel_safe=False)) + C = connectors.FixedNumberPreConnector( + n=3, with_replacement=True, rng=MockRNG(delta=1, parallel_safe=False)) syn = sim.StaticSynapse() prj = sim.Projection(self.p1, self.p2, C, syn) self.assertEqual(prj.get(["weight", "delay"], format='list', gather=False), # use gather False because we are faking the MPI @@ -749,11 +712,11 @@ def test_with_replacement_parallel_unsafe(self, sim=sim): (2, 1, 0.0, 0.123), (3, 3, 0.0, 0.123), (0, 3, 0.0, 0.123), - (1, 3, 0.0, 0.123),]) + (1, 3, 0.0, 0.123), ]) - @register() def test_no_replacement_parallel_unsafe(self, sim=sim): - C = connectors.FixedNumberPreConnector(n=3, with_replacement=False, rng=MockRNG(delta=1, parallel_safe=False)) + C = connectors.FixedNumberPreConnector( + n=3, with_replacement=False, rng=MockRNG(delta=1, parallel_safe=False)) syn = sim.StaticSynapse() prj = sim.Projection(self.p1, self.p2, C, syn) self.assertEqual(prj.get(["weight", "delay"], format='list', gather=False), # use gather False because we are faking the MPI @@ -762,10 +725,9 @@ def test_no_replacement_parallel_unsafe(self, sim=sim): (1, 1, 0.0, 0.123), (3, 3, 0.0, 0.123), (2, 3, 0.0, 0.123), - (1, 3, 0.0, 0.123),]) + (1, 3, 0.0, 0.123), ]) -@register_class() class TestArrayConnector(unittest.TestCase): def setUp(self, sim=sim): @@ -774,13 +736,12 @@ def setUp(self, sim=sim): self.p2 = sim.Population(4, sim.HH_cond_exp(), structure=space.Line()) assert_array_equal(self.p2._mask_local, numpy.array([1, 0, 1, 0], dtype=bool)) - @register() def test_connect_with_scalar_weights_and_delays(self, sim=sim): connections = numpy.array([ - [0, 1, 1, 0], - [1, 1, 0, 1], - [0, 0, 1, 0], - ], dtype=bool) + [0, 1, 1, 0], + [1, 1, 0, 1], + [0, 0, 1, 0], + ], dtype=bool) C = connectors.ArrayConnector(connections, safe=False) syn = sim.StaticSynapse(weight=5.0, delay=0.5) prj = sim.Projection(self.p1, self.p2, C, syn) @@ -789,16 +750,17 @@ def test_connect_with_scalar_weights_and_delays(self, sim=sim): (0, 2, 5.0, 0.5), (2, 2, 5.0, 0.5)]) - @register() def test_connect_with_random_weights_parallel_safe(self, sim=sim): - rd_w = random.RandomDistribution('uniform', (0, 1), rng=MockRNG(delta=1.0, parallel_safe=True)) - rd_d = random.RandomDistribution('uniform', (0, 1), rng=MockRNG(start=1.0, delta=0.1, parallel_safe=True)) + rd_w = random.RandomDistribution( + 'uniform', (0, 1), rng=MockRNG(delta=1.0, parallel_safe=True)) + rd_d = random.RandomDistribution('uniform', (0, 1), rng=MockRNG( + start=1.0, delta=0.1, parallel_safe=True)) syn = sim.StaticSynapse(weight=rd_w, delay=rd_d) connections = numpy.array([ - [0, 1, 1, 0], - [1, 1, 0, 1], - [0, 0, 1, 0], - ], dtype=bool) + [0, 1, 1, 0], + [1, 1, 0, 1], + [0, 0, 1, 0], + ], dtype=bool) C = connectors.ArrayConnector(connections, safe=False) prj = sim.Projection(self.p1, self.p2, C, syn) self.assertEqual(prj.get(["weight", "delay"], format='list', gather=False), # use gather False because we are faking the MPI @@ -807,7 +769,6 @@ def test_connect_with_random_weights_parallel_safe(self, sim=sim): (2, 2, 4.0, 1.4000000000000001)]) # better to do an "almost-equal" check -@register_class() class TestCloneConnector(unittest.TestCase): def setUp(self, sim=sim): @@ -821,7 +782,7 @@ def setUp(self, sim=sim): (2, 3, 0.0, 1.0), # local (2, 2, 0.0, 1.0), (0, 1, 0.0, 1.0), # local - ] + ] list_connector = connectors.FromListConnector(connection_list) syn = sim.StaticSynapse() self.ref_prj = sim.Projection(self.p1, self.p2, list_connector, syn) @@ -838,7 +799,6 @@ def tearDown(self, sim=sim): # restore original gather_dict function recording.gather_dict = self.orig_gather_dict - @register() def test_connect(self, sim=sim): syn = sim.StaticSynapse(weight=5.0, delay=0.5) C = connectors.CloneConnector(self.ref_prj) @@ -847,7 +807,6 @@ def test_connect(self, sim=sim): [(0, 1, 5.0, 0.5), (2, 3, 5.0, 0.5)]) - @register() def test_connect_with_pre_post_mismatch(self, sim=sim): syn = sim.StaticSynapse() C = connectors.CloneConnector(self.ref_prj) @@ -855,7 +814,6 @@ def test_connect_with_pre_post_mismatch(self, sim=sim): self.assertRaises(errors.ConnectionError, sim.Projection, self.p1, p3, C, syn) -@register_class() class TestIndexBasedProbabilityConnector(unittest.TestCase): class IndexBasedProbability(connectors.IndexBasedExpression): @@ -879,7 +837,6 @@ def setUp(self, sim=sim, **extra): self.p2 = sim.Population(5, sim.HH_cond_exp(), structure=space.Line()) assert_array_equal(self.p2._mask_local, numpy.array([1, 0, 1, 0, 1], dtype=bool)) - @register() def test_connect_with_scalar_weights_and_delays(self, sim=sim): syn = sim.StaticSynapse(weight=1.0, delay=2) C = connectors.IndexBasedProbabilityConnector(self.IndexBasedProbability()) @@ -891,7 +848,6 @@ def test_connect_with_scalar_weights_and_delays(self, sim=sim): (4, 2, 1, 2), (2, 4, 1, 2)]) - @register() def test_connect_with_index_based_weights(self, sim=sim): syn = sim.StaticSynapse(weight=self.IndexBasedWeights(), delay=2) C = connectors.IndexBasedProbabilityConnector(self.IndexBasedProbability()) @@ -903,7 +859,6 @@ def test_connect_with_index_based_weights(self, sim=sim): (4, 2, 9, 2), (2, 4, 9, 2)]) - @register() def test_connect_with_index_based_delays(self, sim=sim): syn = sim.StaticSynapse(weight=1.0, delay=self.IndexBasedDelays()) C = connectors.IndexBasedProbabilityConnector(self.IndexBasedProbability()) @@ -916,7 +871,6 @@ def test_connect_with_index_based_delays(self, sim=sim): (2, 4, 1, 7)]) -@register_class() class TestDisplacementDependentProbabilityConnector(unittest.TestCase): def setUp(self, sim=sim, **extra): @@ -925,9 +879,9 @@ def setUp(self, sim=sim, **extra): structure=space.Grid2D(aspect_ratio=1.0, dx=1.0, dy=1.0)) self.p2 = sim.Population(9, sim.HH_cond_exp(), structure=space.Grid2D(aspect_ratio=1.0, dx=1.0, dy=1.0)) - assert_array_equal(self.p2._mask_local, numpy.array([1, 0, 1, 0, 1, 0, 1, 0, 1], dtype=bool)) + assert_array_equal(self.p2._mask_local, numpy.array( + [1, 0, 1, 0, 1, 0, 1, 0, 1], dtype=bool)) - @register() def test_connect(self, sim=sim): syn = sim.StaticSynapse(weight=1.0, delay=2) @@ -966,55 +920,6 @@ def displacement_expression(d): (2, 8, 1.0, 2.0)]) -@unittest.skip('skipping these tests until I figure out how I want to refactor checks') -class CheckTest(unittest.TestCase): - - def setUp(self, sim=sim, **extra): - self.MIN_DELAY = 0.123 - sim.setup(num_processes=2, rank=1, min_delay=0.123, **extra) - - def test_check_weights_with_scalar(self, sim=sim): - self.assertEqual(4.3, connectors.check_weights(4.3, 'excitatory', is_conductance=True)) - self.assertEqual(4.3, connectors.check_weights(4.3, 'excitatory', is_conductance=False)) - self.assertEqual(4.3, connectors.check_weights(4.3, 'inhibitory', is_conductance=True)) - self.assertEqual(-4.3, connectors.check_weights(-4.3, 'inhibitory', is_conductance=False)) - self.assertEqual(connectors.DEFAULT_WEIGHT, connectors.check_weights(None, 'excitatory', is_conductance=True)) - self.assertRaises(errors.ConnectionError, connectors.check_weights, 4.3, 'inhibitory', is_conductance=False) - self.assertRaises(errors.ConnectionError, connectors.check_weights, -4.3, 'inhibitory', is_conductance=True) - self.assertRaises(errors.ConnectionError, connectors.check_weights, -4.3, 'excitatory', is_conductance=True) - self.assertRaises(errors.ConnectionError, connectors.check_weights, -4.3, 'excitatory', is_conductance=False) - - def test_check_weights_with_array(self, sim=sim): - w = numpy.arange(10) - assert_array_equal(w, connectors.check_weights(w, 'excitatory', is_conductance=True)) - assert_array_equal(w, connectors.check_weights(w, 'excitatory', is_conductance=False)) - assert_array_equal(w, connectors.check_weights(w, 'inhibitory', is_conductance=True)) - self.assertRaises(errors.ConnectionError, connectors.check_weights, w, 'inhibitory', is_conductance=False) - w = numpy.arange(-10, 0) - assert_array_equal(w, connectors.check_weights(w, 'inhibitory', is_conductance=False)) - self.assertRaises(errors.ConnectionError, connectors.check_weights, w, 'inhibitory', is_conductance=True) - self.assertRaises(errors.ConnectionError, connectors.check_weights, w, 'excitatory', is_conductance=True) - self.assertRaises(errors.ConnectionError, connectors.check_weights, w, 'excitatory', is_conductance=False) - w = numpy.arange(-5, 5) - self.assertRaises(errors.ConnectionError, connectors.check_weights, w, 'excitatory', is_conductance=True) - self.assertRaises(errors.ConnectionError, connectors.check_weights, w, 'excitatory', is_conductance=False) - self.assertRaises(errors.ConnectionError, connectors.check_weights, w, 'inhibitory', is_conductance=True) - self.assertRaises(errors.ConnectionError, connectors.check_weights, w, 'inhibitory', is_conductance=False) - - def test_check_weights_with_invalid_value(self, sim=sim): - self.assertRaises(errors.ConnectionError, connectors.check_weights, "butterflies", 'excitatory', is_conductance=True) - - def test_check_weight_is_conductance_is_None(self, sim=sim): - # need to check that a log message was created - self.assertEqual(4.3, connectors.check_weights(4.3, 'excitatory', is_conductance=None)) - - def test_check_delay(self, sim=sim): - self.assertEqual(connectors.check_delays(2 * self.MIN_DELAY, self.MIN_DELAY, 1e99), 2 * self.MIN_DELAY) - self.assertRaises(errors.ConnectionError, connectors.check_delays, 0.5 * self.MIN_DELAY, self.MIN_DELAY, 1e99) - self.assertRaises(errors.ConnectionError, connectors.check_delays, 3.0, self.MIN_DELAY, 2.0) - - -@register_class() class TestFixedTotalNumberConnector(unittest.TestCase): def setUp(self, sim=sim): diff --git a/test/unittests/test_connectors_serial.py b/test/unittests/test_connectors_serial.py index b5492433c..39a94320a 100644 --- a/test/unittests/test_connectors_serial.py +++ b/test/unittests/test_connectors_serial.py @@ -1,7 +1,7 @@ """ Tests of the Connector classes, using the pyNN.mock backend. -:copyright: Copyright 2006-2016 by the PyNN team, see AUTHORS. +:copyright: Copyright 2006-2020 by the PyNN team, see AUTHORS. :license: CeCILL, see LICENSE for details. """ @@ -19,7 +19,6 @@ from .mocks import MockRNG, MockRNG2, MockRNG3 import pyNN.mock as sim -from .backends.registry import register_class, register orig_mpi_get_config = random.get_mpi_config @@ -30,38 +29,35 @@ def setUp(): def tearDown(): random.get_mpi_config = orig_mpi_get_config - -@register_class() + class TestOneToOneConnector(unittest.TestCase): def setUp(self, sim=sim, **extra): sim.setup(**extra) self.p1 = sim.Population(5, sim.IF_cond_exp()) self.p2 = sim.Population(5, sim.HH_cond_exp()) - + def tearDown(self, sim=sim): sim.end() - @register() def test_connect_with_scalar_weights_and_delays(self, sim=sim): C = connectors.OneToOneConnector(safe=False) syn = sim.StaticSynapse(weight=5.0, delay=0.5) prj = sim.Projection(self.p1, self.p2, C, syn) - self.assertEqual(prj.get(["weight", "delay"], format='list'), + self.assertEqual(prj.get(["weight", "delay"], format='list'), [(0, 0, 5.0, 0.5), (1, 1, 5.0, 0.5), (2, 2, 5.0, 0.5), (3, 3, 5.0, 0.5), (4, 4, 5.0, 0.5)]) - @register() def test_connect_with_random_weights(self, sim=sim): rd = random.RandomDistribution('uniform', (0, 1), rng=MockRNG(delta=1.0)) syn = sim.StaticSynapse(weight=rd, delay=0.5) C = connectors.OneToOneConnector(safe=False) prj = sim.Projection(self.p1, self.p2, C, syn) - self.assertEqual(prj.get(["weight", "delay"], format='list'), + self.assertEqual(prj.get(["weight", "delay"], format='list'), [(0, 0, 0.0, 0.5), (1, 1, 1.0, 0.5), (2, 2, 2.0, 0.5), @@ -69,7 +65,6 @@ def test_connect_with_random_weights(self, sim=sim): (4, 4, 4.0, 0.5)]) -@register_class() class TestAllToAllConnector(unittest.TestCase): def setUp(self, sim=sim, **extra): @@ -79,13 +74,12 @@ def setUp(self, sim=sim, **extra): def tearDown(self, sim=sim): sim.end() - - @register() + def test_connect_with_scalar_weights_and_delays(self, sim=sim): C = connectors.AllToAllConnector(safe=False) syn = sim.StaticSynapse(weight=5.0, delay=0.5) prj = sim.Projection(self.p1, self.p2, C, syn) - self.assertEqual(prj.get(["weight", "delay"], format='list'), + self.assertEqual(prj.get(["weight", "delay"], format='list'), [(0, 0, 5.0, 0.5), (1, 0, 5.0, 0.5), (2, 0, 5.0, 0.5), @@ -112,13 +106,12 @@ def test_connect_with_scalar_weights_and_delays(self, sim=sim): [5.0, 5.0, 5.0, 5.0, 5.0], [5.0, 5.0, 5.0, 5.0, 5.0]])) - @register() def test_connect_with_array_weights(self, sim=sim): C = connectors.AllToAllConnector(safe=False) syn = sim.StaticSynapse(weight=numpy.arange(0.0, 2.0, 0.1).reshape(4, 5), delay=0.5) prj = sim.Projection(self.p1, self.p2, C, syn) assert_array_almost_equal( - numpy.array(prj.get(["weight", "delay"], format='list')), + numpy.array(prj.get(["weight", "delay"], format='list')), numpy.array([ (0, 0, 0.0, 0.5), (1, 0, 0.5, 0.5), @@ -140,43 +133,43 @@ def test_connect_with_array_weights(self, sim=sim): (1, 4, 0.9, 0.5), (2, 4, 1.4, 0.5), (3, 4, 1.9, 0.5)] - ) - ) + ) + ) assert_array_almost_equal(prj.get('weight', format='array'), - numpy.array([[0. , 0.1, 0.2, 0.3, 0.4], + numpy.array([[0., 0.1, 0.2, 0.3, 0.4], [0.5, 0.6, 0.7, 0.8, 0.9], - [1. , 1.1, 1.2, 1.3, 1.4], + [1., 1.1, 1.2, 1.3, 1.4], [1.5, 1.6, 1.7, 1.8, 1.9]]), 9) - @register() def test_connect_with_random_weights_parallel_safe(self, sim=sim): - rd = random.RandomDistribution('uniform', (0, 1), rng=MockRNG(delta=1.0, parallel_safe=True)) + rd = random.RandomDistribution( + 'uniform', (0, 1), rng=MockRNG(delta=1.0, parallel_safe=True)) syn = sim.StaticSynapse(weight=rd, delay=0.5) C = connectors.AllToAllConnector(safe=False) prj = sim.Projection(self.p1, self.p2, C, syn) # note that the outer loop is over the post-synaptic cells, the inner loop over the pre-synaptic - self.assertEqual(prj.get(["weight", "delay"], format='list'), - [(0, 0, 0.0, 0.5), - (1, 0, 1.0, 0.5), - (2, 0, 2.0, 0.5), - (3, 0, 3.0, 0.5), - (0, 1, 4.0, 0.5), - (1, 1, 5.0, 0.5), - (2, 1, 6.0, 0.5), - (3, 1, 7.0, 0.5), - (0, 2, 8.0, 0.5), - (1, 2, 9.0, 0.5), - (2, 2, 10.0, 0.5), - (3, 2, 11.0, 0.5), - (0, 3, 12.0, 0.5), - (1, 3, 13.0, 0.5), - (2, 3, 14.0, 0.5), - (3, 3, 15.0, 0.5), - (0, 4, 16.0, 0.5), - (1, 4, 17.0, 0.5), - (2, 4, 18.0, 0.5), - (3, 4, 19.0, 0.5)]) + self.assertEqual(prj.get(["weight", "delay"], format='list'), + [(0, 0, 0.0, 0.5), + (1, 0, 1.0, 0.5), + (2, 0, 2.0, 0.5), + (3, 0, 3.0, 0.5), + (0, 1, 4.0, 0.5), + (1, 1, 5.0, 0.5), + (2, 1, 6.0, 0.5), + (3, 1, 7.0, 0.5), + (0, 2, 8.0, 0.5), + (1, 2, 9.0, 0.5), + (2, 2, 10.0, 0.5), + (3, 2, 11.0, 0.5), + (0, 3, 12.0, 0.5), + (1, 3, 13.0, 0.5), + (2, 3, 14.0, 0.5), + (3, 3, 15.0, 0.5), + (0, 4, 16.0, 0.5), + (1, 4, 17.0, 0.5), + (2, 4, 18.0, 0.5), + (3, 4, 19.0, 0.5)]) assert_array_almost_equal(prj.get('weight', format='array'), numpy.array([[0., 4., 8., 12., 16.], [1., 5., 9., 13., 17.], @@ -184,78 +177,74 @@ def test_connect_with_random_weights_parallel_safe(self, sim=sim): [3., 7., 11., 15., 19.]]), 9) - @register() def test_connect_with_distance_dependent_weights(self, sim=sim): d_expr = "d+100" syn = sim.StaticSynapse(weight=d_expr, delay=0.5) C = connectors.AllToAllConnector(safe=False) prj = sim.Projection(self.p1, self.p2, C, syn) - self.assertEqual(prj.get(["weight", "delay"], format='list'), - [(0, 0, 100.0, 0.5), - (1, 0, 101.0, 0.5), - (2, 0, 102.0, 0.5), - (3, 0, 103.0, 0.5), - (0, 1, 101.0, 0.5), - (1, 1, 100.0, 0.5), - (2, 1, 101.0, 0.5), - (3, 1, 102.0, 0.5), - (0, 2, 102.0, 0.5), - (1, 2, 101.0, 0.5), - (2, 2, 100.0, 0.5), - (3, 2, 101.0, 0.5), - (0, 3, 103.0, 0.5), - (1, 3, 102.0, 0.5), - (2, 3, 101.0, 0.5), - (3, 3, 100.0, 0.5), - (0, 4, 104.0, 0.5), - (1, 4, 103.0, 0.5), - (2, 4, 102.0, 0.5), - (3, 4, 101.0, 0.5)]) - - @register() + self.assertEqual(prj.get(["weight", "delay"], format='list'), + [(0, 0, 100.0, 0.5), + (1, 0, 101.0, 0.5), + (2, 0, 102.0, 0.5), + (3, 0, 103.0, 0.5), + (0, 1, 101.0, 0.5), + (1, 1, 100.0, 0.5), + (2, 1, 101.0, 0.5), + (3, 1, 102.0, 0.5), + (0, 2, 102.0, 0.5), + (1, 2, 101.0, 0.5), + (2, 2, 100.0, 0.5), + (3, 2, 101.0, 0.5), + (0, 3, 103.0, 0.5), + (1, 3, 102.0, 0.5), + (2, 3, 101.0, 0.5), + (3, 3, 100.0, 0.5), + (0, 4, 104.0, 0.5), + (1, 4, 103.0, 0.5), + (2, 4, 102.0, 0.5), + (3, 4, 101.0, 0.5)]) + def test_connect_with_distance_dependent_weights_and_delays(self, sim=sim): syn = sim.StaticSynapse(weight="d+100", delay="0.2+2*d") C = connectors.AllToAllConnector(safe=False) prj = sim.Projection(self.p1, self.p2, C, syn) - self.assertEqual(prj.get(["weight", "delay"], format='list'), - [(0, 0, 100.0, 0.2), - (1, 0, 101.0, 2.2), - (2, 0, 102.0, 4.2), - (3, 0, 103.0, 6.2), - (0, 1, 101.0, 2.2), - (1, 1, 100.0, 0.2), - (2, 1, 101.0, 2.2), - (3, 1, 102.0, 4.2), - (0, 2, 102.0, 4.2), - (1, 2, 101.0, 2.2), - (2, 2, 100.0, 0.2), - (3, 2, 101.0, 2.2), - (0, 3, 103.0, 6.2), - (1, 3, 102.0, 4.2), - (2, 3, 101.0, 2.2), - (3, 3, 100.0, 0.2), - (0, 4, 104.0, 8.2), - (1, 4, 103.0, 6.2), - (2, 4, 102.0, 4.2), - (3, 4, 101.0, 2.2)]) - - @register() + self.assertEqual(prj.get(["weight", "delay"], format='list'), + [(0, 0, 100.0, 0.2), + (1, 0, 101.0, 2.2), + (2, 0, 102.0, 4.2), + (3, 0, 103.0, 6.2), + (0, 1, 101.0, 2.2), + (1, 1, 100.0, 0.2), + (2, 1, 101.0, 2.2), + (3, 1, 102.0, 4.2), + (0, 2, 102.0, 4.2), + (1, 2, 101.0, 2.2), + (2, 2, 100.0, 0.2), + (3, 2, 101.0, 2.2), + (0, 3, 103.0, 6.2), + (1, 3, 102.0, 4.2), + (2, 3, 101.0, 2.2), + (3, 3, 100.0, 0.2), + (0, 4, 104.0, 8.2), + (1, 4, 103.0, 6.2), + (2, 4, 102.0, 4.2), + (3, 4, 101.0, 2.2)]) + def test_connect_with_delays_None(self, sim=sim): syn = sim.StaticSynapse(weight=0.1, delay=None) C = connectors.AllToAllConnector() assert C.safe assert C.allow_self_connections prj = sim.Projection(self.p1, self.p2, C, syn) - self.assertEqual(prj.get(["weight", "delay"], format='list')[0][3], prj._simulator.state.min_delay) + self.assertEqual(prj.get(["weight", "delay"], format='list') + [0][3], prj._simulator.state.min_delay) - @register() @unittest.skip('skipping this tests until I figure out how I want to refactor checks') def test_connect_with_delays_too_small(self, sim=sim): C = connectors.AllToAllConnector() syn = sim.StaticSynapse(weight=0.1, delay=0.0) self.assertRaises(errors.ConnectionError, sim.Projection, self.p1, self.p2, C, syn) - @register() @unittest.skip('skipping this tests until I figure out how I want to refactor checks') def test_connect_with_list_delays_too_small(self, sim=sim): delays = numpy.ones((self.p1.size, self.p2.size), float) @@ -265,7 +254,6 @@ def test_connect_with_list_delays_too_small(self, sim=sim): self.assertRaises(errors.ConnectionError, sim.Projection, self.p1, self.p2, C, syn) -@register_class() class TestFixedProbabilityConnector(unittest.TestCase): def setUp(self, sim=sim, **extra): @@ -275,8 +263,7 @@ def setUp(self, sim=sim, **extra): def tearDown(self, sim=sim): sim.end() - - @register() + def test_connect_with_default_args(self, sim=sim): C = connectors.FixedProbabilityConnector(p_connect=0.85, rng=MockRNG(delta=0.1, parallel_safe=True)) @@ -285,7 +272,7 @@ def test_connect_with_default_args(self, sim=sim): # 20 possible connections. Due to the mock RNG, only the # first 9 are created (0,0), (1,0), (2,0), (3,0), (0,1), (1,1), (2,1), (3,1), (0,2) - self.assertEqual(prj.get(["weight", "delay"], format='list'), + self.assertEqual(prj.get(["weight", "delay"], format='list'), [(0, 0, 0.0, 0.123), (1, 0, 0.0, 0.123), (2, 0, 0.0, 0.123), @@ -297,7 +284,6 @@ def test_connect_with_default_args(self, sim=sim): (0, 2, 0.0, 0.123) ]) - @register() def test_connect_with_default_args_again(self, sim=sim): C = connectors.FixedProbabilityConnector(p_connect=0.5, rng=MockRNG2(1 - numpy.array([1, 0, 0, 1, @@ -314,11 +300,11 @@ def test_connect_with_default_args_again(self, sim=sim): # (note that the outer loop is over post-synaptic cells (columns), the inner loop over pre-synaptic (rows)) assert_array_almost_equal(prj.get('delay', format='array'), numpy.array([[0.123, nan, 0.123, 0.123, 0.123], - [ nan, nan, 0.123, nan, 0.123], - [ nan, nan, nan, 0.123, nan], + [nan, nan, 0.123, nan, 0.123], + [nan, nan, nan, 0.123, nan], [0.123, 0.123, nan, nan, 0.123]]), 9) - self.assertEqual(prj.get(["weight", "delay"], format='list'), + self.assertEqual(prj.get(["weight", "delay"], format='list'), [(0, 0, 0.0, 0.123), (3, 0, 0.0, 0.123), (3, 1, 0.0, 0.123), @@ -331,12 +317,11 @@ def test_connect_with_default_args_again(self, sim=sim): (3, 4, 0.0, 0.123) ]) - @register() def test_connect_with_probability_one(self, sim=sim): C = connectors.FixedProbabilityConnector(p_connect=1.) syn = sim.StaticSynapse() - prj = sim.Projection(self.p1, self.p2, C, syn) - self.assertEqual(prj.get(["weight", "delay"], format='list'), + prj = sim.Projection(self.p1, self.p2, C, syn) + self.assertEqual(prj.get(["weight", "delay"], format='list'), [(0, 0, 0.0, 0.123), (1, 0, 0.0, 0.123), (2, 0, 0.0, 0.123), @@ -358,51 +343,49 @@ def test_connect_with_probability_one(self, sim=sim): (2, 4, 0.0, 0.123), (3, 4, 0.0, 0.123), ]) - - @register() - def test_connect_weight_function_and_one_post_synaptic_neuron_not_connected(self, sim=sim): + + def test_connect_weight_function_and_one_post_synaptic_neuron_not_connected(self, sim=sim): C = connectors.FixedProbabilityConnector(p_connect=0.8, rng=MockRNG(delta=0.05)) syn = sim.StaticSynapse(weight=lambda d: 0.1 * d) - prj = sim.Projection(self.p1, self.p2, C, syn) - assert_array_almost_equal(prj.get(["weight", "delay"], format='array'), - numpy.array([ - [[0., 0.1, 0.2, 0.3, nan], - [0.1, 0., 0.1, 0.2, nan], - [0.2, 0.1, 0.0, 0.1, nan], - [0.3, 0.2, 0.1, 0.0, nan]], - [[0.123, 0.123, 0.123, 0.123, nan], - [0.123, 0.123, 0.123, 0.123, nan], - [0.123, 0.123, 0.123, 0.123, nan], - [0.123, 0.123, 0.123, 0.123, nan]] - ]), - 9) - - @register() + prj = sim.Projection(self.p1, self.p2, C, syn) + assert_array_almost_equal(prj.get(["weight", "delay"], format='array'), + numpy.array([ + [[0., 0.1, 0.2, 0.3, nan], + [0.1, 0., 0.1, 0.2, nan], + [0.2, 0.1, 0.0, 0.1, nan], + [0.3, 0.2, 0.1, 0.0, nan]], + [[0.123, 0.123, 0.123, 0.123, nan], + [0.123, 0.123, 0.123, 0.123, nan], + [0.123, 0.123, 0.123, 0.123, nan], + [0.123, 0.123, 0.123, 0.123, nan]] + ]), + 9) + def test_connect_with_weight_function(self, sim=sim): C = connectors.FixedProbabilityConnector(p_connect=0.85, rng=MockRNG(delta=0.1)) syn = sim.StaticSynapse(weight=lambda d: 0.1 * d) prj = sim.Projection(self.p1, self.p2, C, syn) - + # 20 possible connections. Due to the mock RNG, only the # first 9 are created (0,0), (1,0), (2,0), (3,0), (0,1), (1,1), (2,1), (3,1), (0,2) - assert_array_almost_equal(prj.get(["weight", "delay"], format='array'), - numpy.array([ - [[0., 0.1, 0.2, nan, nan], - [0.1, 0., nan, nan, nan], - [0.2, 0.1, nan, nan, nan], - [0.3, 0.2, nan, nan, nan]], - [[0.123, 0.123, 0.123, nan, nan], - [0.123, 0.123, nan, nan, nan], - [0.123, 0.123, nan, nan, nan], - [0.123, 0.123, nan, nan, nan]] - ]), - 9) - - @register() + assert_array_almost_equal(prj.get(["weight", "delay"], format='array'), + numpy.array([ + [[0., 0.1, 0.2, nan, nan], + [0.1, 0., nan, nan, nan], + [0.2, 0.1, nan, nan, nan], + [0.3, 0.2, nan, nan, nan]], + [[0.123, 0.123, 0.123, nan, nan], + [0.123, 0.123, nan, nan, nan], + [0.123, 0.123, nan, nan, nan], + [0.123, 0.123, nan, nan, nan]] + ]), + 9) + def test_connect_with_random_delays_parallel_safe(self, sim=sim): - rd = random.RandomDistribution('uniform', low=0.1, high=1.1, rng=MockRNG(start=1.0, delta=0.2, parallel_safe=True)) + rd = random.RandomDistribution('uniform', low=0.1, high=1.1, + rng=MockRNG(start=1.0, delta=0.2, parallel_safe=True)) syn = sim.StaticSynapse(delay=rd) C = connectors.FixedProbabilityConnector(p_connect=0.5, rng=MockRNG2(1 - numpy.array([1, 0, 0, 1, @@ -416,14 +399,13 @@ def test_connect_with_random_delays_parallel_safe(self, sim=sim): # are created (0,0), (3,0), (3,1), (0,2), (1,2), (0,3), (2,3), (0,4), (1,4), (3,4) # (note that the outer loop is over post-synaptic cells (columns), the inner loop over pre-synaptic (rows)) assert_array_almost_equal(prj.get('delay', format='array'), - numpy.array([[ 1.0, nan, 1.6, 2.0, 2.4], - [ nan, nan, 1.8, nan, 2.6], - [ nan, nan, nan, 2.2, nan], - [ 1.2, 1.4, nan, nan, 2.8]]), + numpy.array([[1.0, nan, 1.6, 2.0, 2.4], + [nan, nan, 1.8, nan, 2.6], + [nan, nan, nan, 2.2, nan], + [1.2, 1.4, nan, nan, 2.8]]), 9) -@register_class() class TestDistanceDependentProbabilityConnector(unittest.TestCase): def setUp(self, sim=sim, **extra): @@ -433,8 +415,7 @@ def setUp(self, sim=sim, **extra): def tearDown(self, sim=sim): sim.end() - - @register() + def test_connect_with_default_args(self, sim=sim): C = connectors.DistanceDependentProbabilityConnector(d_expression="d<1.5", rng=MockRNG(delta=0.01)) @@ -442,7 +423,7 @@ def test_connect_with_default_args(self, sim=sim): prj = sim.Projection(self.p1, self.p2, C, syn) # 20 possible connections. Only those with a sufficiently small distance # are created - self.assertEqual(prj.get(["weight", "delay"], format='list'), + self.assertEqual(prj.get(["weight", "delay"], format='list'), [(0, 0, 0.0, 0.123), (1, 0, 0.0, 0.123), (0, 1, 0.0, 0.123), @@ -456,7 +437,6 @@ def test_connect_with_default_args(self, sim=sim): (3, 4, 0.0, 0.123)]) -@register_class() class TestFromListConnector(unittest.TestCase): def setUp(self, sim=sim, **extra): @@ -467,18 +447,24 @@ def setUp(self, sim=sim, **extra): def tearDown(self, sim=sim): sim.end() - @register() def test_connect_unique_connection_neuron_0_to_neuron_0(self, sim=sim): connection_list = [ (0, 0, 0.1, 0.18) - ] + ] C = connectors.FromListConnector(connection_list) syn = sim.StaticSynapse() prj = sim.Projection(self.p1, self.p2, C, syn) - self.assertEqual(prj.get(["weight", "delay"], format='list'), + self.assertEqual(prj.get(["weight", "delay"], format='list'), [(0, 0, 0.1, 0.18)]) - - @register() + + def test_connect_with_empty_list(self, sim=sim): + connection_list = [] + C = connectors.FromListConnector(connection_list) + syn = sim.StaticSynapse() + prj = sim.Projection(self.p1, self.p2, C, syn) + self.assertEqual(prj.get(["weight", "delay"], format='list'), + []) + def test_connect_with_valid_list(self, sim=sim): connection_list = [ (0, 0, 0.1, 0.18), @@ -486,18 +472,17 @@ def test_connect_with_valid_list(self, sim=sim): (2, 3, 0.3, 0.16), # local (2, 2, 0.4, 0.15), (0, 1, 0.5, 0.14), # local - ] + ] C = connectors.FromListConnector(connection_list) syn = sim.StaticSynapse() prj = sim.Projection(self.p1, self.p2, C, syn) - self.assertEqual(prj.get(["weight", "delay"], format='list'), + self.assertEqual(prj.get(["weight", "delay"], format='list'), [(0, 0, 0.1, 0.18), (3, 0, 0.2, 0.17), (0, 1, 0.5, 0.14), (2, 2, 0.4, 0.15), (2, 3, 0.3, 0.16)]) - @register() def test_connect_with_out_of_range_index(self, sim=sim): connection_list = [ (0, 0, 0.1, 0.1), @@ -505,12 +490,11 @@ def test_connect_with_out_of_range_index(self, sim=sim): (2, 3, 0.3, 0.12), # local (5, 1, 0.4, 0.13), # NON-EXISTENT (0, 1, 0.5, 0.14), # local - ] + ] C = connectors.FromListConnector(connection_list) syn = sim.StaticSynapse() self.assertRaises(errors.ConnectionError, sim.Projection, self.p1, self.p2, C, syn) - @register() def test_with_plastic_synapse(self, sim=sim): connection_list = [ (0, 0, 0.1, 0.1, 100, 400), @@ -518,11 +502,12 @@ def test_with_plastic_synapse(self, sim=sim): (2, 3, 0.3, 0.12, 102, 600), # local (2, 2, 0.4, 0.13, 103, 700), (0, 1, 0.5, 0.14, 104, 800), # local - ] - C = connectors.FromListConnector(connection_list, column_names=["weight", "delay", "U", "tau_rec"]) + ] + C = connectors.FromListConnector(connection_list, column_names=[ + "weight", "delay", "U", "tau_rec"]) syn = sim.TsodyksMarkramSynapse(U=99, tau_facil=88.8) prj = sim.Projection(self.p1, self.p2, C, syn) - self.assertEqual(prj.get(["weight", "delay", "tau_facil", "tau_rec", "U"], format='list'), + self.assertEqual(prj.get(["weight", "delay", "tau_facil", "tau_rec", "U"], format='list'), [(0, 0, 0.1, 0.1, 88.8, 400.0, 100.0), (3, 0, 0.2, 0.11, 88.8, 500.0, 101.0), (0, 1, 0.5, 0.14, 88.8, 800.0, 104.0), @@ -530,7 +515,6 @@ def test_with_plastic_synapse(self, sim=sim): (2, 3, 0.3, 0.12, 88.8, 600.0, 102.0)]) -@register_class() class TestFromFileConnector(unittest.TestCase): def setUp(self, sim=sim, **extra): @@ -543,28 +527,26 @@ def setUp(self, sim=sim, **extra): (2, 3, 0.3, 0.12), # local (2, 2, 0.4, 0.13), (0, 1, 0.5, 0.14), # local - ] + ] def tearDown(self, sim=sim): sim.end() for path in ("test.connections", "test.connections.1", "test.connections.2"): if os.path.exists(path): os.remove(path) - - @register() + def test_connect_with_standard_text_file_not_distributed(self, sim=sim): numpy.savetxt("test.connections", self.connection_list) C = connectors.FromFileConnector("test.connections", distributed=False) syn = sim.StaticSynapse() prj = sim.Projection(self.p1, self.p2, C, syn) - self.assertEqual(prj.get(["weight", "delay"], format='list'), + self.assertEqual(prj.get(["weight", "delay"], format='list'), [(0, 0, 0.1, 0.1), (3, 0, 0.2, 0.11), (0, 1, 0.5, 0.14), (2, 2, 0.4, 0.13), (2, 3, 0.3, 0.12)]) - @register() def test_with_plastic_synapses_not_distributed(self, sim=sim): connection_list = [ (0, 0, 0.1, 0.1, 100, 100), @@ -572,13 +554,13 @@ def test_with_plastic_synapses_not_distributed(self, sim=sim): (2, 3, 0.3, 0.12, 120, 98), # local (2, 2, 0.4, 0.13, 130, 97), (0, 1, 0.5, 0.14, 140, 96), # local - ] + ] file = recording.files.StandardTextFile("test.connections.2", mode='wb') file.write(connection_list, {"columns": ["i", "j", "weight", "delay", "U", "tau_rec"]}) C = connectors.FromFileConnector("test.connections.2", distributed=False) syn = sim.TsodyksMarkramSynapse(tau_facil=88.8) prj = sim.Projection(self.p1, self.p2, C, syn) - self.assertEqual(prj.get(["weight", "delay", "U", "tau_rec", "tau_facil"], format='list'), + self.assertEqual(prj.get(["weight", "delay", "U", "tau_rec", "tau_facil"], format='list'), [(0, 0, 0.1, 0.1, 100.0, 100.0, 88.8), (3, 0, 0.2, 0.11, 110.0, 99.0, 88.8), (0, 1, 0.5, 0.14, 140.0, 96.0, 88.8), @@ -586,7 +568,6 @@ def test_with_plastic_synapses_not_distributed(self, sim=sim): (2, 3, 0.3, 0.12, 120.0, 98.0, 88.8)]) -@register_class() class TestFixedNumberPreConnector(unittest.TestCase): def setUp(self, sim=sim, **extra): @@ -596,36 +577,34 @@ def setUp(self, sim=sim, **extra): def tearDown(self, sim=sim): sim.end() - - @register() + def test_with_n_smaller_than_population_size(self, sim=sim): C = connectors.FixedNumberPreConnector(n=3, rng=MockRNG(delta=1)) syn = sim.StaticSynapse(weight="0.1*d") prj = sim.Projection(self.p1, self.p2, C, syn) rec = prj.get(["weight", "delay"], format='list') - assert_array_almost_equal([list(r) for r in rec], - [(3, 0, 0.3, 0.123), - (2, 0, 0.2, 0.123), - (1, 0, 0.1, 0.123), - (3, 1, 0.2, 0.123), - (2, 1, 0.1, 0.123), - (1, 1, 0.0, 0.123), - (3, 2, 0.1, 0.123), - (2, 2, 0.0, 0.123), - (1, 2, 0.1, 0.123), - (3, 3, 0.0, 0.123), - (2, 3, 0.1, 0.123), - (1, 3, 0.2, 0.123), - (3, 4, 0.1, 0.123), - (2, 4, 0.2, 0.123), - (1, 4, 0.3, 0.123)]) + assert_array_almost_equal([list(r) for r in rec], + [(3, 0, 0.3, 0.123), + (2, 0, 0.2, 0.123), + (1, 0, 0.1, 0.123), + (3, 1, 0.2, 0.123), + (2, 1, 0.1, 0.123), + (1, 1, 0.0, 0.123), + (3, 2, 0.1, 0.123), + (2, 2, 0.0, 0.123), + (1, 2, 0.1, 0.123), + (3, 3, 0.0, 0.123), + (2, 3, 0.1, 0.123), + (1, 3, 0.2, 0.123), + (3, 4, 0.1, 0.123), + (2, 4, 0.2, 0.123), + (1, 4, 0.3, 0.123)]) - @register() def test_with_n_larger_than_population_size(self, sim=sim): C = connectors.FixedNumberPreConnector(n=7, rng=MockRNG(delta=1)) syn = sim.StaticSynapse() prj = sim.Projection(self.p1, self.p2, C, syn) - self.assertEqual(prj.get(["weight", "delay"], format='list'), + self.assertEqual(prj.get(["weight", "delay"], format='list'), [(0, 0, 0.0, 0.123), (1, 0, 0.0, 0.123), (2, 0, 0.0, 0.123), @@ -662,12 +641,12 @@ def test_with_n_larger_than_population_size(self, sim=sim): (2, 4, 0.0, 0.123), (1, 4, 0.0, 0.123)]) - @register() def test_with_n_larger_than_population_size_no_self_connections(self, sim=sim): - C = connectors.FixedNumberPreConnector(n=7, allow_self_connections=False, rng=MockRNG(delta=1)) + C = connectors.FixedNumberPreConnector( + n=7, allow_self_connections=False, rng=MockRNG(delta=1)) syn = sim.StaticSynapse() prj = sim.Projection(self.p2, self.p2, C, syn) - self.assertEqual(prj.get(["weight", "delay"], format='list'), + self.assertEqual(prj.get(["weight", "delay"], format='list'), [(1, 0, 0.0, 0.123), (2, 0, 0.0, 0.123), (3, 0, 0.0, 0.123), @@ -704,12 +683,11 @@ def test_with_n_larger_than_population_size_no_self_connections(self, sim=sim): (2, 4, 0.0, 0.123), (1, 4, 0.0, 0.123)]) - @register() def test_with_replacement(self, sim=sim): C = connectors.FixedNumberPreConnector(n=3, with_replacement=True, rng=MockRNG(delta=1)) syn = sim.StaticSynapse() prj = sim.Projection(self.p1, self.p2, C, syn) - self.assertEqual(prj.get(["weight", "delay"], format='list'), + self.assertEqual(prj.get(["weight", "delay"], format='list'), [(0, 0, 0.0, 0.123), (1, 0, 0.0, 0.123), (2, 0, 0.0, 0.123), @@ -724,26 +702,26 @@ def test_with_replacement(self, sim=sim): (3, 3, 0.0, 0.123), (0, 4, 0.0, 0.123), (1, 4, 0.0, 0.123), - (2, 4, 0.0, 0.123),]) + (2, 4, 0.0, 0.123), ]) - @register() def test_with_replacement_with_neuron_0_connecting_neuron_0(self, sim=sim): n = random.RandomDistribution('binomial', (5, 0.5), rng=MockRNG3()) - C = connectors.FixedNumberPreConnector(n=n, with_replacement=True, rng=MockRNG(start=0, delta=1)) + C = connectors.FixedNumberPreConnector( + n=n, with_replacement=True, rng=MockRNG(start=0, delta=1)) syn = sim.StaticSynapse() prj = sim.Projection(self.p1, self.p2, C, syn) - self.assertEqual(prj.get(["weight", "delay"], format='list'), + self.assertEqual(prj.get(["weight", "delay"], format='list'), [(0, 0, 0.0, 0.123), ]) - - @register() + def test_with_replacement_with_variable_n(self, sim=sim): n = random.RandomDistribution('binomial', (5, 0.5), rng=MockRNG(start=1, delta=2)) - # should give (1, 3, 0, 2, 4) - C = connectors.FixedNumberPreConnector(n=n, with_replacement=True, rng=MockRNG(start=0, delta=1)) + # should give (1, 3, 0, 2, 4) + C = connectors.FixedNumberPreConnector( + n=n, with_replacement=True, rng=MockRNG(start=0, delta=1)) syn = sim.StaticSynapse() prj = sim.Projection(self.p1, self.p2, C, syn) - self.assertEqual(prj.get(["weight", "delay"], format='list'), + self.assertEqual(prj.get(["weight", "delay"], format='list'), [(0, 0, 0.0, 0.123), (1, 1, 0.0, 0.123), (2, 1, 0.0, 0.123), @@ -756,14 +734,14 @@ def test_with_replacement_with_variable_n(self, sim=sim): (1, 4, 0.0, 0.123) ]) - @register() - #TOCHECK + # TOCHECK + def test_with_replacement_no_self_connections(self, sim=sim): C = connectors.FixedNumberPreConnector(n=3, with_replacement=True, allow_self_connections=False, rng=MockRNG(start=2, delta=1)) syn = sim.StaticSynapse() prj = sim.Projection(self.p2, self.p2, C, syn) - self.assertEqual(prj.get(["weight", "delay"], format='list'), + self.assertEqual(prj.get(["weight", "delay"], format='list'), [(2, 0, 0.0, 0.123), # [2, 3, 4] --> [2, 3, 4] (3, 0, 0.0, 0.123), (4, 0, 0.0, 0.123), @@ -783,14 +761,14 @@ def test_with_replacement_no_self_connections(self, sim=sim): (3, 4, 0.0, 0.123), ]) - @register() - #TOCHECK + # TOCHECK + def test_no_replacement_no_self_connections(self, sim=sim): C = connectors.FixedNumberPreConnector(n=3, with_replacement=False, allow_self_connections=False, rng=MockRNG(start=2, delta=1)) syn = sim.StaticSynapse() prj = sim.Projection(self.p2, self.p2, C, syn) - self.assertEqual(prj.get(["weight", "delay"], format='list'), + self.assertEqual(prj.get(["weight", "delay"], format='list'), [(4, 0, 0.0, 0.123), (3, 0, 0.0, 0.123), (2, 0, 0.0, 0.123), @@ -807,13 +785,14 @@ def test_no_replacement_no_self_connections(self, sim=sim): (2, 4, 0.0, 0.123), (1, 4, 0.0, 0.123)]) - @register() - #TOCHECK + # TOCHECK + def test_with_replacement_parallel_unsafe(self, sim=sim): - C = connectors.FixedNumberPreConnector(n=3, with_replacement=True, rng=MockRNG(delta=1, parallel_safe=False)) + C = connectors.FixedNumberPreConnector( + n=3, with_replacement=True, rng=MockRNG(delta=1, parallel_safe=False)) syn = sim.StaticSynapse() prj = sim.Projection(self.p1, self.p2, C, syn) - self.assertEqual(prj.get(["weight", "delay"], format='list'), + self.assertEqual(prj.get(["weight", "delay"], format='list'), [(0, 0, 0.0, 0.123), (1, 0, 0.0, 0.123), (2, 0, 0.0, 0.123), @@ -828,14 +807,14 @@ def test_with_replacement_parallel_unsafe(self, sim=sim): (3, 3, 0.0, 0.123), (0, 4, 0.0, 0.123), (1, 4, 0.0, 0.123), - (2, 4, 0.0, 0.123),]) + (2, 4, 0.0, 0.123), ]) - @register() def test_no_replacement_parallel_unsafe(self, sim=sim): - C = connectors.FixedNumberPreConnector(n=3, with_replacement=False, rng=MockRNG(delta=1, parallel_safe=False)) + C = connectors.FixedNumberPreConnector( + n=3, with_replacement=False, rng=MockRNG(delta=1, parallel_safe=False)) syn = sim.StaticSynapse() prj = sim.Projection(self.p1, self.p2, C, syn) - self.assertEqual(prj.get(["weight", "delay"], format='list'), + self.assertEqual(prj.get(["weight", "delay"], format='list'), [(3, 0, 0.0, 0.123), (2, 0, 0.0, 0.123), (1, 0, 0.0, 0.123), @@ -850,10 +829,9 @@ def test_no_replacement_parallel_unsafe(self, sim=sim): (1, 3, 0.0, 0.123), (3, 4, 0.0, 0.123), (2, 4, 0.0, 0.123), - (1, 4, 0.0, 0.123),]) + (1, 4, 0.0, 0.123), ]) -@register_class() class TestArrayConnector(unittest.TestCase): def setUp(self, sim=sim, **extra): @@ -863,18 +841,17 @@ def setUp(self, sim=sim, **extra): def tearDown(self, sim=sim): sim.end() - - @register() + def test_connect_with_scalar_weights_and_delays(self, sim=sim): connections = numpy.array([ - [0, 1, 1, 0], - [1, 1, 0, 1], - [0, 0, 1, 0], - ], dtype=bool) + [0, 1, 1, 0], + [1, 1, 0, 1], + [0, 0, 1, 0], + ], dtype=bool) C = connectors.ArrayConnector(connections, safe=False) syn = sim.StaticSynapse(weight=5.0, delay=0.5) prj = sim.Projection(self.p1, self.p2, C, syn) - self.assertEqual(prj.get(["weight", "delay"], format='list'), + self.assertEqual(prj.get(["weight", "delay"], format='list'), [(1, 0, 5.0, 0.5), (0, 1, 5.0, 0.5), (1, 1, 5.0, 0.5), @@ -882,29 +859,29 @@ def test_connect_with_scalar_weights_and_delays(self, sim=sim): (2, 2, 5.0, 0.5), (1, 3, 5.0, 0.5)]) - @register() def test_connect_with_random_weights_parallel_safe(self, sim=sim): - rd_w = random.RandomDistribution('uniform', (0, 1), rng=MockRNG(delta=1.0, parallel_safe=True)) - rd_d = random.RandomDistribution('uniform', (0, 1), rng=MockRNG(start=1.0, delta=0.1, parallel_safe=True)) + rd_w = random.RandomDistribution( + 'uniform', (0, 1), rng=MockRNG(delta=1.0, parallel_safe=True)) + rd_d = random.RandomDistribution('uniform', (0, 1), rng=MockRNG( + start=1.0, delta=0.1, parallel_safe=True)) syn = sim.StaticSynapse(weight=rd_w, delay=rd_d) connections = numpy.array([ - [0, 1, 1, 0], - [1, 1, 0, 1], - [0, 0, 1, 0], - ], dtype=bool) + [0, 1, 1, 0], + [1, 1, 0, 1], + [0, 0, 1, 0], + ], dtype=bool) C = connectors.ArrayConnector(connections, safe=False) prj = sim.Projection(self.p1, self.p2, C, syn) rec = prj.get(["weight", "delay"], format='list') - assert_array_almost_equal([tuple(r) for r in rec], - [(1, 0, 0.0, 1.0), - (0, 1, 1.0, 1.1), - (1, 1, 2.0, 1.2), - (0, 2, 3.0, 1.3), - (2, 2, 4.0, 1.4), - (1, 3, 5.0, 1.5)]) + assert_array_almost_equal([tuple(r) for r in rec], + [(1, 0, 0.0, 1.0), + (0, 1, 1.0, 1.1), + (1, 1, 2.0, 1.2), + (0, 2, 3.0, 1.3), + (2, 2, 4.0, 1.4), + (1, 3, 5.0, 1.5)]) -@register_class() class TestCloneConnector(unittest.TestCase): def setUp(self, sim=sim, **extra): @@ -917,7 +894,7 @@ def setUp(self, sim=sim, **extra): (2, 3, 0.0, 1.0), # local (2, 2, 0.0, 1.0), (0, 1, 0.0, 1.0), # local - ] + ] list_connector = connectors.FromListConnector(connection_list) syn = sim.StaticSynapse() self.ref_prj = sim.Projection(self.p1, self.p2, list_connector, syn) @@ -934,20 +911,18 @@ def tearDown(self, sim=sim): # restore original gather_dict function recording.gather_dict = self.orig_gather_dict sim.end() - - @register() + def test_connect(self, sim=sim): syn = sim.StaticSynapse(weight=5.0, delay=0.5) C = connectors.CloneConnector(self.ref_prj) prj = sim.Projection(self.p1, self.p2, C, syn) - self.assertEqual(prj.get(["weight", "delay"], format='list'), + self.assertEqual(prj.get(["weight", "delay"], format='list'), [(0, 0, 5.0, 0.5), (3, 0, 5.0, 0.5), (0, 1, 5.0, 0.5), (2, 2, 5.0, 0.5), (2, 3, 5.0, 0.5)]) - @register() def test_connect_with_pre_post_mismatch(self, sim=sim): syn = sim.StaticSynapse() C = connectors.CloneConnector(self.ref_prj) @@ -955,7 +930,6 @@ def test_connect_with_pre_post_mismatch(self, sim=sim): self.assertRaises(errors.ConnectionError, sim.Projection, self.p1, p3, C, syn) -@register_class() class TestIndexBasedProbabilityConnector(unittest.TestCase): class IndexBasedProbability(connectors.IndexBasedExpression): @@ -980,13 +954,12 @@ def setUp(self, sim=sim, **extra): def tearDown(self, sim=sim): sim.end() - - @register() + def test_connect_with_scalar_weights_and_delays(self, sim=sim): syn = sim.StaticSynapse(weight=1.0, delay=2) C = connectors.IndexBasedProbabilityConnector(self.IndexBasedProbability()) prj = sim.Projection(self.p1, self.p2, C, syn) - self.assertEqual(prj.get(["weight", "delay"], format='list'), + self.assertEqual(prj.get(["weight", "delay"], format='list'), [(0, 0, 1., 2), (3, 0, 1., 2), (2, 1, 1., 2), @@ -996,12 +969,11 @@ def test_connect_with_scalar_weights_and_delays(self, sim=sim): (3, 3, 1., 2), (2, 4, 1., 2)]) - @register() def test_connect_with_index_based_weights(self, sim=sim): syn = sim.StaticSynapse(weight=self.IndexBasedWeights(), delay=2) C = connectors.IndexBasedProbabilityConnector(self.IndexBasedProbability()) prj = sim.Projection(self.p1, self.p2, C, syn) - self.assertEqual(prj.get(["weight", "delay"], format='list'), + self.assertEqual(prj.get(["weight", "delay"], format='list'), [(0, 0, 1., 2), (3, 0, 1., 2), (2, 1, 3., 2), @@ -1011,12 +983,11 @@ def test_connect_with_index_based_weights(self, sim=sim): (3, 3, 10., 2), (2, 4, 9., 2)]) - @register() def test_connect_with_index_based_delays(self, sim=sim): syn = sim.StaticSynapse(weight=1.0, delay=self.IndexBasedDelays()) C = connectors.IndexBasedProbabilityConnector(self.IndexBasedProbability()) prj = sim.Projection(self.p1, self.p2, C, syn) - self.assertEqual(prj.get(["weight", "delay"], format='list'), + self.assertEqual(prj.get(["weight", "delay"], format='list'), [(0, 0, 1., 1), (3, 0, 1., 4), (2, 1, 1., 4), @@ -1028,103 +999,55 @@ def test_connect_with_index_based_delays(self, sim=sim): #TOCHECK, not included -#class TestDisplacementDependentProbabilityConnector(unittest.TestCase): +# class TestDisplacementDependentProbabilityConnector(unittest.TestCase): - #def setUp(self, sim=sim, **extra): + # def setUp(self, sim=sim, **extra): #sim.setup(min_delay=0.123, **extra) - #self.p1 = sim.Population(9, sim.IF_cond_exp(), - #structure=space.Grid2D(aspect_ratio=1.0, dx=1.0, dy=1.0)) - #self.p2 = sim.Population(9, sim.HH_cond_exp(), - #structure=space.Grid2D(aspect_ratio=1.0, dx=1.0, dy=1.0)) - - #def tearDown(self, sim=sim): - #sim.end() - - #def test_connect(self, sim=sim): + # self.p1 = sim.Population(9, sim.IF_cond_exp(), + # structure=space.Grid2D(aspect_ratio=1.0, dx=1.0, dy=1.0)) + # self.p2 = sim.Population(9, sim.HH_cond_exp(), + # structure=space.Grid2D(aspect_ratio=1.0, dx=1.0, dy=1.0)) + + # def tearDown(self, sim=sim): + # sim.end() + + # def test_connect(self, sim=sim): #syn = sim.StaticSynapse(weight=1.0, delay=2) - #def displacement_expression(d): - #return 0.5 * ((d[0] >= -1) * (d[0] <= 2)) + 0.25 * (d[1] >= 0) * (d[1] <= 1) - #C = connectors.DisplacementDependentProbabilityConnector(displacement_expression, - #rng=MockRNG(delta=0.01)) + # def displacement_expression(d): + # return 0.5 * ((d[0] >= -1) * (d[0] <= 2)) + 0.25 * (d[1] >= 0) * (d[1] <= 1) + # C = connectors.DisplacementDependentProbabilityConnector(displacement_expression, + # rng=MockRNG(delta=0.01)) #prj = sim.Projection(self.p1, self.p2, C, syn) - #self.assertEqual(prj.get(["weight", "delay"], format='list'), - #[(0, 0, 1.0, 2.0), - #(1, 0, 1.0, 2.0), - #(2, 0, 1.0, 2.0), - #(3, 0, 1.0, 2.0), - #(4, 0, 1.0, 2.0), - #(5, 0, 1.0, 2.0), - #(6, 0, 1.0, 2.0), - #(0, 2, 1.0, 2.0), - #(1, 2, 1.0, 2.0), - #(2, 2, 1.0, 2.0), - #(3, 2, 1.0, 2.0), - #(4, 2, 1.0, 2.0), - #(5, 2, 1.0, 2.0), - #(0, 4, 1.0, 2.0), - #(1, 4, 1.0, 2.0), - #(2, 4, 1.0, 2.0), - #(3, 4, 1.0, 2.0), - #(4, 4, 1.0, 2.0), - #(5, 4, 1.0, 2.0), - #(6, 4, 1.0, 2.0), - #(7, 4, 1.0, 2.0), - #(8, 4, 1.0, 2.0), - #(0, 6, 1.0, 2.0), - #(3, 6, 1.0, 2.0), - #(6, 6, 1.0, 2.0), - #(1, 8, 1.0, 2.0), - #(2, 8, 1.0, 2.0)]) - -@unittest.skip('skipping these tests until I figure out how I want to refactor checks') -class CheckTest(unittest.TestCase): + # self.assertEqual(prj.get(["weight", "delay"], format='list'), + # [(0, 0, 1.0, 2.0), + #(1, 0, 1.0, 2.0), + #(2, 0, 1.0, 2.0), + #(3, 0, 1.0, 2.0), + #(4, 0, 1.0, 2.0), + #(5, 0, 1.0, 2.0), + #(6, 0, 1.0, 2.0), + #(0, 2, 1.0, 2.0), + #(1, 2, 1.0, 2.0), + #(2, 2, 1.0, 2.0), + #(3, 2, 1.0, 2.0), + #(4, 2, 1.0, 2.0), + #(5, 2, 1.0, 2.0), + #(0, 4, 1.0, 2.0), + #(1, 4, 1.0, 2.0), + #(2, 4, 1.0, 2.0), + #(3, 4, 1.0, 2.0), + #(4, 4, 1.0, 2.0), + #(5, 4, 1.0, 2.0), + #(6, 4, 1.0, 2.0), + #(7, 4, 1.0, 2.0), + #(8, 4, 1.0, 2.0), + #(0, 6, 1.0, 2.0), + #(3, 6, 1.0, 2.0), + #(6, 6, 1.0, 2.0), + #(1, 8, 1.0, 2.0), + # (2, 8, 1.0, 2.0)]) - def setUp(self, sim=sim, **extra): - self.MIN_DELAY = 0.123 - sim.setup(min_delay=0.123, **extra) - def test_check_weights_with_scalar(self, sim=sim): - self.assertEqual(4.3, connectors.check_weights(4.3, 'excitatory', is_conductance=True)) - self.assertEqual(4.3, connectors.check_weights(4.3, 'excitatory', is_conductance=False)) - self.assertEqual(4.3, connectors.check_weights(4.3, 'inhibitory', is_conductance=True)) - self.assertEqual(-4.3, connectors.check_weights(-4.3, 'inhibitory', is_conductance=False)) - self.assertEqual(connectors.DEFAULT_WEIGHT, connectors.check_weights(None, 'excitatory', is_conductance=True)) - self.assertRaises(errors.ConnectionError, connectors.check_weights, 4.3, 'inhibitory', is_conductance=False) - self.assertRaises(errors.ConnectionError, connectors.check_weights, -4.3, 'inhibitory', is_conductance=True) - self.assertRaises(errors.ConnectionError, connectors.check_weights, -4.3, 'excitatory', is_conductance=True) - self.assertRaises(errors.ConnectionError, connectors.check_weights, -4.3, 'excitatory', is_conductance=False) - - def test_check_weights_with_array(self, sim=sim): - w = numpy.arange(10) - assert_array_equal(w, connectors.check_weights(w, 'excitatory', is_conductance=True)) - assert_array_equal(w, connectors.check_weights(w, 'excitatory', is_conductance=False)) - assert_array_equal(w, connectors.check_weights(w, 'inhibitory', is_conductance=True)) - self.assertRaises(errors.ConnectionError, connectors.check_weights, w, 'inhibitory', is_conductance=False) - w = numpy.arange(-10, 0) - assert_array_equal(w, connectors.check_weights(w, 'inhibitory', is_conductance=False)) - self.assertRaises(errors.ConnectionError, connectors.check_weights, w, 'inhibitory', is_conductance=True) - self.assertRaises(errors.ConnectionError, connectors.check_weights, w, 'excitatory', is_conductance=True) - self.assertRaises(errors.ConnectionError, connectors.check_weights, w, 'excitatory', is_conductance=False) - w = numpy.arange(-5, 5) - self.assertRaises(errors.ConnectionError, connectors.check_weights, w, 'excitatory', is_conductance=True) - self.assertRaises(errors.ConnectionError, connectors.check_weights, w, 'excitatory', is_conductance=False) - self.assertRaises(errors.ConnectionError, connectors.check_weights, w, 'inhibitory', is_conductance=True) - self.assertRaises(errors.ConnectionError, connectors.check_weights, w, 'inhibitory', is_conductance=False) - - def test_check_weights_with_invalid_value(self, sim=sim): - self.assertRaises(errors.ConnectionError, connectors.check_weights, "butterflies", 'excitatory', is_conductance=True) - - def test_check_weight_is_conductance_is_None(self, sim=sim): - # need to check that a log message was created - self.assertEqual(4.3, connectors.check_weights(4.3, 'excitatory', is_conductance=None)) - - def test_check_delay(self, sim=sim): - self.assertEqual(connectors.check_delays(2 * self.MIN_DELAY, self.MIN_DELAY, 1e99), 2 * self.MIN_DELAY) - self.assertRaises(errors.ConnectionError, connectors.check_delays, 0.5 * self.MIN_DELAY, self.MIN_DELAY, 1e99) - self.assertRaises(errors.ConnectionError, connectors.check_delays, 3.0, self.MIN_DELAY, 2.0) - - -@register_class() class TestFixedTotalNumberConnector(unittest.TestCase): def setUp(self, sim=sim): @@ -1143,4 +1066,3 @@ def test_1(self): if __name__ == "__main__": unittest.main() - diff --git a/test/unittests/test_core.py b/test/unittests/test_core.py index 7f555cef4..feea4d586 100644 --- a/test/unittests/test_core.py +++ b/test/unittests/test_core.py @@ -3,19 +3,19 @@ def test_is_list_like_with_tuple(): - assert is_listlike((1, 2, 3)) - + assert is_listlike((1, 2, 3)) + def test_is_list_like_with_list(): - assert is_listlike([1, 2, 3]) + assert is_listlike([1, 2, 3]) def test_is_list_like_with_iterator(): - assert not is_listlike(iter((1, 2, 3))) + assert not is_listlike(iter((1, 2, 3))) def test_is_list_like_with_set(): - assert is_listlike(set((1, 2, 3))) + assert is_listlike(set((1, 2, 3))) def test_is_list_like_with_numpy_array(): @@ -25,6 +25,6 @@ def test_is_list_like_with_numpy_array(): def test_is_list_like_with_string(): assert not is_listlike("abcdefg") -#def test_is_list_like_with_file(): +# def test_is_list_like_with_file(): # f = file() # assert not is_listlike(f) diff --git a/test/unittests/test_descriptions.py b/test/unittests/test_descriptions.py index ce563d10f..ff6c01a13 100644 --- a/test/unittests/test_descriptions.py +++ b/test/unittests/test_descriptions.py @@ -22,12 +22,12 @@ class DescriptionTest(unittest.TestCase): def test_get_default_template_engine(self): engine = descriptions.get_default_template_engine() assert issubclass(engine, descriptions.TemplateEngine) - + def test_render_with_no_template(self): context = {'a': 2, 'b': 3} result = descriptions.render(Mock(), None, context) self.assertEqual(result, context) - + def test_render_with_template(self): engine = MockTemplateEngine context = {'a': 2, 'b': 3} @@ -35,39 +35,39 @@ def test_render_with_template(self): result = descriptions.render(engine, template, context) engine.render.assert_called_with(template, context) self.assertEqual(result, "african swallow") - + def test_StringTE_get_template(self): result = descriptions.StringTemplateEngine.get_template("$a $b c d") self.assertEqual(result.template, "$a $b c d") - + def test_StringTE_get_template_from_file(self): filename = "population_default.txt" result = descriptions.StringTemplateEngine.get_template(filename) self.assertNotEqual(result.template, filename) - + def test_StringTE_render(self): context = {'a': 2, 'b': 3} result = descriptions.StringTemplateEngine.render("$a $b c d", context) self.assertEqual(result, "2 3 c d") - + @unittest.skipUnless('jinja2' in descriptions.TEMPLATE_ENGINES, "Requires Jinja2") def test_Jinja2TE_get_template_from_file(self): filename = "population_default.txt" result = descriptions.Jinja2TemplateEngine.get_template(filename) self.assertEqual(os.path.basename(result.filename), filename) - + @unittest.skipUnless('jinja2' in descriptions.TEMPLATE_ENGINES, "Requires Jinja2") def test_Jinja2TE_render(self): context = {'a': 2, 'b': 3} result = descriptions.Jinja2TemplateEngine.render("{{a}} {{b}} c d", context) self.assertEqual(result, "2 3 c d") - + @unittest.skipUnless('cheetah' in descriptions.TEMPLATE_ENGINES, "Requires Cheetah") def test_CheetahTE_get_template_from_file(self): filename = "population_default.txt" result = descriptions.CheetahTemplateEngine.get_template(filename) # incomplete test - + @unittest.skipUnless('cheetah' in descriptions.TEMPLATE_ENGINES, "Requires Cheetah") def test_CheetahTE_render(self): context = {'a': 2, 'b': 3} diff --git a/test/unittests/test_files.py b/test/unittests/test_files.py index 685f38f86..eb7589352 100644 --- a/test/unittests/test_files.py +++ b/test/unittests/test_files.py @@ -17,20 +17,20 @@ def test__savetxt(): files.open = Mock(return_value=mock_file) files._savetxt(filename="dummy_file", data=[(0, 2.3), (1, 3.4), (2, 4.3)], - format="%f", + format="%f", delimiter=" ") target = [(('0.000000 2.300000\n',), {}), (('1.000000 3.400000\n',), {}), (('2.000000 4.300000\n',), {})] assert_equal(mock_file.write.call_args_list, target) - files.open = builtin_open - + files.open = builtin_open + def test_create_BaseFile(): files.open = Mock() bf = files.BaseFile("filename", 'r') files.open.assert_called_with("filename", "r", files.DEFAULT_BUFFER_SIZE) - files.open = builtin_open + files.open = builtin_open def test_del(): @@ -41,7 +41,7 @@ def test_del(): del bf close_mock.assert_called_with() files.open = builtin_open - + def test_close(): files.open = Mock() @@ -49,8 +49,8 @@ def test_close(): bf.close() bf.fileobj.close.assert_called_with() files.open = builtin_open - -#def test_StandardTextFile_write(): + +# def test_StandardTextFile_write(): # files.open = Mock() # stf = files.StandardTextFile("filename", "w") # data=[(0, 2.3),(1, 3.4),(2, 4.3)] @@ -63,7 +63,7 @@ def test_close(): # assert_equal(stf.fileobj.write.call_args_list, # target) # files.open = builtin_open - + def test_StandardTextFile_read(): files.open = Mock() @@ -74,7 +74,7 @@ def test_StandardTextFile_read(): numpy.loadtxt.assert_called_with(stf.fileobj) numpy.loadtxt = orig_loadtxt files.open = builtin_open - + def test_PickleFile(): pf = files.PickleFile("tmp.pickle", "wb") @@ -82,28 +82,28 @@ def test_PickleFile(): metadata = {'a': 1, 'b': 9.99} pf.write(data, metadata) pf.close() - + pf = files.PickleFile("tmp.pickle", "rb") assert_equal(pf.get_metadata(), metadata) assert_equal(pf.read(), data) pf.close() - + os.remove("tmp.pickle") - -#def test_NumpyBinaryFile(): + +# def test_NumpyBinaryFile(): # nbf = files.NumpyBinaryFile("tmp.npz", "w") # data=[(0, 2.3), (1, 3.4), (2, 4.3)] # metadata = {'a': 1, 'b': 9.99} # nbf.write(data, metadata) # nbf.close() -# +# # nbf = files.NumpyBinaryFile("tmp.npz", "r") # assert_equal(nbf.get_metadata(), metadata) # assert_arrays_equal(nbf.read().flatten(), numpy.array(data).flatten()) # nbf.close() # # os.remove("tmp.npz") - + def test_HDF5ArrayFile(): if files.have_hdf5: @@ -112,11 +112,11 @@ def test_HDF5ArrayFile(): metadata = {'a': 1, 'b': 9.99} h5f.write(data, metadata) h5f.close() - + h5f = files.HDF5ArrayFile("tmp.h5", "r") assert_equal(h5f.get_metadata(), metadata) assert_arrays_equal(numpy.array(h5f.read()).flatten(), numpy.array(data).flatten()) h5f.close() - + os.remove("tmp.h5") diff --git a/test/unittests/test_idmixin.py b/test/unittests/test_idmixin.py index 88003df37..243e8f44d 100644 --- a/test/unittests/test_idmixin.py +++ b/test/unittests/test_idmixin.py @@ -8,7 +8,8 @@ class MockStandardCell(standardmodels.StandardCellType): 'b': -34.9, 'c': 2.2, } - translations = standardmodels.build_translations(('a', 'A'), ('b', 'B'), ('c', 'C', 'c + a', 'C - A')) + translations = standardmodels.build_translations( + ('a', 'A'), ('b', 'B'), ('c', 'C', 'c + a', 'C - A')) class MockNativeCell(object): @@ -76,7 +77,7 @@ def setup(self): self.id = MockID(standard_cell=True) self.id_ns = MockID(standard_cell=False) - #def test_getattr_with_parameter_attr(self): + # def test_getattr_with_parameter_attr(self): # assert_equal(self.id.a, 76.5) # assert_equal(self.id_ns.A, 76.5) # assert_raises(errors.NonExistentParameterError, self.id.__getattr__, "tau_m") @@ -90,19 +91,19 @@ def test_getattr_with_parent_not_set(self): del(self.id.parent) assert_raises(Exception, self.id.__getattr__, "parent") - #def test_setattr_with_parameter_attr(self): + # def test_setattr_with_parameter_attr(self): # self.id.a = 87.6 # self.id_ns.A = 98.7 # assert_equal(self.id.a, 87.6) # assert_equal(self.id_ns.A, 98.7) - #def test_set_parameters(self): + # def test_set_parameters(self): # assert_raises(errors.NonExistentParameterError, self.id.set_parameters, hello='world') # ##assert_raises(errors.NonExistentParameterError, self.id_ns.set_parameters, hello='world') # self.id.set_parameters(a=12.3, c=77.7) # assert_equal(self.id._parameters, {'A': 12.3, 'B': 23.4, 'C': 90.0}) - #def test_get_parameters(self): + # def test_get_parameters(self): # assert_equal(self.id.get_parameters(), {'a': 76.5, 'b': 23.4, 'c': 23.5}) def test_celltype_property(self): diff --git a/test/unittests/test_lowlevelapi.py b/test/unittests/test_lowlevelapi.py index 20a336142..836f6bdba 100644 --- a/test/unittests/test_lowlevelapi.py +++ b/test/unittests/test_lowlevelapi.py @@ -27,15 +27,17 @@ def test_build_connect(): prj = connect_function("source", "target", "weight", "delay", "receptor_type", "p", "rng") syn_class.assert_called_with(weight="weight", delay="delay") connector_class.assert_called_with(p_connect="p", rng="rng") - projection_class.assert_called_with("source", "target", "connector", synapse_type="syn", receptor_type="receptor_type") + projection_class.assert_called_with( + "source", "target", "connector", synapse_type="syn", receptor_type="receptor_type") class MockID(common.IDMixin): - def as_view(self): + def as_view(self): return "view" prj = connect_function(MockID(), MockID(), "weight", "delay", "receptor_type", "p", "rng") - projection_class.assert_called_with("view", "view", "connector", synapse_type="syn", receptor_type="receptor_type") + projection_class.assert_called_with( + "view", "view", "connector", synapse_type="syn", receptor_type="receptor_type") def test_set(): diff --git a/test/unittests/test_nest.py b/test/unittests/test_nest.py index 36ebf231f..3e05d76ab 100644 --- a/test/unittests/test_nest.py +++ b/test/unittests/test_nest.py @@ -59,7 +59,7 @@ def setUp(self): 'i_offset': numpy.array([-0.21, -0.20, -0.19, -0.18])})) def test_create_native(self): - cell_type = sim.native_cell_type('iaf_neuron') + cell_type = sim.native_cell_type('iaf_psc_alpha') p = sim.Population(3, cell_type()) def test__get_parameters(self): @@ -103,8 +103,6 @@ def test_create_with_synapse_dynamics(self): prj = sim.Projection(self.p1, self.p2, self.all2all, synapse_type=sim.TsodyksMarkramSynapse()) - - @unittest.skip("causes core dump with NEST master branch") def test_create_with_native_synapse(self): """ Native synapse with array-like parameters and CommonProperties. @@ -131,7 +129,6 @@ def test_inhibitory_weight(self): weights_array = prj.get("weight", format="array") self.assertTrue((weights_array > 0.).all()) - @unittest.skip("causes core dump with NEST master branch") def test_create_with_homogeneous_common_properties(self): with self.assertRaises(ValueError): # create synapse type with heterogeneous common parameters diff --git a/test/unittests/test_neuron.py b/test/unittests/test_neuron.py index 403bcb5e2..ba1e5b84d 100644 --- a/test/unittests/test_neuron.py +++ b/test/unittests/test_neuron.py @@ -17,7 +17,7 @@ except ImportError: sim = False h = Mock() - + from pyNN.common import populations try: import unittest2 as unittest @@ -82,7 +82,7 @@ def __init__(self, **parameters): def inject_into(self, cell_list): for cell in cell_list: if cell.local: - self._devices += [cell] + self._devices += [cell] class MockDCSource(object): @@ -94,7 +94,7 @@ def __init__(self, **parameters): def inject_into(self, cell_list): for cell in cell_list: if cell.local: - self._devices += [cell] + self._devices += [cell] class MockID(int): @@ -121,14 +121,14 @@ class MockProjection(object): synapse_type = MockSynapseType() pre = MockPopulation() post = MockPopulation() - + @unittest.skipUnless(sim, "Requires NEURON") class TestFunctions(unittest.TestCase): def test_load_mechanisms(self): self.assertRaises(Exception, simulator.load_mechanisms, "/tmp") # not found - + def test_is_point_process(self): section = h.Section() clamp = h.SEClamp(section(0.5)) @@ -215,7 +215,7 @@ def test_dt_property(self): self.assertEqual(h.steps_per_ms, 100.0) self.assertEqual(simulator.state.dt, 0.01) - #def test_reset(self): + # def test_reset(self): # simulator.state.running = True # simulator.state.t = 17 # simulator.state.tstop = 123 @@ -228,7 +228,7 @@ def test_dt_property(self): # self.assertEqual(simulator.state.tstop, 0.0) # init._initialize = orig_initialize - #def test_run(self): + # def test_run(self): # simulator.state.reset() # simulator.state.run(12.3) # self.assertAlmostEqual(h.t, 12.3, places=11) @@ -283,7 +283,7 @@ def test_get_initial_value(self): foo_init = self.id.get_initial_value('foo') self.assertEqual(foo_init, -99.9) - #def test_set_initial_value(self): + # def test_set_initial_value(self): @unittest.skipUnless(sim, "Requires NEURON") @@ -321,8 +321,8 @@ def test_w_max_property(self): self.c._setup_plasticity(MockPlasticSynapseType(), {'wmax': 0.04, 'dendritic_delay_fraction': 0}) - self.assertEqual(self.c.w_max, 0.04) - self.c.w_max = 0.05 + self.assertEqual(self.c.wmax, 0.04) + self.c.wmax = 0.05 self.assertEqual(self.c.weight_adjuster.wmax, 0.05) @@ -382,8 +382,8 @@ def test__record(self): self.rec._record('gsyn_inh', self.cells) self.rec._record('spikes', self.cells) self.assertRaises(Exception, self.rec._record, self.cells) - - #def test__get_v(self): + + # def test__get_v(self): # self.rv.recorded['v'] = self.cells # self.cells[0]._cell.vtrace = numpy.arange(-65.0, -64.0, 0.1) # self.cells[1]._cell.vtrace = numpy.arange(-64.0, -65.0, -0.1) @@ -403,7 +403,7 @@ def test__get_spikes(self): self.assertEqual(len(sdata.spiketrains), 2) assert_array_equal(numpy.array(sdata.spiketrains[0]), self.cells[0]._cell.spike_times) - #def test__get_gsyn(self): + # def test__get_gsyn(self): # self.rg.recorded['gsyn_exc'] = self.cells # self.rg.recorded['gsyn_inh'] = self.cells # for cell in self.cells: @@ -431,7 +431,7 @@ def test__local_count(self): @unittest.skipUnless(sim, "Requires NEURON") class TestStandardIF(unittest.TestCase): - + def test_create_cond_exp(self): cell = cells.StandardIF("conductance", "exp", tau_m=12.3, c_m=0.246, v_rest=-67.8) self.assertAlmostEqual(cell.area(), 1e5, places=10) # µm² diff --git a/test/unittests/test_parameters.py b/test/unittests/test_parameters.py index f861f6d76..aa7cd1f64 100644 --- a/test/unittests/test_parameters.py +++ b/test/unittests/test_parameters.py @@ -1,7 +1,7 @@ """ Tests of the parameters module. -:copyright: Copyright 2006-2016 by the PyNN team, see AUTHORS. +:copyright: Copyright 2006-2020 by the PyNN team, see AUTHORS. :license: CeCILL, see LICENSE for details. """ @@ -54,7 +54,7 @@ def test_create_with_invalid_string(): def test_create_with_invalid_string(): assert_raises(errors.InvalidParameterValueError, LazyArray, "x+y", shape=3) - + def test_setitem_nonexpanded_same_value(): A = LazyArray(3, shape=(5,)) @@ -71,7 +71,8 @@ def test_setitem_invalid_value(): def test_setitem_nonexpanded_different_value(): A = LazyArray(3, shape=(5,)) assert A.evaluate(simplify=True) == 3 - A[0] = 4; A[4] = 5 + A[0] = 4 + A[4] = 5 assert_array_equal(A.evaluate(simplify=True), np.array([4, 3, 3, 3, 5])) @@ -84,7 +85,7 @@ def test_columnwise_iteration_with_flat_array(): def test_columnwise_iteration_with_structured_array(): input = np.arange(12).reshape((4, 3)) m = LazyArray(input, shape=(4, 3)) # 4 rows, 3 columns - cols = [col for col in m.by_column()] + cols = [col for col in m.by_column()] assert_array_equal(cols[0], input[:, 0]) assert_array_equal(cols[2], input[:, 2]) @@ -111,26 +112,26 @@ def test_columnwise_iteration_with_random_array_parallel_safe_no_mask(): def test_columnwise_iteration_with_function(): - input = lambda i, j: 2 * i + j + def input(i, j): return 2 * i + j m = LazyArray(input, shape=(4, 3)) cols = [col for col in m.by_column()] assert_array_equal(cols[0], np.array([0, 2, 4, 6])) assert_array_equal(cols[1], np.array([1, 3, 5, 7])) assert_array_equal(cols[2], np.array([2, 4, 6, 8])) - + def test_columnwise_iteration_with_flat_array_and_mask(): m = LazyArray(5, shape=(4, 3)) # 4 rows, 3 columns mask = np.array([True, False, True]) cols = [col for col in m.by_column(mask=mask)] assert_equal(cols, [5, 5]) - + def test_columnwise_iteration_with_structured_array_and_mask(): input = np.arange(12).reshape((4, 3)) m = LazyArray(input, shape=(4, 3)) # 4 rows, 3 columns mask = np.array([False, True, True]) - cols = [col for col in m.by_column(mask=mask)] + cols = [col for col in m.by_column(mask=mask)] assert_array_equal(cols[0], input[:, 1]) assert_array_equal(cols[1], input[:, 2]) @@ -178,13 +179,13 @@ def test_evaluate_with_structured_array(): def test_evaluate_with_functional_array(): - input = lambda i, j: 2 * i + j + def input(i, j): return 2 * i + j m = LazyArray(input, shape=(4, 3)) assert_array_equal(m.evaluate(), - np.array([[0, 1, 2], - [2, 3, 4], - [4, 5, 6], - [6, 7, 8]])) + np.array([[0, 1, 2], + [2, 3, 4], + [4, 5, 6], + [6, 7, 8]])) def test_iadd_with_flat_array(): @@ -207,14 +208,14 @@ def test_lt_with_flat_array(): m1 = m0 < 10 assert_equal(m1.evaluate(simplify=True), True) assert_equal(m0.evaluate(simplify=True), 5) - + def test_lt_with_structured_array(): input = np.arange(12).reshape((4, 3)) m0 = LazyArray(input, shape=(4, 3)) m1 = m0 < 5 assert_array_equal(m1.evaluate(simplify=True), input < 5) - + def test_structured_array_lt_array(): input = np.arange(12).reshape((4, 3)) @@ -235,7 +236,7 @@ def test_multiple_operations_with_structured_array(): def test_apply_function_to_constant_array(): - f = lambda m: 2 * m + 3 + def f(m): return 2 * m + 3 m0 = LazyArray(5, shape=(4, 3)) m1 = f(m0) assert isinstance(m1, larray) @@ -246,7 +247,7 @@ def test_apply_function_to_constant_array(): def test_apply_function_to_structured_array(): - f = lambda m: 2 * m + 3 + def f(m): return 2 * m + 3 input = np.arange(12).reshape((4, 3)) m0 = LazyArray(input, shape=(4, 3)) m1 = f(m0) @@ -255,15 +256,15 @@ def test_apply_function_to_structured_array(): def test_apply_function_to_functional_array(): - input = lambda i, j: 2 * i + j + def input(i, j): return 2 * i + j m0 = LazyArray(input, shape=(4, 3)) - f = lambda m: 2 * m + 3 + def f(m): return 2 * m + 3 m1 = f(m0) assert_array_equal(m1.evaluate(), - np.array([[3, 5, 7], - [7, 9, 11], - [11, 13, 15], - [15, 17, 19]])) + np.array([[3, 5, 7], + [7, 9, 11], + [11, 13, 15], + [15, 17, 19]])) def test_add_two_constant_arrays(): @@ -275,20 +276,20 @@ def test_add_two_constant_arrays(): # it is just to check I understand what's going on assert_equal(m2.base_value, m0.base_value) assert_equal(m2.operations, [(operator.add, m1)]) - + def test_add_incommensurate_arrays(): m0 = LazyArray(5, shape=(4, 3)) m1 = LazyArray(7, shape=(5, 3)) assert_raises(ValueError, m0.__add__, m1) - + def test_getitem_from_constant_array(): m = LazyArray(3, shape=(4, 3)) assert m[0, 0] == m[3, 2] == m[-1, 2] == m[-4, 2] == m[2, -3] == 3 assert_raises(IndexError, m.__getitem__, (4, 0)) assert_raises(IndexError, m.__getitem__, (2, -4)) - + def test_getitem_from_constant_array(): m = LazyArray(3 * np.ones((4, 3)), shape=(4, 3)) @@ -376,7 +377,8 @@ def test_create_with_sequence(self): schema, shape=(2,)) ps.evaluate() - assert_array_equal(ps['a'], np.array([Sequence([1, 2, 3]), Sequence([1, 2, 3])], dtype=Sequence)) + assert_array_equal(ps['a'], np.array( + [Sequence([1, 2, 3]), Sequence([1, 2, 3])], dtype=Sequence)) def test_create_with_tuple(self): schema = {'a': Sequence} @@ -384,15 +386,17 @@ def test_create_with_tuple(self): schema, shape=(2,)) ps.evaluate() - assert_array_equal(ps['a'], np.array([Sequence([1, 2, 3]), Sequence([1, 2, 3])], dtype=Sequence)) - + assert_array_equal(ps['a'], np.array( + [Sequence([1, 2, 3]), Sequence([1, 2, 3])], dtype=Sequence)) + def test_create_with_list_of_sequences(self): schema = {'a': Sequence} ps = ParameterSpace({'a': [Sequence([1, 2, 3]), Sequence([4, 5, 6])]}, schema, shape=(2,)) ps.evaluate() - assert_array_equal(ps['a'], np.array([Sequence([1, 2, 3]), Sequence([4, 5, 6])], dtype=Sequence)) + assert_array_equal(ps['a'], np.array( + [Sequence([1, 2, 3]), Sequence([4, 5, 6])], dtype=Sequence)) def test_create_with_array_of_sequences(self): schema = {'a': Sequence} @@ -400,7 +404,8 @@ def test_create_with_array_of_sequences(self): schema, shape=(2,)) ps.evaluate() - assert_array_equal(ps['a'], np.array([Sequence([1, 2, 3]), Sequence([4, 5, 6])], dtype=Sequence)) + assert_array_equal(ps['a'], np.array( + [Sequence([1, 2, 3]), Sequence([4, 5, 6])], dtype=Sequence)) def test_create_with_list_of_lists(self): schema = {'a': Sequence} @@ -408,7 +413,8 @@ def test_create_with_list_of_lists(self): schema, shape=(2,)) ps.evaluate() - assert_array_equal(ps['a'], np.array([Sequence([1, 2, 3]), Sequence([4, 5, 6])], dtype=Sequence)) + assert_array_equal(ps['a'], np.array( + [Sequence([1, 2, 3]), Sequence([4, 5, 6])], dtype=Sequence)) if __name__ == "__main__": diff --git a/test/unittests/test_population.py b/test/unittests/test_population.py index fa76ee9de..02afc9833 100644 --- a/test/unittests/test_population.py +++ b/test/unittests/test_population.py @@ -2,7 +2,7 @@ Tests of the common implementation of the Population class, using the pyNN.mock backend. -:copyright: Copyright 2006-2016 by the PyNN team, see AUTHORS. +:copyright: Copyright 2006-2020 by the PyNN team, see AUTHORS. :license: CeCILL, see LICENSE for details. """ @@ -27,8 +27,6 @@ from pyNN import random, errors, space from pyNN.parameters import Sequence -from .backends.registry import register_class, register - def setUp(): pass @@ -36,18 +34,16 @@ def setUp(): def tearDown(): pass - -@register_class() + class PopulationTest(unittest.TestCase): - + def setUp(self, sim=sim, **extra): sim.setup(**extra) - + def tearDown(self, sim=sim): sim.end() - - @register() + def test_create_with_standard_cell_simple(self, sim=sim): p = sim.Population(11, sim.IF_cond_exp()) self.assertEqual(p.size, 11) @@ -57,11 +53,10 @@ def test_create_with_standard_cell_simple(self, sim=sim): self.assertEqual(p._positions, None) self.assertEqual(p.initial_values.keys(), p.celltype.default_initial_values.keys()) - @register() def test_create_with_parameters(self, sim=sim): p = sim.Population(4, sim.IF_cond_exp(**{'tau_m': 12.3, - 'tau_syn_E': lambda i: 0.987 + 0.01 * i, - 'tau_syn_I': numpy.array([0.5, 0.6, 0.7, 0.8])})) + 'tau_syn_E': lambda i: 0.987 + 0.01 * i, + 'tau_syn_I': numpy.array([0.5, 0.6, 0.7, 0.8])})) tau_syn_E, tau_m, tau_syn_I = p.get(('tau_syn_E', 'tau_m', 'tau_syn_I'), gather=True) assert_array_almost_equal(tau_syn_E, numpy.array([0.987, 0.997, 1.007, 1.017])) self.assertAlmostEqual(tau_m, 12.3) @@ -72,7 +67,7 @@ def test_create_with_parameters(self, sim=sim): # test create native cell with params # test create with structure - @register() + def test_create_with_implicit_grid(self, sim=sim): p = sim.Population((11,), sim.IF_cond_exp()) self.assertEqual(p.size, 11) @@ -85,46 +80,40 @@ def test_create_with_implicit_grid(self, sim=sim): self.assertIsInstance(p.structure, space.Grid3D) self.assertRaises(Exception, sim.Population, (2, 3, 4, 5), sim.IF_cond_exp()) - @register() def test_create_with_empty_spike_source_array(self, sim=sim): # regression test for https://github.com/NeuralEnsemble/PyNN/issues/378 p = sim.Population(11, sim.SpikeSourceArray(spike_times=[])) - #def test_create_with_initial_values(): + # def test_create_with_initial_values(): - @register() def test_id_to_index(self, sim=sim): p = sim.Population(11, sim.IF_curr_alpha()) self.assertEqual(p.id_to_index(p[0]), 0) self.assertEqual(p.id_to_index(p[10]), 10) - @register() def test_id_to_index_with_array(self, sim=sim): p = sim.Population(11, sim.IF_curr_alpha()) assert_array_equal(p.id_to_index(p.all_cells[3:9:2]), numpy.arange(3, 9, 2)) - @register() def test_id_to_index_with_populationview(self, sim=sim): p = sim.Population(11, sim.IF_curr_alpha()) view = p[3:7] self.assertIsInstance(view, sim.PopulationView) assert_array_equal(p.id_to_index(view), numpy.arange(3, 7)) - @register() def test_id_to_index_with_invalid_id(self, sim=sim): p = sim.Population(11, sim.IF_curr_alpha()) self.assertRaises(ValueError, p.id_to_index, p.last_id + 1) self.assertRaises(ValueError, p.id_to_index, p.first_id - 1) - @register() def test_id_to_index_with_invalid_ids(self, sim=sim): p = sim.Population(11, sim.IF_curr_alpha()) self.assertRaises(ValueError, p.id_to_index, [p.first_id - 1] + p.all_cells[0:3].tolist()) - #def test_id_to_local_index(): + # def test_id_to_local_index(): # test structure property - @register() + def test_set_structure(self, sim=sim): p = sim.Population(11, sim.IF_cond_exp()) p.positions = numpy.arange(33).reshape(3, 11) @@ -134,7 +123,7 @@ def test_set_structure(self, sim=sim): self.assertEqual(p._positions, None) # test positions property - @register() + def test_get_positions(self, sim=sim): p = sim.Population(11, sim.IF_cond_exp()) pos1 = numpy.arange(33).reshape(3, 11) @@ -147,7 +136,6 @@ def test_get_positions(self, sim=sim): p.positions = pos2 assert_array_equal(p.positions, pos2) - @register() def test_set_positions(self, sim=sim): p = sim.Population(11, sim.IF_cond_exp()) assert p._structure is not None @@ -158,7 +146,6 @@ def test_set_positions(self, sim=sim): new_positions[0, 0] = 99.9 self.assertNotEqual(p.positions[0, 0], 99.9) - @register() def test_position_generator(self, sim=sim): p = sim.Population(11, sim.IF_cond_exp()) assert_array_equal(p.position_generator(0), p.positions[:, 0]) @@ -168,7 +155,6 @@ def test_position_generator(self, sim=sim): self.assertRaises(IndexError, p.position_generator, 11) self.assertRaises(IndexError, p.position_generator, -12) - @register() def test__getitem__int(self, sim=sim): # Should return the correct ID object p = sim.Population(12, sim.IF_cond_exp()) @@ -176,7 +162,6 @@ def test__getitem__int(self, sim=sim): self.assertRaises(IndexError, p.__getitem__, 12) self.assertEqual(p[-1], p[11]) - @register() def test__getitem__slice(self, sim=sim): # Should return a PopulationView with the correct parent and value # of all_cells @@ -185,39 +170,33 @@ def test__getitem__slice(self, sim=sim): self.assertEqual(pv.parent, p) assert_array_almost_equal(pv.all_cells, p.all_cells[3:9]) - @register() def test__getitem__list(self, sim=sim): p = sim.Population(23, sim.HH_cond_exp()) pv = p[list(range(3, 9))] self.assertEqual(pv.parent, p) assert_array_almost_equal(pv.all_cells, p.all_cells[3:9]) - @register() def test__getitem__tuple(self, sim=sim): p = sim.Population(23, sim.HH_cond_exp()) pv = p[(3, 5, 7)] self.assertEqual(pv.parent, p) assert_array_almost_equal(pv.all_cells, p.all_cells[[3, 5, 7]]) - @register() def test__getitem__invalid(self, sim=sim): p = sim.Population(23, sim.IF_curr_alpha()) self.assertRaises(TypeError, p.__getitem__, "foo") - @register() def test__len__(self, sim=sim): # len(p) should give the global size (all MPI nodes) p = sim.Population(77, sim.IF_cond_exp()) self.assertEqual(len(p), p.size, 77) - @register() def test_iter(self, sim=sim): p = sim.Population(6, sim.IF_curr_exp()) itr = p.__iter__() assert hasattr(itr, "next") or hasattr(itr, "__next__") self.assertEqual(len(list(itr)), 6) - @register() def test___add__two(self, sim=sim): # adding two populations should give an Assembly p1 = sim.Population(6, sim.IF_curr_exp()) @@ -226,7 +205,6 @@ def test___add__two(self, sim=sim): self.assertIsInstance(assembly, sim.Assembly) self.assertEqual(assembly.populations, [p1, p2]) - @register() def test___add__three(self, sim=sim): # adding three populations should give an Assembly p1 = sim.Population(6, sim.IF_curr_exp()) @@ -236,7 +214,6 @@ def test___add__three(self, sim=sim): self.assertIsInstance(assembly, sim.Assembly) self.assertEqual(assembly.populations, [p1, p2, p3]) - @register() def test_nearest(self, sim=sim): p = sim.Population(13, sim.IF_cond_exp()) p.positions = numpy.arange(39).reshape((13, 3)).T @@ -255,37 +232,35 @@ def test_nearest(self, sim=sim): self.assertEqual(p.nearest((3.0, 2.0, 1.0)), p[3 * y * z + 2 * z + 1]) self.assertEqual(p.nearest((3.49, 2.49, 1.49)), p[3 * y * z + 2 * z + 1]) self.assertEqual(p.nearest((3.49, 2.49, 1.51)), p[3 * y * z + 2 * z + 2]) - #self.assertEqual(p.nearest((3.49,2.49,1.5)), p[3*y*z+2*z+2]) # known to fail + # self.assertEqual(p.nearest((3.49,2.49,1.5)), p[3*y*z+2*z+2]) # known to fail #self.assertEqual(p.nearest((2.5,2.5,1.5)), p[3*y*z+3*y+2]) - @register() def test_sample(self, sim=sim): p = sim.Population(13, sim.IF_cond_exp()) rng = Mock() - rng.permutation = Mock(return_value=numpy.array([7, 4, 8, 12, 0, 3, 9, 1, 2, 11, 5, 10, 6])) + rng.permutation = Mock(return_value=numpy.array( + [7, 4, 8, 12, 0, 3, 9, 1, 2, 11, 5, 10, 6])) pv = p.sample(5, rng=rng) assert_array_equal(pv.all_cells, - p.all_cells[[7, 4, 8, 12, 0]]) + p.all_cells[[7, 4, 8, 12, 0]]) - @register() def test_get_multiple_homogeneous_params_with_gather(self, sim=sim): - p = sim.Population(4, sim.IF_cond_exp(**{'tau_m': 12.3, 'tau_syn_E': 0.987, 'tau_syn_I': 0.7})) + p = sim.Population(4, sim.IF_cond_exp( + **{'tau_m': 12.3, 'tau_syn_E': 0.987, 'tau_syn_I': 0.7})) tau_syn_E, tau_m = p.get(('tau_syn_E', 'tau_m'), gather=True) self.assertIsInstance(tau_syn_E, float) self.assertEqual(tau_syn_E, 0.987) self.assertAlmostEqual(tau_m, 12.3) - @register() def test_get_single_param_with_gather(self, sim=sim): p = sim.Population(4, sim.IF_cond_exp(tau_m=12.3, tau_syn_E=0.987, tau_syn_I=0.7)) tau_syn_E = p.get('tau_syn_E', gather=True) self.assertEqual(tau_syn_E, 0.987) - @register() def test_get_multiple_inhomogeneous_params_with_gather(self, sim=sim): p = sim.Population(4, sim.IF_cond_exp(tau_m=12.3, - tau_syn_E=[0.987, 0.988, 0.989, 0.990], - tau_syn_I=lambda i: 0.5 + 0.1 * i)) + tau_syn_E=[0.987, 0.988, 0.989, 0.990], + tau_syn_I=lambda i: 0.5 + 0.1 * i)) tau_syn_E, tau_m, tau_syn_I = p.get(('tau_syn_E', 'tau_m', 'tau_syn_I'), gather=True) self.assertIsInstance(tau_m, float) self.assertIsInstance(tau_syn_E, numpy.ndarray) @@ -293,13 +268,12 @@ def test_get_multiple_inhomogeneous_params_with_gather(self, sim=sim): self.assertAlmostEqual(tau_m, 12.3) assert_array_almost_equal(tau_syn_I, numpy.array([0.5, 0.6, 0.7, 0.8]), decimal=12) - @register(exclude=['nest', 'neuron', 'brian', 'hardware.brainscales', 'spiNNaker']) def test_get_multiple_params_no_gather(self, sim=sim): sim.simulator.state.num_processes = 2 sim.simulator.state.mpi_rank = 1 p = sim.Population(4, sim.IF_cond_exp(tau_m=12.3, - tau_syn_E=[0.987, 0.988, 0.989, 0.990], - i_offset=lambda i: -0.2 * i)) + tau_syn_E=[0.987, 0.988, 0.989, 0.990], + i_offset=lambda i: -0.2 * i)) tau_syn_E, tau_m, i_offset = p.get(('tau_syn_E', 'tau_m', 'i_offset'), gather=False) self.assertIsInstance(tau_m, float) self.assertIsInstance(tau_syn_E, numpy.ndarray) @@ -309,7 +283,6 @@ def test_get_multiple_params_no_gather(self, sim=sim): sim.simulator.state.num_processes = 1 sim.simulator.state.mpi_rank = 0 - @register() def test_get_sequence_param(self, sim=sim): p = sim.Population(3, sim.SpikeSourceArray(spike_times=[Sequence([1, 2, 3, 4]), Sequence([2, 3, 4, 5]), @@ -318,9 +291,9 @@ def test_get_sequence_param(self, sim=sim): self.assertEqual(spike_times.size, 3) assert_array_equal(spike_times[1], Sequence([2, 3, 4, 5])) - @register() def test_set(self, sim=sim): - p = sim.Population(4, sim.IF_cond_exp, {'tau_m': 12.3, 'tau_syn_E': 0.987, 'tau_syn_I': 0.7}) + p = sim.Population(4, sim.IF_cond_exp, { + 'tau_m': 12.3, 'tau_syn_E': 0.987, 'tau_syn_I': 0.7}) rng = MockRNG(start=1.21, delta=0.01, parallel_safe=True) p.set(tau_syn_E=random.RandomDistribution('uniform', (0.5, 1.5), rng=rng), tau_m=9.87) tau_m, tau_syn_E, tau_syn_I = p.get(('tau_m', 'tau_syn_E', 'tau_syn_I'), gather=True) @@ -328,35 +301,30 @@ def test_set(self, sim=sim): assert_array_almost_equal(tau_m, 9.87 * numpy.ones((4,))) assert_array_equal(tau_syn_I, 0.7 * numpy.ones((4,))) - @register() def test_set_invalid_name(self, sim=sim): p = sim.Population(9, sim.HH_cond_exp()) self.assertRaises(errors.NonExistentParameterError, p.set, foo=13.2) - @register() def test_set_invalid_type(self, sim=sim): p = sim.Population(9, sim.IF_cond_exp()) self.assertRaises(errors.InvalidParameterValueError, p.set, tau_m={}) self.assertRaises(errors.InvalidParameterValueError, p.set, v_reset='bar') - @register() def test_set_sequence(self, sim=sim): p = sim.Population(3, sim.SpikeSourceArray()) p.set(spike_times=[Sequence([1, 2, 3, 4]), - Sequence([2, 3, 4, 5]), - Sequence([3, 4, 5, 6])]) + Sequence([2, 3, 4, 5]), + Sequence([3, 4, 5, 6])]) spike_times = p.get('spike_times', gather=True) self.assertEqual(spike_times.size, 3) assert_array_equal(spike_times[1], Sequence([2, 3, 4, 5])) - - @register() + def test_set_array(self, sim=sim): p = sim.Population(5, sim.IF_cond_exp()) p.set(v_thresh=-50.0 + numpy.arange(5)) assert_array_equal(p.get('v_thresh', gather=True), - numpy.array([-50.0, -49.0, -48.0, -47.0, -46.0])) + numpy.array([-50.0, -49.0, -48.0, -47.0, -46.0])) - @register(exclude=['nest', 'neuron', 'brian', 'hardware.brainscales', 'spiNNaker']) def test_set_random_distribution_parallel_unsafe(self, sim=sim): orig_rcfg = random.get_mpi_config random.get_mpi_config = lambda: (1, 2) @@ -371,7 +339,6 @@ def test_set_random_distribution_parallel_unsafe(self, sim=sim): sim.simulator.state.num_processes = 1 sim.simulator.state.mpi_rank = 0 - @register(exclude=['nest', 'neuron', 'brian', 'hardware.brainscales', 'spiNNaker']) def test_set_random_distribution_parallel_safe(self, sim=sim): orig_rcfg = random.get_mpi_config random.get_mpi_config = lambda: (1, 2) @@ -386,7 +353,6 @@ def test_set_random_distribution_parallel_safe(self, sim=sim): sim.simulator.state.num_processes = 1 sim.simulator.state.mpi_rank = 0 - @register() def test_tset(self, sim=sim): p = sim.Population(17, sim.IF_cond_alpha()) p.set = Mock() @@ -394,7 +360,6 @@ def test_tset(self, sim=sim): p.tset("tau_m", tau_m) p.set.assert_called_with(tau_m=tau_m) - @register() def test_rset(self, sim=sim): p = sim.Population(17, sim.IF_cond_alpha()) p.set = Mock() @@ -402,9 +367,8 @@ def test_rset(self, sim=sim): p.rset("v_rest", v_rest) p.set.assert_called_with(v_rest=v_rest) - ##def test_set_with_native_rng(): + # def test_set_with_native_rng(): - @register() def test_initialize(self, sim=sim): p = sim.Population(17, sim.EIF_cond_exp_isfa_ista()) v_init = numpy.linspace(-70.0, -60.0, num=p.size) @@ -414,7 +378,6 @@ def test_initialize(self, sim=sim): assert_array_equal(p.initial_values['w'].evaluate(simplify=True), w_init) # should call p.record(('v', 'w')) and check that the recorded data starts with the initial value - @register(exclude=['hardware.brainscales']) def test_can_record(self, sim=sim): p = sim.Population(17, sim.EIF_cond_exp_isfa_ista()) assert p.can_record('v') @@ -423,7 +386,6 @@ def test_can_record(self, sim=sim): assert p.can_record('spikes') assert not p.can_record('foo') - @register() def test_record_with_single_variable(self, sim=sim): p = sim.Population(14, sim.EIF_cond_exp_isfa_ista()) p.record('v') @@ -434,7 +396,6 @@ def test_record_with_single_variable(self, sim=sim): self.assertEqual(data.analogsignals[0].name, 'v') self.assertEqual(data.analogsignals[0].shape, (n_values, p.size)) - @register(exclude=['hardware.brainscales']) def test_record_with_multiple_variables(self, sim=sim): p = sim.Population(2, sim.EIF_cond_exp_isfa_ista()) p.record(('v', 'w', 'gsyn_exc')) @@ -446,8 +407,7 @@ def test_record_with_multiple_variables(self, sim=sim): self.assertEqual(names, set(('v', 'w', 'gsyn_exc'))) for arr in data.analogsignals: self.assertEqual(arr.shape, (n_values, p.size)) - - @register() + def test_record_with_v_and_spikes(self, sim=sim): p = sim.Population(2, sim.EIF_cond_exp_isfa_ista()) p.record(('v', 'spikes')) @@ -460,31 +420,27 @@ def test_record_with_v_and_spikes(self, sim=sim): for arr in data.analogsignals: self.assertEqual(arr.shape, (n_values, p.size)) - @register() def test_record_v(self, sim=sim): p = sim.Population(2, sim.EIF_cond_exp_isfa_ista()) p.record = Mock() p.record_v("arg1") p.record.assert_called_with('v', "arg1") - @register() def test_record_gsyn(self, sim=sim): p = sim.Population(2, sim.EIF_cond_exp_isfa_ista()) p.record = Mock() p.record_gsyn("arg1") p.record.assert_called_with(['gsyn_exc', 'gsyn_inh'], "arg1") - @register() def test_record_invalid_variable(self, sim=sim): p = sim.Population(14, sim.IF_curr_alpha()) self.assertRaises(errors.RecordingError, - p.record, ('v', 'gsyn_exc')) # can't record gsyn_exc from this celltype + p.record, ('v', 'gsyn_exc')) # can't record gsyn_exc from this celltype - #def test_write_data(self, sim=sim): + # def test_write_data(self, sim=sim): # self.fail() # - @register(exclude=['hardware.brainscales']) def test_get_data_with_gather(self, sim=sim): t1 = 12.3 t2 = 13.4 @@ -522,8 +478,7 @@ def test_get_data_with_gather(self, sim=sim): self.assertEqual(w.shape, (num_points, p.size)) self.assertEqual(v.t_start, 0.0) self.assertEqual(len(seg1.spiketrains), p.size) - - @register(exclude=['nest', 'neuron', 'brian', 'hardware.brainscales', 'spiNNaker']) + def test_get_spikes_with_gather(self, sim=sim): t1 = 12.3 t2 = 13.4 @@ -547,12 +502,11 @@ def test_get_spikes_with_gather(self, sim=sim): self.assertEqual(len(seg1.analogsignals), 2) self.assertEqual(len(seg1.spiketrains), p.size) assert_array_equal(seg1.spiketrains[7], - numpy.array([p.first_id + 7, p.first_id + 7 + 5]) % t3) + numpy.array([p.first_id + 7, p.first_id + 7 + 5]) % t3) - #def test_get_data_no_gather(self, sim=sim): + # def test_get_data_no_gather(self, sim=sim): # self.fail() - @register() def test_printSpikes(self, sim=sim): # TODO: implement assert_deprecated p = sim.Population(3, sim.IF_curr_alpha()) @@ -562,7 +516,6 @@ def test_printSpikes(self, sim=sim): p.printSpikes("foo.txt") p.write_data.assert_called_with('foo.txt', 'spikes', True) - @register() def test_getSpikes(self, sim=sim): p = sim.Population(3, sim.IF_curr_alpha()) p.record('spikes') @@ -571,7 +524,6 @@ def test_getSpikes(self, sim=sim): p.getSpikes() p.get_data.assert_called_with('spikes', True) - @register() def test_print_v(self, sim=sim): p = sim.Population(3, sim.IF_curr_alpha()) p.record_v() @@ -580,7 +532,6 @@ def test_print_v(self, sim=sim): p.print_v("foo.txt") p.write_data.assert_called_with('foo.txt', 'v', True) - @register() def test_get_v(self, sim=sim): p = sim.Population(3, sim.IF_curr_alpha()) p.record_v() @@ -589,7 +540,6 @@ def test_get_v(self, sim=sim): p.get_v() p.get_data.assert_called_with('v', True) - @register(exclude=['hardware.brainscales']) def test_print_gsyn(self, sim=sim): p = sim.Population(3, sim.IF_cond_alpha()) p.record_gsyn() @@ -598,7 +548,6 @@ def test_print_gsyn(self, sim=sim): p.print_gsyn("foo.txt") p.write_data.assert_called_with('foo.txt', ['gsyn_exc', 'gsyn_inh'], True) - @register(exclude=['hardware.brainscales']) def test_get_gsyn(self, sim=sim): p = sim.Population(3, sim.IF_cond_alpha()) p.record_gsyn() @@ -607,26 +556,24 @@ def test_get_gsyn(self, sim=sim): p.get_gsyn() p.get_data.assert_called_with(['gsyn_exc', 'gsyn_inh'], True) - @register(exclude=['nest', 'neuron', 'brian', 'hardware.brainscales', 'spiNNaker']) def test_get_spike_counts(self, sim=sim): p = sim.Population(3, sim.EIF_cond_exp_isfa_ista()) p.record('spikes') sim.run(100.0) self.assertEqual(p.get_spike_counts(), - {p.all_cells[0]: 2, - p.all_cells[1]: 2, - p.all_cells[2]: 2}) + {p.all_cells[0]: 2, + p.all_cells[1]: 2, + p.all_cells[2]: 2}) - @register(exclude=['nest', 'neuron', 'brian', 'hardware.brainscales', 'spiNNaker']) def test_mean_spike_count(self, sim=sim): p = sim.Population(14, sim.EIF_cond_exp_isfa_ista()) p.record('spikes') sim.run(100.0) - self.assertEqual(p.mean_spike_count(), 2.0) # mock backend always produces two spikes per population + # mock backend always produces two spikes per population + self.assertEqual(p.mean_spike_count(), 2.0) - ##def test_mean_spike_count_on_slave_node(): + # def test_mean_spike_count_on_slave_node(): - @register() def test_meanSpikeCount(self, sim=sim): p = sim.Population(14, sim.EIF_cond_exp_isfa_ista()) p.record('spikes') @@ -635,7 +582,6 @@ def test_meanSpikeCount(self, sim=sim): p.meanSpikeCount() self.assertTrue(p.mean_spike_count.called) - @register() def test_inject(self, sim=sim): p = sim.Population(3, sim.IF_curr_alpha()) cs = Mock() @@ -644,22 +590,20 @@ def test_inject(self, sim=sim): self.assertEqual(meth, "inject_into") self.assertEqual(args, (p,)) - @register() def test_inject_into_invalid_celltype(self, sim=sim): p = sim.Population(3, sim.SpikeSourceArray()) self.assertRaises(TypeError, p.inject, Mock()) - #def test_save_positions(self, sim=sim): + # def test_save_positions(self, sim=sim): # self.fail() # test describe method - @register() + def test_describe(self, sim=sim): p = sim.Population(11, sim.IF_cond_exp()) self.assertIsInstance(p.describe(), basestring) self.assertIsInstance(p.describe(template=None), dict) - @register() def test_save_positions(self, sim=sim): import os p = sim.Population(4, sim.IF_cond_exp(), ) @@ -667,10 +611,10 @@ def test_save_positions(self, sim=sim): output_file = Mock() p.save_positions(output_file) assert_array_equal(output_file.write.call_args[0][0], - numpy.array([[0, 15, 16, 17], - [1, 18, 19, 20], - [2, 21, 22, 23], - [3, 24, 25, 26]])) + numpy.array([[0, 15, 16, 17], + [1, 18, 19, 20], + [2, 21, 22, 23], + [3, 24, 25, 26]])) self.assertEqual(output_file.write.call_args[0][1], {'population': p.label}) diff --git a/test/unittests/test_populationview.py b/test/unittests/test_populationview.py index 640d1a88e..643293f9e 100644 --- a/test/unittests/test_populationview.py +++ b/test/unittests/test_populationview.py @@ -2,7 +2,7 @@ Tests of the common implementation of the PopulationView class, using the pyNN.mock backend. -:copyright: Copyright 2006-2016 by the PyNN team, see AUTHORS. +:copyright: Copyright 2006-2020 by the PyNN team, see AUTHORS. :license: CeCILL, see LICENSE for details. """ @@ -27,8 +27,6 @@ from pyNN import random, errors, space from pyNN.parameters import Sequence -from .backends.registry import register_class, register - def setUp(): pass @@ -36,19 +34,18 @@ def setUp(): def tearDown(): pass - -@register_class() + class PopulationViewTest(unittest.TestCase): def setUp(self, sim=sim, **extra): sim.setup(**extra) - + def tearDown(self, sim=sim): sim.end() - + # test create with population parent and mask selector - @register() + def test_create_with_slice_selector(self, sim=sim): p = sim.Population(11, sim.IF_cond_exp()) mask = slice(3, 9, 2) @@ -56,31 +53,32 @@ def test_create_with_slice_selector(self, sim=sim): self.assertEqual(pv.parent, p) self.assertEqual(pv.size, 3) self.assertEqual(pv.mask, mask) - assert_array_equal(pv.all_cells, numpy.array([p.all_cells[3], p.all_cells[5], p.all_cells[7]])) + assert_array_equal(pv.all_cells, numpy.array( + [p.all_cells[3], p.all_cells[5], p.all_cells[7]])) #assert_array_equal(pv.local_cells, numpy.array([p.all_cells[3]])) #assert_array_equal(pv._mask_local, numpy.array([1,0,0], dtype=bool)) self.assertEqual(pv.celltype, p.celltype) self.assertEqual(pv.first_id, p.all_cells[3]) self.assertEqual(pv.last_id, p.all_cells[7]) - @register() def test_create_with_boolean_array_selector(self, sim=sim): p = sim.Population(11, sim.IF_cond_exp()) mask = numpy.array([0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0], dtype=bool) pv = sim.PopulationView(parent=p, selector=mask) - assert_array_equal(pv.all_cells, numpy.array([p.all_cells[3], p.all_cells[5], p.all_cells[7]])) + assert_array_equal(pv.all_cells, numpy.array( + [p.all_cells[3], p.all_cells[5], p.all_cells[7]])) #assert_array_equal(pv.mask, mask) - @register() def test_create_with_index_array_selector(self, sim=sim): p = sim.Population(11, sim.IF_cond_alpha()) mask = numpy.array([3, 5, 7]) pv = sim.PopulationView(parent=p, selector=mask) - assert_array_equal(pv.all_cells, numpy.array([p.all_cells[3], p.all_cells[5], p.all_cells[7]])) + assert_array_equal(pv.all_cells, numpy.array( + [p.all_cells[3], p.all_cells[5], p.all_cells[7]])) assert_array_equal(pv.mask, mask) # test create with populationview parent and mask selector - @register() + def test_create_with_slice_selector(self, sim=sim): p = sim.Population(11, sim.HH_cond_exp()) mask1 = slice(0, 9, 1) @@ -88,13 +86,14 @@ def test_create_with_slice_selector(self, sim=sim): assert_array_equal(pv1.all_cells, p.all_cells[0:9]) mask2 = slice(3, 9, 2) pv2 = sim.PopulationView(parent=pv1, selector=mask2) - self.assertEqual(pv2.parent, pv1) # or would it be better to resolve the parent chain up to an actual Population? - assert_array_equal(pv2.all_cells, numpy.array([p.all_cells[3], p.all_cells[5], p.all_cells[7]])) + # or would it be better to resolve the parent chain up to an actual Population? + self.assertEqual(pv2.parent, pv1) + assert_array_equal(pv2.all_cells, numpy.array( + [p.all_cells[3], p.all_cells[5], p.all_cells[7]])) #assert_array_equal(pv2._mask_local, numpy.array([1,0,0], dtype=bool)) # test initial values property - @register() def test_structure_property(self, sim=sim): p = sim.Population(11, sim.SpikeSourcePoisson()) mask = slice(3, 9, 2) @@ -102,7 +101,7 @@ def test_structure_property(self, sim=sim): self.assertEqual(pv.structure, p.structure) # test positions property - @register() + def test_get_positions(self, sim=sim): p = sim.Population(11, sim.IF_curr_exp()) ppos = numpy.random.uniform(size=(3, 11)) @@ -110,7 +109,6 @@ def test_get_positions(self, sim=sim): pv = sim.PopulationView(parent=p, selector=slice(3, 9, 2)) assert_array_equal(pv.positions, numpy.array([ppos[:, 3], ppos[:, 5], ppos[:, 7]]).T) - @register() def test_id_to_index(self, sim=sim): p = sim.Population(11, sim.IF_curr_alpha()) pv = p[2, 5, 7, 8] @@ -119,13 +117,11 @@ def test_id_to_index(self, sim=sim): self.assertEqual(pv.id_to_index(p[2]), 0) self.assertEqual(pv.id_to_index(p[8]), 3) - @register() def test_id_to_index_with_array(self, sim=sim): p = sim.Population(121, sim.IF_curr_alpha()) pv = p[2, 5, 7, 8, 19, 37, 49, 82, 83, 99] assert_array_equal(pv.id_to_index(pv.all_cells[3:9:2]), numpy.arange(3, 9, 2)) - @register() def test_id_to_index_with_invalid_id(self, sim=sim): p = sim.Population(11, sim.IF_curr_alpha()) pv = p[2, 5, 7, 8] @@ -138,10 +134,10 @@ def test_id_to_index_with_invalid_id(self, sim=sim): # self.assertRaises(IndexError, pv.id_to_index, p.all_cells[[2, 5, 6]]) # currently failing - ##def test_id_to_local_index(): + # def test_id_to_local_index(): + + # test structure property - ## test structure property - @register() def test_set_structure(self, sim=sim): p = sim.Population(11, sim.IF_cond_exp(), structure=space.Grid2D()) pv = p[2, 5, 7, 8] @@ -151,8 +147,8 @@ def set_struct(struct): pv.structure = struct self.assertRaises(AttributeError, set_struct, new_struct) - ## test positions property - @register() + # test positions property + def test_get_positions(self, sim=sim): p = sim.Population(11, sim.IF_cond_exp()) pos = numpy.arange(33).reshape(3, 11) @@ -160,7 +156,6 @@ def test_get_positions(self, sim=sim): pv = p[2, 5, 7, 8] assert_array_equal(pv.positions, pos[:, [2, 5, 7, 8]]) - @register() def test_position_generator(self, sim=sim): p = sim.Population(11, sim.IF_cond_exp()) pv = p[2, 5, 7, 8] @@ -171,7 +166,6 @@ def test_position_generator(self, sim=sim): self.assertRaises(IndexError, pv.position_generator, 4) self.assertRaises(IndexError, pv.position_generator, -5) - @register() def test__getitem__int(self, sim=sim): # Should return the correct ID object p = sim.Population(12, sim.IF_cond_exp()) @@ -182,7 +176,6 @@ def test__getitem__int(self, sim=sim): self.assertRaises(IndexError, pv.__getitem__, 6) self.assertEqual(pv[-1], p[11], 53) - @register() def test__getitem__slice(self, sim=sim): # Should return a PopulationView with the correct parent and value # of all_cells @@ -195,16 +188,14 @@ def test__getitem__slice(self, sim=sim): assert_array_equal(pv2.all_cells, pv1.all_cells[[2, 3, 4, 5]]) assert_array_equal(pv2.all_cells, p.all_cells[[6, 8, 11, 12]]) - @register() def test__getitem__list(self, sim=sim): - p = sim.Population(23, sim.HH_cond_exp()) - pv1 = p[1, 5, 6, 8, 11, 12, 15, 16, 19, 20] + p = sim.Population(23, sim.HH_cond_exp()) + pv1 = p[1, 5, 6, 8, 11, 12, 15, 16, 19, 20] - pv2 = pv1[list(range(3, 8))] - self.assertEqual(pv2.parent, pv1) - assert_array_almost_equal(pv2.all_cells, p.all_cells[[8, 11, 12, 15, 16]]) + pv2 = pv1[list(range(3, 8))] + self.assertEqual(pv2.parent, pv1) + assert_array_almost_equal(pv2.all_cells, p.all_cells[[8, 11, 12, 15, 16]]) - @register() def test__getitem__tuple(self, sim=sim): p = sim.Population(23, sim.HH_cond_exp()) pv1 = p[1, 5, 6, 8, 11, 12, 15, 16, 19, 20] @@ -213,20 +204,17 @@ def test__getitem__tuple(self, sim=sim): self.assertEqual(pv2.parent, pv1) assert_array_almost_equal(pv2.all_cells, p.all_cells[[8, 12, 16]]) - @register() def test__getitem__invalid(self, sim=sim): p = sim.Population(23, sim.IF_curr_alpha()) pv = p[1, 5, 6, 8, 11, 12, 15, 16, 19, 20] self.assertRaises(TypeError, pv.__getitem__, "foo") - @register() def test__len__(self, sim=sim): # len(p) should give the global size (all MPI nodes) p = sim.Population(77, sim.IF_cond_exp()) pv = p[1, 5, 6, 8, 11, 12, 15, 16, 19, 20] self.assertEqual(len(pv), pv.size, 10) - @register() def test_iter(self, sim=sim): p = sim.Population(33, sim.IF_curr_exp()) pv = p[1, 5, 6, 8, 11, 12] @@ -234,7 +222,6 @@ def test_iter(self, sim=sim): assert hasattr(itr, "next") or hasattr(itr, "__next__") self.assertEqual(len(list(itr)), 6) - @register() def test___add__two(self, sim=sim): # adding two population views should give an Assembly pv1 = sim.Population(6, sim.IF_curr_exp())[2, 3, 5] @@ -243,7 +230,6 @@ def test___add__two(self, sim=sim): self.assertIsInstance(assembly, sim.Assembly) self.assertEqual(assembly.populations, [pv1, pv2]) - @register() def test___add__three(self, sim=sim): # adding three population views should give an Assembly pv1 = sim.Population(6, sim.IF_curr_exp())[0:3] @@ -253,7 +239,6 @@ def test___add__three(self, sim=sim): self.assertIsInstance(assembly, sim.Assembly) self.assertEqual(assembly.populations, [pv1, pv2, pv3]) - @register() def test_nearest(self, sim=sim): p = sim.Population(13, sim.IF_cond_exp()) p.positions = numpy.arange(39).reshape((13, 3)).T @@ -264,7 +249,6 @@ def test_nearest(self, sim=sim): self.assertEqual(pv.nearest((1.49, 2.49, 3.49)), pv[0]) self.assertEqual(pv.nearest((1.51, 2.51, 3.51)), pv[0]) - @register() def test_sample(self, sim=sim): p = sim.Population(13, sim.IF_cond_exp()) pv1 = p[0, 3, 7, 10, 12] @@ -275,22 +259,21 @@ def test_sample(self, sim=sim): assert_array_equal(pv2.all_cells, p.all_cells[[10, 3, 0]]) - @register() def test_get_multiple_homogeneous_params_with_gather(self, sim=sim): - p = sim.Population(10, sim.IF_cond_exp, {'tau_m': 12.3, 'tau_syn_E': 0.987, 'tau_syn_I': 0.7}) + p = sim.Population(10, sim.IF_cond_exp, { + 'tau_m': 12.3, 'tau_syn_E': 0.987, 'tau_syn_I': 0.7}) pv = p[3:7] tau_syn_E, tau_m = pv.get(('tau_syn_E', 'tau_m'), gather=True) self.assertEqual(tau_syn_E, 0.987) self.assertAlmostEqual(tau_m, 12.3) - @register() def test_get_single_homogeneous_param_with_gather(self, sim=sim): - p = sim.Population(4, sim.IF_cond_exp, {'tau_m': 12.3, 'tau_syn_E': 0.987, 'tau_syn_I': 0.7}) + p = sim.Population(4, sim.IF_cond_exp, { + 'tau_m': 12.3, 'tau_syn_E': 0.987, 'tau_syn_I': 0.7}) pv = p[:] tau_syn_E = pv.get('tau_syn_E', gather=True) self.assertEqual(tau_syn_E, 0.987) - @register() def test_get_multiple_inhomogeneous_params_with_gather(self, sim=sim): p = sim.Population(4, sim.IF_cond_exp(tau_m=12.3, tau_syn_E=[0.987, 0.988, 0.989, 0.990], @@ -303,9 +286,8 @@ def test_get_multiple_inhomogeneous_params_with_gather(self, sim=sim): self.assertAlmostEqual(tau_m, 12.3) assert_array_almost_equal(tau_syn_I, numpy.array([0.5, 0.6, 0.8]), decimal=12) - ##def test_get_multiple_params_no_gather(self, sim=sim): + # def test_get_multiple_params_no_gather(self, sim=sim): - @register() def test_get_sequence_param(self, sim=sim): p = sim.Population(3, sim.SpikeSourceArray, {'spike_times': [Sequence([1, 2, 3, 4]), @@ -316,9 +298,9 @@ def test_get_sequence_param(self, sim=sim): self.assertEqual(spike_times.size, 2) assert_array_equal(spike_times[1], Sequence([3, 4, 5, 6])) - @register() def test_set(self, sim=sim): - p = sim.Population(4, sim.IF_cond_exp, {'tau_m': 12.3, 'tau_syn_E': 0.987, 'tau_syn_I': 0.7}) + p = sim.Population(4, sim.IF_cond_exp, { + 'tau_m': 12.3, 'tau_syn_E': 0.987, 'tau_syn_I': 0.7}) pv = p[:3] rng = MockRNG(start=1.21, delta=0.01, parallel_safe=True) pv.set(tau_syn_E=random.RandomDistribution('uniform', (0.8, 1.2), rng=rng), tau_m=9.87) @@ -332,32 +314,28 @@ def test_set(self, sim=sim): assert_array_almost_equal(tau_m, numpy.array([9.87, 9.87, 9.87])) assert_array_equal(tau_syn_I, 0.7 * numpy.ones((3,))) - @register() def test_set_invalid_name(self, sim=sim): p = sim.Population(9, sim.HH_cond_exp()) pv = p[3:5] self.assertRaises(errors.NonExistentParameterError, pv.set, foo=13.2) - @register() def test_set_invalid_type(self, sim=sim): p = sim.Population(9, sim.IF_cond_exp()) pv = p[::3] self.assertRaises(errors.InvalidParameterValueError, pv.set, tau_m={}) self.assertRaises(errors.InvalidParameterValueError, pv.set, v_reset='bar') - @register() def test_set_sequence(self, sim=sim): p = sim.Population(5, sim.SpikeSourceArray()) pv = p[0, 2, 4] pv.set(spike_times=[Sequence([1, 2, 3, 4]), - Sequence([2, 3, 4, 5]), - Sequence([3, 4, 5, 6])]) + Sequence([2, 3, 4, 5]), + Sequence([3, 4, 5, 6])]) spike_times = p.get('spike_times', gather=True) self.assertEqual(spike_times.size, 5) assert_array_equal(spike_times[1], Sequence([])) assert_array_equal(spike_times[2], Sequence([2, 3, 4, 5])) - @register() def test_set_array(self, sim=sim): p = sim.Population(5, sim.IF_cond_exp, {'v_thresh': -54.3}) pv = p[2:] @@ -365,7 +343,6 @@ def test_set_array(self, sim=sim): assert_array_equal(p.get('v_thresh', gather=True), numpy.array([-54.3, -54.3, -50.0, -49.0, -48.0])) - @register() def test_tset(self, sim=sim): p = sim.Population(17, sim.IF_cond_alpha()) pv = p[::4] @@ -374,7 +351,6 @@ def test_tset(self, sim=sim): pv.tset("tau_m", tau_m) pv.set.assert_called_with(tau_m=tau_m) - @register() def test_rset(self, sim=sim): p = sim.Population(17, sim.IF_cond_alpha()) pv = p[::4] @@ -383,9 +359,9 @@ def test_rset(self, sim=sim): pv.rset("v_rest", v_rest) pv.set.assert_called_with(v_rest=v_rest) - #def test_set_with_native_rng(): + # def test_set_with_native_rng(): - #def test_initialize(self, sim=sim): + # def test_initialize(self, sim=sim): # p = sim.Population(7, sim.EIF_cond_exp_isfa_ista, # initial_values={'v': -65.4, 'w': 0.0}) # pv = p[::2] @@ -399,7 +375,6 @@ def test_rset(self, sim=sim): # numpy.array([0.1, 0.0, 0.1, 0.0, 0.1, 0.0, 0.1])) # # should call p.record(('v', 'w')) and check that the recorded data starts with the initial value - @register(exclude=['hardware.brainscales']) def test_can_record(self, sim=sim): pv = sim.Population(17, sim.EIF_cond_exp_isfa_ista())[::2] assert pv.can_record('v') @@ -408,7 +383,6 @@ def test_can_record(self, sim=sim): assert pv.can_record('spikes') assert not pv.can_record('foo') - @register() def test_record_with_single_variable(self, sim=sim): p = sim.Population(14, sim.EIF_cond_exp_isfa_ista()) pv = p[0, 4, 6, 13] @@ -420,7 +394,6 @@ def test_record_with_single_variable(self, sim=sim): self.assertEqual(data.analogsignals[0].name, 'v') self.assertEqual(data.analogsignals[0].shape, (n_values, pv.size)) - @register(exclude=['hardware.brainscales']) def test_record_with_multiple_variables(self, sim=sim): p = sim.Population(4, sim.EIF_cond_exp_isfa_ista()) pv = p[0, 3] @@ -433,8 +406,7 @@ def test_record_with_multiple_variables(self, sim=sim): self.assertEqual(names, set(('v', 'w', 'gsyn_exc'))) for arr in data.analogsignals: self.assertEqual(arr.shape, (n_values, pv.size)) - - @register() + def test_record_with_v_spikes(self, sim=sim): p = sim.Population(4, sim.EIF_cond_exp_isfa_ista()) pv = p[0, 3] @@ -448,31 +420,27 @@ def test_record_with_v_spikes(self, sim=sim): for arr in data.analogsignals: self.assertEqual(arr.shape, (n_values, pv.size)) - @register() def test_record_v(self, sim=sim): pv = sim.Population(2, sim.EIF_cond_exp_isfa_ista())[0:1] pv.record = Mock() pv.record_v("arg1") pv.record.assert_called_with('v', "arg1") - @register() def test_record_gsyn(self, sim=sim): pv = sim.Population(2, sim.EIF_cond_exp_isfa_ista())[1:] pv.record = Mock() pv.record_gsyn("arg1") pv.record.assert_called_with(['gsyn_exc', 'gsyn_inh'], "arg1") - @register() def test_record_invalid_variable(self, sim=sim): pv = sim.Population(14, sim.IF_curr_alpha())[::3] self.assertRaises(errors.RecordingError, pv.record, ('v', 'gsyn_exc')) # can't record gsyn_exc from this celltype - #def test_write_data(self, sim=sim): + # def test_write_data(self, sim=sim): # self.fail() # - @register() def test_get_data_with_gather(self, sim=sim): t1 = 12.3 t2 = 13.4 @@ -511,8 +479,7 @@ def test_get_data_with_gather(self, sim=sim): self.assertEqual(w.shape, (num_points, pv.size)) self.assertEqual(v.t_start, 0.0) self.assertEqual(len(seg1.spiketrains), pv.size) - - @register(exclude=['nest', 'neuron', 'brian', 'hardware.brainscales', 'spiNNaker']) + def test_get_data_with_gather(self, sim=sim): t1 = 12.3 t2 = 13.4 @@ -540,12 +507,11 @@ def test_get_data_with_gather(self, sim=sim): self.assertEqual(len(seg1.analogsignals), 2) self.assertEqual(len(seg1.spiketrains), pv.size) assert_array_equal(seg1.spiketrains[2], - numpy.array([p.first_id + 6, p.first_id + 6 + 5]) % t3) + numpy.array([p.first_id + 6, p.first_id + 6 + 5]) % t3) - #def test_get_data_no_gather(self, sim=sim): + # def test_get_data_no_gather(self, sim=sim): # self.fail() - @register(exclude=['nest', 'neuron', 'brian', 'hardware.brainscales', 'spiNNaker']) def test_get_spike_counts(self, sim=sim): p = sim.Population(5, sim.EIF_cond_exp_isfa_ista()) pv = p[0, 1, 4] @@ -556,7 +522,6 @@ def test_get_spike_counts(self, sim=sim): p.all_cells[1]: 2, p.all_cells[4]: 2}) - @register(exclude=['nest', 'neuron', 'brian', 'hardware.brainscales', 'spiNNaker']) def test_mean_spike_count(self, sim=sim): p = sim.Population(14, sim.EIF_cond_exp_isfa_ista()) pv = p[2::3] @@ -564,9 +529,8 @@ def test_mean_spike_count(self, sim=sim): sim.run(100.0) self.assertEqual(p.mean_spike_count(), 2.0) - #def test_mean_spike_count_on_slave_node(): + # def test_mean_spike_count_on_slave_node(): - @register() def test_inject(self, sim=sim): pv = sim.Population(3, sim.IF_curr_alpha())[1, 2] cs = Mock() @@ -575,29 +539,45 @@ def test_inject(self, sim=sim): self.assertEqual(meth, "inject_into") self.assertEqual(args, (pv,)) - @register() def test_inject_into_invalid_celltype(self, sim=sim): pv = sim.Population(3, sim.SpikeSourceArray())[:2] self.assertRaises(TypeError, pv.inject, Mock()) - #def test_save_positions(self, sim=sim): + # def test_save_positions(self, sim=sim): # self.fail() # test describe method - @register() + def test_describe(self, sim=sim): pv = sim.Population(11, sim.IF_cond_exp())[::4] self.assertIsInstance(pv.describe(), basestring) self.assertIsInstance(pv.describe(template=None), dict) - @register() def test_index_in_grandparent(self, sim=sim): pv1 = sim.Population(11, sim.IF_cond_exp())[0, 1, 3, 4, 6, 7, 9] pv2 = pv1[2, 3, 5, 6] assert_array_equal(pv1.index_in_grandparent([2, 4, 6]), numpy.array([3, 6, 9])) assert_array_equal(pv2.index_in_grandparent([0, 1, 3]), numpy.array([3, 4, 9])) - @register() + def test_index_from_parent_index(self, sim=sim): + parent = sim.Population(20, sim.IF_cond_exp()) + + # test with slice mask + pv1 = parent[2:16:3] + assert_array_equal( + pv1.index_from_parent_index(numpy.array([2, 5, 8, 11, 14])), + numpy.array([0, 1, 2, 3, 4]) + ) + self.assertEqual(pv1.index_from_parent_index(11), 3) + + # test with array mask + pv2 = parent[numpy.array([1, 2, 3, 5, 8, 13])] + assert_array_equal( + pv2.index_from_parent_index(numpy.array([2, 5, 13])), + numpy.array([1, 3, 5]) + ) + + def test_save_positions(self, sim=sim): import os p = sim.Population(7, sim.IF_cond_exp()) @@ -606,10 +586,11 @@ def test_save_positions(self, sim=sim): output_file = Mock() pv.save_positions(output_file) assert_array_equal(output_file.write.call_args[0][0], - numpy.array([[0, 21, 22, 23], - [1, 27, 28, 29], - [2, 30, 31, 32]])) + numpy.array([[0, 21, 22, 23], + [1, 27, 28, 29], + [2, 30, 31, 32]])) self.assertEqual(output_file.write.call_args[0][1], {'population': pv.label}) + if __name__ == "__main__": unittest.main() diff --git a/test/unittests/test_projection.py b/test/unittests/test_projection.py index e80a0c4e3..9f850aec5 100644 --- a/test/unittests/test_projection.py +++ b/test/unittests/test_projection.py @@ -2,7 +2,7 @@ Tests of the common implementation of the Projection class, using the pyNN.mock backend. -:copyright: Copyright 2006-2016 by the PyNN team, see AUTHORS. +:copyright: Copyright 2006-2020 by the PyNN team, see AUTHORS. :license: CeCILL, see LICENSE for details. """ @@ -26,11 +26,9 @@ from .mocks import MockRNG import pyNN.mock as sim -from pyNN import random, errors, space +from pyNN import random, errors, space, standardmodels from pyNN.parameters import Sequence -from .backends.registry import register_class, register - def _sort_by_column(A, col): A = numpy.array(A) @@ -42,7 +40,6 @@ def setUp(): pass -@register_class() class ProjectionTest(unittest.TestCase): def setUp(self, sim=sim, **extra): @@ -58,51 +55,57 @@ def setUp(self, sim=sim, **extra): def tearDown(self, sim=sim): sim.end() - - @register() + def test_create_simple(self, sim=sim): prj = sim.Projection(self.p1, self.p2, connector=self.all2all, synapse_type=self.syn2) - @register() def test_create_with_presynaptic_assembly(self, sim=sim): - prj = sim.Projection(self.p1 + self.p2, self.p2, connector=self.all2all, synapse_type=self.syn2) + prj = sim.Projection(self.p1 + self.p2, self.p2, + connector=self.all2all, synapse_type=self.syn2) - @register() def test_create_with_homogeneous_postsynaptic_assembly(self, sim=sim): - prj = sim.Projection(self.p1, self.p1 + self.p2, connector=self.all2all, synapse_type=self.syn2) + prj = sim.Projection(self.p1, self.p1 + self.p2, + connector=self.all2all, synapse_type=self.syn2) - @register(exclude=['hardware.brainscales']) def test_create_with_inhomogeneous_postsynaptic_assembly(self, sim=sim): self.assertRaises(errors.ConnectionError, sim.Projection, self.p1, self.p1 + self.p3, connector=self.all2all, synapse_type=self.syn2) - @register() def test_create_with_fast_synapse_dynamics(self, sim=sim): depressing = sim.TsodyksMarkramSynapse(U=0.5, tau_rec=80.0, tau_facil=0.0) prj = sim.Projection(self.p1, self.p2, connector=self.all2all, synapse_type=depressing) - @register() def test_create_with_invalid_type(self, sim=sim): self.assertRaises(errors.ConnectionError, sim.Projection, self.p1, "foo", connector=self.all2all, synapse_type=self.syn2) - @register() + def test_create_with_default_receptor_type(self, sim=sim): + prj = sim.Projection(self.p1, self.p3, connector=self.all2all, + synapse_type=sim.StaticSynapse()) + self.assertEqual(prj.receptor_type, "excitatory") + prj = sim.Projection(self.p1, self.p3, connector=self.all2all, + synapse_type=sim.TsodyksMarkramSynapse(weight=0.5)) + self.assertEqual(prj.receptor_type, "excitatory") + prj = sim.Projection(self.p1, self.p3, connector=self.all2all, + synapse_type=sim.StaticSynapse(weight=lambda d: -0.1 * d)) + self.assertEqual(prj.receptor_type, "inhibitory") + def test_size_with_gather(self, sim=sim): prj = sim.Projection(self.p1, self.p2, connector=self.all2all, synapse_type=self.syn2) self.assertEqual(prj.size(gather=True), self.p1.size * self.p2.size) # Need to extend the mock backend before setting synaptic parameters can be properly tested - #def test_set_weights(self, sim=sim): + # def test_set_weights(self, sim=sim): # prj = sim.Projection(self.p1, self.p2, connector=self.all2all, synapse_type=self.syn2) # prj.set(weight=0.789) # weights = prj.get("weight", format="array", gather=False) # use gather False because we are faking the MPI # target = 0.789*numpy.ones((self.p1.size, self.p2.size)) # assert_array_equal(weights, target) - #def test_randomize_weights(self, sim=sim): + # def test_randomize_weights(self, sim=sim): # orig_len = sim.Projection.__len__ # sim.Projection.__len__ = Mock(return_value=42) # p1 = sim.Population(7, sim.IF_cond_exp) @@ -116,7 +119,7 @@ def test_size_with_gather(self, sim=sim): # prj.set.assert_called_with('weight', 777) # sim.Projection.__len__ = orig_len # - #def test_set_delays(self, sim=sim): + # def test_set_delays(self, sim=sim): # p1 = sim.Population(7, sim.IF_cond_exp) # p2 = sim.Population(7, sim.IF_cond_exp) # prj = sim.Projection(p1, p2, connector=Mock()) @@ -124,7 +127,7 @@ def test_size_with_gather(self, sim=sim): # prj.setDelays(0.5) # prj.set.assert_called_with('delay', 0.5) # - #def test_randomize_delays(self, sim=sim): + # def test_randomize_delays(self, sim=sim): # orig_len = sim.Projection.__len__ # sim.Projection.__len__ = Mock(return_value=42) # p1 = sim.Population(7, sim.IF_cond_exp) @@ -138,7 +141,7 @@ def test_size_with_gather(self, sim=sim): # prj.set.assert_called_with('delay', 777) # sim.Projection.__len__ = orig_len # - #def test_set_synapse_dynamics_param(self, sim=sim): + # def test_set_synapse_dynamics_param(self, sim=sim): # p1 = sim.Population(7, sim.IF_cond_exp) # p2 = sim.Population(7, sim.IF_cond_exp) # prj = sim.Projection(p1, p2, connector=Mock()) @@ -146,7 +149,7 @@ def test_size_with_gather(self, sim=sim): # prj.setComposedSynapseType('U', 0.5) # prj.set.assert_called_with('U', 0.5) # - @register() + def test_get_weights_as_list(self, sim=sim): prj = sim.Projection(self.p1, self.p2, connector=self.all2all, synapse_type=self.syn2) weights = prj.get("weight", format="list") @@ -156,24 +159,22 @@ def test_get_weights_as_list(self, sim=sim): (1, 0, 0.007), (2, 0, 0.007), (3, 0, 0.007), - (4, 0, 0.007),]) + (4, 0, 0.007), ]) assert_array_equal(weights, target) - @register() def test_get_weights_as_list_no_address(self, sim=sim): prj = sim.Projection(self.p1, self.p2, connector=self.all2all, synapse_type=self.syn2) weights = prj.get("weight", format="list", with_address=False)[:5] target = 0.007 * numpy.ones((5,)) assert_array_equal(weights, target) - @register() def test_get_weights_as_array(self, sim=sim): prj = sim.Projection(self.p1, self.p2, connector=self.all2all, synapse_type=self.syn2) - weights = prj.get("weight", format="array", gather=False) # use gather False because we are faking the MPI + # use gather False because we are faking the MPI + weights = prj.get("weight", format="array", gather=False) target = 0.007 * numpy.ones((self.p1.size, self.p2.size)) assert_array_equal(weights, target) - @register() def test_get_weights_as_array_with_multapses(self, sim=sim): C = sim.FixedNumberPreConnector(n=7, rng=MockRNG(delta=1)) prj = sim.Projection(self.p2, self.p3, C, synapse_type=self.syn1) @@ -183,11 +184,11 @@ def test_get_weights_as_array_with_multapses(self, sim=sim): [0.012, 0.012, 0.012, 0.012, 0.012], [0.012, 0.012, 0.012, 0.012, 0.012], [0.012, 0.012, 0.012, 0.012, 0.012], - ]) - weights = prj.get("weight", format="array", gather=False) # use gather False because we are faking the MPI + ]) + # use gather False because we are faking the MPI + weights = prj.get("weight", format="array", gather=False) assert_array_equal(weights, target) - @register() def test_get_weights_as_array_with_multapses_min(self, sim=sim): C = sim.FixedNumberPreConnector(n=7, rng=MockRNG(delta=1)) prj = sim.Projection(self.p2, self.p3, C, synapse_type=self.syn1) @@ -196,32 +197,33 @@ def test_get_weights_as_array_with_multapses_min(self, sim=sim): [0.006, 0.006, 0.006, 0.006, 0.006], [0.006, 0.006, 0.006, 0.006, 0.006], [0.006, 0.006, 0.006, 0.006, 0.006], - ]) + ]) # use gather False because we are faking the MPI weights = prj.get("weight", format="array", gather=False, multiple_synapses='min') assert_array_equal(weights, target) - @register() def test_synapse_with_lambda_parameter(self, sim=sim): syn = sim.StaticSynapse(weight=lambda d: 0.01 + 0.001 * d) prj = sim.Projection(self.p1, self.p2, self.all2all, synapse_type=syn) - @register() def test_parameter_StaticSynapse_random_distribution(self, sim=sim): - weight = random.RandomDistribution('uniform', low=0.005, high=0.015, rng=MockRNG(start=0.01, delta=0.001)) + weight = random.RandomDistribution( + 'uniform', low=0.005, high=0.015, rng=MockRNG(start=0.01, delta=0.001)) syn = sim.StaticSynapse(weight=weight) self.assertEqual(weight.next(), 0.01) - - @register() + def test_parameter_TsodyksMarkramSynapse_random_distribution(self, sim=sim): - U_distr = random.RandomDistribution('uniform', low=0.4, high=0.6, rng=MockRNG(start=0.5, delta=0.001)) - depressing = sim.TsodyksMarkramSynapse(U=U_distr, tau_rec=lambda d: 80.0 + d, tau_facil=0.0) + U_distr = random.RandomDistribution( + 'uniform', low=0.4, high=0.6, rng=MockRNG(start=0.5, delta=0.001)) + depressing = sim.TsodyksMarkramSynapse( + U=U_distr, tau_rec=lambda d: 80.0 + d, tau_facil=0.0) self.assertEqual(U_distr.next(), 0.5) - - @register() + def test_get_plasticity_attribute_as_list(self, sim=sim): - U_distr = random.RandomDistribution('uniform', low=0.4, high=0.6, rng=MockRNG(start=0.5, delta=0.001)) - depressing = sim.TsodyksMarkramSynapse(U=U_distr, tau_rec=lambda d: 80.0 + d, tau_facil=0.0) + U_distr = random.RandomDistribution( + 'uniform', low=0.4, high=0.6, rng=MockRNG(start=0.5, delta=0.001)) + depressing = sim.TsodyksMarkramSynapse( + U=U_distr, tau_rec=lambda d: 80.0 + d, tau_facil=0.0) prj = sim.Projection(self.p1, self.p2, connector=self.all2all, synapse_type=depressing) U = prj.get("U", format="list") @@ -231,7 +233,7 @@ def test_get_plasticity_attribute_as_list(self, sim=sim): (1, 0, 0.501), (2, 0, 0.502), (3, 0, 0.503), - (4, 0, 0.504),]) + (4, 0, 0.504), ]) assert_array_equal(U, U_target) tau_rec = prj.get("tau_rec", format="list") tau_rec = _sort_by_column(tau_rec, 1)[:5] @@ -240,10 +242,10 @@ def test_get_plasticity_attribute_as_list(self, sim=sim): (1, 0, 81), (2, 0, 82), (3, 0, 83), - (4, 0, 84),]) + (4, 0, 84), ]) assert_array_equal(tau_rec, tau_rec_target) - #def test_get_delays(self, sim=sim): + # def test_get_delays(self, sim=sim): # p1 = sim.Population(7, sim.IF_cond_exp) # p2 = sim.Population(7, sim.IF_cond_exp) # prj = sim.Projection(p1, p2, connector=Mock()) @@ -251,7 +253,6 @@ def test_get_plasticity_attribute_as_list(self, sim=sim): # prj.getDelays(format='list', gather=False) # prj.get.assert_called_with('delay', 'list') - @register() def test_save_connections_with_gather(self, sim=sim): filename = "test.connections" if os.path.exists(filename): @@ -261,7 +262,7 @@ def test_save_connections_with_gather(self, sim=sim): assert os.path.exists(filename) os.remove(filename) - #def test_print_weights_as_list(self, sim=sim): + # def test_print_weights_as_list(self, sim=sim): # filename = "test.weights" # if os.path.exists(filename): # os.remove(filename) @@ -274,7 +275,7 @@ def test_save_connections_with_gather(self, sim=sim): # assert os.path.exists(filename) # os.remove(filename) # - #def test_print_weights_as_array(self, sim=sim): + # def test_print_weights_as_array(self, sim=sim): # filename = "test.weights" # if os.path.exists(filename): # os.remove(filename) @@ -287,17 +288,105 @@ def test_save_connections_with_gather(self, sim=sim): # assert os.path.exists(filename) # os.remove(filename) - @register() def test_describe(self, sim=sim): prj = sim.Projection(self.p1, self.p2, connector=self.all2all, synapse_type=self.syn2) self.assertIsInstance(prj.describe(engine='string'), basestring) self.assertIsInstance(prj.describe(template=None), dict) - @register() def test_weightHistogram(self, sim=sim): prj = sim.Projection(self.p1, self.p2, connector=self.all2all, synapse_type=self.syn2) n, bins = prj.weightHistogram(min=0.0, max=0.05) assert_array_equal(bins, numpy.linspace(0, 0.05, num=11)) assert_array_equal(n, numpy.array([0, prj.size(), 0, 0, 0, 0, 0, 0, 0, 0])) + + +class CheckTest(unittest.TestCase): + + def setUp(self, sim=sim, **extra): + self.MIN_DELAY = 0.123 + sim.setup(num_processes=2, rank=1, min_delay=self.MIN_DELAY, **extra) + self.p1 = sim.Population(7, sim.IF_cond_exp()) + self.p2 = sim.Population(4, sim.IF_cond_exp()) + self.p3 = sim.Population(5, sim.IF_curr_alpha()) + self.projections = { + "cond": {}, + "curr": {} + } + for psr, post in (("cond", self.p2), ("curr", self.p3)): + for rt in ("excitatory", "inhibitory"): + self.projections[psr][rt] = sim.Projection( + self.p1, post, sim.AllToAllConnector(safe=True), + sim.StaticSynapse(), receptor_type=rt + ) + + def test_check_weights_with_scalar(self, sim=sim): + # positive weight + for prj in [ + self.projections["cond"]["excitatory"], + self.projections["curr"]["excitatory"], + self.projections["cond"]["inhibitory"], + ]: + standardmodels.check_weights(4.3, prj) + for prj in [ + self.projections["curr"]["inhibitory"], + ]: + self.assertRaises(errors.ConnectionError, standardmodels.check_weights, 4.3, prj) + + # negative weight + for prj in [ + self.projections["cond"]["excitatory"], + self.projections["curr"]["excitatory"], + self.projections["cond"]["inhibitory"], + ]: + self.assertRaises(errors.ConnectionError, standardmodels.check_weights, -4.3, prj) + for prj in [ + self.projections["curr"]["inhibitory"], + ]: + standardmodels.check_weights(-4.3, prj) + + def test_check_weights_with_array(self, sim=sim): + # all positive weights + w = numpy.arange(10) + for prj in [ + self.projections["cond"]["excitatory"], + self.projections["curr"]["excitatory"], + self.projections["cond"]["inhibitory"], + ]: + standardmodels.check_weights(w, prj) + for prj in [ + self.projections["curr"]["inhibitory"], + ]: + self.assertRaises(errors.ConnectionError, standardmodels.check_weights, w, prj) + # all negative weights + w = numpy.arange(-10, 0) + for prj in [ + self.projections["cond"]["excitatory"], + self.projections["curr"]["excitatory"], + self.projections["cond"]["inhibitory"], + ]: + self.assertRaises(errors.ConnectionError, standardmodels.check_weights, w, prj) + for prj in [ + self.projections["curr"]["inhibitory"], + ]: + standardmodels.check_weights(w, prj) + # mixture of positive and negative weights + w = numpy.arange(-5, 5) + for prj in [ + self.projections["cond"]["excitatory"], + self.projections["curr"]["excitatory"], + self.projections["cond"]["inhibitory"], + self.projections["curr"]["inhibitory"] + ]: + self.assertRaises(errors.ConnectionError, standardmodels.check_weights, w, prj) + + def test_check_weights_with_invalid_value(self, sim=sim): + w = "butterflies" + for prj in [ + self.projections["cond"]["excitatory"], + self.projections["curr"]["excitatory"], + self.projections["cond"]["inhibitory"], + self.projections["curr"]["inhibitory"] + ]: + self.assertRaises(errors.ConnectionError, standardmodels.check_weights, w, prj) diff --git a/test/unittests/test_random.py b/test/unittests/test_random.py index 16896475a..71f9865f9 100644 --- a/test/unittests/test_random.py +++ b/test/unittests/test_random.py @@ -32,7 +32,8 @@ class SimpleTests(unittest.TestCase): def setUp(self): self.rnglist = [random.NumpyRNG(seed=987)] for rng in self.rnglist: - rng.mpi_rank = 0; rng.num_processes = 1 + rng.mpi_rank = 0 + rng.num_processes = 1 if random.have_gsl: self.rnglist.append(random.GSLRNG(seed=654)) if have_nrn: @@ -41,14 +42,17 @@ def setUp(self): def testNextNone(self): """Calling next() with no number argument should return a float.""" for rng in self.rnglist: - self.assertIsInstance(rng.next(distribution='uniform', parameters={'low': 0, 'high': 1}), float) + self.assertIsInstance(rng.next(distribution='uniform', + parameters={'low': 0, 'high': 1}), float) def testNextOne(self): """Calling next() with n=1 should return an array.""" for rng in self.rnglist: self.assertIsInstance(rng.next(1, 'uniform', {'low': 0, 'high': 1}), numpy.ndarray) - self.assertIsInstance(rng.next(n=1, distribution='uniform', parameters={'low': 0, 'high': 1}), numpy.ndarray) - self.assertEqual(rng.next(1, distribution='uniform', parameters={'low': 0, 'high': 1}).shape, (1,)) + self.assertIsInstance(rng.next(n=1, distribution='uniform', + parameters={'low': 0, 'high': 1}), numpy.ndarray) + self.assertEqual(rng.next(1, distribution='uniform', + parameters={'low': 0, 'high': 1}).shape, (1,)) def testNextTwoPlus(self): """Calling next(n=m) where m > 1 should return an array.""" @@ -178,7 +182,8 @@ def setUp(self): self.rnglist.append(NativeRNG(seed=321)) def test_uniform(self): - rd = random.RandomDistribution(distribution='uniform', low=-1.0, high=3.0, rng=self.rnglist[0]) + rd = random.RandomDistribution(distribution='uniform', low=- + 1.0, high=3.0, rng=self.rnglist[0]) vals = rd.next(100) assert vals.min() >= -1.0 assert vals.max() < 3.0 @@ -224,13 +229,15 @@ def test_positional_args(self): self.assertEqual(rd1.parameters, {'mu': 0.5, 'sigma': 0.2}) self.assertEqual(rd1.rng, rng) self.assertRaises(ValueError, random.RandomDistribution, 'normal', (0.5,)) - self.assertRaises(ValueError, random.RandomDistribution, 'normal', (0.5, 0.2), mu=0.5, sigma=0.2) + self.assertRaises(ValueError, random.RandomDistribution, + 'normal', (0.5, 0.2), mu=0.5, sigma=0.2) def test_max_redraws(self): # for certain parameterizations, clipped distributions can require a very large, possibly infinite # number of redraws. This should be caught. for rng in self.rnglist: - rd1 = random.RandomDistribution('normal_clipped', mu=0, sigma=1, low=5, high=numpy.inf, rng=rng) + rd1 = random.RandomDistribution( + 'normal_clipped', mu=0, sigma=1, low=5, high=numpy.inf, rng=rng) self.assertRaises(Exception, rd1.next, 1000) diff --git a/test/unittests/test_recording.py b/test/unittests/test_recording.py index 0edf6f735..ef995ebbe 100644 --- a/test/unittests/test_recording.py +++ b/test/unittests/test_recording.py @@ -10,28 +10,28 @@ from collections import defaultdict from pyNN.utility import assert_arrays_equal -#def test_rename_existing(): - -#def test_gather(): - #import time - #for x in range(7): - # N = pow(10, x) - # local_data = numpy.empty((N,2)) - # local_data[:,0] = numpy.ones(N, dtype=float)*comm.rank - # local_data[:,1] = numpy.random.rand(N) - # - # start_time = time.time() - # all_data = gather(local_data) - # #print(comm.rank, "local", local_data) - # if comm.rank == 0: - # # print("all", all_data) - # print(N, time.time()-start_time) - -#def test_gather_no_MPI(): - -#def test_gather_dict(): - -#def test_mpi_sum(): +# def test_rename_existing(): + +# def test_gather(): +#import time +# for x in range(7): +# N = pow(10, x) +# local_data = numpy.empty((N,2)) +# local_data[:,0] = numpy.ones(N, dtype=float)*comm.rank +# local_data[:,1] = numpy.random.rand(N) +# +# start_time = time.time() +# all_data = gather(local_data) +# #print(comm.rank, "local", local_data) +# if comm.rank == 0: +# # print("all", all_data) +# print(N, time.time()-start_time) + +# def test_gather_no_MPI(): + +# def test_gather_dict(): + +# def test_mpi_sum(): class MockState(object): @@ -108,12 +108,13 @@ def test_Recorder_create(): assert_equal(r.population, p) assert_equal(r.file, None) assert_equal(r.recorded, defaultdict(set)) - + def test_Recorder_invalid_variable(): p = MockPopulation() r = MockRecorder(p) - all_ids = (MockID(0, True), MockID(1, False), MockID(2, True), MockID(3, True), MockID(4, False)) + all_ids = (MockID(0, True), MockID(1, False), MockID( + 2, True), MockID(3, True), MockID(4, False)) assert_raises(errors.RecordingError, r.record, 'foo', all_ids) @@ -130,14 +131,15 @@ def test_record(): r = MockRecorder(p) r._record = Mock() assert_equal(r.recorded, defaultdict(set)) - - all_ids = (MockID(0, True), MockID(1, False), MockID(2, True), MockID(3, True), MockID(4, False)) + + all_ids = (MockID(0, True), MockID(1, False), MockID( + 2, True), MockID(3, True), MockID(4, False)) first_ids = all_ids[0:3] r.record('spam', first_ids) assert_equal(r.recorded['spam'], set(id for id in first_ids if id.local)) assert_equal(len(r.recorded['spam']), 2) r._record.assert_called_with('spam', r.recorded['spam'], None) - + more_ids = all_ids[2:5] r.record('spam', more_ids) assert_equal(r.recorded['spam'], set(id for id in all_ids if id.local)) @@ -149,7 +151,8 @@ def test_filter_recorded(): p = MockPopulation() r = MockRecorder(p) r._record = Mock() - all_ids = (MockID(0, True), MockID(1, False), MockID(2, True), MockID(3, True), MockID(4, False)) + all_ids = (MockID(0, True), MockID(1, False), MockID( + 2, True), MockID(3, True), MockID(4, False)) r.record(['spikes', 'spam'], all_ids) assert_equal(r.recorded['spikes'], set(id for id in all_ids if id.local)) assert_equal(r.recorded['spam'], set(id for id in all_ids if id.local)) @@ -157,7 +160,7 @@ def test_filter_recorded(): filter = all_ids[::2] filtered_ids = r.filter_recorded('spam', filter) assert_equal(filtered_ids, set(id for id in filter if id.local)) - + assert_equal(r.filter_recorded('spikes', None), r.recorded['spikes']) @@ -168,7 +171,7 @@ def test_get(): assert_equal(data.name, p.label) assert_equal(data.description, p.describe()) -#def test_write__with_filename__compatible_output__gather__onroot(): +# def test_write__with_filename__compatible_output__gather__onroot(): # orig_metadata = recording.Recorder.metadata # #recording.Recorder.metadata = {'a': 2, 'b':3} # p = MockPopulation() @@ -191,10 +194,9 @@ def test_metadata_property(): 'simulator': 'MockSimulator', 'mpi_processes': 9}) -#def test_count__spikes_gather(): - -#def test_count__spikes_nogather(): +# def test_count__spikes_gather(): +# def test_count__spikes_nogather(): -#def test_count__other(): +# def test_count__other(): diff --git a/test/unittests/test_simulation_control.py b/test/unittests/test_simulation_control.py index 107bb7dbf..b7d5f83d6 100644 --- a/test/unittests/test_simulation_control.py +++ b/test/unittests/test_simulation_control.py @@ -2,7 +2,7 @@ Tests of the common implementation of the simulation control functions, using the pyNN.mock backend. -:copyright: Copyright 2006-2016 by the PyNN team, see AUTHORS. +:copyright: Copyright 2006-2020 by the PyNN team, see AUTHORS. :license: CeCILL, see LICENSE for details. """ @@ -10,31 +10,28 @@ import unittest2 as unittest except ImportError: import unittest -import pyNN.mock as sim +import pyNN.mock as sim try: from mpi4py import MPI except ImportError: MPI = None -from .backends.registry import register_class, register if MPI: mpi_comm = MPI.COMM_WORLD -@register_class() class TestSimulationControl(unittest.TestCase): - + def setUp(self, sim=sim, **extra): self.extra = {} self.extra.update(extra) pass - + def tearDown(self, sim=sim): pass - - @register() + def test_setup(self, sim=sim): self.assertRaises(Exception, sim.setup, min_delay=1.0, max_delay=0.9, **self.extra) sim.end() @@ -47,40 +44,34 @@ def test_setup(self, sim=sim): self.assertRaises(Exception, sim.setup, timestep=0.1, min_delay=0.09, **self.extra) sim.end() - @register() def test_end(self, sim=sim): sim.setup(**self.extra) sim.end() # need a better test - - @register() + def test_run(self, sim=sim): sim.setup(**self.extra) self.assertAlmostEqual(sim.run(100.0), 100.0) sim.end() - - @register(exclude=['hardware.brainscales']) + def test_run_twice(self, sim=sim): sim.setup(**self.extra) self.assertAlmostEqual(sim.run(100.0), 100.0) self.assertAlmostEqual(sim.run(100.0), 200.0) sim.end() - - @register() + def test_reset(self, sim=sim): sim.setup(**self.extra) sim.run(100.0) sim.reset() self.assertEqual(sim.get_current_time(), 0.0) sim.end() - - @register() + def test_current_time(self, sim=sim): sim.setup(timestep=0.1, **self.extra) sim.run(10.1) self.assertAlmostEqual(sim.get_current_time(), 10.1) sim.end() - - @register(exclude=['hardware.brainscales']) + def test_current_time_two_runs(self, sim=sim): sim.setup(timestep=0.1, **self.extra) sim.run(10.1) @@ -88,26 +79,22 @@ def test_current_time_two_runs(self, sim=sim): sim.run(23.4) self.assertAlmostEqual(sim.get_current_time(), 33.5) sim.end() - - @register() + def test_time_step(self, sim=sim): sim.setup(0.123, min_delay=0.246, **self.extra) self.assertAlmostEqual(sim.get_time_step(), 0.123) sim.end() - - @register() + def test_min_delay(self, sim=sim): sim.setup(0.123, min_delay=0.246, **self.extra) self.assertEqual(sim.get_min_delay(), 0.246) sim.end() - - @register() + def test_max_delay(self, sim=sim): sim.setup(max_delay=9.87, **self.extra) self.assertAlmostEqual(sim.get_max_delay(), 9.87) sim.end() - @register(exclude=['hardware.brainscales']) def test_callbacks(self, sim=sim): total_time = 100. callback_steps = [10., 10., 20., 25.] @@ -128,14 +115,14 @@ def callback(time): sim.run_until(total_time, callbacks=callbacks) self.assertTrue(all(callback_callcount[i] == expected_callcount[i] - for i in range(num_callbacks))) - + for i in range(num_callbacks))) + sim.end() - + @unittest.skipUnless(MPI, "test requires mpi4py") def test_num_processes(self, sim=sim): self.assertEqual(sim.num_processes(), mpi_comm.size) - + @unittest.skipUnless(MPI, "test requires mpi4py") def test_rank(self, sim=sim): self.assertEqual(sim.rank(), mpi_comm.rank) diff --git a/test/unittests/test_space.py b/test/unittests/test_space.py index f78b39513..cfa167ad9 100644 --- a/test/unittests/test_space.py +++ b/test/unittests/test_space.py @@ -1,7 +1,7 @@ """ Tests of the `space` module. -:copyright: Copyright 2006-2016 by the PyNN team, see AUTHORS. +:copyright: Copyright 2006-2020 by the PyNN team, see AUTHORS. :license: CeCILL, see LICENSE for details. """ @@ -19,7 +19,8 @@ def assert_arrays_almost_equal(a, b, threshold, msg=''): if a.shape != b.shape: - raise unittest.TestCase.failureException("Shape mismatch: a.shape=%s, b.shape=%s" % (a.shape, b.shape)) + raise unittest.TestCase.failureException( + "Shape mismatch: a.shape=%s, b.shape=%s" % (a.shape, b.shape)) if not (abs(a - b) < threshold).all(): err_msg = "%s != %s" % (a, b) err_msg += "\nlargest difference = %g" % abs(a - b).max() @@ -84,8 +85,8 @@ def test_infinite_space_with_3D_distances(self): def test_generator_for_infinite_space_with_3D_distances(self): s = space.Space() - f = lambda i: self.ABCD[i] - g = lambda j: self.ABCD[j] + def f(i): return self.ABCD[i] + def g(j): return self.ABCD[j] self.assertArraysEqual(s.distance_generator(f, g)(0, numpy.arange(4)), numpy.array([0.0, sqrt(3), sqrt(3), sqrt(29)])) assert_arrays_equal(numpy.fromfunction(s.distance_generator(f, g), shape=(4, 4), dtype=int), @@ -190,7 +191,7 @@ def test_generate_positions(self): numpy.array([ [0, 0, 0], [0, 1, 0], [1, 0, 0], [1, 1, 0] - ]).T, + ]).T, 1e-15) assert_arrays_almost_equal( self.grid2.generate_positions(12), @@ -232,7 +233,7 @@ def test_generate_positions(self): numpy.array([ [0, 0, 0], [0, 0, 1], [0, 1, 0], [0, 1, 1], [1, 0, 0], [1, 0, 1], [1, 1, 0], [1, 1, 1] - ]).T, + ]).T, 1e-15) @@ -278,5 +279,3 @@ def test_generate_positions(self): for axis in range(2): assert 3 < max(positions[axis, :]) < 3.5 assert -1 > min(positions[axis, :]) > -1.5 - - diff --git a/test/unittests/test_standardmodels.py b/test/unittests/test_standardmodels.py index d1a6d093b..7e4cf9529 100644 --- a/test/unittests/test_standardmodels.py +++ b/test/unittests/test_standardmodels.py @@ -1,5 +1,5 @@ from pyNN.standardmodels import build_translations, StandardModelType, \ - STDPWeightDependence, STDPTimingDependence + STDPWeightDependence, STDPTimingDependence from pyNN.standardmodels.synapses import StaticSynapse, STDPMechanism from pyNN import errors from pyNN.parameters import ParameterSpace @@ -17,10 +17,10 @@ def test_build_translations(): t = build_translations( - ('a', 'A'), - ('b', 'B', 1000.0), - ('c', 'C', 'c + a', 'C - A') - ) + ('a', 'A'), + ('b', 'B', 1000.0), + ('c', 'C', 'c + a', 'C - A') + ) assert_equal(set(t.keys()), set(['a', 'b', 'c'])) assert_equal(set(t['a'].keys()), set(['translated_name', 'forward_transform', 'reverse_transform'])) @@ -72,12 +72,13 @@ def test_translate(): M = StandardModelType M.default_parameters = {'a': 22.2, 'b': 33.3, 'c': 44.4} M.translations = build_translations( - ('a', 'A'), - ('b', 'B', 1000.0), - ('c', 'C', 'c + a', 'C - A'), - ) + ('a', 'A'), + ('b', 'B', 1000.0), + ('c', 'C', 'c + a', 'C - A'), + ) m = M() - native_parameters = m.translate(ParameterSpace({'a': 23.4, 'b': 34.5, 'c': 45.6}, m.get_schema(), None)) + native_parameters = m.translate(ParameterSpace( + {'a': 23.4, 'b': 34.5, 'c': 45.6}, m.get_schema(), None)) assert_equal(_parameter_space_to_dict(native_parameters, 77), {'A': 23.4, 'B': 34500.0, 'C': 69.0}) @@ -85,11 +86,11 @@ def test_translate(): def test_translate_with_invalid_transformation(): M = StandardModelType M.translations = build_translations( - ('a', 'A'), - ('b', 'B', 'b + z', 'B-Z'), + ('a', 'A'), + ('b', 'B', 'b + z', 'B-Z'), ) M.default_parameters = {'a': 22.2, 'b': 33.3} - #really we should trap such errors in build_translations(), not in translate() + # really we should trap such errors in build_translations(), not in translate() m = M() assert_raises(NameError, m.translate, @@ -100,8 +101,8 @@ def test_translate_with_divide_by_zero_error(): M = StandardModelType M.default_parameters = {'a': 22.2, 'b': 33.3} M.translations = build_translations( - ('a', 'A'), - ('b', 'B', 'b/0', 'B*0'), + ('a', 'A'), + ('b', 'B', 'b/0', 'B*0'), ) m = M() native_parameters = m.translate(ParameterSpace({'a': 23.4, 'b': 34.5}, m.get_schema(), 77)) @@ -114,10 +115,10 @@ def test_reverse_translate(): M = StandardModelType M.default_parameters = {'a': 22.2, 'b': 33.3, 'c': 44.4} M.translations = build_translations( - ('a', 'A'), - ('b', 'B', 1000.0), - ('c', 'C', 'c + a', 'C - A'), - ) + ('a', 'A'), + ('b', 'B', 1000.0), + ('c', 'C', 'c + a', 'C - A'), + ) assert_equal(_parameter_space_to_dict(M().reverse_translate(ParameterSpace({'A': 23.4, 'B': 34500.0, 'C': 69.0})), 88), {'a': 23.4, 'b': 34.5, 'c': 45.6}) @@ -125,11 +126,11 @@ def test_reverse_translate(): def test_reverse_translate_with_invalid_transformation(): M = StandardModelType M.translations = build_translations( - ('a', 'A'), - ('b', 'B', 'b + z', 'B-Z'), + ('a', 'A'), + ('b', 'B', 'b + z', 'B-Z'), ) M.default_parameters = {'a': 22.2, 'b': 33.3} - #really we should trap such errors in build_translations(), not in reverse_translate() + # really we should trap such errors in build_translations(), not in reverse_translate() assert_raises(NameError, M().reverse_translate, {'A': 23.4, 'B': 34.5}) @@ -139,10 +140,10 @@ def test_simple_parameters(): M = StandardModelType M.default_parameters = {'a': 22.2, 'b': 33.3, 'c': 44.4} M.translations = build_translations( - ('a', 'A'), - ('b', 'B', 1000.0), - ('c', 'C', 'c + a', 'C - A'), - ) + ('a', 'A'), + ('b', 'B', 1000.0), + ('c', 'C', 'c + a', 'C - A'), + ) assert_equal(M().simple_parameters(), ['a']) @@ -150,10 +151,10 @@ def test_scaled_parameters(): M = StandardModelType M.default_parameters = {'a': 22.2, 'b': 33.3, 'c': 44.4} M.translations = build_translations( - ('a', 'A'), - ('b', 'B', 1000.0), - ('c', 'C', 'c + a', 'C - A'), - ) + ('a', 'A'), + ('b', 'B', 1000.0), + ('c', 'C', 'c + a', 'C - A'), + ) assert_equal(M().scaled_parameters(), ['b']) @@ -161,10 +162,10 @@ def test_computed_parameters(): M = StandardModelType M.default_parameters = {'a': 22.2, 'b': 33.3, 'c': 44.4} M.translations = build_translations( - ('a', 'A'), - ('b', 'B', 1000.0), - ('c', 'C', 'c + a', 'C - A'), - ) + ('a', 'A'), + ('b', 'B', 1000.0), + ('c', 'C', 'c + a', 'C - A'), + ) assert_equal(M().computed_parameters(), ['c']) @@ -172,15 +173,15 @@ def test_describe(): M = StandardModelType M.default_parameters = {'a': 22.2, 'b': 33.3, 'c': 44.4} M.translations = build_translations( - ('a', 'A'), - ('b', 'B', 1000.0), - ('c', 'C', 'c + a', 'C - A'), - ) + ('a', 'A'), + ('b', 'B', 1000.0), + ('c', 'C', 'c + a', 'C - A'), + ) assert isinstance(M().describe(), basestring) # test StandardCellType -## test ComposedSynapseType +# test ComposedSynapseType # test create @@ -220,6 +221,6 @@ def test_STDPMechanism_create_invalid_types(): STDPMechanism, dendritic_delay_fraction="1.1") -## test STDPWeightDependence +# test STDPWeightDependence -## test STDPTimingDependence +# test STDPTimingDependence diff --git a/test/unittests/test_utility_functions.py b/test/unittests/test_utility_functions.py index 911281526..2706d13a2 100644 --- a/test/unittests/test_utility_functions.py +++ b/test/unittests/test_utility_functions.py @@ -17,23 +17,23 @@ class NotifyTests(unittest.TestCase): - + def test_notify(self): utility.notify() - + class GetArgTests(unittest.TestCase): - + def test_get_script_args(self): utility.get_script_args(0) -# fails with nose, passes with python +# fails with nose, passes with python # def test_get_script_args1(self): # self.assertRaises(Exception, utility.get_script_args, 1) - -# fails with nose, passes with python -#class InitLoggingTests(unittest.TestCase): -# + +# fails with nose, passes with python +# class InitLoggingTests(unittest.TestCase): +# # def test_initlogging_debug(self): # utility.init_logging("test.log", debug=True, num_processes=2, rank=99) # assert os.path.exists("test.log.99") @@ -41,7 +41,7 @@ def test_get_script_args(self): class TimerTest(unittest.TestCase): - + def test_timer(self): timer = utility.Timer() time.sleep(0.1) @@ -59,7 +59,7 @@ def test_diff(self): class ProgressBarTest(unittest.TestCase): - + def test_fixed(self): bar = utility.ProgressBar(width=12, mode='fixed') sys.stdout = StringIO() @@ -86,6 +86,6 @@ def test_dynamic(self): "[ ########## ] 100% \r") sys.stdout = sys.__stdout__ + if __name__ == "__main__": unittest.main() -