diff --git a/doc/tutorials/stdp_third_factor_active_dendrite/.ipynb_checkpoints/stdp_third_factor_active_dendrite-checkpoint.ipynb b/doc/tutorials/stdp_third_factor_active_dendrite/.ipynb_checkpoints/stdp_third_factor_active_dendrite-checkpoint.ipynb deleted file mode 100644 index cf0d9e6f9..000000000 --- a/doc/tutorials/stdp_third_factor_active_dendrite/.ipynb_checkpoints/stdp_third_factor_active_dendrite-checkpoint.ipynb +++ /dev/null @@ -1,3319 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "NESTML active dendrite third-factor STDP synapse\n", - "==========================================\n", - "\n", - "Welcome ...\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "\n", - "\n", - "Introduction\n", - "------------\n" - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - " -- N E S T --\n", - " Copyright (C) 2004 The NEST Initiative\n", - "\n", - " Version: 3.6.0-post0.dev0\n", - " Built: Nov 8 2023 01:11:46\n", - "\n", - " This program is provided AS IS and comes with\n", - " NO WARRANTY. See the file LICENSE for details.\n", - "\n", - " Problems or suggestions?\n", - " Visit https://www.nest-simulator.org\n", - "\n", - " Type 'nest.help()' to find out more about NEST.\n", - "\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/home/charl/.local/lib/python3.11/site-packages/matplotlib/projections/__init__.py:63: UserWarning: Unable to import Axes3D. This may be due to multiple versions of Matplotlib being installed (e.g. as a system package and as a pip package). As a result, the 3D projection is not available.\n", - " warnings.warn(\"Unable to import Axes3D. This may be due to multiple versions of \"\n" - ] - } - ], - "source": [ - "%matplotlib inline\n", - "\n", - "from typing import List, Optional\n", - "\n", - "import matplotlib as mpl\n", - "\n", - "mpl.rcParams['axes.formatter.useoffset'] = False\n", - "mpl.rcParams['axes.grid'] = True\n", - "mpl.rcParams['grid.color'] = 'k'\n", - "mpl.rcParams['grid.linestyle'] = ':'\n", - "mpl.rcParams['grid.linewidth'] = 0.5\n", - "mpl.rcParams['figure.dpi'] = 120\n", - "mpl.rcParams['figure.figsize'] = [8., 3.]\n", - "\n", - "import matplotlib.pyplot as plt\n", - "import nest\n", - "import numpy as np\n", - "import os\n", - "import random\n", - "import re\n", - "\n", - "from pynestml.codegeneration.nest_code_generator_utils import NESTCodeGeneratorUtils\n", - "from pynestml.codegeneration.nest_tools import NESTTools" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": {}, - "outputs": [], - "source": [ - "post_trace_var = \"I_dend\"" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Generating code with NESTML\n", - "\n", - "We will take a simple current-based integrate-and-fire model with alpha-shaped postsynaptic response kernels (``iaf_psc_alpha``) as the basis for our modifications. First, let's take a look at this base neuron without any modifications.\n", - "\n", - "We will use a helper function to generate the C++ code for the models, build it as a NEST extension module, and load the module into the kernel. Because NEST does not support un- or reloading of modules at the time of writing, we implement a workaround that appends a unique number to the name of each generated model, for example, \"iaf_psc_alpha_3cc945f\". The resulting neuron model name is returned by the function, so we do not have to think about these internals." - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[1,GLOBAL, INFO]: List of files that will be processed:\n", - "[2,GLOBAL, INFO]: /home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/iaf_psc_exp_dend7c1adc9dbf3144fabdd9ebff0cce4e18_neuron.nestml\n", - "[3,GLOBAL, INFO]: /home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse.nestml\n", - "[4,GLOBAL, INFO]: Target platform code will be generated in directory: '/home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/target'\n", - "[5,GLOBAL, INFO]: Target platform code will be installed in directory: '/tmp/nestml_target_buhdamnv'\n", - "\n", - " -- N E S T --\n", - " Copyright (C) 2004 The NEST Initiative\n", - "\n", - " Version: 3.6.0-post0.dev0\n", - " Built: Nov 8 2023 01:11:46\n", - "\n", - " This program is provided AS IS and comes with\n", - " NO WARRANTY. See the file LICENSE for details.\n", - "\n", - " Problems or suggestions?\n", - " Visit https://www.nest-simulator.org\n", - "\n", - " Type 'nest.help()' to find out more about NEST.\n", - "\n", - "[6,GLOBAL, INFO]: The NEST Simulator version was automatically detected as: master\n", - "[7,GLOBAL, INFO]: Given template root path is not an absolute path. Creating the absolute path with default templates directory '/home/charl/julich/nestml-fork-clopath_synapse/nestml/pynestml/codegeneration/resources_nest/point_neuron'\n", - "[8,GLOBAL, INFO]: Given template root path is not an absolute path. Creating the absolute path with default templates directory '/home/charl/julich/nestml-fork-clopath_synapse/nestml/pynestml/codegeneration/resources_nest/point_neuron'\n", - "[9,GLOBAL, INFO]: Given template root path is not an absolute path. Creating the absolute path with default templates directory '/home/charl/julich/nestml-fork-clopath_synapse/nestml/pynestml/codegeneration/resources_nest/point_neuron'\n", - "[10,GLOBAL, INFO]: The NEST Simulator installation path was automatically detected as: /home/charl/julich/nest-simulator-install\n", - "[11,GLOBAL, INFO]: Start processing '/home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/iaf_psc_exp_dend7c1adc9dbf3144fabdd9ebff0cce4e18_neuron.nestml'!\n", - "[12,iaf_psc_exp_dend7c1adc9dbf3144fabdd9ebff0cce4e18_neuron_nestml, DEBUG, [38:0;93:0]]: Start building symbol table!\n", - "[13,iaf_psc_exp_dend7c1adc9dbf3144fabdd9ebff0cce4e18_neuron_nestml, INFO, [50:39;50:47]]: Implicit magnitude conversion from pA to pA buffer with factor 1.0 \n", - "[14,iaf_psc_exp_dend7c1adc9dbf3144fabdd9ebff0cce4e18_neuron_nestml, INFO, [50:15;50:30]]: Implicit magnitude conversion from mV / ms to pA / pF with factor 1.0 \n", - "[15,GLOBAL, INFO]: Start processing '/home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse.nestml'!\n", - "[16,third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml, DEBUG, [39:0;85:0]]: Start building symbol table!\n", - "[17,third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml, WARNING, [44:8;44:28]]: Variable 'd' has the same name as a physical unit!\n", - "[18,third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml, WARNING, [73:11;73:28]]: SPL_COMPARISON_OPERATOR_VISITOR : Operands of a logical rhs not compatible.([73:11;73:28])\n", - "[19,third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml, WARNING, [80:11;80:28]]: SPL_COMPARISON_OPERATOR_VISITOR : Operands of a logical rhs not compatible.([80:11;80:28])\n", - "[20,iaf_psc_exp_dend7c1adc9dbf3144fabdd9ebff0cce4e18_neuron_nestml, DEBUG, [38:0;93:0]]: Start building symbol table!\n", - "[21,third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml, DEBUG, [39:0;85:0]]: Start building symbol table!\n", - "[22,third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml, WARNING, [44:8;44:28]]: Variable 'd' has the same name as a physical unit!\n", - "[23,iaf_psc_exp_dend7c1adc9dbf3144fabdd9ebff0cce4e18_neuron_nestml, DEBUG, [38:0;93:0]]: Start building symbol table!\n", - "[24,iaf_psc_exp_dend7c1adc9dbf3144fabdd9ebff0cce4e18_neuron_nestml, INFO, [50:39;50:47]]: Implicit magnitude conversion from pA to pA buffer with factor 1.0 \n", - "[25,iaf_psc_exp_dend7c1adc9dbf3144fabdd9ebff0cce4e18_neuron_nestml, INFO, [50:15;50:30]]: Implicit magnitude conversion from mV / ms to pA / pF with factor 1.0 \n", - "[26,third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml, DEBUG, [39:0;85:0]]: Start building symbol table!\n", - "[27,third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml, WARNING, [44:8;44:28]]: Variable 'd' has the same name as a physical unit!\n", - "[28,third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml, WARNING, [73:11;73:28]]: SPL_COMPARISON_OPERATOR_VISITOR : Operands of a logical rhs not compatible.([73:11;73:28])\n", - "[29,third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml, WARNING, [80:11;80:28]]: SPL_COMPARISON_OPERATOR_VISITOR : Operands of a logical rhs not compatible.([80:11;80:28])\n", - "[30,iaf_psc_exp_dend7c1adc9dbf3144fabdd9ebff0cce4e18_neuron_nestml, DEBUG, [38:0;93:0]]: Start building symbol table!\n", - "[31,third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml, DEBUG, [39:0;85:0]]: Start building symbol table!\n", - "[32,third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml, WARNING, [44:8;44:28]]: Variable 'd' has the same name as a physical unit!\n", - "[33,GLOBAL, INFO]: State variables that will be moved from synapse to neuron: ['post_trace', 'post_trace_kernel']\n", - "[34,GLOBAL, INFO]: State variables that will be moved from synapse to neuron: ['post_trace', 'post_trace_kernel']\n", - "[35,GLOBAL, INFO]: Parameters that will be copied from synapse to neuron: ['tau_tr_post']\n", - "[36,GLOBAL, INFO]: Synaptic state variables moved to neuron that will need continuous-time buffering: ['I_post_dend']\n", - "[37,GLOBAL, INFO]: Moving state var defining equation(s) post_trace\n", - "[38,GLOBAL, INFO]: Moving state var defining equation(s) post_trace_kernel\n", - "[39,GLOBAL, INFO]: Moving state variables for equation(s) post_trace\n", - "[40,GLOBAL, INFO]: Moving state variables for equation(s) post_trace_kernel\n", - "[41,GLOBAL, INFO]: In synapse: replacing ``continuous`` type input ports that are connected to postsynaptic neuron with suffixed external variable references\n", - "[42,GLOBAL, INFO]: \t• Replacing variable I_post_dend\n", - "[43,GLOBAL, INFO]: \t -> ASTSimpleExpression replacement made (var = I_post_dend) in expression: I_post_dend <= 1pA\n", - "[44,GLOBAL, INFO]: \t -> ASTSimpleExpression replacement made (var = I_post_dend) in expression: I_post_dend / pA\n", - "[45,GLOBAL, INFO]: \t -> ASTSimpleExpression replacement made (var = I_post_dend) in expression: I_post_dend / pA\n", - "[46,GLOBAL, INFO]: \t -> ASTSimpleExpression replacement made (var = I_post_dend) in expression: I_post_dend <= 1pA\n", - "[47,GLOBAL, INFO]: \t -> ASTSimpleExpression replacement made (var = I_post_dend) in expression: I_post_dend / pA\n", - "[48,GLOBAL, INFO]: \t -> ASTSimpleExpression replacement made (var = I_post_dend) in expression: I_post_dend / pA\n", - "[49,GLOBAL, INFO]: Copying parameters from synapse to neuron...\n", - "[50,GLOBAL, INFO]: Copying definition of tau_tr_post from synapse to neuron\n", - "[51,GLOBAL, INFO]: Adding suffix to variables in spike updates\n", - "[52,GLOBAL, INFO]: In synapse: replacing variables with suffixed external variable references\n", - "[53,GLOBAL, INFO]: \t• Replacing variable post_trace\n", - "[54,GLOBAL, INFO]: \t -> ASTSimpleExpression replacement made (var = post_trace__for_third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml) in expression: alpha * lambda * (w / Wmax) ** mu_minus * post_trace\n", - "[55,GLOBAL, INFO]: \t• Replacing variable post_trace_kernel\n", - "[56,iaf_psc_exp_dend7c1adc9dbf3144fabdd9ebff0cce4e18_neuron_nestml__with_third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml, DEBUG, [38:0;93:0]]: Start building symbol table!\n", - "[57,third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml__with_iaf_psc_exp_dend7c1adc9dbf3144fabdd9ebff0cce4e18_neuron_nestml, DEBUG, [39:0;85:0]]: Start building symbol table!\n", - "[58,third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml__with_iaf_psc_exp_dend7c1adc9dbf3144fabdd9ebff0cce4e18_neuron_nestml, WARNING, [44:8;44:28]]: Variable 'd' has the same name as a physical unit!\n", - "[59,GLOBAL, INFO]: Successfully constructed neuron-synapse pair iaf_psc_exp_dend7c1adc9dbf3144fabdd9ebff0cce4e18_neuron_nestml__with_third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml, third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml__with_iaf_psc_exp_dend7c1adc9dbf3144fabdd9ebff0cce4e18_neuron_nestml\n", - "[60,GLOBAL, INFO]: Analysing/transforming model 'iaf_psc_exp_dend7c1adc9dbf3144fabdd9ebff0cce4e18_neuron_nestml'\n", - "[61,iaf_psc_exp_dend7c1adc9dbf3144fabdd9ebff0cce4e18_neuron_nestml, INFO, [38:0;93:0]]: Starts processing of the model 'iaf_psc_exp_dend7c1adc9dbf3144fabdd9ebff0cce4e18_neuron_nestml'\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:Analysing input:\n", - "INFO:{\n", - " \"dynamics\": [\n", - " {\n", - " \"expression\": \"V_m' = (-(V_m - E_L)) / tau_m + ((I_kernel_exc__X__exc_spikes * 1.0 - I_kernel_inh__X__inh_spikes * 1.0) + I_e + I_stim) / C_m\",\n", - " \"initial_values\": {\n", - " \"V_m\": \"E_L\"\n", - " }\n", - " },\n", - " {\n", - " \"expression\": \"I_kernel_exc__X__exc_spikes = exp(-t / tau_syn_exc)\",\n", - " \"initial_values\": {}\n", - " },\n", - " {\n", - " \"expression\": \"I_kernel_inh__X__inh_spikes = exp(-t / tau_syn_inh)\",\n", - " \"initial_values\": {}\n", - " }\n", - " ],\n", - " \"options\": {\n", - " \"output_timestep_symbol\": \"__h\"\n", - " },\n", - " \"parameters\": {\n", - " \"C_m\": \"250\",\n", - " \"E_L\": \"(-70)\",\n", - " \"I_e\": \"0\",\n", - " \"V_reset\": \"(-70)\",\n", - " \"V_th\": \"(-55)\",\n", - " \"refr_T\": \"2\",\n", - " \"tau_m\": \"10\",\n", - " \"tau_syn_exc\": \"2\",\n", - " \"tau_syn_inh\": \"2\"\n", - " }\n", - "}\n", - "INFO:Processing global options...\n", - "INFO:Processing input shapes...\n", - "INFO:\n", - "Processing differential-equation form shape V_m with defining expression = \"(-(V_m - E_L)) / tau_m + ((I_kernel_exc__X__exc_spikes * 1.0 - I_kernel_inh__X__inh_spikes * 1.0) + I_e + I_stim) / C_m\"\n", - "DEBUG:Splitting expression (E_L - V_m)/tau_m + (I_e + 1.0*I_kernel_exc__X__exc_spikes - 1.0*I_kernel_inh__X__inh_spikes + I_stim)/C_m (symbols [V_m])\n", - "DEBUG:\tlinear factors: Matrix([[-1/tau_m]])\n", - "DEBUG:\tinhomogeneous term: E_L/tau_m + I_e/C_m\n", - "DEBUG:\tnonlinear term: 1.0*I_kernel_exc__X__exc_spikes/C_m - 1.0*I_kernel_inh__X__inh_spikes/C_m + I_stim/C_m\n", - "DEBUG:Created Shape with symbol V_m, derivative_factors = [-1/tau_m], inhom_term = E_L/tau_m + I_e/C_m, nonlin_term = 1.0*I_kernel_exc__X__exc_spikes/C_m - 1.0*I_kernel_inh__X__inh_spikes/C_m + I_stim/C_m\n", - "INFO:\tReturning shape: Shape \"V_m\" of order 1\n", - "INFO:Shape V_m: reconstituting expression E_L/tau_m - V_m/tau_m + I_e/C_m + 1.0*I_kernel_exc__X__exc_spikes/C_m - 1.0*I_kernel_inh__X__inh_spikes/C_m + I_stim/C_m\n", - "INFO:\n", - "Processing function-of-time shape \"I_kernel_exc__X__exc_spikes\" with defining expression = \"exp(-t/tau_syn_exc)\"\n", - "DEBUG:Found t: 0\n", - "DEBUG:\tFinding ode for order 1...\n", - "DEBUG:Shape satisfies ODE of order = 1\n", - "DEBUG:Created Shape with symbol I_kernel_exc__X__exc_spikes, derivative_factors = [-1/tau_syn_exc], inhom_term = 0.0, nonlin_term = 0.0\n", - "INFO:Shape I_kernel_exc__X__exc_spikes: reconstituting expression -I_kernel_exc__X__exc_spikes/tau_syn_exc\n", - "INFO:\n", - "Processing function-of-time shape \"I_kernel_inh__X__inh_spikes\" with defining expression = \"exp(-t/tau_syn_inh)\"\n", - "DEBUG:Found t: 0\n", - "DEBUG:\tFinding ode for order 1...\n", - "DEBUG:Shape satisfies ODE of order = 1\n", - "DEBUG:Created Shape with symbol I_kernel_inh__X__inh_spikes, derivative_factors = [-1/tau_syn_inh], inhom_term = 0.0, nonlin_term = 0.0\n", - "INFO:Shape I_kernel_inh__X__inh_spikes: reconstituting expression -I_kernel_inh__X__inh_spikes/tau_syn_inh\n", - "INFO:All known variables: [V_m, I_kernel_exc__X__exc_spikes, I_kernel_inh__X__inh_spikes], all parameters used in ODEs: {tau_syn_inh, tau_syn_exc, tau_m, C_m, I_stim, E_L, I_e}\n", - "INFO:No numerical value specified for parameter \"I_stim\"\n", - "INFO:\n", - "Processing differential-equation form shape V_m with defining expression = \"(-(V_m - E_L)) / tau_m + ((I_kernel_exc__X__exc_spikes * 1.0 - I_kernel_inh__X__inh_spikes * 1.0) + I_e + I_stim) / C_m\"\n", - "DEBUG:Splitting expression (E_L - V_m)/tau_m + (I_e + 1.0*I_kernel_exc__X__exc_spikes - 1.0*I_kernel_inh__X__inh_spikes + I_stim)/C_m (symbols [V_m, I_kernel_exc__X__exc_spikes, I_kernel_inh__X__inh_spikes, V_m])\n", - "DEBUG:\tlinear factors: Matrix([[-1/tau_m], [1.0/C_m], [-1.0/C_m], [0]])\n", - "DEBUG:\tinhomogeneous term: E_L/tau_m + I_e/C_m + I_stim/C_m\n", - "DEBUG:\tnonlinear term: 0.0\n", - "DEBUG:Created Shape with symbol V_m, derivative_factors = [-1/tau_m], inhom_term = E_L/tau_m + I_e/C_m + I_stim/C_m, nonlin_term = 1.0*I_kernel_exc__X__exc_spikes/C_m - 1.0*I_kernel_inh__X__inh_spikes/C_m\n", - "INFO:\tReturning shape: Shape \"V_m\" of order 1\n", - "INFO:\n", - "Processing function-of-time shape \"I_kernel_exc__X__exc_spikes\" with defining expression = \"exp(-t/tau_syn_exc)\"\n", - "DEBUG:Found t: 0\n", - "DEBUG:\tFinding ode for order 1...\n", - "DEBUG:Shape satisfies ODE of order = 1\n", - "DEBUG:Created Shape with symbol I_kernel_exc__X__exc_spikes, derivative_factors = [-1/tau_syn_exc], inhom_term = 0.0, nonlin_term = 0.0\n", - "INFO:\n", - "Processing function-of-time shape \"I_kernel_inh__X__inh_spikes\" with defining expression = \"exp(-t/tau_syn_inh)\"\n", - "DEBUG:Found t: 0\n", - "DEBUG:\tFinding ode for order 1...\n", - "DEBUG:Shape satisfies ODE of order = 1\n", - "DEBUG:Created Shape with symbol I_kernel_inh__X__inh_spikes, derivative_factors = [-1/tau_syn_inh], inhom_term = 0.0, nonlin_term = 0.0\n", - "INFO:Shape V_m: reconstituting expression E_L/tau_m - V_m/tau_m + I_e/C_m + 1.0*I_kernel_exc__X__exc_spikes/C_m - 1.0*I_kernel_inh__X__inh_spikes/C_m + I_stim/C_m\n", - "DEBUG:Splitting expression E_L/tau_m - V_m/tau_m + I_e/C_m + 1.0*I_kernel_exc__X__exc_spikes/C_m - 1.0*I_kernel_inh__X__inh_spikes/C_m + I_stim/C_m (symbols Matrix([[V_m], [I_kernel_exc__X__exc_spikes], [I_kernel_inh__X__inh_spikes]]))\n", - "DEBUG:\tlinear factors: Matrix([[-1/tau_m], [1.0/C_m], [-1.0/C_m]])\n", - "DEBUG:\tinhomogeneous term: E_L/tau_m + I_e/C_m + I_stim/C_m\n", - "DEBUG:\tnonlinear term: 0.0\n", - "INFO:Shape I_kernel_exc__X__exc_spikes: reconstituting expression -I_kernel_exc__X__exc_spikes/tau_syn_exc\n", - "DEBUG:Splitting expression -I_kernel_exc__X__exc_spikes/tau_syn_exc (symbols Matrix([[V_m], [I_kernel_exc__X__exc_spikes], [I_kernel_inh__X__inh_spikes]]))\n", - "DEBUG:\tlinear factors: Matrix([[0], [-1/tau_syn_exc], [0]])\n", - "DEBUG:\tinhomogeneous term: 0.0\n", - "DEBUG:\tnonlinear term: 0.0\n", - "INFO:Shape I_kernel_inh__X__inh_spikes: reconstituting expression -I_kernel_inh__X__inh_spikes/tau_syn_inh\n", - "DEBUG:Splitting expression -I_kernel_inh__X__inh_spikes/tau_syn_inh (symbols Matrix([[V_m], [I_kernel_exc__X__exc_spikes], [I_kernel_inh__X__inh_spikes]]))\n", - "DEBUG:\tlinear factors: Matrix([[0], [0], [-1/tau_syn_inh]])\n", - "DEBUG:\tinhomogeneous term: 0.0\n", - "DEBUG:\tnonlinear term: 0.0\n", - "DEBUG:Initializing system of shapes with x = Matrix([[V_m], [I_kernel_exc__X__exc_spikes], [I_kernel_inh__X__inh_spikes]]), A = Matrix([[-1/tau_m, 1.0/C_m, -1.0/C_m], [0, -1/tau_syn_exc, 0], [0, 0, -1/tau_syn_inh]]), b = Matrix([[E_L/tau_m + I_e/C_m + I_stim/C_m], [0.0], [0.0]]), c = Matrix([[0.0], [0.0], [0.0]])\n", - "INFO:Finding analytically solvable equations...\n", - "INFO:Saving dependency graph plot to /tmp/ode_dependency_graph.dot\n", - "DEBUG:os.makedirs('/tmp')\n", - "DEBUG:write lines to '/tmp/ode_dependency_graph.dot'\n", - "DEBUG:run [PosixPath('dot'), '-Kdot', '-Tpdf', '-O', 'ode_dependency_graph.dot']\n", - "INFO:Shape V_m: reconstituting expression E_L/tau_m - V_m/tau_m + I_e/C_m + 1.0*I_kernel_exc__X__exc_spikes/C_m - 1.0*I_kernel_inh__X__inh_spikes/C_m + I_stim/C_m\n", - "DEBUG:Splitting expression E_L/tau_m - V_m/tau_m + I_e/C_m + 1.0*I_kernel_exc__X__exc_spikes/C_m - 1.0*I_kernel_inh__X__inh_spikes/C_m + I_stim/C_m (symbols [V_m, I_kernel_exc__X__exc_spikes, I_kernel_inh__X__inh_spikes])\n", - "DEBUG:\tlinear factors: Matrix([[-1/tau_m], [1.0/C_m], [-1.0/C_m]])\n", - "DEBUG:\tinhomogeneous term: E_L/tau_m + I_e/C_m + I_stim/C_m\n", - "DEBUG:\tnonlinear term: 0.0\n", - "INFO:Shape I_kernel_exc__X__exc_spikes: reconstituting expression -I_kernel_exc__X__exc_spikes/tau_syn_exc\n", - "DEBUG:Splitting expression -I_kernel_exc__X__exc_spikes/tau_syn_exc (symbols [V_m, I_kernel_exc__X__exc_spikes, I_kernel_inh__X__inh_spikes])\n", - "DEBUG:\tlinear factors: Matrix([[0], [-1/tau_syn_exc], [0]])\n", - "DEBUG:\tinhomogeneous term: 0.0\n", - "DEBUG:\tnonlinear term: 0.0\n", - "INFO:Shape I_kernel_inh__X__inh_spikes: reconstituting expression -I_kernel_inh__X__inh_spikes/tau_syn_inh\n", - "DEBUG:Splitting expression -I_kernel_inh__X__inh_spikes/tau_syn_inh (symbols [V_m, I_kernel_exc__X__exc_spikes, I_kernel_inh__X__inh_spikes])\n", - "DEBUG:\tlinear factors: Matrix([[0], [0], [-1/tau_syn_inh]])\n", - "DEBUG:\tinhomogeneous term: 0.0\n", - "DEBUG:\tnonlinear term: 0.0\n", - "INFO:Saving dependency graph plot to /tmp/ode_dependency_graph_analytically_solvable_before_propagated.dot\n", - "DEBUG:os.makedirs('/tmp')\n", - "DEBUG:write lines to '/tmp/ode_dependency_graph_analytically_solvable_before_propagated.dot'\n", - "DEBUG:run [PosixPath('dot'), '-Kdot', '-Tpdf', '-O', 'ode_dependency_graph_analytically_solvable_before_propagated.dot']\n", - "INFO:Saving dependency graph plot to /tmp/ode_dependency_graph_analytically_solvable.dot\n", - "DEBUG:os.makedirs('/tmp')\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "DEBUG:write lines to '/tmp/ode_dependency_graph_analytically_solvable.dot'\n", - "DEBUG:run [PosixPath('dot'), '-Kdot', '-Tpdf', '-O', 'ode_dependency_graph_analytically_solvable.dot']\n", - "INFO:Generating propagators for the following symbols: V_m, I_kernel_exc__X__exc_spikes, I_kernel_inh__X__inh_spikes\n", - "DEBUG:Initializing system of shapes with x = Matrix([[V_m], [I_kernel_exc__X__exc_spikes], [I_kernel_inh__X__inh_spikes]]), A = Matrix([[-1/tau_m, 1.0/C_m, -1.0/C_m], [0, -1/tau_syn_exc, 0], [0, 0, -1/tau_syn_inh]]), b = Matrix([[E_L/tau_m + I_e/C_m + I_stim/C_m], [0.0], [0.0]]), c = Matrix([[0], [0], [0]])\n", - "WARNING:Under certain conditions, the propagator matrix is singular (contains infinities).\n", - "WARNING:List of all conditions that result in a singular propagator:\n", - "WARNING:\ttau_m = tau_syn_exc\n", - "WARNING:\ttau_m = tau_syn_inh\n", - "DEBUG:System of equations:\n", - "DEBUG:x = Matrix([[V_m], [I_kernel_exc__X__exc_spikes], [I_kernel_inh__X__inh_spikes]])\n", - "DEBUG:A = Matrix([\n", - "[-1/tau_m, 1.0/C_m, -1.0/C_m],\n", - "[ 0, -1/tau_syn_exc, 0],\n", - "[ 0, 0, -1/tau_syn_inh]])\n", - "DEBUG:b = Matrix([[E_L/tau_m + I_e/C_m + I_stim/C_m], [0.0], [0.0]])\n", - "DEBUG:c = Matrix([[0], [0], [0]])\n", - "INFO:update_expr[V_m] = -E_L*__P__V_m__V_m + E_L + I_kernel_exc__X__exc_spikes*__P__V_m__I_kernel_exc__X__exc_spikes + I_kernel_inh__X__inh_spikes*__P__V_m__I_kernel_inh__X__inh_spikes + V_m*__P__V_m__V_m - I_e*__P__V_m__V_m*tau_m/C_m + I_e*tau_m/C_m - I_stim*__P__V_m__V_m*tau_m/C_m + I_stim*tau_m/C_m\n", - "INFO:update_expr[I_kernel_exc__X__exc_spikes] = I_kernel_exc__X__exc_spikes*__P__I_kernel_exc__X__exc_spikes__I_kernel_exc__X__exc_spikes\n", - "INFO:update_expr[I_kernel_inh__X__inh_spikes] = I_kernel_inh__X__inh_spikes*__P__I_kernel_inh__X__inh_spikes__I_kernel_inh__X__inh_spikes\n", - "WARNING:Not preserving expression for variable \"V_m\" as it is solved by propagator solver\n", - "INFO:In ode-toolbox: returning outdict = \n", - "INFO:[\n", - " {\n", - " \"initial_values\": {\n", - " \"I_kernel_exc__X__exc_spikes\": \"1\",\n", - " \"I_kernel_inh__X__inh_spikes\": \"1\",\n", - " \"V_m\": \"E_L\"\n", - " },\n", - " \"parameters\": {\n", - " \"C_m\": \"250.000000000000\",\n", - " \"E_L\": \"-70.0000000000000\",\n", - " \"I_e\": \"0\",\n", - " \"tau_m\": \"10.0000000000000\",\n", - " \"tau_syn_exc\": \"2.00000000000000\",\n", - " \"tau_syn_inh\": \"2.00000000000000\"\n", - " },\n", - " \"propagators\": {\n", - " \"__P__I_kernel_exc__X__exc_spikes__I_kernel_exc__X__exc_spikes\": \"1.0*exp(-__h/tau_syn_exc)\",\n", - " \"__P__I_kernel_inh__X__inh_spikes__I_kernel_inh__X__inh_spikes\": \"1.0*exp(-__h/tau_syn_inh)\",\n", - " \"__P__V_m__I_kernel_exc__X__exc_spikes\": \"1.0*tau_m*tau_syn_exc*(-exp(__h/tau_m) + exp(__h/tau_syn_exc))*exp(-__h*(tau_m + tau_syn_exc)/(tau_m*tau_syn_exc))/(C_m*(tau_m - tau_syn_exc))\",\n", - " \"__P__V_m__I_kernel_inh__X__inh_spikes\": \"1.0*tau_m*tau_syn_inh*(exp(__h/tau_m) - exp(__h/tau_syn_inh))*exp(-__h/tau_syn_inh - __h/tau_m)/(C_m*(tau_m - tau_syn_inh))\",\n", - " \"__P__V_m__V_m\": \"1.0*exp(-__h/tau_m)\"\n", - " },\n", - " \"solver\": \"analytical\",\n", - " \"state_variables\": [\n", - " \"V_m\",\n", - " \"I_kernel_exc__X__exc_spikes\",\n", - " \"I_kernel_inh__X__inh_spikes\"\n", - " ],\n", - " \"update_expressions\": {\n", - " \"I_kernel_exc__X__exc_spikes\": \"I_kernel_exc__X__exc_spikes*__P__I_kernel_exc__X__exc_spikes__I_kernel_exc__X__exc_spikes\",\n", - " \"I_kernel_inh__X__inh_spikes\": \"I_kernel_inh__X__inh_spikes*__P__I_kernel_inh__X__inh_spikes__I_kernel_inh__X__inh_spikes\",\n", - " \"V_m\": \"-E_L*__P__V_m__V_m + E_L + I_kernel_exc__X__exc_spikes*__P__V_m__I_kernel_exc__X__exc_spikes + I_kernel_inh__X__inh_spikes*__P__V_m__I_kernel_inh__X__inh_spikes + V_m*__P__V_m__V_m - I_e*__P__V_m__V_m*tau_m/C_m + I_e*tau_m/C_m - I_stim*__P__V_m__V_m*tau_m/C_m + I_stim*tau_m/C_m\"\n", - " }\n", - " }\n", - "]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[62,iaf_psc_exp_dend7c1adc9dbf3144fabdd9ebff0cce4e18_neuron_nestml, DEBUG, [38:0;93:0]]: Start building symbol table!\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:Analysing input:\n", - "INFO:{\n", - " \"dynamics\": [\n", - " {\n", - " \"expression\": \"V_m' = (-(V_m - E_L)) / tau_m + ((I_kernel_exc__X__exc_spikes * 1.0 - I_kernel_inh__X__inh_spikes * 1.0) + I_e + I_stim) / C_m\",\n", - " \"initial_values\": {\n", - " \"V_m\": \"E_L\"\n", - " }\n", - " },\n", - " {\n", - " \"expression\": \"I_kernel_exc__X__exc_spikes = exp(-t / tau_syn_exc)\",\n", - " \"initial_values\": {}\n", - " },\n", - " {\n", - " \"expression\": \"post_trace_kernel__for_third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml__X__post_spikes__for_third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml = exp(-t / tau_tr_post__for_third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml)\",\n", - " \"initial_values\": {}\n", - " },\n", - " {\n", - " \"expression\": \"I_kernel_inh__X__inh_spikes = exp(-t / tau_syn_inh)\",\n", - " \"initial_values\": {}\n", - " }\n", - " ],\n", - " \"options\": {\n", - " \"output_timestep_symbol\": \"__h\"\n", - " },\n", - " \"parameters\": {\n", - " \"C_m\": \"250\",\n", - " \"E_L\": \"(-70)\",\n", - " \"I_e\": \"0\",\n", - " \"V_reset\": \"(-70)\",\n", - " \"V_th\": \"(-55)\",\n", - " \"refr_T\": \"2\",\n", - " \"tau_m\": \"10\",\n", - " \"tau_syn_exc\": \"2\",\n", - " \"tau_syn_inh\": \"2\",\n", - " \"tau_tr_post__for_third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml\": \"20\"\n", - " }\n", - "}\n", - "INFO:Processing global options...\n", - "INFO:Processing input shapes...\n", - "INFO:\n", - "Processing differential-equation form shape V_m with defining expression = \"(-(V_m - E_L)) / tau_m + ((I_kernel_exc__X__exc_spikes * 1.0 - I_kernel_inh__X__inh_spikes * 1.0) + I_e + I_stim) / C_m\"\n", - "DEBUG:Splitting expression (E_L - V_m)/tau_m + (I_e + 1.0*I_kernel_exc__X__exc_spikes - 1.0*I_kernel_inh__X__inh_spikes + I_stim)/C_m (symbols [V_m])\n", - "DEBUG:\tlinear factors: Matrix([[-1/tau_m]])\n", - "DEBUG:\tinhomogeneous term: E_L/tau_m + I_e/C_m\n", - "DEBUG:\tnonlinear term: 1.0*I_kernel_exc__X__exc_spikes/C_m - 1.0*I_kernel_inh__X__inh_spikes/C_m + I_stim/C_m\n", - "DEBUG:Created Shape with symbol V_m, derivative_factors = [-1/tau_m], inhom_term = E_L/tau_m + I_e/C_m, nonlin_term = 1.0*I_kernel_exc__X__exc_spikes/C_m - 1.0*I_kernel_inh__X__inh_spikes/C_m + I_stim/C_m\n", - "INFO:\tReturning shape: Shape \"V_m\" of order 1\n", - "INFO:Shape V_m: reconstituting expression E_L/tau_m - V_m/tau_m + I_e/C_m + 1.0*I_kernel_exc__X__exc_spikes/C_m - 1.0*I_kernel_inh__X__inh_spikes/C_m + I_stim/C_m\n", - "INFO:\n", - "Processing function-of-time shape \"I_kernel_exc__X__exc_spikes\" with defining expression = \"exp(-t/tau_syn_exc)\"\n", - "DEBUG:Found t: 0\n", - "DEBUG:\tFinding ode for order 1...\n", - "DEBUG:Shape satisfies ODE of order = 1\n", - "DEBUG:Created Shape with symbol I_kernel_exc__X__exc_spikes, derivative_factors = [-1/tau_syn_exc], inhom_term = 0.0, nonlin_term = 0.0\n", - "INFO:Shape I_kernel_exc__X__exc_spikes: reconstituting expression -I_kernel_exc__X__exc_spikes/tau_syn_exc\n", - "INFO:\n", - "Processing function-of-time shape \"post_trace_kernel__for_third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml__X__post_spikes__for_third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml\" with defining expression = \"exp(-t/tau_tr_post__for_third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml)\"\n", - "DEBUG:Found t: 0\n", - "DEBUG:\tFinding ode for order 1...\n", - "DEBUG:Shape satisfies ODE of order = 1\n", - "DEBUG:Created Shape with symbol post_trace_kernel__for_third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml__X__post_spikes__for_third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml, derivative_factors = [-1/tau_tr_post__for_third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml], inhom_term = 0.0, nonlin_term = 0.0\n", - "INFO:Shape post_trace_kernel__for_third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml__X__post_spikes__for_third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml: reconstituting expression -post_trace_kernel__for_third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml__X__post_spikes__for_third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml/tau_tr_post__for_third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml\n", - "INFO:\n", - "Processing function-of-time shape \"I_kernel_inh__X__inh_spikes\" with defining expression = \"exp(-t/tau_syn_inh)\"\n", - "DEBUG:Found t: 0\n", - "DEBUG:\tFinding ode for order 1...\n", - "DEBUG:Shape satisfies ODE of order = 1\n", - "DEBUG:Created Shape with symbol I_kernel_inh__X__inh_spikes, derivative_factors = [-1/tau_syn_inh], inhom_term = 0.0, nonlin_term = 0.0\n", - "INFO:Shape I_kernel_inh__X__inh_spikes: reconstituting expression -I_kernel_inh__X__inh_spikes/tau_syn_inh\n", - "INFO:All known variables: [V_m, I_kernel_exc__X__exc_spikes, post_trace_kernel__for_third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml__X__post_spikes__for_third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml, I_kernel_inh__X__inh_spikes], all parameters used in ODEs: {tau_tr_post__for_third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml, tau_syn_inh, tau_syn_exc, tau_m, C_m, I_stim, E_L, I_e}\n", - "INFO:No numerical value specified for parameter \"I_stim\"\n", - "INFO:\n", - "Processing differential-equation form shape V_m with defining expression = \"(-(V_m - E_L)) / tau_m + ((I_kernel_exc__X__exc_spikes * 1.0 - I_kernel_inh__X__inh_spikes * 1.0) + I_e + I_stim) / C_m\"\n", - "DEBUG:Splitting expression (E_L - V_m)/tau_m + (I_e + 1.0*I_kernel_exc__X__exc_spikes - 1.0*I_kernel_inh__X__inh_spikes + I_stim)/C_m (symbols [V_m, I_kernel_exc__X__exc_spikes, post_trace_kernel__for_third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml__X__post_spikes__for_third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml, I_kernel_inh__X__inh_spikes, V_m])\n", - "DEBUG:\tlinear factors: Matrix([[-1/tau_m], [1.0/C_m], [0], [-1.0/C_m], [0]])\n", - "DEBUG:\tinhomogeneous term: E_L/tau_m + I_e/C_m + I_stim/C_m\n", - "DEBUG:\tnonlinear term: 0.0\n", - "DEBUG:Created Shape with symbol V_m, derivative_factors = [-1/tau_m], inhom_term = E_L/tau_m + I_e/C_m + I_stim/C_m, nonlin_term = 1.0*I_kernel_exc__X__exc_spikes/C_m - 1.0*I_kernel_inh__X__inh_spikes/C_m\n", - "INFO:\tReturning shape: Shape \"V_m\" of order 1\n", - "INFO:\n", - "Processing function-of-time shape \"I_kernel_exc__X__exc_spikes\" with defining expression = \"exp(-t/tau_syn_exc)\"\n", - "DEBUG:Found t: 0\n", - "DEBUG:\tFinding ode for order 1...\n", - "DEBUG:Shape satisfies ODE of order = 1\n", - "DEBUG:Created Shape with symbol I_kernel_exc__X__exc_spikes, derivative_factors = [-1/tau_syn_exc], inhom_term = 0.0, nonlin_term = 0.0\n", - "INFO:\n", - "Processing function-of-time shape \"post_trace_kernel__for_third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml__X__post_spikes__for_third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml\" with defining expression = \"exp(-t/tau_tr_post__for_third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml)\"\n", - "DEBUG:Found t: 0\n", - "DEBUG:\tFinding ode for order 1...\n", - "DEBUG:Shape satisfies ODE of order = 1\n", - "DEBUG:Created Shape with symbol post_trace_kernel__for_third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml__X__post_spikes__for_third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml, derivative_factors = [-1/tau_tr_post__for_third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml], inhom_term = 0.0, nonlin_term = 0.0\n", - "INFO:\n", - "Processing function-of-time shape \"I_kernel_inh__X__inh_spikes\" with defining expression = \"exp(-t/tau_syn_inh)\"\n", - "DEBUG:Found t: 0\n", - "DEBUG:\tFinding ode for order 1...\n", - "DEBUG:Shape satisfies ODE of order = 1\n", - "DEBUG:Created Shape with symbol I_kernel_inh__X__inh_spikes, derivative_factors = [-1/tau_syn_inh], inhom_term = 0.0, nonlin_term = 0.0\n", - "INFO:Shape V_m: reconstituting expression E_L/tau_m - V_m/tau_m + I_e/C_m + 1.0*I_kernel_exc__X__exc_spikes/C_m - 1.0*I_kernel_inh__X__inh_spikes/C_m + I_stim/C_m\n", - "DEBUG:Splitting expression E_L/tau_m - V_m/tau_m + I_e/C_m + 1.0*I_kernel_exc__X__exc_spikes/C_m - 1.0*I_kernel_inh__X__inh_spikes/C_m + I_stim/C_m (symbols Matrix([[V_m], [I_kernel_exc__X__exc_spikes], [post_trace_kernel__for_third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml__X__post_spikes__for_third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml], [I_kernel_inh__X__inh_spikes]]))\n", - "DEBUG:\tlinear factors: Matrix([[-1/tau_m], [1.0/C_m], [0], [-1.0/C_m]])\n", - "DEBUG:\tinhomogeneous term: E_L/tau_m + I_e/C_m + I_stim/C_m\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "DEBUG:\tnonlinear term: 0.0\n", - "INFO:Shape I_kernel_exc__X__exc_spikes: reconstituting expression -I_kernel_exc__X__exc_spikes/tau_syn_exc\n", - "DEBUG:Splitting expression -I_kernel_exc__X__exc_spikes/tau_syn_exc (symbols Matrix([[V_m], [I_kernel_exc__X__exc_spikes], [post_trace_kernel__for_third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml__X__post_spikes__for_third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml], [I_kernel_inh__X__inh_spikes]]))\n", - "DEBUG:\tlinear factors: Matrix([[0], [-1/tau_syn_exc], [0], [0]])\n", - "DEBUG:\tinhomogeneous term: 0.0\n", - "DEBUG:\tnonlinear term: 0.0\n", - "INFO:Shape post_trace_kernel__for_third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml__X__post_spikes__for_third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml: reconstituting expression -post_trace_kernel__for_third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml__X__post_spikes__for_third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml/tau_tr_post__for_third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml\n", - "DEBUG:Splitting expression -post_trace_kernel__for_third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml__X__post_spikes__for_third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml/tau_tr_post__for_third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml (symbols Matrix([[V_m], [I_kernel_exc__X__exc_spikes], [post_trace_kernel__for_third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml__X__post_spikes__for_third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml], [I_kernel_inh__X__inh_spikes]]))\n", - "DEBUG:\tlinear factors: Matrix([[0], [0], [-1/tau_tr_post__for_third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml], [0]])\n", - "DEBUG:\tinhomogeneous term: 0.0\n", - "DEBUG:\tnonlinear term: 0.0\n", - "INFO:Shape I_kernel_inh__X__inh_spikes: reconstituting expression -I_kernel_inh__X__inh_spikes/tau_syn_inh\n", - "DEBUG:Splitting expression -I_kernel_inh__X__inh_spikes/tau_syn_inh (symbols Matrix([[V_m], [I_kernel_exc__X__exc_spikes], [post_trace_kernel__for_third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml__X__post_spikes__for_third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml], [I_kernel_inh__X__inh_spikes]]))\n", - "DEBUG:\tlinear factors: Matrix([[0], [0], [0], [-1/tau_syn_inh]])\n", - "DEBUG:\tinhomogeneous term: 0.0\n", - "DEBUG:\tnonlinear term: 0.0\n", - "DEBUG:Initializing system of shapes with x = Matrix([[V_m], [I_kernel_exc__X__exc_spikes], [post_trace_kernel__for_third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml__X__post_spikes__for_third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml], [I_kernel_inh__X__inh_spikes]]), A = Matrix([[-1/tau_m, 1.0/C_m, 0, -1.0/C_m], [0, -1/tau_syn_exc, 0, 0], [0, 0, -1/tau_tr_post__for_third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml, 0], [0, 0, 0, -1/tau_syn_inh]]), b = Matrix([[E_L/tau_m + I_e/C_m + I_stim/C_m], [0.0], [0.0], [0.0]]), c = Matrix([[0.0], [0.0], [0.0], [0.0]])\n", - "INFO:Finding analytically solvable equations...\n", - "INFO:Saving dependency graph plot to /tmp/ode_dependency_graph.dot\n", - "DEBUG:os.makedirs('/tmp')\n", - "DEBUG:write lines to '/tmp/ode_dependency_graph.dot'\n", - "DEBUG:run [PosixPath('dot'), '-Kdot', '-Tpdf', '-O', 'ode_dependency_graph.dot']\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[63,GLOBAL, INFO]: Analysing/transforming model 'iaf_psc_exp_dend7c1adc9dbf3144fabdd9ebff0cce4e18_neuron_nestml__with_third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml'\n", - "[64,iaf_psc_exp_dend7c1adc9dbf3144fabdd9ebff0cce4e18_neuron_nestml__with_third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml, INFO, [38:0;93:0]]: Starts processing of the model 'iaf_psc_exp_dend7c1adc9dbf3144fabdd9ebff0cce4e18_neuron_nestml__with_third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml'\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:Shape V_m: reconstituting expression E_L/tau_m - V_m/tau_m + I_e/C_m + 1.0*I_kernel_exc__X__exc_spikes/C_m - 1.0*I_kernel_inh__X__inh_spikes/C_m + I_stim/C_m\n", - "DEBUG:Splitting expression E_L/tau_m - V_m/tau_m + I_e/C_m + 1.0*I_kernel_exc__X__exc_spikes/C_m - 1.0*I_kernel_inh__X__inh_spikes/C_m + I_stim/C_m (symbols [V_m, I_kernel_exc__X__exc_spikes, post_trace_kernel__for_third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml__X__post_spikes__for_third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml, I_kernel_inh__X__inh_spikes])\n", - "DEBUG:\tlinear factors: Matrix([[-1/tau_m], [1.0/C_m], [0], [-1.0/C_m]])\n", - "DEBUG:\tinhomogeneous term: E_L/tau_m + I_e/C_m + I_stim/C_m\n", - "DEBUG:\tnonlinear term: 0.0\n", - "INFO:Shape I_kernel_exc__X__exc_spikes: reconstituting expression -I_kernel_exc__X__exc_spikes/tau_syn_exc\n", - "DEBUG:Splitting expression -I_kernel_exc__X__exc_spikes/tau_syn_exc (symbols [V_m, I_kernel_exc__X__exc_spikes, post_trace_kernel__for_third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml__X__post_spikes__for_third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml, I_kernel_inh__X__inh_spikes])\n", - "DEBUG:\tlinear factors: Matrix([[0], [-1/tau_syn_exc], [0], [0]])\n", - "DEBUG:\tinhomogeneous term: 0.0\n", - "DEBUG:\tnonlinear term: 0.0\n", - "INFO:Shape post_trace_kernel__for_third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml__X__post_spikes__for_third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml: reconstituting expression -post_trace_kernel__for_third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml__X__post_spikes__for_third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml/tau_tr_post__for_third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml\n", - "DEBUG:Splitting expression -post_trace_kernel__for_third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml__X__post_spikes__for_third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml/tau_tr_post__for_third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml (symbols [V_m, I_kernel_exc__X__exc_spikes, post_trace_kernel__for_third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml__X__post_spikes__for_third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml, I_kernel_inh__X__inh_spikes])\n", - "DEBUG:\tlinear factors: Matrix([[0], [0], [-1/tau_tr_post__for_third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml], [0]])\n", - "DEBUG:\tinhomogeneous term: 0.0\n", - "DEBUG:\tnonlinear term: 0.0\n", - "INFO:Shape I_kernel_inh__X__inh_spikes: reconstituting expression -I_kernel_inh__X__inh_spikes/tau_syn_inh\n", - "DEBUG:Splitting expression -I_kernel_inh__X__inh_spikes/tau_syn_inh (symbols [V_m, I_kernel_exc__X__exc_spikes, post_trace_kernel__for_third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml__X__post_spikes__for_third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml, I_kernel_inh__X__inh_spikes])\n", - "DEBUG:\tlinear factors: Matrix([[0], [0], [0], [-1/tau_syn_inh]])\n", - "DEBUG:\tinhomogeneous term: 0.0\n", - "DEBUG:\tnonlinear term: 0.0\n", - "INFO:Saving dependency graph plot to /tmp/ode_dependency_graph_analytically_solvable_before_propagated.dot\n", - "DEBUG:os.makedirs('/tmp')\n", - "DEBUG:write lines to '/tmp/ode_dependency_graph_analytically_solvable_before_propagated.dot'\n", - "DEBUG:run [PosixPath('dot'), '-Kdot', '-Tpdf', '-O', 'ode_dependency_graph_analytically_solvable_before_propagated.dot']\n", - "INFO:Saving dependency graph plot to /tmp/ode_dependency_graph_analytically_solvable.dot\n", - "DEBUG:os.makedirs('/tmp')\n", - "DEBUG:write lines to '/tmp/ode_dependency_graph_analytically_solvable.dot'\n", - "DEBUG:run [PosixPath('dot'), '-Kdot', '-Tpdf', '-O', 'ode_dependency_graph_analytically_solvable.dot']\n", - "INFO:Generating propagators for the following symbols: V_m, I_kernel_exc__X__exc_spikes, post_trace_kernel__for_third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml__X__post_spikes__for_third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml, I_kernel_inh__X__inh_spikes\n", - "DEBUG:Initializing system of shapes with x = Matrix([[V_m], [I_kernel_exc__X__exc_spikes], [post_trace_kernel__for_third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml__X__post_spikes__for_third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml], [I_kernel_inh__X__inh_spikes]]), A = Matrix([[-1/tau_m, 1.0/C_m, 0, -1.0/C_m], [0, -1/tau_syn_exc, 0, 0], [0, 0, -1/tau_tr_post__for_third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml, 0], [0, 0, 0, -1/tau_syn_inh]]), b = Matrix([[E_L/tau_m + I_e/C_m + I_stim/C_m], [0.0], [0.0], [0.0]]), c = Matrix([[0], [0], [0], [0]])\n", - "WARNING:Under certain conditions, the propagator matrix is singular (contains infinities).\n", - "WARNING:List of all conditions that result in a singular propagator:\n", - "WARNING:\ttau_m = tau_syn_exc\n", - "WARNING:\ttau_m = tau_syn_inh\n", - "DEBUG:System of equations:\n", - "DEBUG:x = Matrix([[V_m], [I_kernel_exc__X__exc_spikes], [post_trace_kernel__for_third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml__X__post_spikes__for_third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml], [I_kernel_inh__X__inh_spikes]])\n", - "DEBUG:A = Matrix([\n", - "[-1/tau_m, 1.0/C_m, 0, -1.0/C_m],\n", - "[ 0, -1/tau_syn_exc, 0, 0],\n", - "[ 0, 0, -1/tau_tr_post__for_third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml, 0],\n", - "[ 0, 0, 0, -1/tau_syn_inh]])\n", - "DEBUG:b = Matrix([[E_L/tau_m + I_e/C_m + I_stim/C_m], [0.0], [0.0], [0.0]])\n", - "DEBUG:c = Matrix([[0], [0], [0], [0]])\n", - "INFO:update_expr[V_m] = -E_L*__P__V_m__V_m + E_L + I_kernel_exc__X__exc_spikes*__P__V_m__I_kernel_exc__X__exc_spikes + I_kernel_inh__X__inh_spikes*__P__V_m__I_kernel_inh__X__inh_spikes + V_m*__P__V_m__V_m - I_e*__P__V_m__V_m*tau_m/C_m + I_e*tau_m/C_m - I_stim*__P__V_m__V_m*tau_m/C_m + I_stim*tau_m/C_m\n", - "INFO:update_expr[I_kernel_exc__X__exc_spikes] = I_kernel_exc__X__exc_spikes*__P__I_kernel_exc__X__exc_spikes__I_kernel_exc__X__exc_spikes\n", - "INFO:update_expr[post_trace_kernel__for_third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml__X__post_spikes__for_third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml] = __P__post_trace_kernel__for_third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml__X__post_spikes__for_third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml__post_trace_kernel__for_third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml__X__post_spikes__for_third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml*post_trace_kernel__for_third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml__X__post_spikes__for_third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml\n", - "INFO:update_expr[I_kernel_inh__X__inh_spikes] = I_kernel_inh__X__inh_spikes*__P__I_kernel_inh__X__inh_spikes__I_kernel_inh__X__inh_spikes\n", - "WARNING:Not preserving expression for variable \"V_m\" as it is solved by propagator solver\n", - "INFO:In ode-toolbox: returning outdict = \n", - "INFO:[\n", - " {\n", - " \"initial_values\": {\n", - " \"I_kernel_exc__X__exc_spikes\": \"1\",\n", - " \"I_kernel_inh__X__inh_spikes\": \"1\",\n", - " \"V_m\": \"E_L\",\n", - " \"post_trace_kernel__for_third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml__X__post_spikes__for_third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml\": \"1\"\n", - " },\n", - " \"parameters\": {\n", - " \"C_m\": \"250.000000000000\",\n", - " \"E_L\": \"-70.0000000000000\",\n", - " \"I_e\": \"0\",\n", - " \"tau_m\": \"10.0000000000000\",\n", - " \"tau_syn_exc\": \"2.00000000000000\",\n", - " \"tau_syn_inh\": \"2.00000000000000\",\n", - " \"tau_tr_post__for_third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml\": \"20.0000000000000\"\n", - " },\n", - " \"propagators\": {\n", - " \"__P__I_kernel_exc__X__exc_spikes__I_kernel_exc__X__exc_spikes\": \"1.0*exp(-__h/tau_syn_exc)\",\n", - " \"__P__I_kernel_inh__X__inh_spikes__I_kernel_inh__X__inh_spikes\": \"1.0*exp(-__h/tau_syn_inh)\",\n", - " \"__P__V_m__I_kernel_exc__X__exc_spikes\": \"1.0*tau_m*tau_syn_exc*(-exp(__h/tau_m) + exp(__h/tau_syn_exc))*exp(-__h*(tau_m + tau_syn_exc)/(tau_m*tau_syn_exc))/(C_m*(tau_m - tau_syn_exc))\",\n", - " \"__P__V_m__I_kernel_inh__X__inh_spikes\": \"1.0*tau_m*tau_syn_inh*(exp(__h/tau_m) - exp(__h/tau_syn_inh))*exp(-__h/tau_syn_inh - __h/tau_m)/(C_m*(tau_m - tau_syn_inh))\",\n", - " \"__P__V_m__V_m\": \"1.0*exp(-__h/tau_m)\",\n", - " \"__P__post_trace_kernel__for_third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml__X__post_spikes__for_third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml__post_trace_kernel__for_third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml__X__post_spikes__for_third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml\": \"1.0*exp(-__h/tau_tr_post__for_third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml)\"\n", - " },\n", - " \"solver\": \"analytical\",\n", - " \"state_variables\": [\n", - " \"V_m\",\n", - " \"I_kernel_exc__X__exc_spikes\",\n", - " \"post_trace_kernel__for_third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml__X__post_spikes__for_third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml\",\n", - " \"I_kernel_inh__X__inh_spikes\"\n", - " ],\n", - " \"update_expressions\": {\n", - " \"I_kernel_exc__X__exc_spikes\": \"I_kernel_exc__X__exc_spikes*__P__I_kernel_exc__X__exc_spikes__I_kernel_exc__X__exc_spikes\",\n", - " \"I_kernel_inh__X__inh_spikes\": \"I_kernel_inh__X__inh_spikes*__P__I_kernel_inh__X__inh_spikes__I_kernel_inh__X__inh_spikes\",\n", - " \"V_m\": \"-E_L*__P__V_m__V_m + E_L + I_kernel_exc__X__exc_spikes*__P__V_m__I_kernel_exc__X__exc_spikes + I_kernel_inh__X__inh_spikes*__P__V_m__I_kernel_inh__X__inh_spikes + V_m*__P__V_m__V_m - I_e*__P__V_m__V_m*tau_m/C_m + I_e*tau_m/C_m - I_stim*__P__V_m__V_m*tau_m/C_m + I_stim*tau_m/C_m\",\n", - " \"post_trace_kernel__for_third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml__X__post_spikes__for_third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml\": \"__P__post_trace_kernel__for_third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml__X__post_spikes__for_third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml__post_trace_kernel__for_third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml__X__post_spikes__for_third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml*post_trace_kernel__for_third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml__X__post_spikes__for_third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml\"\n", - " }\n", - " }\n", - "]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[65,iaf_psc_exp_dend7c1adc9dbf3144fabdd9ebff0cce4e18_neuron_nestml__with_third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml, DEBUG, [38:0;93:0]]: Start building symbol table!\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:Analysing input:\n", - "INFO:{\n", - " \"dynamics\": [\n", - " {\n", - " \"expression\": \"pre_trace_kernel__X__pre_spikes = exp(-t / tau_tr_pre)\",\n", - " \"initial_values\": {}\n", - " }\n", - " ],\n", - " \"options\": {\n", - " \"output_timestep_symbol\": \"__h\"\n", - " },\n", - " \"parameters\": {\n", - " \"Wmax\": \"100.0\",\n", - " \"Wmin\": \"0.0\",\n", - " \"alpha\": \"1.0\",\n", - " \"d\": \"1\",\n", - " \"lambda\": \"0.01\",\n", - " \"mu_minus\": \"1.0\",\n", - " \"mu_plus\": \"1.0\",\n", - " \"tau_tr_post\": \"20\",\n", - " \"tau_tr_pre\": \"20\"\n", - " }\n", - "}\n", - "INFO:Processing global options...\n", - "INFO:Processing input shapes...\n", - "INFO:\n", - "Processing function-of-time shape \"pre_trace_kernel__X__pre_spikes\" with defining expression = \"exp(-t/tau_tr_pre)\"\n", - "DEBUG:Found t: 0\n", - "DEBUG:\tFinding ode for order 1...\n", - "DEBUG:Shape satisfies ODE of order = 1\n", - "DEBUG:Created Shape with symbol pre_trace_kernel__X__pre_spikes, derivative_factors = [-1/tau_tr_pre], inhom_term = 0.0, nonlin_term = 0.0\n", - "INFO:Shape pre_trace_kernel__X__pre_spikes: reconstituting expression -pre_trace_kernel__X__pre_spikes/tau_tr_pre\n", - "INFO:All known variables: [pre_trace_kernel__X__pre_spikes], all parameters used in ODEs: {tau_tr_pre}\n", - "INFO:\n", - "Processing function-of-time shape \"pre_trace_kernel__X__pre_spikes\" with defining expression = \"exp(-t/tau_tr_pre)\"\n", - "DEBUG:Found t: 0\n", - "DEBUG:\tFinding ode for order 1...\n", - "DEBUG:Shape satisfies ODE of order = 1\n", - "DEBUG:Created Shape with symbol pre_trace_kernel__X__pre_spikes, derivative_factors = [-1/tau_tr_pre], inhom_term = 0.0, nonlin_term = 0.0\n", - "INFO:Shape pre_trace_kernel__X__pre_spikes: reconstituting expression -pre_trace_kernel__X__pre_spikes/tau_tr_pre\n", - "DEBUG:Splitting expression -pre_trace_kernel__X__pre_spikes/tau_tr_pre (symbols Matrix([[pre_trace_kernel__X__pre_spikes]]))\n", - "DEBUG:\tlinear factors: Matrix([[-1/tau_tr_pre]])\n", - "DEBUG:\tinhomogeneous term: 0.0\n", - "DEBUG:\tnonlinear term: 0.0\n", - "DEBUG:Initializing system of shapes with x = Matrix([[pre_trace_kernel__X__pre_spikes]]), A = Matrix([[-1/tau_tr_pre]]), b = Matrix([[0.0]]), c = Matrix([[0.0]])\n", - "INFO:Finding analytically solvable equations...\n", - "INFO:Saving dependency graph plot to /tmp/ode_dependency_graph.dot\n", - "DEBUG:os.makedirs('/tmp')\n", - "DEBUG:write lines to '/tmp/ode_dependency_graph.dot'\n", - "DEBUG:run [PosixPath('dot'), '-Kdot', '-Tpdf', '-O', 'ode_dependency_graph.dot']\n", - "INFO:Shape pre_trace_kernel__X__pre_spikes: reconstituting expression -pre_trace_kernel__X__pre_spikes/tau_tr_pre\n", - "DEBUG:Splitting expression -pre_trace_kernel__X__pre_spikes/tau_tr_pre (symbols [pre_trace_kernel__X__pre_spikes])\n", - "DEBUG:\tlinear factors: Matrix([[-1/tau_tr_pre]])\n", - "DEBUG:\tinhomogeneous term: 0.0\n", - "DEBUG:\tnonlinear term: 0.0\n", - "INFO:Saving dependency graph plot to /tmp/ode_dependency_graph_analytically_solvable_before_propagated.dot\n", - "DEBUG:os.makedirs('/tmp')\n", - "DEBUG:write lines to '/tmp/ode_dependency_graph_analytically_solvable_before_propagated.dot'\n", - "DEBUG:run [PosixPath('dot'), '-Kdot', '-Tpdf', '-O', 'ode_dependency_graph_analytically_solvable_before_propagated.dot']\n", - "INFO:Saving dependency graph plot to /tmp/ode_dependency_graph_analytically_solvable.dot\n", - "DEBUG:os.makedirs('/tmp')\n", - "DEBUG:write lines to '/tmp/ode_dependency_graph_analytically_solvable.dot'\n", - "DEBUG:run [PosixPath('dot'), '-Kdot', '-Tpdf', '-O', 'ode_dependency_graph_analytically_solvable.dot']\n", - "INFO:Generating propagators for the following symbols: pre_trace_kernel__X__pre_spikes\n", - "DEBUG:Initializing system of shapes with x = Matrix([[pre_trace_kernel__X__pre_spikes]]), A = Matrix([[-1/tau_tr_pre]]), b = Matrix([[0.0]]), c = Matrix([[0]])\n", - "DEBUG:System of equations:\n", - "DEBUG:x = Matrix([[pre_trace_kernel__X__pre_spikes]])\n", - "DEBUG:A = Matrix([[-1/tau_tr_pre]])\n", - "DEBUG:b = Matrix([[0.0]])\n", - "DEBUG:c = Matrix([[0]])\n", - "INFO:update_expr[pre_trace_kernel__X__pre_spikes] = __P__pre_trace_kernel__X__pre_spikes__pre_trace_kernel__X__pre_spikes*pre_trace_kernel__X__pre_spikes\n", - "INFO:In ode-toolbox: returning outdict = \n", - "INFO:[\n", - " {\n", - " \"initial_values\": {\n", - " \"pre_trace_kernel__X__pre_spikes\": \"1\"\n", - " },\n", - " \"parameters\": {\n", - " \"tau_tr_pre\": \"20.0000000000000\"\n", - " },\n", - " \"propagators\": {\n", - " \"__P__pre_trace_kernel__X__pre_spikes__pre_trace_kernel__X__pre_spikes\": \"exp(-__h/tau_tr_pre)\"\n", - " },\n", - " \"solver\": \"analytical\",\n", - " \"state_variables\": [\n", - " \"pre_trace_kernel__X__pre_spikes\"\n", - " ],\n", - " \"update_expressions\": {\n", - " \"pre_trace_kernel__X__pre_spikes\": \"__P__pre_trace_kernel__X__pre_spikes__pre_trace_kernel__X__pre_spikes*pre_trace_kernel__X__pre_spikes\"\n", - " }\n", - " }\n", - "]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[66,GLOBAL, INFO]: Analysing/transforming synapse third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml__with_iaf_psc_exp_dend7c1adc9dbf3144fabdd9ebff0cce4e18_neuron_nestml.\n", - "[67,third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml__with_iaf_psc_exp_dend7c1adc9dbf3144fabdd9ebff0cce4e18_neuron_nestml, INFO, [39:0;85:0]]: Starts processing of the model 'third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml__with_iaf_psc_exp_dend7c1adc9dbf3144fabdd9ebff0cce4e18_neuron_nestml'\n", - "[68,third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml__with_iaf_psc_exp_dend7c1adc9dbf3144fabdd9ebff0cce4e18_neuron_nestml, DEBUG, [39:0;85:0]]: Start building symbol table!\n", - "[69,third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml__with_iaf_psc_exp_dend7c1adc9dbf3144fabdd9ebff0cce4e18_neuron_nestml, WARNING, [44:8;44:28]]: Variable 'd' has the same name as a physical unit!\n", - "[70,third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml__with_iaf_psc_exp_dend7c1adc9dbf3144fabdd9ebff0cce4e18_neuron_nestml, DEBUG, [39:0;85:0]]: Start building symbol table!\n", - "[71,third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml__with_iaf_psc_exp_dend7c1adc9dbf3144fabdd9ebff0cce4e18_neuron_nestml, WARNING, [44:8;44:28]]: Variable 'd' has the same name as a physical unit!\n", - "[72,GLOBAL, INFO]: Rendering template /home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/target/iaf_psc_exp_dend7c1adc9dbf3144fabdd9ebff0cce4e18_neuron_nestml.cpp\n", - "[73,GLOBAL, INFO]: Rendering template /home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/target/iaf_psc_exp_dend7c1adc9dbf3144fabdd9ebff0cce4e18_neuron_nestml.h\n", - "[74,iaf_psc_exp_dend7c1adc9dbf3144fabdd9ebff0cce4e18_neuron_nestml, INFO, [38:0;93:0]]: Successfully generated code for the model: 'iaf_psc_exp_dend7c1adc9dbf3144fabdd9ebff0cce4e18_neuron_nestml' in: '/home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/target' !\n", - "[75,GLOBAL, INFO]: Rendering template /home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/target/iaf_psc_exp_dend7c1adc9dbf3144fabdd9ebff0cce4e18_neuron_nestml__with_third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml.cpp\n", - "[76,GLOBAL, INFO]: Rendering template /home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/target/iaf_psc_exp_dend7c1adc9dbf3144fabdd9ebff0cce4e18_neuron_nestml__with_third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml.h\n", - "[77,iaf_psc_exp_dend7c1adc9dbf3144fabdd9ebff0cce4e18_neuron_nestml__with_third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml, INFO, [38:0;93:0]]: Successfully generated code for the model: 'iaf_psc_exp_dend7c1adc9dbf3144fabdd9ebff0cce4e18_neuron_nestml__with_third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml' in: '/home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/target' !\n", - "[78,GLOBAL, INFO]: Rendering template /home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/target/third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml__with_iaf_psc_exp_dend7c1adc9dbf3144fabdd9ebff0cce4e18_neuron_nestml.h\n", - "[79,third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml__with_iaf_psc_exp_dend7c1adc9dbf3144fabdd9ebff0cce4e18_neuron_nestml, INFO, [39:0;85:0]]: Successfully generated code for the model: 'third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml__with_iaf_psc_exp_dend7c1adc9dbf3144fabdd9ebff0cce4e18_neuron_nestml' in: '/home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/target' !\n", - "[80,GLOBAL, INFO]: Rendering template /home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/target/nestml_7c1adc9dbf3144fabdd9ebff0cce4e18_module.cpp\n", - "[81,GLOBAL, INFO]: Rendering template /home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/target/nestml_7c1adc9dbf3144fabdd9ebff0cce4e18_module.h\n", - "[82,GLOBAL, INFO]: Rendering template /home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/target/CMakeLists.txt\n", - "[83,GLOBAL, INFO]: Successfully generated NEST module code in '/home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/target' !\n", - "CMake Warning (dev) at CMakeLists.txt:95 (project):\n", - " cmake_minimum_required() should be called prior to this top-level project()\n", - " call. Please see the cmake-commands(7) manual for usage documentation of\n", - " both commands.\n", - "This warning is for project developers. Use -Wno-dev to suppress it.\n", - "\n", - "-- The CXX compiler identification is GNU 12.3.0\n", - "-- Detecting CXX compiler ABI info\n", - "-- Detecting CXX compiler ABI info - done\n", - "-- Check for working CXX compiler: /usr/bin/c++ - skipped\n", - "-- Detecting CXX compile features\n", - "-- Detecting CXX compile features - done\n", - "\n", - "-------------------------------------------------------\n", - "nestml_7c1adc9dbf3144fabdd9ebff0cce4e18_module Configuration Summary\n", - "-------------------------------------------------------\n", - "\n", - "C++ compiler : /usr/bin/c++\n", - "Build static libs : OFF\n", - "C++ compiler flags : \n", - "NEST compiler flags : -std=c++11 -Wall -fopenmp -O2 -fdiagnostics-color=auto -g\n", - "NEST include dirs : -I/home/charl/julich/nest-simulator-install/include/nest -I/usr/include -I/usr/include -I/usr/include\n", - "NEST libraries flags : -L/home/charl/julich/nest-simulator-install/lib/nest -lnest -lsli -fopenmp /usr/lib/x86_64-linux-gnu/libltdl.so /usr/lib/x86_64-linux-gnu/libgsl.so /usr/lib/x86_64-linux-gnu/libgslcblas.so\n", - "\n", - "-------------------------------------------------------\n", - "\n", - "You can now build and install 'nestml_7c1adc9dbf3144fabdd9ebff0cce4e18_module' using\n", - " make\n", - " make install\n", - "\n", - "The library file libnestml_7c1adc9dbf3144fabdd9ebff0cce4e18_module.so will be installed to\n", - " /tmp/nestml_target_buhdamnv\n", - "The module can be loaded into NEST using\n", - " (nestml_7c1adc9dbf3144fabdd9ebff0cce4e18_module) Install (in SLI)\n", - " nest.Install(nestml_7c1adc9dbf3144fabdd9ebff0cce4e18_module) (in PyNEST)\n", - "\n", - "CMake Warning (dev) in CMakeLists.txt:\n", - " No cmake_minimum_required command is present. A line of code such as\n", - "\n", - " cmake_minimum_required(VERSION 3.26)\n", - "\n", - " should be added at the top of the file. The version specified may be lower\n", - " if you wish to support older CMake versions for this project. For more\n", - " information run \"cmake --help-policy CMP0000\".\n", - "This warning is for project developers. Use -Wno-dev to suppress it.\n", - "\n", - "-- Configuring done (0.2s)\n", - "-- Generating done (0.0s)\n", - "-- Build files have been written to: /home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/target\n", - "[ 25%] Building CXX object CMakeFiles/nestml_7c1adc9dbf3144fabdd9ebff0cce4e18_module_module.dir/nestml_7c1adc9dbf3144fabdd9ebff0cce4e18_module.o\n", - "[ 50%] Building CXX object CMakeFiles/nestml_7c1adc9dbf3144fabdd9ebff0cce4e18_module_module.dir/iaf_psc_exp_dend7c1adc9dbf3144fabdd9ebff0cce4e18_neuron_nestml.o\n", - "[ 75%] Building CXX object CMakeFiles/nestml_7c1adc9dbf3144fabdd9ebff0cce4e18_module_module.dir/iaf_psc_exp_dend7c1adc9dbf3144fabdd9ebff0cce4e18_neuron_nestml__with_third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml.o\n", - "/home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/target/iaf_psc_exp_dend7c1adc9dbf3144fabdd9ebff0cce4e18_neuron_nestml.cpp: In member function ‘void iaf_psc_exp_dend7c1adc9dbf3144fabdd9ebff0cce4e18_neuron_nestml::init_state_internal_()’:\n", - "/home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/target/iaf_psc_exp_dend7c1adc9dbf3144fabdd9ebff0cce4e18_neuron_nestml.cpp:183:16: warning: unused variable ‘__resolution’ [-Wunused-variable]\n", - " 183 | const double __resolution = nest::Time::get_resolution().get_ms(); // do not remove, this is necessary for the resolution() function\n", - " | ^~~~~~~~~~~~\n", - "/home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/target/iaf_psc_exp_dend7c1adc9dbf3144fabdd9ebff0cce4e18_neuron_nestml.cpp: In member function ‘virtual void iaf_psc_exp_dend7c1adc9dbf3144fabdd9ebff0cce4e18_neuron_nestml::update(const nest::Time&, long int, long int)’:\n", - "/home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/target/iaf_psc_exp_dend7c1adc9dbf3144fabdd9ebff0cce4e18_neuron_nestml.cpp:291:24: warning: comparison of integer expressions of different signedness: ‘long int’ and ‘const size_t’ {aka ‘const long unsigned int’} [-Wsign-compare]\n", - " 291 | for (long i = 0; i < NUM_SPIKE_RECEPTORS; ++i)\n", - " | ~~^~~~~~~~~~~~~~~~~~~~~\n", - "In file included from /home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/target/iaf_psc_exp_dend7c1adc9dbf3144fabdd9ebff0cce4e18_neuron_nestml__with_third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml.cpp:43:\n", - "/home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/target/iaf_psc_exp_dend7c1adc9dbf3144fabdd9ebff0cce4e18_neuron_nestml__with_third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml.h: In constructor ‘continuous_variable_histentry_iaf_psc_exp_dend7c1adc9dbf3144fabdd9ebff0cce4e18_neuron_nestml__with_third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml::continuous_variable_histentry_iaf_psc_exp_dend7c1adc9dbf3144fabdd9ebff0cce4e18_neuron_nestml__with_third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml(double, double)’:\n", - "/home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/target/iaf_psc_exp_dend7c1adc9dbf3144fabdd9ebff0cce4e18_neuron_nestml__with_third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml.h:105:10: warning: ‘continuous_variable_histentry_iaf_psc_exp_dend7c1adc9dbf3144fabdd9ebff0cce4e18_neuron_nestml__with_third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml::access_counter_’ will be initialized after [-Wreorder]\n", - " 105 | size_t access_counter_;\n", - " | ^~~~~~~~~~~~~~~\n", - "/home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/target/iaf_psc_exp_dend7c1adc9dbf3144fabdd9ebff0cce4e18_neuron_nestml__with_third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml.h:102:10: warning: ‘double continuous_variable_histentry_iaf_psc_exp_dend7c1adc9dbf3144fabdd9ebff0cce4e18_neuron_nestml__with_third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml::I_post_dend’ [-Wreorder]\n", - " 102 | double I_post_dend;\n", - " | ^~~~~~~~~~~\n", - "/home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/target/iaf_psc_exp_dend7c1adc9dbf3144fabdd9ebff0cce4e18_neuron_nestml__with_third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml.cpp:46:1: warning: when initialized here [-Wreorder]\n", - " 46 | continuous_variable_histentry_iaf_psc_exp_dend7c1adc9dbf3144fabdd9ebff0cce4e18_neuron_nestml__with_third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml::continuous_variable_histentry_iaf_psc_exp_dend7c1adc9dbf3144fabdd9ebff0cce4e18_neuron_nestml__with_third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml( double t,\n", - " | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n", - "/home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/target/iaf_psc_exp_dend7c1adc9dbf3144fabdd9ebff0cce4e18_neuron_nestml__with_third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml.cpp: In member function ‘void iaf_psc_exp_dend7c1adc9dbf3144fabdd9ebff0cce4e18_neuron_nestml__with_third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml::init_state_internal_()’:\n", - "/home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/target/iaf_psc_exp_dend7c1adc9dbf3144fabdd9ebff0cce4e18_neuron_nestml__with_third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml.cpp:202:16: warning: unused variable ‘__resolution’ [-Wunused-variable]\n", - " 202 | const double __resolution = nest::Time::get_resolution().get_ms(); // do not remove, this is necessary for the resolution() function\n", - " | ^~~~~~~~~~~~\n", - "/home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/target/iaf_psc_exp_dend7c1adc9dbf3144fabdd9ebff0cce4e18_neuron_nestml__with_third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml.cpp: In member function ‘virtual void iaf_psc_exp_dend7c1adc9dbf3144fabdd9ebff0cce4e18_neuron_nestml__with_third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml::update(const nest::Time&, long int, long int)’:\n", - "/home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/target/iaf_psc_exp_dend7c1adc9dbf3144fabdd9ebff0cce4e18_neuron_nestml__with_third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml.cpp:321:24: warning: comparison of integer expressions of different signedness: ‘long int’ and ‘const size_t’ {aka ‘const long unsigned int’} [-Wsign-compare]\n", - " 321 | for (long i = 0; i < NUM_SPIKE_RECEPTORS; ++i)\n", - " | ~~^~~~~~~~~~~~~~~~~~~~~\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "In file included from /home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/target/nestml_7c1adc9dbf3144fabdd9ebff0cce4e18_module.cpp:52:\n", - "/home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/target/third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml__with_iaf_psc_exp_dend7c1adc9dbf3144fabdd9ebff0cce4e18_neuron_nestml.h: In instantiation of ‘nest::third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml__with_iaf_psc_exp_dend7c1adc9dbf3144fabdd9ebff0cce4e18_neuron_nestml::third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml__with_iaf_psc_exp_dend7c1adc9dbf3144fabdd9ebff0cce4e18_neuron_nestml() [with targetidentifierT = nest::TargetIdentifierPtrRport]’:\n", - "/home/charl/julich/nest-simulator-install/include/nest/connector_model.h:158:25: required from ‘nest::GenericConnectorModel::GenericConnectorModel(std::string) [with ConnectionT = nest::third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml__with_iaf_psc_exp_dend7c1adc9dbf3144fabdd9ebff0cce4e18_neuron_nestml; std::string = std::__cxx11::basic_string]’\n", - "/home/charl/julich/nest-simulator-install/include/nest/model_manager_impl.h:61:24: required from ‘void nest::ModelManager::register_connection_model(const std::string&) [with ConnectionT = nest::third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml__with_iaf_psc_exp_dend7c1adc9dbf3144fabdd9ebff0cce4e18_neuron_nestml; std::string = std::__cxx11::basic_string]’\n", - "/home/charl/julich/nest-simulator-install/include/nest/nest_impl.h:35:70: required from ‘void nest::register_connection_model(const std::string&) [with ConnectorModelT = third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml__with_iaf_psc_exp_dend7c1adc9dbf3144fabdd9ebff0cce4e18_neuron_nestml; std::string = std::__cxx11::basic_string]’\n", - "/home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/target/nestml_7c1adc9dbf3144fabdd9ebff0cce4e18_module.cpp:111:179: required from here\n", - "/home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/target/third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml__with_iaf_psc_exp_dend7c1adc9dbf3144fabdd9ebff0cce4e18_neuron_nestml.h:727:16: warning: unused variable ‘__resolution’ [-Wunused-variable]\n", - " 727 | const double __resolution = nest::Time::get_resolution().get_ms(); // do not remove, this is necessary for the resolution() function\n", - " | ^~~~~~~~~~~~\n", - "/home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/target/third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml__with_iaf_psc_exp_dend7c1adc9dbf3144fabdd9ebff0cce4e18_neuron_nestml.h: In instantiation of ‘nest::third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml__with_iaf_psc_exp_dend7c1adc9dbf3144fabdd9ebff0cce4e18_neuron_nestml::third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml__with_iaf_psc_exp_dend7c1adc9dbf3144fabdd9ebff0cce4e18_neuron_nestml() [with targetidentifierT = nest::TargetIdentifierIndex]’:\n", - "/home/charl/julich/nest-simulator-install/include/nest/connector_model.h:158:25: required from ‘nest::GenericConnectorModel::GenericConnectorModel(std::string) [with ConnectionT = nest::third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml__with_iaf_psc_exp_dend7c1adc9dbf3144fabdd9ebff0cce4e18_neuron_nestml; std::string = std::__cxx11::basic_string]’\n", - "/home/charl/julich/nest-simulator-install/include/nest/model_manager_impl.h:67:10: required from ‘void nest::ModelManager::register_connection_model(const std::string&) [with ConnectionT = nest::third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml__with_iaf_psc_exp_dend7c1adc9dbf3144fabdd9ebff0cce4e18_neuron_nestml; std::string = std::__cxx11::basic_string]’\n", - "/home/charl/julich/nest-simulator-install/include/nest/nest_impl.h:35:70: required from ‘void nest::register_connection_model(const std::string&) [with ConnectorModelT = third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml__with_iaf_psc_exp_dend7c1adc9dbf3144fabdd9ebff0cce4e18_neuron_nestml; std::string = std::__cxx11::basic_string]’\n", - "/home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/target/nestml_7c1adc9dbf3144fabdd9ebff0cce4e18_module.cpp:111:179: required from here\n", - "/home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/target/third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml__with_iaf_psc_exp_dend7c1adc9dbf3144fabdd9ebff0cce4e18_neuron_nestml.h:727:16: warning: unused variable ‘__resolution’ [-Wunused-variable]\n", - "/home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/target/third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml__with_iaf_psc_exp_dend7c1adc9dbf3144fabdd9ebff0cce4e18_neuron_nestml.h: In instantiation of ‘void nest::third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml__with_iaf_psc_exp_dend7c1adc9dbf3144fabdd9ebff0cce4e18_neuron_nestml::recompute_internal_variables() [with targetidentifierT = nest::TargetIdentifierPtrRport]’:\n", - "/home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/target/third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml__with_iaf_psc_exp_dend7c1adc9dbf3144fabdd9ebff0cce4e18_neuron_nestml.h:739:3: required from ‘nest::third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml__with_iaf_psc_exp_dend7c1adc9dbf3144fabdd9ebff0cce4e18_neuron_nestml::third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml__with_iaf_psc_exp_dend7c1adc9dbf3144fabdd9ebff0cce4e18_neuron_nestml() [with targetidentifierT = nest::TargetIdentifierPtrRport]’\n", - "/home/charl/julich/nest-simulator-install/include/nest/connector_model.h:158:25: required from ‘nest::GenericConnectorModel::GenericConnectorModel(std::string) [with ConnectionT = nest::third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml__with_iaf_psc_exp_dend7c1adc9dbf3144fabdd9ebff0cce4e18_neuron_nestml; std::string = std::__cxx11::basic_string]’\n", - "/home/charl/julich/nest-simulator-install/include/nest/model_manager_impl.h:61:24: required from ‘void nest::ModelManager::register_connection_model(const std::string&) [with ConnectionT = nest::third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml__with_iaf_psc_exp_dend7c1adc9dbf3144fabdd9ebff0cce4e18_neuron_nestml; std::string = std::__cxx11::basic_string]’\n", - "/home/charl/julich/nest-simulator-install/include/nest/nest_impl.h:35:70: required from ‘void nest::register_connection_model(const std::string&) [with ConnectorModelT = third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml__with_iaf_psc_exp_dend7c1adc9dbf3144fabdd9ebff0cce4e18_neuron_nestml; std::string = std::__cxx11::basic_string]’\n", - "/home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/target/nestml_7c1adc9dbf3144fabdd9ebff0cce4e18_module.cpp:111:179: required from here\n", - "/home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/target/third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml__with_iaf_psc_exp_dend7c1adc9dbf3144fabdd9ebff0cce4e18_neuron_nestml.h:715:16: warning: unused variable ‘__resolution’ [-Wunused-variable]\n", - " 715 | const double __resolution = nest::Time::get_resolution().get_ms(); // do not remove, this is necessary for the resolution() function\n", - " | ^~~~~~~~~~~~\n", - "/home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/target/third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml__with_iaf_psc_exp_dend7c1adc9dbf3144fabdd9ebff0cce4e18_neuron_nestml.h: In instantiation of ‘void nest::third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml__with_iaf_psc_exp_dend7c1adc9dbf3144fabdd9ebff0cce4e18_neuron_nestml::recompute_internal_variables() [with targetidentifierT = nest::TargetIdentifierIndex]’:\n", - "/home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/target/third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml__with_iaf_psc_exp_dend7c1adc9dbf3144fabdd9ebff0cce4e18_neuron_nestml.h:739:3: required from ‘nest::third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml__with_iaf_psc_exp_dend7c1adc9dbf3144fabdd9ebff0cce4e18_neuron_nestml::third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml__with_iaf_psc_exp_dend7c1adc9dbf3144fabdd9ebff0cce4e18_neuron_nestml() [with targetidentifierT = nest::TargetIdentifierIndex]’\n", - "/home/charl/julich/nest-simulator-install/include/nest/connector_model.h:158:25: required from ‘nest::GenericConnectorModel::GenericConnectorModel(std::string) [with ConnectionT = nest::third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml__with_iaf_psc_exp_dend7c1adc9dbf3144fabdd9ebff0cce4e18_neuron_nestml; std::string = std::__cxx11::basic_string]’\n", - "/home/charl/julich/nest-simulator-install/include/nest/model_manager_impl.h:67:10: required from ‘void nest::ModelManager::register_connection_model(const std::string&) [with ConnectionT = nest::third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml__with_iaf_psc_exp_dend7c1adc9dbf3144fabdd9ebff0cce4e18_neuron_nestml; std::string = std::__cxx11::basic_string]’\n", - "/home/charl/julich/nest-simulator-install/include/nest/nest_impl.h:35:70: required from ‘void nest::register_connection_model(const std::string&) [with ConnectorModelT = third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml__with_iaf_psc_exp_dend7c1adc9dbf3144fabdd9ebff0cce4e18_neuron_nestml; std::string = std::__cxx11::basic_string]’\n", - "/home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/target/nestml_7c1adc9dbf3144fabdd9ebff0cce4e18_module.cpp:111:179: required from here\n", - "/home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/target/third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml__with_iaf_psc_exp_dend7c1adc9dbf3144fabdd9ebff0cce4e18_neuron_nestml.h:715:16: warning: unused variable ‘__resolution’ [-Wunused-variable]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "/home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/target/third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml__with_iaf_psc_exp_dend7c1adc9dbf3144fabdd9ebff0cce4e18_neuron_nestml.h: In instantiation of ‘void nest::third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml__with_iaf_psc_exp_dend7c1adc9dbf3144fabdd9ebff0cce4e18_neuron_nestml::send(nest::Event&, size_t, const nest::third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml__with_iaf_psc_exp_dend7c1adc9dbf3144fabdd9ebff0cce4e18_neuron_nestmlCommonSynapseProperties&) [with targetidentifierT = nest::TargetIdentifierPtrRport; size_t = long unsigned int]’:\n", - "/home/charl/julich/nest-simulator-install/include/nest/connector_base.h:381:22: required from ‘void nest::Connector::send_to_all(size_t, const std::vector&, nest::Event&) [with ConnectionT = nest::third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml__with_iaf_psc_exp_dend7c1adc9dbf3144fabdd9ebff0cce4e18_neuron_nestml; size_t = long unsigned int]’\n", - "/home/charl/julich/nest-simulator-install/include/nest/connector_base.h:373:3: required from here\n", - "/home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/target/third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml__with_iaf_psc_exp_dend7c1adc9dbf3144fabdd9ebff0cce4e18_neuron_nestml.h:522:14: warning: variable ‘get_t’ set but not used [-Wunused-but-set-variable]\n", - " 522 | auto get_t = [_tr_t](){ return _tr_t; }; // do not remove, this is in case the predefined time variable ``t`` is used in the NESTML model\n", - " | ^~~~~\n", - "/home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/target/third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml__with_iaf_psc_exp_dend7c1adc9dbf3144fabdd9ebff0cce4e18_neuron_nestml.h:551:14: warning: variable ‘get_t’ set but not used [-Wunused-but-set-variable]\n", - " 551 | auto get_t = [__t_spike](){ return __t_spike; }; // do not remove, this is in case the predefined time variable ``t`` is used in the NESTML model\n", - " | ^~~~~\n", - "/home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/target/third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml__with_iaf_psc_exp_dend7c1adc9dbf3144fabdd9ebff0cce4e18_neuron_nestml.h:591:14: warning: variable ‘get_t’ set but not used [-Wunused-but-set-variable]\n", - " 591 | auto get_t = [__t_spike](){ return __t_spike; }; // do not remove, this is in case the predefined time variable ``t`` is used in the NESTML model\n", - " | ^~~~~\n", - "/home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/target/third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml__with_iaf_psc_exp_dend7c1adc9dbf3144fabdd9ebff0cce4e18_neuron_nestml.h:455:18: warning: unused variable ‘__resolution’ [-Wunused-variable]\n", - " 455 | const double __resolution = nest::Time::get_resolution().get_ms(); // do not remove, this is necessary for the resolution() function\n", - " | ^~~~~~~~~~~~\n", - "/home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/target/third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml__with_iaf_psc_exp_dend7c1adc9dbf3144fabdd9ebff0cce4e18_neuron_nestml.h:457:10: warning: variable ‘get_thread’ set but not used [-Wunused-but-set-variable]\n", - " 457 | auto get_thread = [tid]()\n", - " | ^~~~~~~~~~\n", - "/home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/target/third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml__with_iaf_psc_exp_dend7c1adc9dbf3144fabdd9ebff0cce4e18_neuron_nestml.h: In instantiation of ‘void nest::third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml__with_iaf_psc_exp_dend7c1adc9dbf3144fabdd9ebff0cce4e18_neuron_nestml::send(nest::Event&, size_t, const nest::third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml__with_iaf_psc_exp_dend7c1adc9dbf3144fabdd9ebff0cce4e18_neuron_nestmlCommonSynapseProperties&) [with targetidentifierT = nest::TargetIdentifierIndex; size_t = long unsigned int]’:\n", - "/home/charl/julich/nest-simulator-install/include/nest/connector_base.h:381:22: required from ‘void nest::Connector::send_to_all(size_t, const std::vector&, nest::Event&) [with ConnectionT = nest::third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml__with_iaf_psc_exp_dend7c1adc9dbf3144fabdd9ebff0cce4e18_neuron_nestml; size_t = long unsigned int]’\n", - "/home/charl/julich/nest-simulator-install/include/nest/connector_base.h:373:3: required from here\n", - "/home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/target/third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml__with_iaf_psc_exp_dend7c1adc9dbf3144fabdd9ebff0cce4e18_neuron_nestml.h:522:14: warning: variable ‘get_t’ set but not used [-Wunused-but-set-variable]\n", - " 522 | auto get_t = [_tr_t](){ return _tr_t; }; // do not remove, this is in case the predefined time variable ``t`` is used in the NESTML model\n", - " | ^~~~~\n", - "/home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/target/third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml__with_iaf_psc_exp_dend7c1adc9dbf3144fabdd9ebff0cce4e18_neuron_nestml.h:551:14: warning: variable ‘get_t’ set but not used [-Wunused-but-set-variable]\n", - " 551 | auto get_t = [__t_spike](){ return __t_spike; }; // do not remove, this is in case the predefined time variable ``t`` is used in the NESTML model\n", - " | ^~~~~\n", - "/home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/target/third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml__with_iaf_psc_exp_dend7c1adc9dbf3144fabdd9ebff0cce4e18_neuron_nestml.h:591:14: warning: variable ‘get_t’ set but not used [-Wunused-but-set-variable]\n", - " 591 | auto get_t = [__t_spike](){ return __t_spike; }; // do not remove, this is in case the predefined time variable ``t`` is used in the NESTML model\n", - " | ^~~~~\n", - "/home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/target/third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml__with_iaf_psc_exp_dend7c1adc9dbf3144fabdd9ebff0cce4e18_neuron_nestml.h:455:18: warning: unused variable ‘__resolution’ [-Wunused-variable]\n", - " 455 | const double __resolution = nest::Time::get_resolution().get_ms(); // do not remove, this is necessary for the resolution() function\n", - " | ^~~~~~~~~~~~\n", - "/home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/target/third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml__with_iaf_psc_exp_dend7c1adc9dbf3144fabdd9ebff0cce4e18_neuron_nestml.h:457:10: warning: variable ‘get_thread’ set but not used [-Wunused-but-set-variable]\n", - " 457 | auto get_thread = [tid]()\n", - " | ^~~~~~~~~~\n", - "/home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/target/third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml__with_iaf_psc_exp_dend7c1adc9dbf3144fabdd9ebff0cce4e18_neuron_nestml.h: In instantiation of ‘void nest::third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml__with_iaf_psc_exp_dend7c1adc9dbf3144fabdd9ebff0cce4e18_neuron_nestml::update_internal_state_(double, double, const nest::third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml__with_iaf_psc_exp_dend7c1adc9dbf3144fabdd9ebff0cce4e18_neuron_nestmlCommonSynapseProperties&) [with targetidentifierT = nest::TargetIdentifierPtrRport]’:\n", - "/home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/target/third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml__with_iaf_psc_exp_dend7c1adc9dbf3144fabdd9ebff0cce4e18_neuron_nestml.h:517:9: required from ‘void nest::third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml__with_iaf_psc_exp_dend7c1adc9dbf3144fabdd9ebff0cce4e18_neuron_nestml::send(nest::Event&, size_t, const nest::third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml__with_iaf_psc_exp_dend7c1adc9dbf3144fabdd9ebff0cce4e18_neuron_nestmlCommonSynapseProperties&) [with targetidentifierT = nest::TargetIdentifierPtrRport; size_t = long unsigned int]’\n", - "/home/charl/julich/nest-simulator-install/include/nest/connector_base.h:381:22: required from ‘void nest::Connector::send_to_all(size_t, const std::vector&, nest::Event&) [with ConnectionT = nest::third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml__with_iaf_psc_exp_dend7c1adc9dbf3144fabdd9ebff0cce4e18_neuron_nestml; size_t = long unsigned int]’\n", - "/home/charl/julich/nest-simulator-install/include/nest/connector_base.h:373:3: required from here\n", - "/home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/target/third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml__with_iaf_psc_exp_dend7c1adc9dbf3144fabdd9ebff0cce4e18_neuron_nestml.h:789:18: warning: unused variable ‘__resolution’ [-Wunused-variable]\n", - " 789 | const double __resolution = timestep; // do not remove, this is necessary for the resolution() function\n", - " | ^~~~~~~~~~~~\n", - "/home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/target/third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml__with_iaf_psc_exp_dend7c1adc9dbf3144fabdd9ebff0cce4e18_neuron_nestml.h:790:10: warning: variable ‘get_t’ set but not used [-Wunused-but-set-variable]\n", - " 790 | auto get_t = [t_start](){ return t_start; }; // do not remove, this is in case the predefined time variable ``t`` is used in the NESTML model\n", - " | ^~~~~\n", - "/home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/target/third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml__with_iaf_psc_exp_dend7c1adc9dbf3144fabdd9ebff0cce4e18_neuron_nestml.h: In instantiation of ‘void nest::third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml__with_iaf_psc_exp_dend7c1adc9dbf3144fabdd9ebff0cce4e18_neuron_nestml::update_internal_state_(double, double, const nest::third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml__with_iaf_psc_exp_dend7c1adc9dbf3144fabdd9ebff0cce4e18_neuron_nestmlCommonSynapseProperties&) [with targetidentifierT = nest::TargetIdentifierIndex]’:\n", - "/home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/target/third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml__with_iaf_psc_exp_dend7c1adc9dbf3144fabdd9ebff0cce4e18_neuron_nestml.h:517:9: required from ‘void nest::third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml__with_iaf_psc_exp_dend7c1adc9dbf3144fabdd9ebff0cce4e18_neuron_nestml::send(nest::Event&, size_t, const nest::third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml__with_iaf_psc_exp_dend7c1adc9dbf3144fabdd9ebff0cce4e18_neuron_nestmlCommonSynapseProperties&) [with targetidentifierT = nest::TargetIdentifierIndex; size_t = long unsigned int]’\n", - "/home/charl/julich/nest-simulator-install/include/nest/connector_base.h:381:22: required from ‘void nest::Connector::send_to_all(size_t, const std::vector&, nest::Event&) [with ConnectionT = nest::third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml__with_iaf_psc_exp_dend7c1adc9dbf3144fabdd9ebff0cce4e18_neuron_nestml; size_t = long unsigned int]’\n", - "/home/charl/julich/nest-simulator-install/include/nest/connector_base.h:373:3: required from here\n", - "/home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/target/third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml__with_iaf_psc_exp_dend7c1adc9dbf3144fabdd9ebff0cce4e18_neuron_nestml.h:789:18: warning: unused variable ‘__resolution’ [-Wunused-variable]\n", - " 789 | const double __resolution = timestep; // do not remove, this is necessary for the resolution() function\n", - " | ^~~~~~~~~~~~\n", - "/home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/target/third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml__with_iaf_psc_exp_dend7c1adc9dbf3144fabdd9ebff0cce4e18_neuron_nestml.h:790:10: warning: variable ‘get_t’ set but not used [-Wunused-but-set-variable]\n", - " 790 | auto get_t = [t_start](){ return t_start; }; // do not remove, this is in case the predefined time variable ``t`` is used in the NESTML model\n", - " | ^~~~~\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[100%] Linking CXX shared module nestml_7c1adc9dbf3144fabdd9ebff0cce4e18_module.so\n", - "[100%] Built target nestml_7c1adc9dbf3144fabdd9ebff0cce4e18_module_module\n", - "[100%] Built target nestml_7c1adc9dbf3144fabdd9ebff0cce4e18_module_module\n", - "Install the project...\n", - "-- Install configuration: \"\"\n", - "-- Installing: /tmp/nestml_target_buhdamnv/nestml_7c1adc9dbf3144fabdd9ebff0cce4e18_module.so\n", - "iaf_psc_exp_dend7c1adc9dbf3144fabdd9ebff0cce4e18_neuron_nestml::init_state_internal_()\n", - "iaf_psc_exp_dend7c1adc9dbf3144fabdd9ebff0cce4e18_neuron_nestml__with_third_factor_stdp7c1adc9dbf3144fabdd9ebff0cce4e18_synapse_nestml::init_state_internal_()\n", - "\n", - "Dec 21 08:04:39 Install [Info]: \n", - " loaded module nestml_7c1adc9dbf3144fabdd9ebff0cce4e18_module\n" - ] - } - ], - "source": [ - "# codegen_opts = {\"neuron_synapse_pairs\": [{\"neuron\": \"iaf_psc_exp_dend\",\n", - "# \"synapse\": \"third_factor_stdp_synapse\",\n", - "# \"post_ports\": [\"post_spikes\",\n", - "# [\"I_post_dend\", \"I_dend\"]]}]}\n", - "\n", - "# if not NESTTools.detect_nest_version().startswith(\"v2\"):\n", - "# codegen_opts[\"neuron_parent_class\"] = \"StructuralPlasticityNode\"\n", - "# codegen_opts[\"neuron_parent_class_include\"] = \"structural_plasticity_node.h\"\n", - "\n", - "# generate the \"jit\" model (co-generated neuron and synapse), that does not rely on ArchivingNode\n", - "# files = [os.path.join(\"models\", \"neurons\", \"iaf_psc_exp_dend_neuron.nestml\"),\n", - "# os.path.join(\"models\", \"synapses\", \"third_factor_stdp_synapse.nestml\")]\n", - "# input_path = [os.path.realpath(os.path.join(os.path.dirname(__file__), os.path.join(\n", - "# os.pardir, os.pardir, s))) for s in files]\n", - "# generate_nest_target(input_path=input_path,\n", - "# target_path=\"/tmp/nestml-jit\",\n", - "# logging_level=\"INFO\",\n", - "# module_name=\"nestml_jit_module\",\n", - "# codegen_opts=codegen_opts)\n", - "#nest.Install(\"nestml_jit_module\")\n", - "\n", - "# generate and build code\n", - "module_name, neuron_model_name, synapse_model_name = \\\n", - " NESTCodeGeneratorUtils.generate_code_for(\"../../../models/neurons/iaf_psc_exp_dend_neuron.nestml\",\n", - " \"../../../models/synapses/third_factor_stdp_synapse.nestml\",\n", - " logging_level=\"DEBUG\",\n", - " post_ports=[\"post_spikes\", [\"I_post_dend\", \"I_dend\"]])\n", - "\n", - "# load dynamic library (NEST extension module) into NEST kernel\n", - "nest.Install(module_name)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Now, the NESTML model is ready to be used in a simulation." - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": {}, - "outputs": [], - "source": [ - "def run_synapse_test(neuron_model_name,\n", - " synapse_model_name,\n", - " resolution=1., # [ms]\n", - " delay=1., # [ms]\n", - " sim_time=None, # if None, computed from pre and post spike times\n", - " pre_spike_times=None,\n", - " post_spike_times=None,\n", - " fname_snip=\"\"):\n", - "\n", - " if pre_spike_times is None:\n", - " pre_spike_times = []\n", - "\n", - " if post_spike_times is None:\n", - " post_spike_times = []\n", - "\n", - " if sim_time is None:\n", - " sim_time = max(np.amax(pre_spike_times), np.amax(post_spike_times)) + 5 * delay\n", - "\n", - " nest_version = NESTTools.detect_nest_version()\n", - "\n", - " nest.set_verbosity(\"M_ALL\")\n", - " nest.ResetKernel()\n", - "\n", - " print(\"Pre spike times: \" + str(pre_spike_times))\n", - " print(\"Post spike times: \" + str(post_spike_times))\n", - "\n", - " nest.set_verbosity(\"M_WARNING\")\n", - "\n", - " nest.ResetKernel()\n", - " nest.SetKernelStatus({\"resolution\": resolution})\n", - "\n", - " wr = nest.Create(\"weight_recorder\")\n", - " nest.CopyModel(synapse_model_name, \"stdp_nestml_rec\",\n", - " {\"weight_recorder\": wr[0], \"w\": 1., \"d\": 1., \"receptor_type\": 0, \"lambda\": .001})\n", - "\n", - " # create spike_generators with these times\n", - " pre_sg = nest.Create(\"spike_generator\",\n", - " params={\"spike_times\": pre_spike_times})\n", - " post_sg = nest.Create(\"spike_generator\",\n", - " params={\"spike_times\": post_spike_times,\n", - " \"allow_offgrid_times\": True})\n", - "\n", - " # create parrot neurons and connect spike_generators\n", - " pre_neuron = nest.Create(\"parrot_neuron\")\n", - " post_neuron = nest.Create(neuron_model_name)\n", - "\n", - " if nest_version.startswith(\"v2\"):\n", - " spikedet_pre = nest.Create(\"spike_detector\")\n", - " spikedet_post = nest.Create(\"spike_detector\")\n", - " else:\n", - " spikedet_pre = nest.Create(\"spike_recorder\")\n", - " spikedet_post = nest.Create(\"spike_recorder\")\n", - " mm = nest.Create(\"multimeter\", params={\"record_from\": [\"V_m\", post_trace_var]})\n", - "\n", - " nest.Connect(pre_sg, pre_neuron, \"one_to_one\", syn_spec={\"delay\": 1.})\n", - " nest.Connect(post_sg, post_neuron, \"one_to_one\", syn_spec={\"delay\": 1., \"weight\": 6000.})\n", - " if nest_version.startswith(\"v2\"):\n", - " nest.Connect(pre_neuron, post_neuron, \"all_to_all\", syn_spec={\"model\": \"stdp_nestml_rec\"})\n", - " else:\n", - " nest.Connect(pre_neuron, post_neuron, \"all_to_all\", syn_spec={\"synapse_model\": \"stdp_nestml_rec\"})\n", - " nest.Connect(mm, post_neuron)\n", - " nest.Connect(pre_neuron, spikedet_pre)\n", - " nest.Connect(post_neuron, spikedet_post)\n", - "\n", - " # get STDP synapse and weight before protocol\n", - " syn = nest.GetConnections(source=pre_neuron, synapse_model=\"stdp_nestml_rec\")\n", - "\n", - " t = 0.\n", - " t_hist = []\n", - " w_hist = []\n", - " state = 0\n", - " while t <= sim_time:\n", - " print(\"t = \" + str(t) + \" ms\")\n", - " if t > sim_time / 6. and state == 0:\n", - " nest.SetStatus(post_neuron, {\"I_dend\": 1.})\n", - " state = 1\n", - " if t > 2 * sim_time / 6 and state == 1:\n", - " nest.SetStatus(post_neuron, {\"I_dend\": 1.})\n", - " if t > 3 * sim_time / 6. and state == 1:\n", - " state = 2\n", - " if t > 5 * sim_time / 6. and state == 2:\n", - " nest.SetStatus(post_neuron, {\"I_dend\": 0.})\n", - " state = 3\n", - " nest.Simulate(resolution)\n", - " t += resolution\n", - " t_hist.append(t)\n", - " w_hist.append(nest.GetStatus(syn)[0][\"w\"])\n", - "\n", - " third_factor_trace = nest.GetStatus(mm, \"events\")[0][post_trace_var]\n", - " timevec = nest.GetStatus(mm, \"events\")[0][\"times\"]\n", - "\n", - " \n", - " \n", - " \n", - " fig, ax = plt.subplots(nrows=2)\n", - " ax1, ax2 = ax\n", - "\n", - " V_m = nest.GetStatus(mm, \"events\")[0][\"V_m\"]\n", - " ax2.plot(timevec, third_factor_trace, label=\"I_dend_post\")\n", - " ax1.plot(timevec, V_m, alpha=.7, linestyle=\":\")\n", - " ax1.set_ylabel(\"V_m\")\n", - "\n", - " for _ax in ax:\n", - " _ax.grid(which=\"major\", axis=\"both\")\n", - " _ax.grid(which=\"minor\", axis=\"x\", linestyle=\":\", alpha=.4)\n", - " _ax.set_xlim(0., sim_time)\n", - " _ax.legend()\n", - " fig.savefig(\"/tmp/stdp_third_factor_synapse_test\" + fname_snip + \"_V_m.png\", dpi=300)\n", - " \n", - " \n", - " \n", - " fig, ax = plt.subplots(nrows=5)\n", - " ax1, ax2, ax3, ax4, ax5 = ax\n", - "\n", - " pre_spike_times_ = nest.GetStatus(spikedet_pre, \"events\")[0][\"times\"]\n", - " print(\"Actual pre spike times: \" + str(pre_spike_times_))\n", - "\n", - " n_spikes = len(pre_spike_times_)\n", - " for i in range(n_spikes):\n", - " ax1.plot(2 * [pre_spike_times_[i] + delay], [0, 1], linewidth=2, color=\"blue\", alpha=.4)\n", - "\n", - " post_spike_times_ = nest.GetStatus(spikedet_post, \"events\")[0][\"times\"]\n", - " print(\"Actual post spike times: \" + str(post_spike_times_))\n", - " ax1.set_ylabel(\"Pre spikes\")\n", - "\n", - " n_spikes = len(post_spike_times_)\n", - " for i in range(n_spikes):\n", - " if i == 0:\n", - " _lbl = \"nestml\"\n", - " else:\n", - " _lbl = None\n", - " ax[-4].plot(2 * [post_spike_times_[i]], [0, 1], linewidth=2, color=\"black\", alpha=.4, label=_lbl)\n", - " ax[-4].set_ylabel(\"Post spikes\")\n", - "\n", - " ax[-3].plot(timevec, third_factor_trace)\n", - " ax[-3].set_ylabel(\"3rd factor\")\n", - "\n", - " ax[-2].plot(t_hist[:-1], np.diff(w_hist), marker=\"o\", label=u\"Δw\")\n", - " ax[-2].set_ylabel(u\"Δw\")\n", - "\n", - " ax[-1].plot(t_hist, w_hist, marker=\"o\")\n", - " ax[-1].set_ylabel(\"w\")\n", - " ax[-1].set_xlabel(\"Time [ms]\")\n", - " for _ax in ax:\n", - " if not _ax == ax[-1]:\n", - " _ax.set_xticklabels([])\n", - " _ax.grid(True)\n", - " _ax.set_xlim(0., sim_time)\n", - "\n", - " fig.savefig(\"/tmp/stdp_third_factor_synapse_test\" + fname_snip + \".png\", dpi=300)\n", - "\n", - " return timevec, t_hist, third_factor_trace, w_hist\n" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "DEBUG:findfont: Matching sans\\-serif:style=normal:variant=normal:weight=normal:stretch=normal:size=10.0.\n", - "DEBUG:findfont: Matching sans\\-serif:style=normal:variant=normal:weight=normal:stretch=normal:size=10.0 to DejaVu Sans ('/home/charl/.local/lib/python3.11/site-packages/matplotlib/mpl-data/fonts/ttf/DejaVuSans.ttf') with score of 0.050000.\n", - "WARNING:No artists with labels found to put in legend. Note that artists whose label start with an underscore are ignored when legend() is called with no argument.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - " -- N E S T --\n", - " Copyright (C) 2004 The NEST Initiative\n", - "\n", - " Version: 3.6.0-post0.dev0\n", - " Built: Nov 8 2023 01:11:46\n", - "\n", - " This program is provided AS IS and comes with\n", - " NO WARRANTY. See the file LICENSE for details.\n", - "\n", - " Problems or suggestions?\n", - " Visit https://www.nest-simulator.org\n", - "\n", - " Type 'nest.help()' to find out more about NEST.\n", - "\n", - "[85,GLOBAL, INFO]: The NEST Simulator version was automatically detected as: master\n", - "Pre spike times: [1.000e+00 2.000e+00 3.000e+00 4.000e+00 5.000e+00 7.000e+00 9.000e+00\n", - " 1.200e+01 1.700e+01 2.100e+01 2.300e+01 2.700e+01 2.800e+01 3.000e+01\n", - " 3.100e+01 3.300e+01 3.500e+01 3.600e+01 3.700e+01 3.800e+01 3.900e+01\n", - " 4.100e+01 4.400e+01 4.600e+01 4.900e+01 5.100e+01 5.300e+01 5.500e+01\n", - " 5.600e+01 5.700e+01 5.800e+01 5.900e+01 6.000e+01 6.100e+01 6.400e+01\n", - " 6.500e+01 6.700e+01 7.000e+01 7.300e+01 7.500e+01 7.700e+01 8.000e+01\n", - " 8.100e+01 8.200e+01 8.300e+01 8.600e+01 9.100e+01 9.300e+01 9.400e+01\n", - " 9.500e+01 9.600e+01 9.800e+01 9.900e+01 1.000e+02 1.010e+02 1.040e+02\n", - " 1.050e+02 1.080e+02 1.090e+02 1.100e+02 1.110e+02 1.130e+02 1.150e+02\n", - " 1.180e+02 1.190e+02 1.210e+02 1.240e+02 1.260e+02 1.270e+02 1.280e+02\n", - " 1.310e+02 1.320e+02 1.340e+02 1.350e+02 1.390e+02 1.430e+02 1.440e+02\n", - " 1.460e+02 1.470e+02 1.480e+02 1.490e+02 1.510e+02 1.520e+02 1.530e+02\n", - " 1.570e+02 1.580e+02 1.590e+02 1.600e+02 1.620e+02 1.630e+02 1.660e+02\n", - " 1.670e+02 1.680e+02 1.690e+02 1.700e+02 1.730e+02 1.750e+02 1.760e+02\n", - " 1.790e+02 1.800e+02 1.810e+02 1.820e+02 1.850e+02 1.880e+02 1.890e+02\n", - " 1.930e+02 1.940e+02 1.980e+02 2.000e+02 2.010e+02 2.030e+02 2.060e+02\n", - " 2.070e+02 2.080e+02 2.090e+02 2.100e+02 2.110e+02 2.130e+02 2.140e+02\n", - " 2.160e+02 2.180e+02 2.210e+02 2.250e+02 2.320e+02 2.330e+02 2.340e+02\n", - " 2.380e+02 2.400e+02 2.420e+02 2.430e+02 2.470e+02 2.480e+02 2.490e+02\n", - " 2.500e+02 2.530e+02 2.540e+02 2.560e+02 2.570e+02 2.580e+02 2.620e+02\n", - " 2.630e+02 2.650e+02 2.680e+02 2.700e+02 2.730e+02 2.750e+02 2.770e+02\n", - " 2.780e+02 2.800e+02 2.820e+02 2.830e+02 2.840e+02 2.870e+02 2.920e+02\n", - " 2.930e+02 2.990e+02 3.000e+02 3.010e+02 3.030e+02 3.040e+02 3.080e+02\n", - " 3.100e+02 3.110e+02 3.130e+02 3.170e+02 3.220e+02 3.230e+02 3.280e+02\n", - " 3.290e+02 3.350e+02 3.370e+02 3.380e+02 3.390e+02 3.410e+02 3.430e+02\n", - " 3.450e+02 3.490e+02 3.560e+02 3.590e+02 3.700e+02 3.710e+02 3.720e+02\n", - " 3.750e+02 3.770e+02 3.780e+02 3.810e+02 3.820e+02 3.840e+02 3.890e+02\n", - " 3.910e+02 3.960e+02 3.980e+02 3.990e+02 4.050e+02 4.070e+02 4.080e+02\n", - " 4.090e+02 4.110e+02 4.120e+02 4.130e+02 4.150e+02 4.180e+02 4.190e+02\n", - " 4.210e+02 4.220e+02 4.250e+02 4.280e+02 4.290e+02 4.300e+02 4.310e+02\n", - " 4.330e+02 4.340e+02 4.370e+02 4.390e+02 4.420e+02 4.440e+02 4.470e+02\n", - " 4.500e+02 4.540e+02 4.550e+02 4.590e+02 4.610e+02 4.620e+02 4.630e+02\n", - " 4.640e+02 4.650e+02 4.670e+02 4.680e+02 4.690e+02 4.710e+02 4.720e+02\n", - " 4.750e+02 4.810e+02 4.910e+02 4.920e+02 4.970e+02 5.020e+02 5.050e+02\n", - " 5.070e+02 5.110e+02 5.140e+02 5.160e+02 5.180e+02 5.190e+02 5.200e+02\n", - " 5.250e+02 5.270e+02 5.280e+02 5.320e+02 5.330e+02 5.350e+02 5.380e+02\n", - " 5.410e+02 5.430e+02 5.440e+02 5.460e+02 5.470e+02 5.500e+02 5.530e+02\n", - " 5.550e+02 5.580e+02 5.590e+02 5.630e+02 5.660e+02 5.700e+02 5.750e+02\n", - " 5.780e+02 5.850e+02 5.900e+02 5.950e+02 6.010e+02 6.030e+02 6.050e+02\n", - " 6.060e+02 6.070e+02 6.110e+02 6.120e+02 6.150e+02 6.230e+02 6.290e+02\n", - " 6.300e+02 6.310e+02 6.320e+02 6.330e+02 6.400e+02 6.430e+02 6.470e+02\n", - " 6.480e+02 6.500e+02 6.510e+02 6.520e+02 6.590e+02 6.600e+02 6.620e+02\n", - " 6.640e+02 6.680e+02 6.730e+02 6.750e+02 6.760e+02 6.790e+02 6.800e+02\n", - " 6.820e+02 6.870e+02 6.880e+02 6.970e+02 7.020e+02 7.090e+02 7.150e+02\n", - " 7.180e+02 7.190e+02 7.200e+02 7.220e+02 7.240e+02 7.250e+02 7.330e+02\n", - " 7.390e+02 7.410e+02 7.420e+02 7.470e+02 7.510e+02 7.530e+02 7.550e+02\n", - " 7.600e+02 7.650e+02 7.690e+02 7.720e+02 7.770e+02 7.780e+02 7.890e+02\n", - " 7.900e+02 7.910e+02 7.980e+02 8.030e+02 8.090e+02 8.130e+02 8.160e+02\n", - " 8.190e+02 8.310e+02 8.340e+02 8.390e+02 8.420e+02 8.510e+02 8.530e+02\n", - " 8.680e+02 8.840e+02 8.900e+02 8.920e+02 8.930e+02 9.000e+02 9.030e+02\n", - " 9.090e+02 9.170e+02 9.300e+02 9.380e+02 9.390e+02 9.540e+02 9.570e+02\n", - " 9.640e+02 9.650e+02 9.660e+02 9.810e+02 9.850e+02 9.940e+02 9.950e+02\n", - " 1.001e+03 1.018e+03 1.023e+03 1.053e+03 1.068e+03 1.100e+03 1.109e+03\n", - " 1.146e+03 1.172e+03 1.226e+03 1.286e+03 1.287e+03 1.327e+03 1.353e+03\n", - " 1.396e+03 1.426e+03 1.488e+03 1.521e+03 1.539e+03 1.550e+03 1.571e+03]\n", - "Post spike times: [ 4. 7. 8. 9. 10. 11. 12. 14. 15. 16. 19. 20.\n", - " 21. 25. 26. 27. 29. 32. 33. 35. 36. 38. 40. 41.\n", - " 43. 45. 46. 47. 48. 50. 51. 52. 53. 54. 55. 57.\n", - " 58. 59. 61. 68. 69. 70. 73. 76. 77. 79. 81. 83.\n", - " 85. 86. 88. 92. 94. 96. 97. 98. 99. 102. 103. 104.\n", - " 105. 108. 110. 111. 114. 116. 117. 119. 121. 123. 125. 128.\n", - " 131. 135. 136. 140. 141. 142. 143. 146. 147. 148. 149. 151.\n", - " 153. 155. 156. 158. 159. 161. 164. 165. 168. 169. 171. 173.\n", - " 174. 178. 182. 184. 186. 187. 189. 191. 192. 193. 195. 196.\n", - " 198. 199. 200. 201. 202. 204. 210. 211. 214. 215. 216. 217.\n", - " 218. 223. 226. 229. 230. 231. 232. 237. 238. 239. 240. 241.\n", - " 242. 243. 244. 245. 247. 250. 251. 252. 253. 255. 256. 257.\n", - " 258. 260. 264. 266. 268. 270. 271. 272. 273. 274. 275. 278.\n", - " 279. 280. 281. 286. 287. 289. 290. 291. 295. 296. 299. 300.\n", - " 301. 305. 309. 312. 313. 315. 319. 322. 323. 324. 326. 327.\n", - " 328. 331. 333. 335. 338. 339. 343. 344. 345. 346. 347. 349.\n", - " 352. 355. 358. 359. 361. 362. 364. 367. 369. 381. 382. 384.\n", - " 385. 388. 393. 394. 396. 397. 402. 404. 412. 414. 415. 416.\n", - " 418. 419. 424. 425. 427. 430. 431. 433. 434. 437. 439. 441.\n", - " 443. 452. 453. 456. 457. 458. 459. 466. 467. 472. 474. 476.\n", - " 478. 481. 483. 484. 485. 486. 489. 490. 492. 494. 501. 507.\n", - " 509. 510. 512. 513. 516. 517. 522. 530. 537. 543. 545. 547.\n", - " 548. 550. 558. 559. 560. 562. 563. 567. 568. 575. 577. 579.\n", - " 584. 585. 587. 592. 596. 597. 600. 603. 604. 613. 617. 618.\n", - " 620. 623. 625. 628. 633. 637. 638. 639. 647. 648. 649. 651.\n", - " 654. 656. 657. 660. 666. 668. 670. 674. 676. 681. 683. 689.\n", - " 690. 698. 701. 702. 703. 706. 707. 710. 717. 723. 734. 744.\n", - " 746. 754. 762. 764. 765. 772. 775. 778. 779. 787. 788. 792.\n", - " 800. 802. 807. 829. 832. 836. 840. 841. 849. 863. 882. 894.\n", - " 896. 915. 922. 924. 926. 931. 933. 934. 961. 967. 971. 983.\n", - " 1014. 1015. 1016. 1030. 1047. 1061. 1068. 1083. 1126. 1144. 1145. 1150.\n", - " 1163. 1221. 1239. 1307. 1308. 1341. 1416. 1468. 1987.]\n", - "t = 0.0 ms\n", - "t = 0.5 ms\n", - "t = 1.0 ms\n", - "t = 1.5 ms\n", - "t = 2.0 ms\n", - "t = 2.5 ms\n", - "t = 3.0 ms\n", - "t = 3.5 ms\n", - "t = 4.0 ms\n", - "t = 4.5 ms\n", - "t = 5.0 ms\n", - "t = 5.5 ms\n", - "t = 6.0 ms\n", - "t = 6.5 ms\n", - "t = 7.0 ms\n", - "t = 7.5 ms\n", - "t = 8.0 ms\n", - "t = 8.5 ms\n", - "t = 9.0 ms\n", - "t = 9.5 ms\n", - "t = 10.0 ms\n", - "t = 10.5 ms\n", - "t = 11.0 ms\n", - "t = 11.5 ms\n", - "t = 12.0 ms\n", - "t = 12.5 ms\n", - "t = 13.0 ms\n", - "t = 13.5 ms\n", - "t = 14.0 ms\n", - "t = 14.5 ms\n", - "t = 15.0 ms\n", - "t = 15.5 ms\n", - "t = 16.0 ms\n", - "t = 16.5 ms\n", - "t = 17.0 ms\n", - "t = 17.5 ms\n", - "t = 18.0 ms\n", - "t = 18.5 ms\n", - "t = 19.0 ms\n", - "t = 19.5 ms\n", - "t = 20.0 ms\n", - "t = 20.5 ms\n", - "t = 21.0 ms\n", - "t = 21.5 ms\n", - "t = 22.0 ms\n", - "t = 22.5 ms\n", - "t = 23.0 ms\n", - "t = 23.5 ms\n", - "t = 24.0 ms\n", - "t = 24.5 ms\n", - "t = 25.0 ms\n", - "t = 25.5 ms\n", - "t = 26.0 ms\n", - "t = 26.5 ms\n", - "t = 27.0 ms\n", - "t = 27.5 ms\n", - "t = 28.0 ms\n", - "t = 28.5 ms\n", - "t = 29.0 ms\n", - "t = 29.5 ms\n", - "t = 30.0 ms\n", - "t = 30.5 ms\n", - "t = 31.0 ms\n", - "t = 31.5 ms\n", - "t = 32.0 ms\n", - "t = 32.5 ms\n", - "t = 33.0 ms\n", - "t = 33.5 ms\n", - "t = 34.0 ms\n", - "t = 34.5 ms\n", - "t = 35.0 ms\n", - "t = 35.5 ms\n", - "t = 36.0 ms\n", - "t = 36.5 ms\n", - "t = 37.0 ms\n", - "t = 37.5 ms\n", - "t = 38.0 ms\n", - "t = 38.5 ms\n", - "t = 39.0 ms\n", - "t = 39.5 ms\n", - "t = 40.0 ms\n", - "t = 40.5 ms\n", - "t = 41.0 ms\n", - "t = 41.5 ms\n", - "t = 42.0 ms\n", - "t = 42.5 ms\n", - "t = 43.0 ms\n", - "t = 43.5 ms\n", - "t = 44.0 ms\n", - "t = 44.5 ms\n", - "t = 45.0 ms\n", - "t = 45.5 ms\n", - "t = 46.0 ms\n", - "t = 46.5 ms\n", - "t = 47.0 ms\n", - "t = 47.5 ms\n", - "t = 48.0 ms\n", - "t = 48.5 ms\n", - "t = 49.0 ms\n", - "t = 49.5 ms\n", - "t = 50.0 ms\n", - "t = 50.5 ms\n", - "t = 51.0 ms\n", - "t = 51.5 ms\n", - "t = 52.0 ms\n", - "t = 52.5 ms\n", - "t = 53.0 ms\n", - "t = 53.5 ms\n", - "t = 54.0 ms\n", - "t = 54.5 ms\n", - "t = 55.0 ms\n", - "t = 55.5 ms\n", - "t = 56.0 ms\n", - "t = 56.5 ms\n", - "t = 57.0 ms\n", - "t = 57.5 ms\n", - "t = 58.0 ms\n", - "t = 58.5 ms\n", - "t = 59.0 ms\n", - "t = 59.5 ms\n", - "t = 60.0 ms\n", - "t = 60.5 ms\n", - "t = 61.0 ms\n", - "t = 61.5 ms\n", - "t = 62.0 ms\n", - "t = 62.5 ms\n", - "t = 63.0 ms\n", - "t = 63.5 ms\n", - "t = 64.0 ms\n", - "t = 64.5 ms\n", - "t = 65.0 ms\n", - "t = 65.5 ms\n", - "t = 66.0 ms\n", - "t = 66.5 ms\n", - "t = 67.0 ms\n", - "t = 67.5 ms\n", - "t = 68.0 ms\n", - "t = 68.5 ms\n", - "t = 69.0 ms\n", - "t = 69.5 ms\n", - "t = 70.0 ms\n", - "t = 70.5 ms\n", - "t = 71.0 ms\n", - "t = 71.5 ms\n", - "t = 72.0 ms\n", - "t = 72.5 ms\n", - "t = 73.0 ms\n", - "t = 73.5 ms\n", - "t = 74.0 ms\n", - "t = 74.5 ms\n", - "t = 75.0 ms\n", - "t = 75.5 ms\n", - "t = 76.0 ms\n", - "t = 76.5 ms\n", - "t = 77.0 ms\n", - "t = 77.5 ms\n", - "t = 78.0 ms\n", - "t = 78.5 ms\n", - "t = 79.0 ms\n", - "t = 79.5 ms\n", - "t = 80.0 ms\n", - "t = 80.5 ms\n", - "t = 81.0 ms\n", - "t = 81.5 ms\n", - "t = 82.0 ms\n", - "t = 82.5 ms\n", - "t = 83.0 ms\n", - "t = 83.5 ms\n", - "t = 84.0 ms\n", - "t = 84.5 ms\n", - "t = 85.0 ms\n", - "t = 85.5 ms\n", - "t = 86.0 ms\n", - "t = 86.5 ms\n", - "t = 87.0 ms\n", - "t = 87.5 ms\n", - "t = 88.0 ms\n", - "t = 88.5 ms\n", - "t = 89.0 ms\n", - "t = 89.5 ms\n", - "t = 90.0 ms\n", - "t = 90.5 ms\n", - "t = 91.0 ms\n", - "t = 91.5 ms\n", - "t = 92.0 ms\n", - "t = 92.5 ms\n", - "t = 93.0 ms\n", - "t = 93.5 ms\n", - "t = 94.0 ms\n", - "t = 94.5 ms\n", - "t = 95.0 ms\n", - "t = 95.5 ms\n", - "t = 96.0 ms\n", - "t = 96.5 ms\n", - "t = 97.0 ms\n", - "t = 97.5 ms\n", - "t = 98.0 ms\n", - "t = 98.5 ms\n", - "t = 99.0 ms\n", - "t = 99.5 ms\n", - "t = 100.0 ms\n", - "t = 100.5 ms\n", - "t = 101.0 ms\n", - "t = 101.5 ms\n", - "t = 102.0 ms\n", - "t = 102.5 ms\n", - "t = 103.0 ms\n", - "t = 103.5 ms\n", - "t = 104.0 ms\n", - "t = 104.5 ms\n", - "t = 105.0 ms\n", - "t = 105.5 ms\n", - "t = 106.0 ms\n", - "t = 106.5 ms\n", - "t = 107.0 ms\n", - "t = 107.5 ms\n", - "t = 108.0 ms\n", - "t = 108.5 ms\n", - "t = 109.0 ms\n", - "t = 109.5 ms\n", - "t = 110.0 ms\n", - "t = 110.5 ms\n", - "t = 111.0 ms\n", - "t = 111.5 ms\n", - "t = 112.0 ms\n", - "t = 112.5 ms\n", - "t = 113.0 ms\n", - "t = 113.5 ms\n", - "t = 114.0 ms\n", - "t = 114.5 ms\n", - "t = 115.0 ms\n", - "t = 115.5 ms\n", - "t = 116.0 ms\n", - "t = 116.5 ms\n", - "t = 117.0 ms\n", - "t = 117.5 ms\n", - "t = 118.0 ms\n", - "t = 118.5 ms\n", - "t = 119.0 ms\n", - "t = 119.5 ms\n", - "t = 120.0 ms\n", - "t = 120.5 ms\n", - "t = 121.0 ms\n", - "t = 121.5 ms\n", - "t = 122.0 ms\n", - "t = 122.5 ms\n", - "t = 123.0 ms\n", - "t = 123.5 ms\n", - "t = 124.0 ms\n", - "t = 124.5 ms\n", - "t = 125.0 ms\n", - "t = 125.5 ms\n", - "t = 126.0 ms\n", - "t = 126.5 ms\n", - "t = 127.0 ms\n", - "t = 127.5 ms\n", - "t = 128.0 ms\n", - "t = 128.5 ms\n", - "t = 129.0 ms\n", - "t = 129.5 ms\n", - "t = 130.0 ms\n", - "t = 130.5 ms\n", - "t = 131.0 ms\n", - "t = 131.5 ms\n", - "t = 132.0 ms\n", - "t = 132.5 ms\n", - "t = 133.0 ms\n", - "t = 133.5 ms\n", - "t = 134.0 ms\n", - "t = 134.5 ms\n", - "t = 135.0 ms\n", - "t = 135.5 ms\n", - "t = 136.0 ms\n", - "t = 136.5 ms\n", - "t = 137.0 ms\n", - "t = 137.5 ms\n", - "t = 138.0 ms\n", - "t = 138.5 ms\n", - "t = 139.0 ms\n", - "t = 139.5 ms\n", - "t = 140.0 ms\n", - "t = 140.5 ms\n", - "t = 141.0 ms\n", - "t = 141.5 ms\n", - "t = 142.0 ms\n", - "t = 142.5 ms\n", - "t = 143.0 ms\n", - "t = 143.5 ms\n", - "t = 144.0 ms\n", - "t = 144.5 ms\n", - "t = 145.0 ms\n", - "t = 145.5 ms\n", - "t = 146.0 ms\n", - "t = 146.5 ms\n", - "t = 147.0 ms\n", - "t = 147.5 ms\n", - "t = 148.0 ms\n", - "t = 148.5 ms\n", - "t = 149.0 ms\n", - "t = 149.5 ms\n", - "t = 150.0 ms\n", - "t = 150.5 ms\n", - "t = 151.0 ms\n", - "t = 151.5 ms\n", - "t = 152.0 ms\n", - "t = 152.5 ms\n", - "t = 153.0 ms\n", - "t = 153.5 ms\n", - "t = 154.0 ms\n", - "t = 154.5 ms\n", - "t = 155.0 ms\n", - "t = 155.5 ms\n", - "t = 156.0 ms\n", - "t = 156.5 ms\n", - "t = 157.0 ms\n", - "t = 157.5 ms\n", - "t = 158.0 ms\n", - "t = 158.5 ms\n", - "t = 159.0 ms\n", - "t = 159.5 ms\n", - "t = 160.0 ms\n", - "t = 160.5 ms\n", - "t = 161.0 ms\n", - "t = 161.5 ms\n", - "t = 162.0 ms\n", - "t = 162.5 ms\n", - "t = 163.0 ms\n", - "t = 163.5 ms\n", - "t = 164.0 ms\n", - "t = 164.5 ms\n", - "t = 165.0 ms\n", - "t = 165.5 ms\n", - "t = 166.0 ms\n", - "t = 166.5 ms\n", - "t = 167.0 ms\n", - "t = 167.5 ms\n", - "t = 168.0 ms\n", - "t = 168.5 ms\n", - "t = 169.0 ms\n", - "t = 169.5 ms\n", - "t = 170.0 ms\n", - "t = 170.5 ms\n", - "t = 171.0 ms\n", - "t = 171.5 ms\n", - "t = 172.0 ms\n", - "t = 172.5 ms\n", - "t = 173.0 ms\n", - "t = 173.5 ms\n", - "t = 174.0 ms\n", - "t = 174.5 ms\n", - "t = 175.0 ms\n", - "t = 175.5 ms\n", - "t = 176.0 ms\n", - "t = 176.5 ms\n", - "t = 177.0 ms\n", - "t = 177.5 ms\n", - "t = 178.0 ms\n", - "t = 178.5 ms\n", - "t = 179.0 ms\n", - "t = 179.5 ms\n", - "t = 180.0 ms\n", - "t = 180.5 ms\n", - "t = 181.0 ms\n", - "t = 181.5 ms\n", - "t = 182.0 ms\n", - "t = 182.5 ms\n", - "t = 183.0 ms\n", - "t = 183.5 ms\n", - "t = 184.0 ms\n", - "t = 184.5 ms\n", - "t = 185.0 ms\n", - "t = 185.5 ms\n", - "t = 186.0 ms\n", - "t = 186.5 ms\n", - "t = 187.0 ms\n", - "t = 187.5 ms\n", - "t = 188.0 ms\n", - "t = 188.5 ms\n", - "t = 189.0 ms\n", - "t = 189.5 ms\n", - "t = 190.0 ms\n", - "t = 190.5 ms\n", - "t = 191.0 ms\n", - "t = 191.5 ms\n", - "t = 192.0 ms\n", - "t = 192.5 ms\n", - "t = 193.0 ms\n", - "t = 193.5 ms\n", - "t = 194.0 ms\n", - "t = 194.5 ms\n", - "t = 195.0 ms\n", - "t = 195.5 ms\n", - "t = 196.0 ms\n", - "t = 196.5 ms\n", - "t = 197.0 ms\n", - "t = 197.5 ms\n", - "t = 198.0 ms\n", - "t = 198.5 ms\n", - "t = 199.0 ms\n", - "t = 199.5 ms\n", - "t = 200.0 ms\n", - "t = 200.5 ms\n", - "t = 201.0 ms\n", - "t = 201.5 ms\n", - "t = 202.0 ms\n", - "t = 202.5 ms\n", - "t = 203.0 ms\n", - "t = 203.5 ms\n", - "t = 204.0 ms\n", - "t = 204.5 ms\n", - "t = 205.0 ms\n", - "t = 205.5 ms\n", - "t = 206.0 ms\n", - "t = 206.5 ms\n", - "t = 207.0 ms\n", - "t = 207.5 ms\n", - "t = 208.0 ms\n", - "t = 208.5 ms\n", - "t = 209.0 ms\n", - "t = 209.5 ms\n", - "t = 210.0 ms\n", - "t = 210.5 ms\n", - "t = 211.0 ms\n", - "t = 211.5 ms\n", - "t = 212.0 ms\n", - "t = 212.5 ms\n", - "t = 213.0 ms\n", - "t = 213.5 ms\n", - "t = 214.0 ms\n", - "t = 214.5 ms\n", - "t = 215.0 ms\n", - "t = 215.5 ms\n", - "t = 216.0 ms\n", - "t = 216.5 ms\n", - "t = 217.0 ms\n", - "t = 217.5 ms\n", - "t = 218.0 ms\n", - "t = 218.5 ms\n", - "t = 219.0 ms\n", - "t = 219.5 ms\n", - "t = 220.0 ms\n", - "t = 220.5 ms\n", - "t = 221.0 ms\n", - "t = 221.5 ms\n", - "t = 222.0 ms\n", - "t = 222.5 ms\n", - "t = 223.0 ms\n", - "t = 223.5 ms\n", - "t = 224.0 ms\n", - "t = 224.5 ms\n", - "t = 225.0 ms\n", - "t = 225.5 ms\n", - "t = 226.0 ms\n", - "t = 226.5 ms\n", - "t = 227.0 ms\n", - "t = 227.5 ms\n", - "t = 228.0 ms\n", - "t = 228.5 ms\n", - "t = 229.0 ms\n", - "t = 229.5 ms\n", - "t = 230.0 ms\n", - "t = 230.5 ms\n", - "t = 231.0 ms\n", - "t = 231.5 ms\n", - "t = 232.0 ms\n", - "t = 232.5 ms\n", - "t = 233.0 ms\n", - "t = 233.5 ms\n", - "t = 234.0 ms\n", - "t = 234.5 ms\n", - "t = 235.0 ms\n", - "t = 235.5 ms\n", - "t = 236.0 ms\n", - "t = 236.5 ms\n", - "t = 237.0 ms\n", - "t = 237.5 ms\n", - "t = 238.0 ms\n", - "t = 238.5 ms\n", - "t = 239.0 ms\n", - "t = 239.5 ms\n", - "t = 240.0 ms\n", - "t = 240.5 ms\n", - "t = 241.0 ms\n", - "t = 241.5 ms\n", - "t = 242.0 ms\n", - "t = 242.5 ms\n", - "t = 243.0 ms\n", - "t = 243.5 ms\n", - "t = 244.0 ms\n", - "t = 244.5 ms\n", - "t = 245.0 ms\n", - "t = 245.5 ms\n", - "t = 246.0 ms\n", - "t = 246.5 ms\n", - "t = 247.0 ms\n", - "t = 247.5 ms\n", - "t = 248.0 ms\n", - "t = 248.5 ms\n", - "t = 249.0 ms\n", - "t = 249.5 ms\n", - "t = 250.0 ms\n", - "t = 250.5 ms\n", - "t = 251.0 ms\n", - "t = 251.5 ms\n", - "t = 252.0 ms\n", - "t = 252.5 ms\n", - "t = 253.0 ms\n", - "t = 253.5 ms\n", - "t = 254.0 ms\n", - "t = 254.5 ms\n", - "t = 255.0 ms\n", - "t = 255.5 ms\n", - "t = 256.0 ms\n", - "t = 256.5 ms\n", - "t = 257.0 ms\n", - "t = 257.5 ms\n", - "t = 258.0 ms\n", - "t = 258.5 ms\n", - "t = 259.0 ms\n", - "t = 259.5 ms\n", - "t = 260.0 ms\n", - "t = 260.5 ms\n", - "t = 261.0 ms\n", - "t = 261.5 ms\n", - "t = 262.0 ms\n", - "t = 262.5 ms\n", - "t = 263.0 ms\n", - "t = 263.5 ms\n", - "t = 264.0 ms\n", - "t = 264.5 ms\n", - "t = 265.0 ms\n", - "t = 265.5 ms\n", - "t = 266.0 ms\n", - "t = 266.5 ms\n", - "t = 267.0 ms\n", - "t = 267.5 ms\n", - "t = 268.0 ms\n", - "t = 268.5 ms\n", - "t = 269.0 ms\n", - "t = 269.5 ms\n", - "t = 270.0 ms\n", - "t = 270.5 ms\n", - "t = 271.0 ms\n", - "t = 271.5 ms\n", - "t = 272.0 ms\n", - "t = 272.5 ms\n", - "t = 273.0 ms\n", - "t = 273.5 ms\n", - "t = 274.0 ms\n", - "t = 274.5 ms\n", - "t = 275.0 ms\n", - "t = 275.5 ms\n", - "t = 276.0 ms\n", - "t = 276.5 ms\n", - "t = 277.0 ms\n", - "t = 277.5 ms\n", - "t = 278.0 ms\n", - "t = 278.5 ms\n", - "t = 279.0 ms\n", - "t = 279.5 ms\n", - "t = 280.0 ms\n", - "t = 280.5 ms\n", - "t = 281.0 ms\n", - "t = 281.5 ms\n", - "t = 282.0 ms\n", - "t = 282.5 ms\n", - "t = 283.0 ms\n", - "t = 283.5 ms\n", - "t = 284.0 ms\n", - "t = 284.5 ms\n", - "t = 285.0 ms\n", - "t = 285.5 ms\n", - "t = 286.0 ms\n", - "t = 286.5 ms\n", - "t = 287.0 ms\n", - "t = 287.5 ms\n", - "t = 288.0 ms\n", - "t = 288.5 ms\n", - "t = 289.0 ms\n", - "t = 289.5 ms\n", - "t = 290.0 ms\n", - "t = 290.5 ms\n", - "t = 291.0 ms\n", - "t = 291.5 ms\n", - "t = 292.0 ms\n", - "t = 292.5 ms\n", - "t = 293.0 ms\n", - "t = 293.5 ms\n", - "t = 294.0 ms\n", - "t = 294.5 ms\n", - "t = 295.0 ms\n", - "t = 295.5 ms\n", - "t = 296.0 ms\n", - "t = 296.5 ms\n", - "t = 297.0 ms\n", - "t = 297.5 ms\n", - "t = 298.0 ms\n", - "t = 298.5 ms\n", - "t = 299.0 ms\n", - "t = 299.5 ms\n", - "t = 300.0 ms\n", - "t = 300.5 ms\n", - "t = 301.0 ms\n", - "t = 301.5 ms\n", - "t = 302.0 ms\n", - "t = 302.5 ms\n", - "t = 303.0 ms\n", - "t = 303.5 ms\n", - "t = 304.0 ms\n", - "t = 304.5 ms\n", - "t = 305.0 ms\n", - "t = 305.5 ms\n", - "t = 306.0 ms\n", - "t = 306.5 ms\n", - "t = 307.0 ms\n", - "t = 307.5 ms\n", - "t = 308.0 ms\n", - "t = 308.5 ms\n", - "t = 309.0 ms\n", - "t = 309.5 ms\n", - "t = 310.0 ms\n", - "t = 310.5 ms\n", - "t = 311.0 ms\n", - "t = 311.5 ms\n", - "t = 312.0 ms\n", - "t = 312.5 ms\n", - "t = 313.0 ms\n", - "t = 313.5 ms\n", - "t = 314.0 ms\n", - "t = 314.5 ms\n", - "t = 315.0 ms\n", - "t = 315.5 ms\n", - "t = 316.0 ms\n", - "t = 316.5 ms\n", - "t = 317.0 ms\n", - "t = 317.5 ms\n", - "t = 318.0 ms\n", - "t = 318.5 ms\n", - "t = 319.0 ms\n", - "t = 319.5 ms\n", - "t = 320.0 ms\n", - "t = 320.5 ms\n", - "t = 321.0 ms\n", - "t = 321.5 ms\n", - "t = 322.0 ms\n", - "t = 322.5 ms\n", - "t = 323.0 ms\n", - "t = 323.5 ms\n", - "t = 324.0 ms\n", - "t = 324.5 ms\n", - "t = 325.0 ms\n", - "t = 325.5 ms\n", - "t = 326.0 ms\n", - "t = 326.5 ms\n", - "t = 327.0 ms\n", - "t = 327.5 ms\n", - "t = 328.0 ms\n", - "t = 328.5 ms\n", - "t = 329.0 ms\n", - "t = 329.5 ms\n", - "t = 330.0 ms\n", - "t = 330.5 ms\n", - "t = 331.0 ms\n", - "t = 331.5 ms\n", - "t = 332.0 ms\n", - "t = 332.5 ms\n", - "t = 333.0 ms\n", - "t = 333.5 ms\n", - "t = 334.0 ms\n", - "t = 334.5 ms\n", - "t = 335.0 ms\n", - "t = 335.5 ms\n", - "t = 336.0 ms\n", - "t = 336.5 ms\n", - "t = 337.0 ms\n", - "t = 337.5 ms\n", - "t = 338.0 ms\n", - "t = 338.5 ms\n", - "t = 339.0 ms\n", - "t = 339.5 ms\n", - "t = 340.0 ms\n", - "t = 340.5 ms\n", - "t = 341.0 ms\n", - "t = 341.5 ms\n", - "t = 342.0 ms\n", - "t = 342.5 ms\n", - "t = 343.0 ms\n", - "t = 343.5 ms\n", - "t = 344.0 ms\n", - "t = 344.5 ms\n", - "t = 345.0 ms\n", - "t = 345.5 ms\n", - "t = 346.0 ms\n", - "t = 346.5 ms\n", - "t = 347.0 ms\n", - "t = 347.5 ms\n", - "t = 348.0 ms\n", - "t = 348.5 ms\n", - "t = 349.0 ms\n", - "t = 349.5 ms\n", - "t = 350.0 ms\n", - "t = 350.5 ms\n", - "t = 351.0 ms\n", - "t = 351.5 ms\n", - "t = 352.0 ms\n", - "t = 352.5 ms\n", - "t = 353.0 ms\n", - "t = 353.5 ms\n", - "t = 354.0 ms\n", - "t = 354.5 ms\n", - "t = 355.0 ms\n", - "t = 355.5 ms\n", - "t = 356.0 ms\n", - "t = 356.5 ms\n", - "t = 357.0 ms\n", - "t = 357.5 ms\n", - "t = 358.0 ms\n", - "t = 358.5 ms\n", - "t = 359.0 ms\n", - "t = 359.5 ms\n", - "t = 360.0 ms\n", - "t = 360.5 ms\n", - "t = 361.0 ms\n", - "t = 361.5 ms\n", - "t = 362.0 ms\n", - "t = 362.5 ms\n", - "t = 363.0 ms\n", - "t = 363.5 ms\n", - "t = 364.0 ms\n", - "t = 364.5 ms\n", - "t = 365.0 ms\n", - "t = 365.5 ms\n", - "t = 366.0 ms\n", - "t = 366.5 ms\n", - "t = 367.0 ms\n", - "t = 367.5 ms\n", - "t = 368.0 ms\n", - "t = 368.5 ms\n", - "t = 369.0 ms\n", - "t = 369.5 ms\n", - "t = 370.0 ms\n", - "t = 370.5 ms\n", - "t = 371.0 ms\n", - "t = 371.5 ms\n", - "t = 372.0 ms\n", - "t = 372.5 ms\n", - "t = 373.0 ms\n", - "t = 373.5 ms\n", - "t = 374.0 ms\n", - "t = 374.5 ms\n", - "t = 375.0 ms\n", - "t = 375.5 ms\n", - "t = 376.0 ms\n", - "t = 376.5 ms\n", - "t = 377.0 ms\n", - "t = 377.5 ms\n", - "t = 378.0 ms\n", - "t = 378.5 ms\n", - "t = 379.0 ms\n", - "t = 379.5 ms\n", - "t = 380.0 ms\n", - "t = 380.5 ms\n", - "t = 381.0 ms\n", - "t = 381.5 ms\n", - "t = 382.0 ms\n", - "t = 382.5 ms\n", - "t = 383.0 ms\n", - "t = 383.5 ms\n", - "t = 384.0 ms\n", - "t = 384.5 ms\n", - "t = 385.0 ms\n", - "t = 385.5 ms\n", - "t = 386.0 ms\n", - "t = 386.5 ms\n", - "t = 387.0 ms\n", - "t = 387.5 ms\n", - "t = 388.0 ms\n", - "t = 388.5 ms\n", - "t = 389.0 ms\n", - "t = 389.5 ms\n", - "t = 390.0 ms\n", - "t = 390.5 ms\n", - "t = 391.0 ms\n", - "t = 391.5 ms\n", - "t = 392.0 ms\n", - "t = 392.5 ms\n", - "t = 393.0 ms\n", - "t = 393.5 ms\n", - "t = 394.0 ms\n", - "t = 394.5 ms\n", - "t = 395.0 ms\n", - "t = 395.5 ms\n", - "t = 396.0 ms\n", - "t = 396.5 ms\n", - "t = 397.0 ms\n", - "t = 397.5 ms\n", - "t = 398.0 ms\n", - "t = 398.5 ms\n", - "t = 399.0 ms\n", - "t = 399.5 ms\n", - "t = 400.0 ms\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Actual pre spike times: [ 2. 3. 4. 5. 6. 8. 10. 13. 18. 22. 24. 28. 29. 31.\n", - " 32. 34. 36. 37. 38. 39. 40. 42. 45. 47. 50. 52. 54. 56.\n", - " 57. 58. 59. 60. 61. 62. 65. 66. 68. 71. 74. 76. 78. 81.\n", - " 82. 83. 84. 87. 92. 94. 95. 96. 97. 99. 100. 101. 102. 105.\n", - " 106. 109. 110. 111. 112. 114. 116. 119. 120. 122. 125. 127. 128. 129.\n", - " 132. 133. 135. 136. 140. 144. 145. 147. 148. 149. 150. 152. 153. 154.\n", - " 158. 159. 160. 161. 163. 164. 167. 168. 169. 170. 171. 174. 176. 177.\n", - " 180. 181. 182. 183. 186. 189. 190. 194. 195. 199. 201. 202. 204. 207.\n", - " 208. 209. 210. 211. 212. 214. 215. 217. 219. 222. 226. 233. 234. 235.\n", - " 239. 241. 243. 244. 248. 249. 250. 251. 254. 255. 257. 258. 259. 263.\n", - " 264. 266. 269. 271. 274. 276. 278. 279. 281. 283. 284. 285. 288. 293.\n", - " 294. 300. 301. 302. 304. 305. 309. 311. 312. 314. 318. 323. 324. 329.\n", - " 330. 336. 338. 339. 340. 342. 344. 346. 350. 357. 360. 371. 372. 373.\n", - " 376. 378. 379. 382. 383. 385. 390. 392. 397. 399. 400.]\n", - "Actual post spike times: [ 6. 9. 11.5 14. 16.5 19.5 22. 25.5 28.5 31.5 34.5 37.5\n", - " 40.5 43. 46. 48.5 51.5 54. 56.5 59. 62. 65.5 70. 73.\n", - " 76. 78.5 81.5 84.5 87.5 90.5 93.5 96.5 99. 102. 104.5 107.\n", - " 109.5 112.5 115.5 118.5 121.5 124.5 127.5 130.5 133.5 137. 141. 143.5\n", - " 146.5 149. 152. 154.5 157.5 160.5 163.5 166.5 169.5 172.5 175.5 179.5\n", - " 183.5 186.5 189. 192. 194.5 197.5 200.5 203. 205.5 209.5 212.5 215.5\n", - " 218. 220.5 224.5 227.5 230.5 233. 236. 239. 241.5 244. 246.5 249.\n", - " 251.5 254. 256.5 259. 261.5 265.5 268.5 271.5 274. 276.5 279.5 282.\n", - " 285. 288. 290.5 293. 296.5 299.5 302. 305.5 309.5 313.5 316.5 320.5\n", - " 323.5 326. 328.5 331.5 334.5 337.5 340.5 344.5 347. 350. 353.5 356.5\n", - " 359.5 362.5 365.5 368.5 371.5 382.5 385.5 388.5 392. 395. 397.5 400.5]\n" - ] - }, - { - "data": { - "image/png": "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FytXroSXl1ezfZ1pF1q9HS+S2Y4cOSICEFNTUw3b6urqxH79+omjR492YMm6h71794oAxE8//bTN41JSUkSlUilWVFQYtr3zzjsiAPG7776zdTGdVn19vZifny+KoigeO3ZMBCBu2LCh2XEPP/yw6OHhIV6+fNmwbdeuXSIA8e233zZsy83NFd3c3MTFixcbtmm1WnHs2LFir169RLVabbsX4yQ6Wufz588Xvby82n081nn7fvrpJ1GlUplsy8jIEOVyuThnzhzDNl7n1tPROud1bltqtVocNmyYOGDAAMM2Xue21VKd8zq3jbvuukucMGGCmJycLMbGxprs62i70BbteA4FtMDWrVshlUpNvpVQKBS4//77cejQIVy5csWBpeteqqqqoFarm22vrKzErl27MHfuXPj6+hq2z5s3D97e3tiyZYs9i+lU5HI5QkND2z3us88+w29/+1tERkYatk2aNAkxMTEm9fvll1+isbERixYtMmwTBAEPP/wwcnNzcejQIeu+ACfU0TrX02g0qKysbHU/67x9SUlJJt/CA0D//v0RGxuLc+fOGbbxOreejta5Hq9z25BKpYiIiEB5eblhG69z22qpzvV4nVvPDz/8gK1bt+L1119vtq8z7UJbtOMZWFngxIkTiImJMXnjACAhIQGAriuSLHfffffB19cXCoUC48ePx/Hjxw37Tp06BbVajZtuusnkHHd3dwwfPhwnTpywd3G7lby8PBQWFjarX0B3nRvX74kTJ+Dl5YVBgwY1O06/nzqutrYWvr6+8PPzQ0BAABYvXtxsfDjr3DyiKOLatWsICgoCwOvcHm6scz1e59ZVU1OD4uJiXLhwAWvWrMH27dsxceJEALzObaWtOtfjdW49Go0Gjz76KP70pz9hyJAhzfZ3pl1oi3Y851hZID8/H0qlstl2/barV6/au0jdiru7O+68805MnToVQUFBOHv2LFatWoWxY8fi4MGDGDFiBPLz8wGg1ffhwIED9i52t9Je/ZaWlkKlUkEulyM/Px89e/aEIAjNjgP4eegMpVKJZcuWYeTIkdBqtdixYwfWrVuHX3/9Ffv27YNMpvvTzTo3z4cffoi8vDy88MILAHid28ONdQ7wOreFv/71r3j77bcBABKJBL///e+xdu1aALzObaWtOgd4nVvbv//9b1y+fBm7d+9ucX9n2oW2aMczsLJAXV0d5HJ5s+0KhcKwn8yXlJSEpKQkw+/Tp0/HzJkzMXToUDz11FPYsWOHoY5bex/4HlimvfrVHyOXy/l5sKKXXnrJ5Pe7774bMTExeOaZZ7B161bDJGbWeeelp6dj8eLFGD16NObPnw+A17mttVTnAK9zW1i6dClmzpyJq1evYsuWLdBoNGhoaADA69xW2qpzgNe5NZWUlOC5557D3//+dwQHB7d4TGfahbaocw4FtICHhwdUKlWz7fX19Yb9ZF3R0dG44447sHfvXmg0GkMdt/Y+8D2wTHv1a3wMPw+29dhjj0EikZh8S8c675yCggLcfvvt8PPzM4ytB3id21Jrdd4aXueWGThwICZNmoR58+bh66+/RnV1NaZNmwZRFHmd20hbdd4aXufmefbZZxEQEIBHH3201WM60y60RZ0zsLKAUqk0dDka028LCwuzd5FcQkREBBoaGlBTU2Porm3tfeB7YJn26jcgIMDwbY9SqURBQUGzfyb8PFiHh4cHAgMDUVpaatjGOu+4iooKpKSkoLy8HDt27DCpG17nttFWnbeG17l1zZw5E8eOHUNGRgavczsxrvPW8DrvvMzMTKxfvx5LlizB1atXkZ2djezsbNTX16OxsRHZ2dkoLS3tVLvQFu14BlYWGD58ODIyMppleTly5IhhP1nfxYsXoVAo4O3tjbi4OMhkMpOEFgDQ0NCAtLQ0vgcWCg8PR3BwcLP6BYCjR4+a1O/w4cNRW1vbLOsXPw/WUVVVheLiYpPhD6zzjqmvr8e0adOQkZGBr7/+GoMHDzbZz+vc+tqr89bwOrcu/VCmiooKXud2YlznreF13nl5eXnQarVYsmQJ+vTpY7gdOXIEGRkZ6NOnD1544YVOtQtt0o43K0k7iaIoiocPH26W/76+vl6Mjo4WExMTHViy7qGwsLDZtrS0NNHNzU2cPn26YduUKVNEpVIpVlZWGra9++67IgBx+/btdimrs2trTaWHHnpI9PDwEHNycgzbdu/eLQIQ33rrLcO2K1eutLoGR3h4ONfguEFrdV5XV2dyLes98cQTIgDx888/N2xjnbdPrVaL06dPF2UymfjNN9+0ehyvc+vpSJ3zOreua9euNdvW0NAgjhw5UvTw8BCrqqpEUeR1bk0dqXNe59ZTVFQkfvHFF81usbGxYmRkpPjFF1+IJ0+eFEWx4+1CW7TjmbzCAomJiZg1axaeeuopFBYWIjo6Gps2bUJ2djbee+89RxfP6d11113w8PBAUlISQkJCcPbsWaxfvx6enp54+eWXDce9+OKLSEpKQnJyMhYuXIjc3FysXr0at912G6ZMmeLAV9D1rV27FuXl5YbMN1999RVyc3MBAI8++ij8/Pzw9NNP49NPP8X48ePx5z//GdXV1UhNTcWQIUNw3333GR6rV69eWLp0KVJTU9HY2Ij4+Hhs27YNBw4cwIcfftju3ApX0V6dl5WVYcSIEbjnnnswcOBAAMB3332Hb7/9FlOmTMEdd9xheCzWefv++te/4n//+x+mTZuG0tJSfPDBByb7586dCwC8zq2oI3VeUFDA69yKHnzwQVRWVmLcuHEIDw9HQUEBPvzwQ6Snp2P16tXw9vYGwOvcmjpS59nZ2bzOrSQoKAgzZsxotl2/lpXxvo62C23SjjczcKQmdXV14uOPPy6GhoaKcrlcjI+PF3fs2OHoYnULb7zxhpiQkCAGBASIMplMVCqV4ty5c8XMzMxmxx44cEBMSkoSFQqFGBwcLC5evLjFb4nIVFRUlAigxdulS5cMx50+fVq87bbbRE9PT9Hf31+cM2eOWFBQ0OzxNBqNuHLlSjEqKkp0d3cXY2NjxQ8++MCOr6jra6/Oy8rKxLlz54rR0dGip6enKJfLxdjYWHHlypViQ0NDs8djnbctOTm51fq+8V8gr3Pr6Eid8zq3ro8//licNGmS2LNnT1Emk4k9evQQJ02aJH755ZfNjuV1bh0dqXNe57aXnJwsxsbGNtve0Xahtdvxgii2kbaEiIiIiIiI2sXkFURERERERBZiYEVERERERGQhBlZEREREREQWYmBFRERERERkIQZWREREREREFmJgRUREREREZCEGVkRERERERBZiYEVERERERGQhBlZEREREREQWYmBFRERERERkIQZWREREREREFmJgRUREREREZCEGVkRERERERBZiYEVERERERGSh/wcyB4GiyaY9wgAAAABJRU5ErkJggg==\n", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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169fF/Hx8UIul4sjR44YXY81bj4zyTlr3LwuX75sMKbX60VwcLBQKpWir69PCME6N6eZ5Jx1bl7d3d2iurra4OHv7y/WrFkjqqurxR9//CGEmPnc0BJzed4cwoiQkBBs2bIF+fn56Orqgo+PD7744gtoNBp89tlntg7vf++ZZ56BUqlEaGgoVq5cibNnz6K8vBwODg7Yt2+ftN67776L0NBQhIeH46WXXsLFixdRUlKCqKgoxMTE2PAv+H8oLS1Fb2+vdOeY77//HhcvXgQAZGVlwdnZGTt37sTXX3+Nxx9/HK+++ir6+/tRVFSEgIAAZGRkSNtyd3dHTk4OioqKMDIygvXr1+Pw4cNoaGhAVVWVyesbbhemct7T04OgoCCkpqbC19cXAHDs2DH88MMPiImJQUJCgrQt5nx6ubm5+O677xAXFwedTofKyspJy9PS0gCANW5GM8m5VqtljZtRZmYmrl27hsceewxubm7QarWoqqpCc3MzSkpK4OjoCIB1bk4zyblGo2Gdm9GKFSvw1FNPGYyPf5fTxGUznRtaZC4/x8bwtjA4OCjy8vLEqlWrhEKhEOvXrxe1tbW2DmtBeP/998VDDz0kXFxchFwuF2q1WqSlpYnW1laDdRsaGkRoaKiwt7cXKpVKbN++fcp3eciQp6enADDl46+//pLW+/PPP0VUVJRwcHAQd955p3j22WeFVqs12N7o6KgoKCgQnp6ews7OTvj7+4vKykor/kW3PlM57+npEWlpacLHx0c4ODgIhUIh/P39RUFBgdDr9QbbY86NCw8PN5rrm1/eWOPmMZOcs8bN66uvvhKRkZHC1dVVyOVysWzZMhEZGSm+/fZbg3VZ5+Yxk5yzzq0jPDxc+Pv7G4zPdG5o7rm8TIhpbg1CREREREREvDkEERERERGRKWyciIiIiIiITGDjREREREREZAIbJyIiIiIiIhPYOBEREREREZnAxomIiIiIiMgENk5EREREREQmsHEiIiIiIiIygY0TERERERGRCWyciIiIiIiITGDjRERENvH888/Dy8vL1mFI9uzZA5lMBplMBkdHR6vvPzAwUNp/bGys1fdPRETTk9s6ACIiWjhkMtmM1jtx4oSFI5m7iooKLFmyxOr7LSgogE6nw44dO6y+byIiMo2NExERmU1FRcWkn7/88kvU1dUZjN9777345JNPMDY2Zs3wZiQtLc0m+920aRMAYNeuXTbZPxERTY+NExERmc3NTcfJkydRV1dns2aEiIjIXHiNExER2cTN1zhpNBrIZDIUFxfjww8/xF133QUHBwdERUWhvb0dQgi88847cHd3h1KpREJCAnQ6ncF2jx49irCwMNxxxx1YunQpNm/ejDNnzswrVi8vL8TGxqK+vh4PPvgglEolAgICUF9fDwA4dOgQAgICYG9vjwceeACnTp2a9PtarRYZGRlwd3eHQqGAWq1GQkICNBrNvOIiIiLr4RknIiK6pVRVVUGv1yMrKws6nQ7vvfcekpOTsXHjRtTX1+ONN97A+fPn8cEHHyAvLw+ff/659LsVFRVIT09HdHQ09u/fj4GBAZSVleHRRx/FqVOn5nUzivPnz2Pr1q3IzMxEWloaiouLERcXhwMHDmDnzp145ZVXAACFhYVITk7GuXPnsGjRjfcnExMTcebMGWRlZcHLywtdXV2oq6tDW1vbLXWDDCIiMo6NExER3VI6OjrQ2toKZ2dnAMDo6CgKCwsxODiI3377DXL5jZeu7u5uVFVVoaysDAqFAv39/cjOzsYLL7yA8vJyaXvp6em45557UFBQMGl8ts6dO4fGxkZs2LABAODn54fo6Gi8+OKLaG5uxpo1awAAy5YtQ2ZmJn7++WdERESgt7cXjY2NKCoqQl5enrS9/Pz8OcdCRETWx4/qERHRLWXLli1S0wQAISEhAG5cPzXeNI2P6/V6dHR0AADq6urQ29uL1NRUXLlyRXosXrwYISEh876Tn5+fn9Q0TYxr48aNUtM0cfzChQsAAKVSCTs7O9TX16Onp2deMRARke3wjBMREd1SJjYhAKQmysPDY8rx8WaktbUVwI1GZipOTk42iUuhUGD//v3Izc2Fq6srHn74YcTGxmLbtm1YtWrVvGIiIiLrYeNERES3lMWLF89qXAgBANKtzSsqKqZsSCaerbJmXACQk5ODuLg4HD58GMeOHcPu3btRWFiIn376CUFBQfOKi4iIrIONExERLQje3t4AgJUrVyIyMtLG0Rjy9vZGbm4ucnNz0draisDAQJSUlKCystLWoRER0QzwGiciIloQoqOj4eTkhIKCAoyMjBgs7+7utkFUwMDAAIaGhiaNeXt7Y+nSpRgeHrZJTERENHs840RERAuCk5MTysrK8NxzzyE4OBgpKSlQqVRoa2vDkSNH8Mgjj6C0tNTqcbW0tOCJJ55AcnIy/Pz8IJfLUV1djcuXLyMlJcXq8RAR0dywcSIiogVj69atWL16Nfbt24eioiIMDw/Dzc0NYWFhyMjIsElMHh4eSE1NxY8//oiKigrI5XL4+vri4MGDSExMtElMREQ0ezIx8epVIiKi29SePXvw9ttvo7u7GzKZDMuXL7fq/nt7e3H9+nUEBwdj3bp1qKmpser+iYhoerzGiYiIaAKVSgVPT0+r7zciIgIqlQrt7e1W3zcREZnGM05ERES48YW1419aK5fLERERYdX9NzU1oa+vD8CN5u3++++36v6JiGh6bJyIiIiIiIhM4Ef1iIiIiIiITGDjREREREREZAIbJyIiIiIiIhPYOBEREREREZnAxomIiIiIiMgENk5EREREREQmsHEiIiIiIiIygY0TERERERGRCWyciIiIiIiITGDjREREREREZAIbJyIiIiIiIhP+A3i7UYrQk3cfAAAAAElFTkSuQmCC\n", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "fname_snip = \"\"\n", - "\n", - "post_spike_times = np.sort(np.unique(1 + np.round(500 * np.sort(np.abs(np.random.randn(500)))))) # [ms]\n", - "pre_spike_times = np.sort(np.unique(1 + np.round(500 * np.sort(np.abs(np.random.randn(500)))))) # [ms]\n", - "\n", - "# run the simulation\n", - "timevec, t_hist, third_factor_trace, w_hist = run_synapse_test(neuron_model_name=neuron_model_name,\n", - " synapse_model_name=synapse_model_name,\n", - " resolution=.5, # [ms]\n", - " delay=1.5, # [ms]\n", - " pre_spike_times=pre_spike_times,\n", - " post_spike_times=post_spike_times,\n", - " sim_time=400.,\n", - " fname_snip=fname_snip)\n", - "\n", - "# verify\n", - "assert np.any(np.abs(np.array(w_hist) - 1) > 0.), \"No change in the weight!\"\n", - "\n", - "# verify that weight does not change appreciably when third factor trace is close to zero\n", - "idx = np.where(np.abs(third_factor_trace) < 1E-12)[0] # find where third_factor_trace is (almost) zero\n", - "times_dw_should_be_zero = timevec[idx]\n", - "assert len(times_dw_should_be_zero) > 0 # make sure we have > 0 datapoints to check\n", - "for time_dw_should_be_zero in times_dw_should_be_zero[1:]:\n", - " _idx = np.argmin((time_dw_should_be_zero - np.array(t_hist))**2)\n", - " np.testing.assert_allclose(t_hist[_idx], time_dw_should_be_zero)\n", - " np.testing.assert_allclose(0., np.abs(w_hist[_idx - 1] - w_hist[_idx])) # make sure that weight does not change appreciably\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Detailed look at the numerics\n", - "------------------------\n", - "..." - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "WARNING:No artists with labels found to put in legend. Note that artists whose label start with an underscore are ignored when legend() is called with no argument.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - " -- N E S T --\n", - " Copyright (C) 2004 The NEST Initiative\n", - "\n", - " Version: 3.6.0-post0.dev0\n", - " Built: Nov 8 2023 01:11:46\n", - "\n", - " This program is provided AS IS and comes with\n", - " NO WARRANTY. See the file LICENSE for details.\n", - "\n", - " Problems or suggestions?\n", - " Visit https://www.nest-simulator.org\n", - "\n", - " Type 'nest.help()' to find out more about NEST.\n", - "\n", - "[87,GLOBAL, INFO]: The NEST Simulator version was automatically detected as: master\n", - "Pre spike times: [40.0, 100.0]\n", - "Post spike times: [25.0, 75.0]\n", - "t = 0.0 ms\n", - "t = 0.1 ms\n", - "t = 0.2 ms\n", - "t = 0.30000000000000004 ms\n", - "t = 0.4 ms\n", - "t = 0.5 ms\n", - "t = 0.6 ms\n", - "t = 0.7 ms\n", - "t = 0.7999999999999999 ms\n", - "t = 0.8999999999999999 ms\n", - "t = 0.9999999999999999 ms\n", - "t = 1.0999999999999999 ms\n", - "t = 1.2 ms\n", - "t = 1.3 ms\n", - "t = 1.4000000000000001 ms\n", - "t = 1.5000000000000002 ms\n", - "t = 1.6000000000000003 ms\n", - "t = 1.7000000000000004 ms\n", - "t = 1.8000000000000005 ms\n", - "t = 1.9000000000000006 ms\n", - "t = 2.0000000000000004 ms\n", - "t = 2.1000000000000005 ms\n", - "t = 2.2000000000000006 ms\n", - "t = 2.3000000000000007 ms\n", - "t = 2.400000000000001 ms\n", - "t = 2.500000000000001 ms\n", - "t = 2.600000000000001 ms\n", - "t = 2.700000000000001 ms\n", - "t = 2.800000000000001 ms\n", - "t = 2.9000000000000012 ms\n", - "t = 3.0000000000000013 ms\n", - "t = 3.1000000000000014 ms\n", - "t = 3.2000000000000015 ms\n", - "t = 3.3000000000000016 ms\n", - "t = 3.4000000000000017 ms\n", - "t = 3.5000000000000018 ms\n", - "t = 3.600000000000002 ms\n", - "t = 3.700000000000002 ms\n", - "t = 3.800000000000002 ms\n", - "t = 3.900000000000002 ms\n", - "t = 4.000000000000002 ms\n", - "t = 4.100000000000001 ms\n", - "t = 4.200000000000001 ms\n", - "t = 4.300000000000001 ms\n", - "t = 4.4 ms\n", - "t = 4.5 ms\n", - "t = 4.6 ms\n", - "t = 4.699999999999999 ms\n", - "t = 4.799999999999999 ms\n", - "t = 4.899999999999999 ms\n", - "t = 4.999999999999998 ms\n", - "t = 5.099999999999998 ms\n", - "t = 5.1999999999999975 ms\n", - "t = 5.299999999999997 ms\n", - "t = 5.399999999999997 ms\n", - "t = 5.4999999999999964 ms\n", - "t = 5.599999999999996 ms\n", - "t = 5.699999999999996 ms\n", - "t = 5.799999999999995 ms\n", - "t = 5.899999999999995 ms\n", - "t = 5.999999999999995 ms\n", - "t = 6.099999999999994 ms\n", - "t = 6.199999999999994 ms\n", - "t = 6.299999999999994 ms\n", - "t = 6.399999999999993 ms\n", - "t = 6.499999999999993 ms\n", - "t = 6.5999999999999925 ms\n", - "t = 6.699999999999992 ms\n", - "t = 6.799999999999992 ms\n", - "t = 6.8999999999999915 ms\n", - "t = 6.999999999999991 ms\n", - "t = 7.099999999999991 ms\n", - "t = 7.19999999999999 ms\n", - "t = 7.29999999999999 ms\n", - "t = 7.39999999999999 ms\n", - "t = 7.499999999999989 ms\n", - "t = 7.599999999999989 ms\n", - "t = 7.699999999999989 ms\n", - "t = 7.799999999999988 ms\n", - "t = 7.899999999999988 ms\n", - "t = 7.999999999999988 ms\n", - "t = 8.099999999999987 ms\n", - "t = 8.199999999999987 ms\n", - "t = 8.299999999999986 ms\n", - "t = 8.399999999999986 ms\n", - "t = 8.499999999999986 ms\n", - "t = 8.599999999999985 ms\n", - "t = 8.699999999999985 ms\n", - "t = 8.799999999999985 ms\n", - "t = 8.899999999999984 ms\n", - "t = 8.999999999999984 ms\n", - "t = 9.099999999999984 ms\n", - "t = 9.199999999999983 ms\n", - "t = 9.299999999999983 ms\n", - "t = 9.399999999999983 ms\n", - "t = 9.499999999999982 ms\n", - "t = 9.599999999999982 ms\n", - "t = 9.699999999999982 ms\n", - "t = 9.799999999999981 ms\n", - "t = 9.89999999999998 ms\n", - "t = 9.99999999999998 ms\n", - "t = 10.09999999999998 ms\n", - "t = 10.19999999999998 ms\n", - "t = 10.29999999999998 ms\n", - "t = 10.399999999999979 ms\n", - "t = 10.499999999999979 ms\n", - "t = 10.599999999999978 ms\n", - "t = 10.699999999999978 ms\n", - "t = 10.799999999999978 ms\n", - "t = 10.899999999999977 ms\n", - "t = 10.999999999999977 ms\n", - "t = 11.099999999999977 ms\n", - "t = 11.199999999999976 ms\n", - "t = 11.299999999999976 ms\n", - "t = 11.399999999999975 ms\n", - "t = 11.499999999999975 ms\n", - "t = 11.599999999999975 ms\n", - "t = 11.699999999999974 ms\n", - "t = 11.799999999999974 ms\n", - "t = 11.899999999999974 ms\n", - "t = 11.999999999999973 ms\n", - "t = 12.099999999999973 ms\n", - "t = 12.199999999999973 ms\n", - "t = 12.299999999999972 ms\n", - "t = 12.399999999999972 ms\n", - "t = 12.499999999999972 ms\n", - "t = 12.599999999999971 ms\n", - "t = 12.69999999999997 ms\n", - "t = 12.79999999999997 ms\n", - "t = 12.89999999999997 ms\n", - "t = 12.99999999999997 ms\n", - "t = 13.09999999999997 ms\n", - "t = 13.199999999999969 ms\n", - "t = 13.299999999999969 ms\n", - "t = 13.399999999999968 ms\n", - "t = 13.499999999999968 ms\n", - "t = 13.599999999999968 ms\n", - "t = 13.699999999999967 ms\n", - "t = 13.799999999999967 ms\n", - "t = 13.899999999999967 ms\n", - "t = 13.999999999999966 ms\n", - "t = 14.099999999999966 ms\n", - "t = 14.199999999999966 ms\n", - "t = 14.299999999999965 ms\n", - "t = 14.399999999999965 ms\n", - "t = 14.499999999999964 ms\n", - "t = 14.599999999999964 ms\n", - "t = 14.699999999999964 ms\n", - "t = 14.799999999999963 ms\n", - "t = 14.899999999999963 ms\n", - "t = 14.999999999999963 ms\n", - "t = 15.099999999999962 ms\n", - "t = 15.199999999999962 ms\n", - "t = 15.299999999999962 ms\n", - "t = 15.399999999999961 ms\n", - "t = 15.499999999999961 ms\n", - "t = 15.59999999999996 ms\n", - "t = 15.69999999999996 ms\n", - "t = 15.79999999999996 ms\n", - "t = 15.89999999999996 ms\n", - "t = 15.99999999999996 ms\n", - "t = 16.09999999999996 ms\n", - "t = 16.19999999999996 ms\n", - "t = 16.29999999999996 ms\n", - "t = 16.399999999999963 ms\n", - "t = 16.499999999999964 ms\n", - "t = 16.599999999999966 ms\n", - "t = 16.699999999999967 ms\n", - "t = 16.79999999999997 ms\n", - "t = 16.89999999999997 ms\n", - "t = 16.99999999999997 ms\n", - "t = 17.099999999999973 ms\n", - "t = 17.199999999999974 ms\n", - "t = 17.299999999999976 ms\n", - "t = 17.399999999999977 ms\n", - "t = 17.49999999999998 ms\n", - "t = 17.59999999999998 ms\n", - "t = 17.69999999999998 ms\n", - "t = 17.799999999999983 ms\n", - "t = 17.899999999999984 ms\n", - "t = 17.999999999999986 ms\n", - "t = 18.099999999999987 ms\n", - "t = 18.19999999999999 ms\n", - "t = 18.29999999999999 ms\n", - "t = 18.39999999999999 ms\n", - "t = 18.499999999999993 ms\n", - "t = 18.599999999999994 ms\n", - "t = 18.699999999999996 ms\n", - "t = 18.799999999999997 ms\n", - "t = 18.9 ms\n", - "t = 19.0 ms\n", - "t = 19.1 ms\n", - "t = 19.200000000000003 ms\n", - "t = 19.300000000000004 ms\n", - "t = 19.400000000000006 ms\n", - "t = 19.500000000000007 ms\n", - "t = 19.60000000000001 ms\n", - "t = 19.70000000000001 ms\n", - "t = 19.80000000000001 ms\n", - "t = 19.900000000000013 ms\n", - "t = 20.000000000000014 ms\n", - "t = 20.100000000000016 ms\n", - "t = 20.200000000000017 ms\n", - "t = 20.30000000000002 ms\n", - "t = 20.40000000000002 ms\n", - "t = 20.50000000000002 ms\n", - "t = 20.600000000000023 ms\n", - "t = 20.700000000000024 ms\n", - "t = 20.800000000000026 ms\n", - "t = 20.900000000000027 ms\n", - "t = 21.00000000000003 ms\n", - "t = 21.10000000000003 ms\n", - "t = 21.20000000000003 ms\n", - "t = 21.300000000000033 ms\n", - "t = 21.400000000000034 ms\n", - "t = 21.500000000000036 ms\n", - "t = 21.600000000000037 ms\n", - "t = 21.70000000000004 ms\n", - "t = 21.80000000000004 ms\n", - "t = 21.90000000000004 ms\n", - "t = 22.000000000000043 ms\n", - "t = 22.100000000000044 ms\n", - "t = 22.200000000000045 ms\n", - "t = 22.300000000000047 ms\n", - "t = 22.40000000000005 ms\n", - "t = 22.50000000000005 ms\n", - "t = 22.60000000000005 ms\n", - "t = 22.700000000000053 ms\n", - "t = 22.800000000000054 ms\n", - "t = 22.900000000000055 ms\n", - "t = 23.000000000000057 ms\n", - "t = 23.10000000000006 ms\n", - "t = 23.20000000000006 ms\n", - "t = 23.30000000000006 ms\n", - "t = 23.400000000000063 ms\n", - "t = 23.500000000000064 ms\n", - "t = 23.600000000000065 ms\n", - "t = 23.700000000000067 ms\n", - "t = 23.800000000000068 ms\n", - "t = 23.90000000000007 ms\n", - "t = 24.00000000000007 ms\n", - "t = 24.100000000000072 ms\n", - "t = 24.200000000000074 ms\n", - "t = 24.300000000000075 ms\n", - "t = 24.400000000000077 ms\n", - "t = 24.500000000000078 ms\n", - "t = 24.60000000000008 ms\n", - "t = 24.70000000000008 ms\n", - "t = 24.800000000000082 ms\n", - "t = 24.900000000000084 ms\n", - "t = 25.000000000000085 ms\n", - "t = 25.100000000000087 ms\n", - "t = 25.200000000000088 ms\n", - "t = 25.30000000000009 ms\n", - "t = 25.40000000000009 ms\n", - "t = 25.500000000000092 ms\n", - "t = 25.600000000000094 ms\n", - "t = 25.700000000000095 ms\n", - "t = 25.800000000000097 ms\n", - "t = 25.900000000000098 ms\n", - "t = 26.0000000000001 ms\n", - "t = 26.1000000000001 ms\n", - "t = 26.200000000000102 ms\n", - "t = 26.300000000000104 ms\n", - "t = 26.400000000000105 ms\n", - "t = 26.500000000000107 ms\n", - "t = 26.600000000000108 ms\n", - "t = 26.70000000000011 ms\n", - "t = 26.80000000000011 ms\n", - "t = 26.900000000000112 ms\n", - "t = 27.000000000000114 ms\n", - "t = 27.100000000000115 ms\n", - "t = 27.200000000000117 ms\n", - "t = 27.300000000000118 ms\n", - "t = 27.40000000000012 ms\n", - "t = 27.50000000000012 ms\n", - "t = 27.600000000000122 ms\n", - "t = 27.700000000000124 ms\n", - "t = 27.800000000000125 ms\n", - "t = 27.900000000000126 ms\n", - "t = 28.000000000000128 ms\n", - "t = 28.10000000000013 ms\n", - "t = 28.20000000000013 ms\n", - "t = 28.300000000000132 ms\n", - "t = 28.400000000000134 ms\n", - "t = 28.500000000000135 ms\n", - "t = 28.600000000000136 ms\n", - "t = 28.700000000000138 ms\n", - "t = 28.80000000000014 ms\n", - "t = 28.90000000000014 ms\n", - "t = 29.000000000000142 ms\n", - "t = 29.100000000000144 ms\n", - "t = 29.200000000000145 ms\n", - "t = 29.300000000000146 ms\n", - "t = 29.400000000000148 ms\n", - "t = 29.50000000000015 ms\n", - "t = 29.60000000000015 ms\n", - "t = 29.700000000000152 ms\n", - "t = 29.800000000000153 ms\n", - "t = 29.900000000000155 ms\n", - "t = 30.000000000000156 ms\n", - "t = 30.100000000000158 ms\n", - "t = 30.20000000000016 ms\n", - "t = 30.30000000000016 ms\n", - "t = 30.400000000000162 ms\n", - "t = 30.500000000000163 ms\n", - "t = 30.600000000000165 ms\n", - "t = 30.700000000000166 ms\n", - "t = 30.800000000000168 ms\n", - "t = 30.90000000000017 ms\n", - "t = 31.00000000000017 ms\n", - "t = 31.100000000000172 ms\n", - "t = 31.200000000000173 ms\n", - "t = 31.300000000000175 ms\n", - "t = 31.400000000000176 ms\n", - "t = 31.500000000000178 ms\n", - "t = 31.60000000000018 ms\n", - "t = 31.70000000000018 ms\n", - "t = 31.800000000000182 ms\n", - "t = 31.900000000000183 ms\n", - "t = 32.000000000000185 ms\n", - "t = 32.100000000000186 ms\n", - "t = 32.20000000000019 ms\n", - "t = 32.30000000000019 ms\n", - "t = 32.40000000000019 ms\n", - "t = 32.50000000000019 ms\n", - "t = 32.60000000000019 ms\n", - "t = 32.700000000000195 ms\n", - "t = 32.800000000000196 ms\n", - "t = 32.9000000000002 ms\n", - "t = 33.0000000000002 ms\n", - "t = 33.1000000000002 ms\n", - "t = 33.2000000000002 ms\n", - "t = 33.3000000000002 ms\n", - "t = 33.400000000000205 ms\n", - "t = 33.500000000000206 ms\n", - "t = 33.60000000000021 ms\n", - "t = 33.70000000000021 ms\n", - "t = 33.80000000000021 ms\n", - "t = 33.90000000000021 ms\n", - "t = 34.00000000000021 ms\n", - "t = 34.100000000000215 ms\n", - "t = 34.200000000000216 ms\n", - "t = 34.30000000000022 ms\n", - "t = 34.40000000000022 ms\n", - "t = 34.50000000000022 ms\n", - "t = 34.60000000000022 ms\n", - "t = 34.70000000000022 ms\n", - "t = 34.800000000000225 ms\n", - "t = 34.900000000000226 ms\n", - "t = 35.00000000000023 ms\n", - "t = 35.10000000000023 ms\n", - "t = 35.20000000000023 ms\n", - "t = 35.30000000000023 ms\n", - "t = 35.40000000000023 ms\n", - "t = 35.500000000000234 ms\n", - "t = 35.600000000000236 ms\n", - "t = 35.70000000000024 ms\n", - "t = 35.80000000000024 ms\n", - "t = 35.90000000000024 ms\n", - "t = 36.00000000000024 ms\n", - "t = 36.10000000000024 ms\n", - "t = 36.200000000000244 ms\n", - "t = 36.300000000000246 ms\n", - "t = 36.40000000000025 ms\n", - "t = 36.50000000000025 ms\n", - "t = 36.60000000000025 ms\n", - "t = 36.70000000000025 ms\n", - "t = 36.80000000000025 ms\n", - "t = 36.900000000000254 ms\n", - "t = 37.000000000000256 ms\n", - "t = 37.10000000000026 ms\n", - "t = 37.20000000000026 ms\n", - "t = 37.30000000000026 ms\n", - "t = 37.40000000000026 ms\n", - "t = 37.50000000000026 ms\n", - "t = 37.600000000000264 ms\n", - "t = 37.700000000000266 ms\n", - "t = 37.80000000000027 ms\n", - "t = 37.90000000000027 ms\n", - "t = 38.00000000000027 ms\n", - "t = 38.10000000000027 ms\n", - "t = 38.20000000000027 ms\n", - "t = 38.300000000000274 ms\n", - "t = 38.400000000000276 ms\n", - "t = 38.50000000000028 ms\n", - "t = 38.60000000000028 ms\n", - "t = 38.70000000000028 ms\n", - "t = 38.80000000000028 ms\n", - "t = 38.90000000000028 ms\n", - "t = 39.000000000000284 ms\n", - "t = 39.100000000000286 ms\n", - "t = 39.20000000000029 ms\n", - "t = 39.30000000000029 ms\n", - "t = 39.40000000000029 ms\n", - "t = 39.50000000000029 ms\n", - "t = 39.60000000000029 ms\n", - "t = 39.700000000000294 ms\n", - "t = 39.800000000000296 ms\n", - "t = 39.9000000000003 ms\n", - "t = 40.0000000000003 ms\n", - "t = 40.1000000000003 ms\n", - "t = 40.2000000000003 ms\n", - "t = 40.3000000000003 ms\n", - "t = 40.400000000000304 ms\n", - "t = 40.500000000000306 ms\n", - "t = 40.60000000000031 ms\n", - "t = 40.70000000000031 ms\n", - "t = 40.80000000000031 ms\n", - "t = 40.90000000000031 ms\n", - "t = 41.00000000000031 ms\n", - "t = 41.100000000000314 ms\n", - "t = 41.200000000000315 ms\n", - "t = 41.30000000000032 ms\n", - "t = 41.40000000000032 ms\n", - "t = 41.50000000000032 ms\n", - "t = 41.60000000000032 ms\n", - "t = 41.70000000000032 ms\n", - "t = 41.800000000000324 ms\n", - "t = 41.900000000000325 ms\n", - "t = 42.00000000000033 ms\n", - "t = 42.10000000000033 ms\n", - "t = 42.20000000000033 ms\n", - "t = 42.30000000000033 ms\n", - "t = 42.40000000000033 ms\n", - "t = 42.500000000000334 ms\n", - "t = 42.600000000000335 ms\n", - "t = 42.70000000000034 ms\n", - "t = 42.80000000000034 ms\n", - "t = 42.90000000000034 ms\n", - "t = 43.00000000000034 ms\n", - "t = 43.10000000000034 ms\n", - "t = 43.200000000000344 ms\n", - "t = 43.300000000000345 ms\n", - "t = 43.40000000000035 ms\n", - "t = 43.50000000000035 ms\n", - "t = 43.60000000000035 ms\n", - "t = 43.70000000000035 ms\n", - "t = 43.80000000000035 ms\n", - "t = 43.900000000000354 ms\n", - "t = 44.000000000000355 ms\n", - "t = 44.10000000000036 ms\n", - "t = 44.20000000000036 ms\n", - "t = 44.30000000000036 ms\n", - "t = 44.40000000000036 ms\n", - "t = 44.50000000000036 ms\n", - "t = 44.600000000000364 ms\n", - "t = 44.700000000000365 ms\n", - "t = 44.80000000000037 ms\n", - "t = 44.90000000000037 ms\n", - "t = 45.00000000000037 ms\n", - "t = 45.10000000000037 ms\n", - "t = 45.20000000000037 ms\n", - "t = 45.300000000000374 ms\n", - "t = 45.400000000000375 ms\n", - "t = 45.50000000000038 ms\n", - "t = 45.60000000000038 ms\n", - "t = 45.70000000000038 ms\n", - "t = 45.80000000000038 ms\n", - "t = 45.90000000000038 ms\n", - "t = 46.000000000000384 ms\n", - "t = 46.100000000000385 ms\n", - "t = 46.20000000000039 ms\n", - "t = 46.30000000000039 ms\n", - "t = 46.40000000000039 ms\n", - "t = 46.50000000000039 ms\n", - "t = 46.60000000000039 ms\n", - "t = 46.700000000000394 ms\n", - "t = 46.800000000000395 ms\n", - "t = 46.9000000000004 ms\n", - "t = 47.0000000000004 ms\n", - "t = 47.1000000000004 ms\n", - "t = 47.2000000000004 ms\n", - "t = 47.3000000000004 ms\n", - "t = 47.400000000000404 ms\n", - "t = 47.500000000000405 ms\n", - "t = 47.600000000000406 ms\n", - "t = 47.70000000000041 ms\n", - "t = 47.80000000000041 ms\n", - "t = 47.90000000000041 ms\n", - "t = 48.00000000000041 ms\n", - "t = 48.10000000000041 ms\n", - "t = 48.200000000000415 ms\n", - "t = 48.300000000000416 ms\n", - "t = 48.40000000000042 ms\n", - "t = 48.50000000000042 ms\n", - "t = 48.60000000000042 ms\n", - "t = 48.70000000000042 ms\n", - "t = 48.80000000000042 ms\n", - "t = 48.900000000000425 ms\n", - "t = 49.000000000000426 ms\n", - "t = 49.10000000000043 ms\n", - "t = 49.20000000000043 ms\n", - "t = 49.30000000000043 ms\n", - "t = 49.40000000000043 ms\n", - "t = 49.50000000000043 ms\n", - "t = 49.600000000000435 ms\n", - "t = 49.700000000000436 ms\n", - "t = 49.80000000000044 ms\n", - "t = 49.90000000000044 ms\n", - "t = 50.00000000000044 ms\n", - "t = 50.10000000000044 ms\n", - "t = 50.20000000000044 ms\n", - "t = 50.300000000000445 ms\n", - "t = 50.400000000000446 ms\n", - "t = 50.50000000000045 ms\n", - "t = 50.60000000000045 ms\n", - "t = 50.70000000000045 ms\n", - "t = 50.80000000000045 ms\n", - "t = 50.90000000000045 ms\n", - "t = 51.000000000000455 ms\n", - "t = 51.100000000000456 ms\n", - "t = 51.20000000000046 ms\n", - "t = 51.30000000000046 ms\n", - "t = 51.40000000000046 ms\n", - "t = 51.50000000000046 ms\n", - "t = 51.60000000000046 ms\n", - "t = 51.700000000000465 ms\n", - "t = 51.800000000000466 ms\n", - "t = 51.90000000000047 ms\n", - "t = 52.00000000000047 ms\n", - "t = 52.10000000000047 ms\n", - "t = 52.20000000000047 ms\n", - "t = 52.30000000000047 ms\n", - "t = 52.400000000000475 ms\n", - "t = 52.500000000000476 ms\n", - "t = 52.60000000000048 ms\n", - "t = 52.70000000000048 ms\n", - "t = 52.80000000000048 ms\n", - "t = 52.90000000000048 ms\n", - "t = 53.00000000000048 ms\n", - "t = 53.100000000000485 ms\n", - "t = 53.200000000000486 ms\n", - "t = 53.30000000000049 ms\n", - "t = 53.40000000000049 ms\n", - "t = 53.50000000000049 ms\n", - "t = 53.60000000000049 ms\n", - "t = 53.70000000000049 ms\n", - "t = 53.800000000000495 ms\n", - "t = 53.900000000000496 ms\n", - "t = 54.0000000000005 ms\n", - "t = 54.1000000000005 ms\n", - "t = 54.2000000000005 ms\n", - "t = 54.3000000000005 ms\n", - "t = 54.4000000000005 ms\n", - "t = 54.500000000000504 ms\n", - "t = 54.600000000000506 ms\n", - "t = 54.70000000000051 ms\n", - "t = 54.80000000000051 ms\n", - "t = 54.90000000000051 ms\n", - "t = 55.00000000000051 ms\n", - "t = 55.10000000000051 ms\n", - "t = 55.200000000000514 ms\n", - "t = 55.300000000000516 ms\n", - "t = 55.40000000000052 ms\n", - "t = 55.50000000000052 ms\n", - "t = 55.60000000000052 ms\n", - "t = 55.70000000000052 ms\n", - "t = 55.80000000000052 ms\n", - "t = 55.900000000000524 ms\n", - "t = 56.000000000000526 ms\n", - "t = 56.10000000000053 ms\n", - "t = 56.20000000000053 ms\n", - "t = 56.30000000000053 ms\n", - "t = 56.40000000000053 ms\n", - "t = 56.50000000000053 ms\n", - "t = 56.600000000000534 ms\n", - "t = 56.700000000000536 ms\n", - "t = 56.80000000000054 ms\n", - "t = 56.90000000000054 ms\n", - "t = 57.00000000000054 ms\n", - "t = 57.10000000000054 ms\n", - "t = 57.20000000000054 ms\n", - "t = 57.300000000000544 ms\n", - "t = 57.400000000000546 ms\n", - "t = 57.50000000000055 ms\n", - "t = 57.60000000000055 ms\n", - "t = 57.70000000000055 ms\n", - "t = 57.80000000000055 ms\n", - "t = 57.90000000000055 ms\n", - "t = 58.000000000000554 ms\n", - "t = 58.100000000000556 ms\n", - "t = 58.20000000000056 ms\n", - "t = 58.30000000000056 ms\n", - "t = 58.40000000000056 ms\n", - "t = 58.50000000000056 ms\n", - "t = 58.60000000000056 ms\n", - "t = 58.700000000000564 ms\n", - "t = 58.800000000000566 ms\n", - "t = 58.90000000000057 ms\n", - "t = 59.00000000000057 ms\n", - "t = 59.10000000000057 ms\n", - "t = 59.20000000000057 ms\n", - "t = 59.30000000000057 ms\n", - "t = 59.400000000000574 ms\n", - "t = 59.500000000000576 ms\n", - "t = 59.60000000000058 ms\n", - "t = 59.70000000000058 ms\n", - "t = 59.80000000000058 ms\n", - "t = 59.90000000000058 ms\n", - "t = 60.00000000000058 ms\n", - "t = 60.100000000000584 ms\n", - "t = 60.200000000000585 ms\n", - "t = 60.30000000000059 ms\n", - "t = 60.40000000000059 ms\n", - "t = 60.50000000000059 ms\n", - "t = 60.60000000000059 ms\n", - "t = 60.70000000000059 ms\n", - "t = 60.800000000000594 ms\n", - "t = 60.900000000000595 ms\n", - "t = 61.0000000000006 ms\n", - "t = 61.1000000000006 ms\n", - "t = 61.2000000000006 ms\n", - "t = 61.3000000000006 ms\n", - "t = 61.4000000000006 ms\n", - "t = 61.500000000000604 ms\n", - "t = 61.600000000000605 ms\n", - "t = 61.70000000000061 ms\n", - "t = 61.80000000000061 ms\n", - "t = 61.90000000000061 ms\n", - "t = 62.00000000000061 ms\n", - "t = 62.10000000000061 ms\n", - "t = 62.200000000000614 ms\n", - "t = 62.300000000000615 ms\n", - "t = 62.40000000000062 ms\n", - "t = 62.50000000000062 ms\n", - "t = 62.60000000000062 ms\n", - "t = 62.70000000000062 ms\n", - "t = 62.80000000000062 ms\n", - "t = 62.900000000000624 ms\n", - "t = 63.000000000000625 ms\n", - "t = 63.10000000000063 ms\n", - "t = 63.20000000000063 ms\n", - "t = 63.30000000000063 ms\n", - "t = 63.40000000000063 ms\n", - "t = 63.50000000000063 ms\n", - "t = 63.600000000000634 ms\n", - "t = 63.700000000000635 ms\n", - "t = 63.80000000000064 ms\n", - "t = 63.90000000000064 ms\n", - "t = 64.00000000000064 ms\n", - "t = 64.10000000000063 ms\n", - "t = 64.20000000000063 ms\n", - "t = 64.30000000000062 ms\n", - "t = 64.40000000000062 ms\n", - "t = 64.50000000000061 ms\n", - "t = 64.6000000000006 ms\n", - "t = 64.7000000000006 ms\n", - "t = 64.8000000000006 ms\n", - "t = 64.90000000000059 ms\n", - "t = 65.00000000000058 ms\n", - "t = 65.10000000000058 ms\n", - "t = 65.20000000000057 ms\n", - "t = 65.30000000000057 ms\n", - "t = 65.40000000000056 ms\n", - "t = 65.50000000000055 ms\n", - "t = 65.60000000000055 ms\n", - "t = 65.70000000000054 ms\n", - "t = 65.80000000000054 ms\n", - "t = 65.90000000000053 ms\n", - "t = 66.00000000000053 ms\n", - "t = 66.10000000000052 ms\n", - "t = 66.20000000000051 ms\n", - "t = 66.30000000000051 ms\n", - "t = 66.4000000000005 ms\n", - "t = 66.5000000000005 ms\n", - "t = 66.60000000000049 ms\n", - "t = 66.70000000000049 ms\n", - "t = 66.80000000000048 ms\n", - "t = 66.90000000000047 ms\n", - "t = 67.00000000000047 ms\n", - "t = 67.10000000000046 ms\n", - "t = 67.20000000000046 ms\n", - "t = 67.30000000000045 ms\n", - "t = 67.40000000000045 ms\n", - "t = 67.50000000000044 ms\n", - "t = 67.60000000000043 ms\n", - "t = 67.70000000000043 ms\n", - "t = 67.80000000000042 ms\n", - "t = 67.90000000000042 ms\n", - "t = 68.00000000000041 ms\n", - "t = 68.1000000000004 ms\n", - "t = 68.2000000000004 ms\n", - "t = 68.3000000000004 ms\n", - "t = 68.40000000000039 ms\n", - "t = 68.50000000000038 ms\n", - "t = 68.60000000000038 ms\n", - "t = 68.70000000000037 ms\n", - "t = 68.80000000000037 ms\n", - "t = 68.90000000000036 ms\n", - "t = 69.00000000000036 ms\n", - "t = 69.10000000000035 ms\n", - "t = 69.20000000000034 ms\n", - "t = 69.30000000000034 ms\n", - "t = 69.40000000000033 ms\n", - "t = 69.50000000000033 ms\n", - "t = 69.60000000000032 ms\n", - "t = 69.70000000000032 ms\n", - "t = 69.80000000000031 ms\n", - "t = 69.9000000000003 ms\n", - "t = 70.0000000000003 ms\n", - "t = 70.10000000000029 ms\n", - "t = 70.20000000000029 ms\n", - "t = 70.30000000000028 ms\n", - "t = 70.40000000000028 ms\n", - "t = 70.50000000000027 ms\n", - "t = 70.60000000000026 ms\n", - "t = 70.70000000000026 ms\n", - "t = 70.80000000000025 ms\n", - "t = 70.90000000000025 ms\n", - "t = 71.00000000000024 ms\n", - "t = 71.10000000000024 ms\n", - "t = 71.20000000000023 ms\n", - "t = 71.30000000000022 ms\n", - "t = 71.40000000000022 ms\n", - "t = 71.50000000000021 ms\n", - "t = 71.60000000000021 ms\n", - "t = 71.7000000000002 ms\n", - "t = 71.8000000000002 ms\n", - "t = 71.90000000000019 ms\n", - "t = 72.00000000000018 ms\n", - "t = 72.10000000000018 ms\n", - "t = 72.20000000000017 ms\n", - "t = 72.30000000000017 ms\n", - "t = 72.40000000000016 ms\n", - "t = 72.50000000000016 ms\n", - "t = 72.60000000000015 ms\n", - "t = 72.70000000000014 ms\n", - "t = 72.80000000000014 ms\n", - "t = 72.90000000000013 ms\n", - "t = 73.00000000000013 ms\n", - "t = 73.10000000000012 ms\n", - "t = 73.20000000000012 ms\n", - "t = 73.30000000000011 ms\n", - "t = 73.4000000000001 ms\n", - "t = 73.5000000000001 ms\n", - "t = 73.6000000000001 ms\n", - "t = 73.70000000000009 ms\n", - "t = 73.80000000000008 ms\n", - "t = 73.90000000000008 ms\n", - "t = 74.00000000000007 ms\n", - "t = 74.10000000000007 ms\n", - "t = 74.20000000000006 ms\n", - "t = 74.30000000000005 ms\n", - "t = 74.40000000000005 ms\n", - "t = 74.50000000000004 ms\n", - "t = 74.60000000000004 ms\n", - "t = 74.70000000000003 ms\n", - "t = 74.80000000000003 ms\n", - "t = 74.90000000000002 ms\n", - "t = 75.00000000000001 ms\n", - "t = 75.10000000000001 ms\n", - "t = 75.2 ms\n", - "t = 75.3 ms\n", - "t = 75.39999999999999 ms\n", - "t = 75.49999999999999 ms\n", - "t = 75.59999999999998 ms\n", - "t = 75.69999999999997 ms\n", - "t = 75.79999999999997 ms\n", - "t = 75.89999999999996 ms\n", - "t = 75.99999999999996 ms\n", - "t = 76.09999999999995 ms\n", - "t = 76.19999999999995 ms\n", - "t = 76.29999999999994 ms\n", - "t = 76.39999999999993 ms\n", - "t = 76.49999999999993 ms\n", - "t = 76.59999999999992 ms\n", - "t = 76.69999999999992 ms\n", - "t = 76.79999999999991 ms\n", - "t = 76.8999999999999 ms\n", - "t = 76.9999999999999 ms\n", - "t = 77.0999999999999 ms\n", - "t = 77.19999999999989 ms\n", - "t = 77.29999999999988 ms\n", - "t = 77.39999999999988 ms\n", - "t = 77.49999999999987 ms\n", - "t = 77.59999999999987 ms\n", - "t = 77.69999999999986 ms\n", - "t = 77.79999999999986 ms\n", - "t = 77.89999999999985 ms\n", - "t = 77.99999999999984 ms\n", - "t = 78.09999999999984 ms\n", - "t = 78.19999999999983 ms\n", - "t = 78.29999999999983 ms\n", - "t = 78.39999999999982 ms\n", - "t = 78.49999999999982 ms\n", - "t = 78.59999999999981 ms\n", - "t = 78.6999999999998 ms\n", - "t = 78.7999999999998 ms\n", - "t = 78.89999999999979 ms\n", - "t = 78.99999999999979 ms\n", - "t = 79.09999999999978 ms\n", - "t = 79.19999999999978 ms\n", - "t = 79.29999999999977 ms\n", - "t = 79.39999999999976 ms\n", - "t = 79.49999999999976 ms\n", - "t = 79.59999999999975 ms\n", - "t = 79.69999999999975 ms\n", - "t = 79.79999999999974 ms\n", - "t = 79.89999999999974 ms\n", - "t = 79.99999999999973 ms\n", - "t = 80.09999999999972 ms\n", - "t = 80.19999999999972 ms\n", - "t = 80.29999999999971 ms\n", - "t = 80.39999999999971 ms\n", - "t = 80.4999999999997 ms\n", - "t = 80.5999999999997 ms\n", - "t = 80.69999999999969 ms\n", - "t = 80.79999999999968 ms\n", - "t = 80.89999999999968 ms\n", - "t = 80.99999999999967 ms\n", - "t = 81.09999999999967 ms\n", - "t = 81.19999999999966 ms\n", - "t = 81.29999999999966 ms\n", - "t = 81.39999999999965 ms\n", - "t = 81.49999999999964 ms\n", - "t = 81.59999999999964 ms\n", - "t = 81.69999999999963 ms\n", - "t = 81.79999999999963 ms\n", - "t = 81.89999999999962 ms\n", - "t = 81.99999999999962 ms\n", - "t = 82.09999999999961 ms\n", - "t = 82.1999999999996 ms\n", - "t = 82.2999999999996 ms\n", - "t = 82.3999999999996 ms\n", - "t = 82.49999999999959 ms\n", - "t = 82.59999999999958 ms\n", - "t = 82.69999999999958 ms\n", - "t = 82.79999999999957 ms\n", - "t = 82.89999999999957 ms\n", - "t = 82.99999999999956 ms\n", - "t = 83.09999999999955 ms\n", - "t = 83.19999999999955 ms\n", - "t = 83.29999999999954 ms\n", - "t = 83.39999999999954 ms\n", - "t = 83.49999999999953 ms\n", - "t = 83.59999999999953 ms\n", - "t = 83.69999999999952 ms\n", - "t = 83.79999999999951 ms\n", - "t = 83.89999999999951 ms\n", - "t = 83.9999999999995 ms\n", - "t = 84.0999999999995 ms\n", - "t = 84.19999999999949 ms\n", - "t = 84.29999999999949 ms\n", - "t = 84.39999999999948 ms\n", - "t = 84.49999999999947 ms\n", - "t = 84.59999999999947 ms\n", - "t = 84.69999999999946 ms\n", - "t = 84.79999999999946 ms\n", - "t = 84.89999999999945 ms\n", - "t = 84.99999999999945 ms\n", - "t = 85.09999999999944 ms\n", - "t = 85.19999999999943 ms\n", - "t = 85.29999999999943 ms\n", - "t = 85.39999999999942 ms\n", - "t = 85.49999999999942 ms\n", - "t = 85.59999999999941 ms\n", - "t = 85.6999999999994 ms\n", - "t = 85.7999999999994 ms\n", - "t = 85.8999999999994 ms\n", - "t = 85.99999999999939 ms\n", - "t = 86.09999999999938 ms\n", - "t = 86.19999999999938 ms\n", - "t = 86.29999999999937 ms\n", - "t = 86.39999999999937 ms\n", - "t = 86.49999999999936 ms\n", - "t = 86.59999999999935 ms\n", - "t = 86.69999999999935 ms\n", - "t = 86.79999999999934 ms\n", - "t = 86.89999999999934 ms\n", - "t = 86.99999999999933 ms\n", - "t = 87.09999999999933 ms\n", - "t = 87.19999999999932 ms\n", - "t = 87.29999999999932 ms\n", - "t = 87.39999999999931 ms\n", - "t = 87.4999999999993 ms\n", - "t = 87.5999999999993 ms\n", - "t = 87.69999999999929 ms\n", - "t = 87.79999999999929 ms\n", - "t = 87.89999999999928 ms\n", - "t = 87.99999999999928 ms\n", - "t = 88.09999999999927 ms\n", - "t = 88.19999999999926 ms\n", - "t = 88.29999999999926 ms\n", - "t = 88.39999999999925 ms\n", - "t = 88.49999999999925 ms\n", - "t = 88.59999999999924 ms\n", - "t = 88.69999999999924 ms\n", - "t = 88.79999999999923 ms\n", - "t = 88.89999999999922 ms\n", - "t = 88.99999999999922 ms\n", - "t = 89.09999999999921 ms\n", - "t = 89.1999999999992 ms\n", - "t = 89.2999999999992 ms\n", - "t = 89.3999999999992 ms\n", - "t = 89.49999999999919 ms\n", - "t = 89.59999999999918 ms\n", - "t = 89.69999999999918 ms\n", - "t = 89.79999999999917 ms\n", - "t = 89.89999999999917 ms\n", - "t = 89.99999999999916 ms\n", - "t = 90.09999999999916 ms\n", - "t = 90.19999999999915 ms\n", - "t = 90.29999999999914 ms\n", - "t = 90.39999999999914 ms\n", - "t = 90.49999999999913 ms\n", - "t = 90.59999999999913 ms\n", - "t = 90.69999999999912 ms\n", - "t = 90.79999999999912 ms\n", - "t = 90.89999999999911 ms\n", - "t = 90.9999999999991 ms\n", - "t = 91.0999999999991 ms\n", - "t = 91.1999999999991 ms\n", - "t = 91.29999999999909 ms\n", - "t = 91.39999999999908 ms\n", - "t = 91.49999999999908 ms\n", - "t = 91.59999999999907 ms\n", - "t = 91.69999999999906 ms\n", - "t = 91.79999999999906 ms\n", - "t = 91.89999999999905 ms\n", - "t = 91.99999999999905 ms\n", - "t = 92.09999999999904 ms\n", - "t = 92.19999999999904 ms\n", - "t = 92.29999999999903 ms\n", - "t = 92.39999999999903 ms\n", - "t = 92.49999999999902 ms\n", - "t = 92.59999999999901 ms\n", - "t = 92.69999999999901 ms\n", - "t = 92.799999999999 ms\n", - "t = 92.899999999999 ms\n", - "t = 92.99999999999899 ms\n", - "t = 93.09999999999899 ms\n", - "t = 93.19999999999898 ms\n", - "t = 93.29999999999897 ms\n", - "t = 93.39999999999897 ms\n", - "t = 93.49999999999896 ms\n", - "t = 93.59999999999896 ms\n", - "t = 93.69999999999895 ms\n", - "t = 93.79999999999895 ms\n", - "t = 93.89999999999894 ms\n", - "t = 93.99999999999893 ms\n", - "t = 94.09999999999893 ms\n", - "t = 94.19999999999892 ms\n", - "t = 94.29999999999892 ms\n", - "t = 94.39999999999891 ms\n", - "t = 94.4999999999989 ms\n", - "t = 94.5999999999989 ms\n", - "t = 94.6999999999989 ms\n", - "t = 94.79999999999889 ms\n", - "t = 94.89999999999888 ms\n", - "t = 94.99999999999888 ms\n", - "t = 95.09999999999887 ms\n", - "t = 95.19999999999887 ms\n", - "t = 95.29999999999886 ms\n", - "t = 95.39999999999885 ms\n", - "t = 95.49999999999885 ms\n", - "t = 95.59999999999884 ms\n", - "t = 95.69999999999884 ms\n", - "t = 95.79999999999883 ms\n", - "t = 95.89999999999883 ms\n", - "t = 95.99999999999882 ms\n", - "t = 96.09999999999881 ms\n", - "t = 96.19999999999881 ms\n", - "t = 96.2999999999988 ms\n", - "t = 96.3999999999988 ms\n", - "t = 96.49999999999879 ms\n", - "t = 96.59999999999879 ms\n", - "t = 96.69999999999878 ms\n", - "t = 96.79999999999878 ms\n", - "t = 96.89999999999877 ms\n", - "t = 96.99999999999876 ms\n", - "t = 97.09999999999876 ms\n", - "t = 97.19999999999875 ms\n", - "t = 97.29999999999875 ms\n", - "t = 97.39999999999874 ms\n", - "t = 97.49999999999874 ms\n", - "t = 97.59999999999873 ms\n", - "t = 97.69999999999872 ms\n", - "t = 97.79999999999872 ms\n", - "t = 97.89999999999871 ms\n", - "t = 97.9999999999987 ms\n", - "t = 98.0999999999987 ms\n", - "t = 98.1999999999987 ms\n", - "t = 98.29999999999869 ms\n", - "t = 98.39999999999868 ms\n", - "t = 98.49999999999868 ms\n", - "t = 98.59999999999867 ms\n", - "t = 98.69999999999867 ms\n", - "t = 98.79999999999866 ms\n", - "t = 98.89999999999866 ms\n", - "t = 98.99999999999865 ms\n", - "t = 99.09999999999864 ms\n", - "t = 99.19999999999864 ms\n", - "t = 99.29999999999863 ms\n", - "t = 99.39999999999863 ms\n", - "t = 99.49999999999862 ms\n", - "t = 99.59999999999862 ms\n", - "t = 99.69999999999861 ms\n", - "t = 99.7999999999986 ms\n", - "t = 99.8999999999986 ms\n", - "t = 99.9999999999986 ms\n", - "t = 100.09999999999859 ms\n", - "t = 100.19999999999858 ms\n", - "t = 100.29999999999858 ms\n", - "t = 100.39999999999857 ms\n", - "t = 100.49999999999856 ms\n", - "t = 100.59999999999856 ms\n", - "t = 100.69999999999855 ms\n", - "t = 100.79999999999855 ms\n", - "t = 100.89999999999854 ms\n", - "t = 100.99999999999854 ms\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Actual pre spike times: [ 41. 101.]\n", - "Actual post spike times: [26.8 76.8]\n" - ] - }, - { - "data": { - "image/png": "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+PLLL1t8paenIzExEV9++SXuuusuBAcH44orrsAHH3yAmpoax/nvv/8+amtr2Z4IADB79mwAwLvvvuu0/Z133oFCocDEiRPZlqhd+vXrh/379yM7O9tp+0cffQSZTIbBgwezLVGXtPcaafr06fDz88OqVasc20RRxJtvvom4uDiMHTu2w88tiM37sahDZs+ejS+//BJ/+ctfkJqaivfeew979uzB999/j/Hjx0sdHrmhJUuW4F//+heuu+46x8VKUzfffDOAxhXahw0bhpCQEDzwwAOora3FihUrEB8fj71793LYHp3XxIkTUV5ejszMTMe233//HWPHjsXAgQMxf/58FBQU4IUXXsD48ePx3XffSRgtuZO77roL//nPfzB79mxMmDAB27dvx2effYZHHnkEy5YtA8C2RG376aefMGnSJISFhWHRokUICwvDhg0b8O233+Luu+/Gv//9bwBsS9S61157DdXV1SgqKsIbb7yBP/3pTxg2bBgA4P7770dwcHCHrpEeeughrFixAvPnz8fIkSOxfv16bNy4ER9++CHmzp3b8QA7vKwuOWloaBAffPBBMTo6WlSpVOLIkSPFTZs2SR0WubEJEyaIAM771VRmZqZ41VVXiQEBAWJISIg4b9488cyZMxJFTp5iwoQJYnp6eovtP//8szh27FhRrVaLERER4sKFC0W9Xi9BhOSuTCaT+OSTT4q9e/cW/fz8xNTUVPGll15qcRzbErVl9+7d4pQpU8To6GjRz89P7Nevn/jss8+KZrPZ6Ti2JWqud+/e571GOnnypOO49l4jWa1WcdmyZWLv3r1FpVIppqenix988EGn42PPExERERERUTtwzhMREREREVE7MHkiIiIiIiJqByZPRERERERE7cDkiYiIiIiIqB2YPBEREREREbUDkyciIiIiIqJ2YPJERERERETUDkyeiIiIiIiI2oHJExERERERUTsweSIiIiIiImoHJk9ERERERETtwOSJiIiIiIioHZg8ERERERERtQOTJyIiIiIionb4/+8IvBCefMjgAAAAAElFTkSuQmCC\n", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "fname_snip = \"detailed\"\n", - "\n", - "pre_spike_times = [40., 100.] # [ms]\n", - "post_spike_times = [25., 75.] # [ms]\n", - "\n", - "# run the simulation\n", - "timevec, t_hist, third_factor_trace, w_hist = run_synapse_test(neuron_model_name=neuron_model_name,\n", - " synapse_model_name=synapse_model_name,\n", - " resolution=.1, # [ms]\n", - " delay=1., # [ms]\n", - " pre_spike_times=pre_spike_times,\n", - " post_spike_times=post_spike_times,\n", - " sim_time=101.,\n", - " fname_snip=fname_snip)\n", - "\n", - "# verify that weight stays zero: buffering ensures that the value of I_dend at the right time is used\n", - "np.testing.assert_allclose(w_hist, 0.)\n", - "\n", - "# idx = np.where(np.abs(third_factor_trace) < 1E-12)[0] # find where third_factor_trace is (almost) zero\n", - "# times_dw_should_be_zero = timevec[idx]\n", - "# assert len(times_dw_should_be_zero) > 0 # make sure we have > 0 datapoints to check\n", - "# for time_dw_should_be_zero in times_dw_should_be_zero[1:]:\n", - "# _idx = np.argmin((time_dw_should_be_zero - np.array(t_hist))**2)\n", - "# np.testing.assert_allclose(t_hist[_idx], time_dw_should_be_zero)\n", - "# np.testing.assert_allclose(0., np.abs(w_hist[_idx - 1] - w_hist[_idx])) # make sure that weight does not change appreciably\n", - "\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "References\n", - "----------\n", - "\n", - "...\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.11.4" - } - }, - "nbformat": 4, - "nbformat_minor": 4 -} diff --git a/doc/tutorials/stdp_third_factor_active_dendrite/stdp_third_factor_active_dendrite.ipynb b/doc/tutorials/stdp_third_factor_active_dendrite/stdp_third_factor_active_dendrite.ipynb index 605bbc960..0e3ec5fba 100644 --- a/doc/tutorials/stdp_third_factor_active_dendrite/stdp_third_factor_active_dendrite.ipynb +++ b/doc/tutorials/stdp_third_factor_active_dendrite/stdp_third_factor_active_dendrite.ipynb @@ -25,6 +25,14 @@ "execution_count": 1, "metadata": {}, "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/home/charl/.local/lib/python3.11/site-packages/matplotlib/projections/__init__.py:63: UserWarning: Unable to import Axes3D. This may be due to multiple versions of Matplotlib being installed (e.g. as a system package and as a pip package). As a result, the 3D projection is not available.\n", + " warnings.warn(\"Unable to import Axes3D. This may be due to multiple versions of \"\n" + ] + }, { "name": "stdout", "output_type": "stream", @@ -45,14 +53,6 @@ " Type 'nest.help()' to find out more about NEST.\n", "\n" ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/home/charl/.local/lib/python3.11/site-packages/matplotlib/projections/__init__.py:63: UserWarning: Unable to import Axes3D. This may be due to multiple versions of Matplotlib being installed (e.g. as a system package and as a pip package). As a result, the 3D projection is not available.\n", - " warnings.warn(\"Unable to import Axes3D. This may be due to multiple versions of \"\n" - ] } ], "source": [ @@ -101,6 +101,20 @@ "We will use a helper function to generate the C++ code for the models, build it as a NEST extension module, and load the module into the kernel. Because NEST does not support un- or reloading of modules at the time of writing, we implement a workaround that appends a unique number to the name of each generated model, for example, \"iaf_psc_alpha_3cc945f\". The resulting neuron model name is returned by the function, so we do not have to think about these internals." ] }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, { "cell_type": "code", "execution_count": 3, @@ -110,11 +124,12 @@ "name": "stdout", "output_type": "stream", "text": [ + "Automatic pdb calling has been turned ON\n", "[1,GLOBAL, INFO]: List of files that will be processed:\n", - "[2,GLOBAL, INFO]: /home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/iaf_psc_exp_dend0f775d0f79724ea0b93ce09f5c1b047d_neuron.nestml\n", - "[3,GLOBAL, INFO]: /home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse.nestml\n", + "[2,GLOBAL, INFO]: /home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron.nestml\n", + "[3,GLOBAL, INFO]: /home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse.nestml\n", "[4,GLOBAL, INFO]: Target platform code will be generated in directory: '/home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/target'\n", - "[5,GLOBAL, INFO]: Target platform code will be installed in directory: '/tmp/nestml_target_paiucxaj'\n", + "[5,GLOBAL, INFO]: Target platform code will be installed in directory: '/tmp/nestml_target__g6kk6gx'\n", "\n", " -- N E S T --\n", " Copyright (C) 2004 The NEST Initiative\n", @@ -135,36 +150,36 @@ "[8,GLOBAL, INFO]: Given template root path is not an absolute path. Creating the absolute path with default templates directory '/home/charl/julich/nestml-fork-clopath_synapse/nestml/pynestml/codegeneration/resources_nest/point_neuron'\n", "[9,GLOBAL, INFO]: Given template root path is not an absolute path. Creating the absolute path with default templates directory '/home/charl/julich/nestml-fork-clopath_synapse/nestml/pynestml/codegeneration/resources_nest/point_neuron'\n", "[10,GLOBAL, INFO]: The NEST Simulator installation path was automatically detected as: /home/charl/julich/nest-simulator-install\n", - "[11,GLOBAL, INFO]: Start processing '/home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/iaf_psc_exp_dend0f775d0f79724ea0b93ce09f5c1b047d_neuron.nestml'!\n", - "[12,iaf_psc_exp_dend0f775d0f79724ea0b93ce09f5c1b047d_neuron_nestml, DEBUG, [38:0;93:0]]: Start building symbol table!\n", - "[13,iaf_psc_exp_dend0f775d0f79724ea0b93ce09f5c1b047d_neuron_nestml, INFO, [50:39;50:47]]: Implicit magnitude conversion from pA to pA buffer with factor 1.0 \n", - "[14,iaf_psc_exp_dend0f775d0f79724ea0b93ce09f5c1b047d_neuron_nestml, INFO, [50:15;50:30]]: Implicit magnitude conversion from mV / ms to pA / pF with factor 1.0 \n", - "[15,GLOBAL, INFO]: Start processing '/home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse.nestml'!\n", - "[16,third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml, DEBUG, [39:0;85:0]]: Start building symbol table!\n", - "[17,third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml, WARNING, [44:8;44:28]]: Variable 'd' has the same name as a physical unit!\n", - "[18,third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml, WARNING, [73:11;73:28]]: SPL_COMPARISON_OPERATOR_VISITOR : Operands of a logical rhs not compatible.([73:11;73:28])\n", - "[19,third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml, WARNING, [80:11;80:28]]: SPL_COMPARISON_OPERATOR_VISITOR : Operands of a logical rhs not compatible.([80:11;80:28])\n", - "[20,iaf_psc_exp_dend0f775d0f79724ea0b93ce09f5c1b047d_neuron_nestml, DEBUG, [38:0;93:0]]: Start building symbol table!\n", - "[21,third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml, DEBUG, [39:0;85:0]]: Start building symbol table!\n", - "[22,third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml, WARNING, [44:8;44:28]]: Variable 'd' has the same name as a physical unit!\n", - "[23,iaf_psc_exp_dend0f775d0f79724ea0b93ce09f5c1b047d_neuron_nestml, DEBUG, [38:0;93:0]]: Start building symbol table!\n", - "[24,iaf_psc_exp_dend0f775d0f79724ea0b93ce09f5c1b047d_neuron_nestml, INFO, [50:39;50:47]]: Implicit magnitude conversion from pA to pA buffer with factor 1.0 \n", - "[25,iaf_psc_exp_dend0f775d0f79724ea0b93ce09f5c1b047d_neuron_nestml, INFO, [50:15;50:30]]: Implicit magnitude conversion from mV / ms to pA / pF with factor 1.0 \n", - "[26,third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml, DEBUG, [39:0;85:0]]: Start building symbol table!\n", - "[27,third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml, WARNING, [44:8;44:28]]: Variable 'd' has the same name as a physical unit!\n", - "[28,third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml, WARNING, [73:11;73:28]]: SPL_COMPARISON_OPERATOR_VISITOR : Operands of a logical rhs not compatible.([73:11;73:28])\n", - "[29,third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml, WARNING, [80:11;80:28]]: SPL_COMPARISON_OPERATOR_VISITOR : Operands of a logical rhs not compatible.([80:11;80:28])\n", - "[30,iaf_psc_exp_dend0f775d0f79724ea0b93ce09f5c1b047d_neuron_nestml, DEBUG, [38:0;93:0]]: Start building symbol table!\n", - "[31,third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml, DEBUG, [39:0;85:0]]: Start building symbol table!\n", - "[32,third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml, WARNING, [44:8;44:28]]: Variable 'd' has the same name as a physical unit!\n", - "[33,GLOBAL, INFO]: State variables that will be moved from synapse to neuron: ['post_trace_kernel', 'post_trace']\n", - "[34,GLOBAL, INFO]: State variables that will be moved from synapse to neuron: ['post_trace_kernel', 'post_trace']\n", + "[11,GLOBAL, INFO]: Start processing '/home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron.nestml'!\n", + "[12,iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml, DEBUG, [38:0;93:0]]: Start building symbol table!\n", + "[13,iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml, INFO, [50:39;50:47]]: Implicit magnitude conversion from pA to pA buffer with factor 1.0 \n", + "[14,iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml, INFO, [50:15;50:30]]: Implicit magnitude conversion from mV / ms to pA / pF with factor 1.0 \n", + "[15,GLOBAL, INFO]: Start processing '/home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse.nestml'!\n", + "[16,third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml, DEBUG, [39:0;85:0]]: Start building symbol table!\n", + "[17,third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml, WARNING, [44:8;44:28]]: Variable 'd' has the same name as a physical unit!\n", + "[18,third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml, WARNING, [73:11;73:28]]: SPL_COMPARISON_OPERATOR_VISITOR : Operands of a logical rhs not compatible.([73:11;73:28])\n", + "[19,third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml, WARNING, [80:11;80:28]]: SPL_COMPARISON_OPERATOR_VISITOR : Operands of a logical rhs not compatible.([80:11;80:28])\n", + "[20,iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml, DEBUG, [38:0;93:0]]: Start building symbol table!\n", + "[21,third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml, DEBUG, [39:0;85:0]]: Start building symbol table!\n", + "[22,third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml, WARNING, [44:8;44:28]]: Variable 'd' has the same name as a physical unit!\n", + "[23,iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml, DEBUG, [38:0;93:0]]: Start building symbol table!\n", + "[24,iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml, INFO, [50:39;50:47]]: Implicit magnitude conversion from pA to pA buffer with factor 1.0 \n", + "[25,iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml, INFO, [50:15;50:30]]: Implicit magnitude conversion from mV / ms to pA / pF with factor 1.0 \n", + "[26,third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml, DEBUG, [39:0;85:0]]: Start building symbol table!\n", + "[27,third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml, WARNING, [44:8;44:28]]: Variable 'd' has the same name as a physical unit!\n", + "[28,third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml, WARNING, [73:11;73:28]]: SPL_COMPARISON_OPERATOR_VISITOR : Operands of a logical rhs not compatible.([73:11;73:28])\n", + "[29,third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml, WARNING, [80:11;80:28]]: SPL_COMPARISON_OPERATOR_VISITOR : Operands of a logical rhs not compatible.([80:11;80:28])\n", + "[30,iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml, DEBUG, [38:0;93:0]]: Start building symbol table!\n", + "[31,third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml, DEBUG, [39:0;85:0]]: Start building symbol table!\n", + "[32,third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml, WARNING, [44:8;44:28]]: Variable 'd' has the same name as a physical unit!\n", + "[33,GLOBAL, INFO]: State variables that will be moved from synapse to neuron: ['post_trace', 'post_trace_kernel']\n", + "[34,GLOBAL, INFO]: State variables that will be moved from synapse to neuron: ['post_trace', 'post_trace_kernel']\n", "[35,GLOBAL, INFO]: Parameters that will be copied from synapse to neuron: ['tau_tr_post']\n", "[36,GLOBAL, INFO]: Synaptic state variables moved to neuron that will need continuous-time buffering: ['I_post_dend']\n", - "[37,GLOBAL, INFO]: Moving state var defining equation(s) post_trace_kernel\n", - "[38,GLOBAL, INFO]: Moving state var defining equation(s) post_trace\n", - "[39,GLOBAL, INFO]: Moving state variables for equation(s) post_trace_kernel\n", - "[40,GLOBAL, INFO]: Moving state variables for equation(s) post_trace\n", + "[37,GLOBAL, INFO]: Moving state var defining equation(s) post_trace\n", + "[38,GLOBAL, INFO]: Moving state var defining equation(s) post_trace_kernel\n", + "[39,GLOBAL, INFO]: Moving state variables for equation(s) post_trace\n", + "[40,GLOBAL, INFO]: Moving state variables for equation(s) post_trace_kernel\n", "[41,GLOBAL, INFO]: In synapse: replacing ``continuous`` type input ports that are connected to postsynaptic neuron with suffixed external variable references\n", "[42,GLOBAL, INFO]: \t• Replacing variable I_post_dend\n", "[43,GLOBAL, INFO]: \t -> ASTSimpleExpression replacement made (var = I_post_dend) in expression: I_post_dend <= 1pA\n", @@ -177,12 +192,10 @@ "[50,GLOBAL, INFO]: Copying definition of tau_tr_post from synapse to neuron\n", "[51,GLOBAL, INFO]: Adding suffix to variables in spike updates\n", "[52,GLOBAL, INFO]: In synapse: replacing variables with suffixed external variable references\n", - "[53,GLOBAL, INFO]: \t• Replacing variable post_trace_kernel\n", - "[54,GLOBAL, INFO]: \t• Replacing variable post_trace\n", - "[55,GLOBAL, INFO]: \t -> ASTSimpleExpression replacement made (var = post_trace__for_third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml) in expression: alpha * lambda * (w / Wmax) ** mu_minus * post_trace\n", - "[56,iaf_psc_exp_dend0f775d0f79724ea0b93ce09f5c1b047d_neuron_nestml__with_third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml, DEBUG, [38:0;93:0]]: Start building symbol table!\n", - "[57,third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml__with_iaf_psc_exp_dend0f775d0f79724ea0b93ce09f5c1b047d_neuron_nestml, DEBUG, [39:0;85:0]]: Start building symbol table!\n", - "[58,third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml__with_iaf_psc_exp_dend0f775d0f79724ea0b93ce09f5c1b047d_neuron_nestml, WARNING, [44:8;44:28]]: Variable 'd' has the same name as a physical unit!\n" + "[53,GLOBAL, INFO]: \t• Replacing variable post_trace\n", + "[54,GLOBAL, INFO]: \t -> ASTSimpleExpression replacement made (var = post_trace__for_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml) in expression: alpha * lambda * (w / Wmax) ** mu_minus * post_trace\n", + "[55,GLOBAL, INFO]: \t• Replacing variable post_trace_kernel\n", + "[56,iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml, DEBUG, [38:0;93:0]]: Start building symbol table!\n" ] }, { @@ -199,11 +212,11 @@ " }\n", " },\n", " {\n", - " \"expression\": \"I_kernel_exc__X__exc_spikes = exp(-t / tau_syn_exc)\",\n", + " \"expression\": \"I_kernel_inh__X__inh_spikes = exp(-t / tau_syn_inh)\",\n", " \"initial_values\": {}\n", " },\n", " {\n", - " \"expression\": \"I_kernel_inh__X__inh_spikes = exp(-t / tau_syn_inh)\",\n", + " \"expression\": \"I_kernel_exc__X__exc_spikes = exp(-t / tau_syn_exc)\",\n", " \"initial_values\": {}\n", " }\n", " ],\n", @@ -234,75 +247,92 @@ "INFO:\tReturning shape: Shape \"V_m\" of order 1\n", "INFO:Shape V_m: reconstituting expression E_L/tau_m - V_m/tau_m + I_e/C_m + 1.0*I_kernel_exc__X__exc_spikes/C_m - 1.0*I_kernel_inh__X__inh_spikes/C_m + I_stim/C_m\n", "INFO:\n", - "Processing function-of-time shape \"I_kernel_exc__X__exc_spikes\" with defining expression = \"exp(-t/tau_syn_exc)\"\n", + "Processing function-of-time shape \"I_kernel_inh__X__inh_spikes\" with defining expression = \"exp(-t/tau_syn_inh)\"\n", "DEBUG:Found t: 0\n", "DEBUG:\tFinding ode for order 1...\n", "DEBUG:Shape satisfies ODE of order = 1\n", - "DEBUG:Created Shape with symbol I_kernel_exc__X__exc_spikes, derivative_factors = [-1/tau_syn_exc], inhom_term = 0.0, nonlin_term = 0.0\n", - "INFO:Shape I_kernel_exc__X__exc_spikes: reconstituting expression -I_kernel_exc__X__exc_spikes/tau_syn_exc\n", + "DEBUG:Created Shape with symbol I_kernel_inh__X__inh_spikes, derivative_factors = [-1/tau_syn_inh], inhom_term = 0.0, nonlin_term = 0.0\n", + "INFO:Shape I_kernel_inh__X__inh_spikes: reconstituting expression -I_kernel_inh__X__inh_spikes/tau_syn_inh\n", "INFO:\n", - "Processing function-of-time shape \"I_kernel_inh__X__inh_spikes\" with defining expression = \"exp(-t/tau_syn_inh)\"\n", + "Processing function-of-time shape \"I_kernel_exc__X__exc_spikes\" with defining expression = \"exp(-t/tau_syn_exc)\"\n", "DEBUG:Found t: 0\n", "DEBUG:\tFinding ode for order 1...\n", "DEBUG:Shape satisfies ODE of order = 1\n", - "DEBUG:Created Shape with symbol I_kernel_inh__X__inh_spikes, derivative_factors = [-1/tau_syn_inh], inhom_term = 0.0, nonlin_term = 0.0\n", - "INFO:Shape I_kernel_inh__X__inh_spikes: reconstituting expression -I_kernel_inh__X__inh_spikes/tau_syn_inh\n", - "INFO:All known variables: [V_m, I_kernel_exc__X__exc_spikes, I_kernel_inh__X__inh_spikes], all parameters used in ODEs: {tau_m, I_e, tau_syn_exc, C_m, tau_syn_inh, I_stim, E_L}\n", + "DEBUG:Created Shape with symbol I_kernel_exc__X__exc_spikes, derivative_factors = [-1/tau_syn_exc], inhom_term = 0.0, nonlin_term = 0.0\n", + "INFO:Shape I_kernel_exc__X__exc_spikes: reconstituting expression -I_kernel_exc__X__exc_spikes/tau_syn_exc\n", + "INFO:All known variables: [V_m, I_kernel_inh__X__inh_spikes, I_kernel_exc__X__exc_spikes], all parameters used in ODEs: {tau_m, I_stim, I_e, C_m, tau_syn_exc, tau_syn_inh, E_L}\n", "INFO:No numerical value specified for parameter \"I_stim\"\n", "INFO:\n", "Processing differential-equation form shape V_m with defining expression = \"(-(V_m - E_L)) / tau_m + ((I_kernel_exc__X__exc_spikes * 1.0 - I_kernel_inh__X__inh_spikes * 1.0) + I_e + I_stim) / C_m\"\n", - "DEBUG:Splitting expression (E_L - V_m)/tau_m + (I_e + 1.0*I_kernel_exc__X__exc_spikes - 1.0*I_kernel_inh__X__inh_spikes + I_stim)/C_m (symbols [V_m, I_kernel_exc__X__exc_spikes, I_kernel_inh__X__inh_spikes, V_m])\n", - "DEBUG:\tlinear factors: Matrix([[-1/tau_m], [1.0/C_m], [-1.0/C_m], [0]])\n", + "DEBUG:Splitting expression (E_L - V_m)/tau_m + (I_e + 1.0*I_kernel_exc__X__exc_spikes - 1.0*I_kernel_inh__X__inh_spikes + I_stim)/C_m (symbols [V_m, I_kernel_inh__X__inh_spikes, I_kernel_exc__X__exc_spikes, V_m])\n", + "DEBUG:\tlinear factors: Matrix([[-1/tau_m], [-1.0/C_m], [1.0/C_m], [0]])\n", "DEBUG:\tinhomogeneous term: E_L/tau_m + I_e/C_m + I_stim/C_m\n", "DEBUG:\tnonlinear term: 0.0\n", "DEBUG:Created Shape with symbol V_m, derivative_factors = [-1/tau_m], inhom_term = E_L/tau_m + I_e/C_m + I_stim/C_m, nonlin_term = 1.0*I_kernel_exc__X__exc_spikes/C_m - 1.0*I_kernel_inh__X__inh_spikes/C_m\n", "INFO:\tReturning shape: Shape \"V_m\" of order 1\n", "INFO:\n", - "Processing function-of-time shape \"I_kernel_exc__X__exc_spikes\" with defining expression = \"exp(-t/tau_syn_exc)\"\n", + "Processing function-of-time shape \"I_kernel_inh__X__inh_spikes\" with defining expression = \"exp(-t/tau_syn_inh)\"\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[57,third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml__with_iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml, DEBUG, [39:0;85:0]]: Start building symbol table!\n", + "[58,third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml__with_iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml, WARNING, [44:8;44:28]]: Variable 'd' has the same name as a physical unit!\n", + "[59,GLOBAL, INFO]: Successfully constructed neuron-synapse pair iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml, third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml__with_iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml\n", + "[60,GLOBAL, INFO]: Analysing/transforming model 'iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml'\n", + "[61,iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml, INFO, [38:0;93:0]]: Starts processing of the model 'iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml'\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ "DEBUG:Found t: 0\n", "DEBUG:\tFinding ode for order 1...\n", "DEBUG:Shape satisfies ODE of order = 1\n", - "DEBUG:Created Shape with symbol I_kernel_exc__X__exc_spikes, derivative_factors = [-1/tau_syn_exc], inhom_term = 0.0, nonlin_term = 0.0\n", + "DEBUG:Created Shape with symbol I_kernel_inh__X__inh_spikes, derivative_factors = [-1/tau_syn_inh], inhom_term = 0.0, nonlin_term = 0.0\n", "INFO:\n", - "Processing function-of-time shape \"I_kernel_inh__X__inh_spikes\" with defining expression = \"exp(-t/tau_syn_inh)\"\n", + "Processing function-of-time shape \"I_kernel_exc__X__exc_spikes\" with defining expression = \"exp(-t/tau_syn_exc)\"\n", "DEBUG:Found t: 0\n", "DEBUG:\tFinding ode for order 1...\n", "DEBUG:Shape satisfies ODE of order = 1\n", - "DEBUG:Created Shape with symbol I_kernel_inh__X__inh_spikes, derivative_factors = [-1/tau_syn_inh], inhom_term = 0.0, nonlin_term = 0.0\n", + "DEBUG:Created Shape with symbol I_kernel_exc__X__exc_spikes, derivative_factors = [-1/tau_syn_exc], inhom_term = 0.0, nonlin_term = 0.0\n", "INFO:Shape V_m: reconstituting expression E_L/tau_m - V_m/tau_m + I_e/C_m + 1.0*I_kernel_exc__X__exc_spikes/C_m - 1.0*I_kernel_inh__X__inh_spikes/C_m + I_stim/C_m\n", - "DEBUG:Splitting expression E_L/tau_m - V_m/tau_m + I_e/C_m + 1.0*I_kernel_exc__X__exc_spikes/C_m - 1.0*I_kernel_inh__X__inh_spikes/C_m + I_stim/C_m (symbols Matrix([[V_m], [I_kernel_exc__X__exc_spikes], [I_kernel_inh__X__inh_spikes]]))\n", - "DEBUG:\tlinear factors: Matrix([[-1/tau_m], [1.0/C_m], [-1.0/C_m]])\n", + "DEBUG:Splitting expression E_L/tau_m - V_m/tau_m + I_e/C_m + 1.0*I_kernel_exc__X__exc_spikes/C_m - 1.0*I_kernel_inh__X__inh_spikes/C_m + I_stim/C_m (symbols Matrix([[V_m], [I_kernel_inh__X__inh_spikes], [I_kernel_exc__X__exc_spikes]]))\n", + "DEBUG:\tlinear factors: Matrix([[-1/tau_m], [-1.0/C_m], [1.0/C_m]])\n", "DEBUG:\tinhomogeneous term: E_L/tau_m + I_e/C_m + I_stim/C_m\n", "DEBUG:\tnonlinear term: 0.0\n", - "INFO:Shape I_kernel_exc__X__exc_spikes: reconstituting expression -I_kernel_exc__X__exc_spikes/tau_syn_exc\n", - "DEBUG:Splitting expression -I_kernel_exc__X__exc_spikes/tau_syn_exc (symbols Matrix([[V_m], [I_kernel_exc__X__exc_spikes], [I_kernel_inh__X__inh_spikes]]))\n", - "DEBUG:\tlinear factors: Matrix([[0], [-1/tau_syn_exc], [0]])\n", + "INFO:Shape I_kernel_inh__X__inh_spikes: reconstituting expression -I_kernel_inh__X__inh_spikes/tau_syn_inh\n", + "DEBUG:Splitting expression -I_kernel_inh__X__inh_spikes/tau_syn_inh (symbols Matrix([[V_m], [I_kernel_inh__X__inh_spikes], [I_kernel_exc__X__exc_spikes]]))\n", + "DEBUG:\tlinear factors: Matrix([[0], [-1/tau_syn_inh], [0]])\n", "DEBUG:\tinhomogeneous term: 0.0\n", "DEBUG:\tnonlinear term: 0.0\n", - "INFO:Shape I_kernel_inh__X__inh_spikes: reconstituting expression -I_kernel_inh__X__inh_spikes/tau_syn_inh\n", - "DEBUG:Splitting expression -I_kernel_inh__X__inh_spikes/tau_syn_inh (symbols Matrix([[V_m], [I_kernel_exc__X__exc_spikes], [I_kernel_inh__X__inh_spikes]]))\n", - "DEBUG:\tlinear factors: Matrix([[0], [0], [-1/tau_syn_inh]])\n", + "INFO:Shape I_kernel_exc__X__exc_spikes: reconstituting expression -I_kernel_exc__X__exc_spikes/tau_syn_exc\n", + "DEBUG:Splitting expression -I_kernel_exc__X__exc_spikes/tau_syn_exc (symbols Matrix([[V_m], [I_kernel_inh__X__inh_spikes], [I_kernel_exc__X__exc_spikes]]))\n", + "DEBUG:\tlinear factors: Matrix([[0], [0], [-1/tau_syn_exc]])\n", "DEBUG:\tinhomogeneous term: 0.0\n", "DEBUG:\tnonlinear term: 0.0\n", - "DEBUG:Initializing system of shapes with x = Matrix([[V_m], [I_kernel_exc__X__exc_spikes], [I_kernel_inh__X__inh_spikes]]), A = Matrix([[-1/tau_m, 1.0/C_m, -1.0/C_m], [0, -1/tau_syn_exc, 0], [0, 0, -1/tau_syn_inh]]), b = Matrix([[E_L/tau_m + I_e/C_m + I_stim/C_m], [0.0], [0.0]]), c = Matrix([[0.0], [0.0], [0.0]])\n", + "DEBUG:Initializing system of shapes with x = Matrix([[V_m], [I_kernel_inh__X__inh_spikes], [I_kernel_exc__X__exc_spikes]]), A = Matrix([[-1/tau_m, -1.0/C_m, 1.0/C_m], [0, -1/tau_syn_inh, 0], [0, 0, -1/tau_syn_exc]]), b = Matrix([[E_L/tau_m + I_e/C_m + I_stim/C_m], [0.0], [0.0]]), c = Matrix([[0.0], [0.0], [0.0]])\n", "INFO:Finding analytically solvable equations...\n", "INFO:Saving dependency graph plot to /tmp/ode_dependency_graph.dot\n", "DEBUG:os.makedirs('/tmp')\n", "DEBUG:write lines to '/tmp/ode_dependency_graph.dot'\n", "DEBUG:run [PosixPath('dot'), '-Kdot', '-Tpdf', '-O', 'ode_dependency_graph.dot']\n", "INFO:Shape V_m: reconstituting expression E_L/tau_m - V_m/tau_m + I_e/C_m + 1.0*I_kernel_exc__X__exc_spikes/C_m - 1.0*I_kernel_inh__X__inh_spikes/C_m + I_stim/C_m\n", - "DEBUG:Splitting expression E_L/tau_m - V_m/tau_m + I_e/C_m + 1.0*I_kernel_exc__X__exc_spikes/C_m - 1.0*I_kernel_inh__X__inh_spikes/C_m + I_stim/C_m (symbols [V_m, I_kernel_exc__X__exc_spikes, I_kernel_inh__X__inh_spikes])\n", - "DEBUG:\tlinear factors: Matrix([[-1/tau_m], [1.0/C_m], [-1.0/C_m]])\n", + "DEBUG:Splitting expression E_L/tau_m - V_m/tau_m + I_e/C_m + 1.0*I_kernel_exc__X__exc_spikes/C_m - 1.0*I_kernel_inh__X__inh_spikes/C_m + I_stim/C_m (symbols [V_m, I_kernel_inh__X__inh_spikes, I_kernel_exc__X__exc_spikes])\n", + "DEBUG:\tlinear factors: Matrix([[-1/tau_m], [-1.0/C_m], [1.0/C_m]])\n", "DEBUG:\tinhomogeneous term: E_L/tau_m + I_e/C_m + I_stim/C_m\n", "DEBUG:\tnonlinear term: 0.0\n", - "INFO:Shape I_kernel_exc__X__exc_spikes: reconstituting expression -I_kernel_exc__X__exc_spikes/tau_syn_exc\n", - "DEBUG:Splitting expression -I_kernel_exc__X__exc_spikes/tau_syn_exc (symbols [V_m, I_kernel_exc__X__exc_spikes, I_kernel_inh__X__inh_spikes])\n", - "DEBUG:\tlinear factors: Matrix([[0], [-1/tau_syn_exc], [0]])\n", + "INFO:Shape I_kernel_inh__X__inh_spikes: reconstituting expression -I_kernel_inh__X__inh_spikes/tau_syn_inh\n", + "DEBUG:Splitting expression -I_kernel_inh__X__inh_spikes/tau_syn_inh (symbols [V_m, I_kernel_inh__X__inh_spikes, I_kernel_exc__X__exc_spikes])\n", + "DEBUG:\tlinear factors: Matrix([[0], [-1/tau_syn_inh], [0]])\n", "DEBUG:\tinhomogeneous term: 0.0\n", "DEBUG:\tnonlinear term: 0.0\n", - "INFO:Shape I_kernel_inh__X__inh_spikes: reconstituting expression -I_kernel_inh__X__inh_spikes/tau_syn_inh\n", - "DEBUG:Splitting expression -I_kernel_inh__X__inh_spikes/tau_syn_inh (symbols [V_m, I_kernel_exc__X__exc_spikes, I_kernel_inh__X__inh_spikes])\n", - "DEBUG:\tlinear factors: Matrix([[0], [0], [-1/tau_syn_inh]])\n", + "INFO:Shape I_kernel_exc__X__exc_spikes: reconstituting expression -I_kernel_exc__X__exc_spikes/tau_syn_exc\n", + "DEBUG:Splitting expression -I_kernel_exc__X__exc_spikes/tau_syn_exc (symbols [V_m, I_kernel_inh__X__inh_spikes, I_kernel_exc__X__exc_spikes])\n", + "DEBUG:\tlinear factors: Matrix([[0], [0], [-1/tau_syn_exc]])\n", "DEBUG:\tinhomogeneous term: 0.0\n", "DEBUG:\tnonlinear term: 0.0\n", "INFO:Saving dependency graph plot to /tmp/ode_dependency_graph_analytically_solvable_before_propagated.dot\n", @@ -310,47 +340,26 @@ "DEBUG:write lines to '/tmp/ode_dependency_graph_analytically_solvable_before_propagated.dot'\n", "DEBUG:run [PosixPath('dot'), '-Kdot', '-Tpdf', '-O', 'ode_dependency_graph_analytically_solvable_before_propagated.dot']\n", "INFO:Saving dependency graph plot to /tmp/ode_dependency_graph_analytically_solvable.dot\n", - "DEBUG:os.makedirs('/tmp')\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ + "DEBUG:os.makedirs('/tmp')\n", "DEBUG:write lines to '/tmp/ode_dependency_graph_analytically_solvable.dot'\n", "DEBUG:run [PosixPath('dot'), '-Kdot', '-Tpdf', '-O', 'ode_dependency_graph_analytically_solvable.dot']\n", - "INFO:Generating propagators for the following symbols: V_m, I_kernel_exc__X__exc_spikes, I_kernel_inh__X__inh_spikes\n", - "DEBUG:Initializing system of shapes with x = Matrix([[V_m], [I_kernel_exc__X__exc_spikes], [I_kernel_inh__X__inh_spikes]]), A = Matrix([[-1/tau_m, 1.0/C_m, -1.0/C_m], [0, -1/tau_syn_exc, 0], [0, 0, -1/tau_syn_inh]]), b = Matrix([[E_L/tau_m + I_e/C_m + I_stim/C_m], [0.0], [0.0]]), c = Matrix([[0], [0], [0]])\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[59,GLOBAL, INFO]: Successfully constructed neuron-synapse pair iaf_psc_exp_dend0f775d0f79724ea0b93ce09f5c1b047d_neuron_nestml__with_third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml, third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml__with_iaf_psc_exp_dend0f775d0f79724ea0b93ce09f5c1b047d_neuron_nestml\n", - "[60,GLOBAL, INFO]: Analysing/transforming model 'iaf_psc_exp_dend0f775d0f79724ea0b93ce09f5c1b047d_neuron_nestml'\n", - "[61,iaf_psc_exp_dend0f775d0f79724ea0b93ce09f5c1b047d_neuron_nestml, INFO, [38:0;93:0]]: Starts processing of the model 'iaf_psc_exp_dend0f775d0f79724ea0b93ce09f5c1b047d_neuron_nestml'\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ + "INFO:Generating propagators for the following symbols: V_m, I_kernel_inh__X__inh_spikes, I_kernel_exc__X__exc_spikes\n", + "DEBUG:Initializing system of shapes with x = Matrix([[V_m], [I_kernel_inh__X__inh_spikes], [I_kernel_exc__X__exc_spikes]]), A = Matrix([[-1/tau_m, -1.0/C_m, 1.0/C_m], [0, -1/tau_syn_inh, 0], [0, 0, -1/tau_syn_exc]]), b = Matrix([[E_L/tau_m + I_e/C_m + I_stim/C_m], [0.0], [0.0]]), c = Matrix([[0], [0], [0]])\n", "WARNING:Under certain conditions, the propagator matrix is singular (contains infinities).\n", "WARNING:List of all conditions that result in a singular propagator:\n", - "WARNING:\ttau_m = tau_syn_exc\n", "WARNING:\ttau_m = tau_syn_inh\n", + "WARNING:\ttau_m = tau_syn_exc\n", "DEBUG:System of equations:\n", - "DEBUG:x = Matrix([[V_m], [I_kernel_exc__X__exc_spikes], [I_kernel_inh__X__inh_spikes]])\n", + "DEBUG:x = Matrix([[V_m], [I_kernel_inh__X__inh_spikes], [I_kernel_exc__X__exc_spikes]])\n", "DEBUG:A = Matrix([\n", - "[-1/tau_m, 1.0/C_m, -1.0/C_m],\n", - "[ 0, -1/tau_syn_exc, 0],\n", - "[ 0, 0, -1/tau_syn_inh]])\n", + "[-1/tau_m, -1.0/C_m, 1.0/C_m],\n", + "[ 0, -1/tau_syn_inh, 0],\n", + "[ 0, 0, -1/tau_syn_exc]])\n", "DEBUG:b = Matrix([[E_L/tau_m + I_e/C_m + I_stim/C_m], [0.0], [0.0]])\n", "DEBUG:c = Matrix([[0], [0], [0]])\n", "INFO:update_expr[V_m] = -E_L*__P__V_m__V_m + E_L + I_kernel_exc__X__exc_spikes*__P__V_m__I_kernel_exc__X__exc_spikes + I_kernel_inh__X__inh_spikes*__P__V_m__I_kernel_inh__X__inh_spikes + V_m*__P__V_m__V_m - I_e*__P__V_m__V_m*tau_m/C_m + I_e*tau_m/C_m - I_stim*__P__V_m__V_m*tau_m/C_m + I_stim*tau_m/C_m\n", - "INFO:update_expr[I_kernel_exc__X__exc_spikes] = I_kernel_exc__X__exc_spikes*__P__I_kernel_exc__X__exc_spikes__I_kernel_exc__X__exc_spikes\n", "INFO:update_expr[I_kernel_inh__X__inh_spikes] = I_kernel_inh__X__inh_spikes*__P__I_kernel_inh__X__inh_spikes__I_kernel_inh__X__inh_spikes\n", + "INFO:update_expr[I_kernel_exc__X__exc_spikes] = I_kernel_exc__X__exc_spikes*__P__I_kernel_exc__X__exc_spikes__I_kernel_exc__X__exc_spikes\n", "WARNING:Not preserving expression for variable \"V_m\" as it is solved by propagator solver\n", "INFO:In ode-toolbox: returning outdict = \n", "INFO:[\n", @@ -378,8 +387,8 @@ " \"solver\": \"analytical\",\n", " \"state_variables\": [\n", " \"V_m\",\n", - " \"I_kernel_exc__X__exc_spikes\",\n", - " \"I_kernel_inh__X__inh_spikes\"\n", + " \"I_kernel_inh__X__inh_spikes\",\n", + " \"I_kernel_exc__X__exc_spikes\"\n", " ],\n", " \"update_expressions\": {\n", " \"I_kernel_exc__X__exc_spikes\": \"I_kernel_exc__X__exc_spikes*__P__I_kernel_exc__X__exc_spikes__I_kernel_exc__X__exc_spikes\",\n", @@ -394,9 +403,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "[62,iaf_psc_exp_dend0f775d0f79724ea0b93ce09f5c1b047d_neuron_nestml, DEBUG, [38:0;93:0]]: Start building symbol table!\n", - "[63,GLOBAL, INFO]: Analysing/transforming model 'iaf_psc_exp_dend0f775d0f79724ea0b93ce09f5c1b047d_neuron_nestml__with_third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml'\n", - "[64,iaf_psc_exp_dend0f775d0f79724ea0b93ce09f5c1b047d_neuron_nestml__with_third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml, INFO, [38:0;93:0]]: Starts processing of the model 'iaf_psc_exp_dend0f775d0f79724ea0b93ce09f5c1b047d_neuron_nestml__with_third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml'\n" + "[62,iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml, DEBUG, [38:0;93:0]]: Start building symbol table!\n" ] }, { @@ -413,15 +420,15 @@ " }\n", " },\n", " {\n", - " \"expression\": \"post_trace_kernel__for_third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml__X__post_spikes__for_third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml = exp(-t / tau_tr_post__for_third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml)\",\n", + " \"expression\": \"post_trace_kernel__for_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml__X__post_spikes__for_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml = exp(-t / tau_tr_post__for_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml)\",\n", " \"initial_values\": {}\n", " },\n", " {\n", - " \"expression\": \"I_kernel_exc__X__exc_spikes = exp(-t / tau_syn_exc)\",\n", + " \"expression\": \"I_kernel_inh__X__inh_spikes = exp(-t / tau_syn_inh)\",\n", " \"initial_values\": {}\n", " },\n", " {\n", - " \"expression\": \"I_kernel_inh__X__inh_spikes = exp(-t / tau_syn_inh)\",\n", + " \"expression\": \"I_kernel_exc__X__exc_spikes = exp(-t / tau_syn_exc)\",\n", " \"initial_values\": {}\n", " }\n", " ],\n", @@ -438,7 +445,7 @@ " \"tau_m\": \"10\",\n", " \"tau_syn_exc\": \"2\",\n", " \"tau_syn_inh\": \"2\",\n", - " \"tau_tr_post__for_third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml\": \"20\"\n", + " \"tau_tr_post__for_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml\": \"10\"\n", " }\n", "}\n", "INFO:Processing global options...\n", @@ -453,57 +460,57 @@ "INFO:\tReturning shape: Shape \"V_m\" of order 1\n", "INFO:Shape V_m: reconstituting expression E_L/tau_m - V_m/tau_m + I_e/C_m + 1.0*I_kernel_exc__X__exc_spikes/C_m - 1.0*I_kernel_inh__X__inh_spikes/C_m + I_stim/C_m\n", "INFO:\n", - "Processing function-of-time shape \"post_trace_kernel__for_third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml__X__post_spikes__for_third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml\" with defining expression = \"exp(-t/tau_tr_post__for_third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml)\"\n", + "Processing function-of-time shape \"post_trace_kernel__for_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml__X__post_spikes__for_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml\" with defining expression = \"exp(-t/tau_tr_post__for_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml)\"\n", "DEBUG:Found t: 0\n", "DEBUG:\tFinding ode for order 1...\n", "DEBUG:Shape satisfies ODE of order = 1\n", - "DEBUG:Created Shape with symbol post_trace_kernel__for_third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml__X__post_spikes__for_third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml, derivative_factors = [-1/tau_tr_post__for_third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml], inhom_term = 0.0, nonlin_term = 0.0\n", - "INFO:Shape post_trace_kernel__for_third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml__X__post_spikes__for_third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml: reconstituting expression -post_trace_kernel__for_third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml__X__post_spikes__for_third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml/tau_tr_post__for_third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml\n", + "DEBUG:Created Shape with symbol post_trace_kernel__for_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml__X__post_spikes__for_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml, derivative_factors = [-1/tau_tr_post__for_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml], inhom_term = 0.0, nonlin_term = 0.0\n", + "INFO:Shape post_trace_kernel__for_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml__X__post_spikes__for_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml: reconstituting expression -post_trace_kernel__for_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml__X__post_spikes__for_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml/tau_tr_post__for_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml\n", "INFO:\n", - "Processing function-of-time shape \"I_kernel_exc__X__exc_spikes\" with defining expression = \"exp(-t/tau_syn_exc)\"\n", + "Processing function-of-time shape \"I_kernel_inh__X__inh_spikes\" with defining expression = \"exp(-t/tau_syn_inh)\"\n", "DEBUG:Found t: 0\n", "DEBUG:\tFinding ode for order 1...\n", "DEBUG:Shape satisfies ODE of order = 1\n", - "DEBUG:Created Shape with symbol I_kernel_exc__X__exc_spikes, derivative_factors = [-1/tau_syn_exc], inhom_term = 0.0, nonlin_term = 0.0\n", - "INFO:Shape I_kernel_exc__X__exc_spikes: reconstituting expression -I_kernel_exc__X__exc_spikes/tau_syn_exc\n", + "DEBUG:Created Shape with symbol I_kernel_inh__X__inh_spikes, derivative_factors = [-1/tau_syn_inh], inhom_term = 0.0, nonlin_term = 0.0\n", + "INFO:Shape I_kernel_inh__X__inh_spikes: reconstituting expression -I_kernel_inh__X__inh_spikes/tau_syn_inh\n", "INFO:\n", - "Processing function-of-time shape \"I_kernel_inh__X__inh_spikes\" with defining expression = \"exp(-t/tau_syn_inh)\"\n", + "Processing function-of-time shape \"I_kernel_exc__X__exc_spikes\" with defining expression = \"exp(-t/tau_syn_exc)\"\n", "DEBUG:Found t: 0\n", "DEBUG:\tFinding ode for order 1...\n", "DEBUG:Shape satisfies ODE of order = 1\n", - "DEBUG:Created Shape with symbol I_kernel_inh__X__inh_spikes, derivative_factors = [-1/tau_syn_inh], inhom_term = 0.0, nonlin_term = 0.0\n", - "INFO:Shape I_kernel_inh__X__inh_spikes: reconstituting expression -I_kernel_inh__X__inh_spikes/tau_syn_inh\n", - "INFO:All known variables: [V_m, post_trace_kernel__for_third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml__X__post_spikes__for_third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml, I_kernel_exc__X__exc_spikes, I_kernel_inh__X__inh_spikes], all parameters used in ODEs: {tau_m, I_e, tau_syn_exc, C_m, tau_syn_inh, tau_tr_post__for_third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml, I_stim, E_L}\n", + "DEBUG:Created Shape with symbol I_kernel_exc__X__exc_spikes, derivative_factors = [-1/tau_syn_exc], inhom_term = 0.0, nonlin_term = 0.0\n", + "INFO:Shape I_kernel_exc__X__exc_spikes: reconstituting expression -I_kernel_exc__X__exc_spikes/tau_syn_exc\n", + "INFO:All known variables: [V_m, post_trace_kernel__for_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml__X__post_spikes__for_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml, I_kernel_inh__X__inh_spikes, I_kernel_exc__X__exc_spikes], all parameters used in ODEs: {tau_m, I_stim, I_e, C_m, tau_syn_exc, tau_syn_inh, tau_tr_post__for_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml, E_L}\n", "INFO:No numerical value specified for parameter \"I_stim\"\n", "INFO:\n", "Processing differential-equation form shape V_m with defining expression = \"(-(V_m - E_L)) / tau_m + ((I_kernel_exc__X__exc_spikes * 1.0 - I_kernel_inh__X__inh_spikes * 1.0) + I_e + I_stim) / C_m\"\n", - "DEBUG:Splitting expression (E_L - V_m)/tau_m + (I_e + 1.0*I_kernel_exc__X__exc_spikes - 1.0*I_kernel_inh__X__inh_spikes + I_stim)/C_m (symbols [V_m, post_trace_kernel__for_third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml__X__post_spikes__for_third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml, I_kernel_exc__X__exc_spikes, I_kernel_inh__X__inh_spikes, V_m])\n", - "DEBUG:\tlinear factors: Matrix([[-1/tau_m], [0], [1.0/C_m], [-1.0/C_m], [0]])\n", + "DEBUG:Splitting expression (E_L - V_m)/tau_m + (I_e + 1.0*I_kernel_exc__X__exc_spikes - 1.0*I_kernel_inh__X__inh_spikes + I_stim)/C_m (symbols [V_m, post_trace_kernel__for_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml__X__post_spikes__for_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml, I_kernel_inh__X__inh_spikes, I_kernel_exc__X__exc_spikes, V_m])\n", + "DEBUG:\tlinear factors: Matrix([[-1/tau_m], [0], [-1.0/C_m], [1.0/C_m], [0]])\n", "DEBUG:\tinhomogeneous term: E_L/tau_m + I_e/C_m + I_stim/C_m\n", "DEBUG:\tnonlinear term: 0.0\n", "DEBUG:Created Shape with symbol V_m, derivative_factors = [-1/tau_m], inhom_term = E_L/tau_m + I_e/C_m + I_stim/C_m, nonlin_term = 1.0*I_kernel_exc__X__exc_spikes/C_m - 1.0*I_kernel_inh__X__inh_spikes/C_m\n", "INFO:\tReturning shape: Shape \"V_m\" of order 1\n", "INFO:\n", - "Processing function-of-time shape \"post_trace_kernel__for_third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml__X__post_spikes__for_third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml\" with defining expression = \"exp(-t/tau_tr_post__for_third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml)\"\n", + "Processing function-of-time shape \"post_trace_kernel__for_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml__X__post_spikes__for_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml\" with defining expression = \"exp(-t/tau_tr_post__for_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml)\"\n", "DEBUG:Found t: 0\n", "DEBUG:\tFinding ode for order 1...\n", "DEBUG:Shape satisfies ODE of order = 1\n", - "DEBUG:Created Shape with symbol post_trace_kernel__for_third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml__X__post_spikes__for_third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml, derivative_factors = [-1/tau_tr_post__for_third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml], inhom_term = 0.0, nonlin_term = 0.0\n", + "DEBUG:Created Shape with symbol post_trace_kernel__for_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml__X__post_spikes__for_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml, derivative_factors = [-1/tau_tr_post__for_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml], inhom_term = 0.0, nonlin_term = 0.0\n", "INFO:\n", - "Processing function-of-time shape \"I_kernel_exc__X__exc_spikes\" with defining expression = \"exp(-t/tau_syn_exc)\"\n", + "Processing function-of-time shape \"I_kernel_inh__X__inh_spikes\" with defining expression = \"exp(-t/tau_syn_inh)\"\n", "DEBUG:Found t: 0\n", "DEBUG:\tFinding ode for order 1...\n", "DEBUG:Shape satisfies ODE of order = 1\n", - "DEBUG:Created Shape with symbol I_kernel_exc__X__exc_spikes, derivative_factors = [-1/tau_syn_exc], inhom_term = 0.0, nonlin_term = 0.0\n", + "DEBUG:Created Shape with symbol I_kernel_inh__X__inh_spikes, derivative_factors = [-1/tau_syn_inh], inhom_term = 0.0, nonlin_term = 0.0\n", "INFO:\n", - "Processing function-of-time shape \"I_kernel_inh__X__inh_spikes\" with defining expression = \"exp(-t/tau_syn_inh)\"\n", + "Processing function-of-time shape \"I_kernel_exc__X__exc_spikes\" with defining expression = \"exp(-t/tau_syn_exc)\"\n", "DEBUG:Found t: 0\n", "DEBUG:\tFinding ode for order 1...\n", "DEBUG:Shape satisfies ODE of order = 1\n", - "DEBUG:Created Shape with symbol I_kernel_inh__X__inh_spikes, derivative_factors = [-1/tau_syn_inh], inhom_term = 0.0, nonlin_term = 0.0\n", + "DEBUG:Created Shape with symbol I_kernel_exc__X__exc_spikes, derivative_factors = [-1/tau_syn_exc], inhom_term = 0.0, nonlin_term = 0.0\n", "INFO:Shape V_m: reconstituting expression E_L/tau_m - V_m/tau_m + I_e/C_m + 1.0*I_kernel_exc__X__exc_spikes/C_m - 1.0*I_kernel_inh__X__inh_spikes/C_m + I_stim/C_m\n", - "DEBUG:Splitting expression E_L/tau_m - V_m/tau_m + I_e/C_m + 1.0*I_kernel_exc__X__exc_spikes/C_m - 1.0*I_kernel_inh__X__inh_spikes/C_m + I_stim/C_m (symbols Matrix([[V_m], [post_trace_kernel__for_third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml__X__post_spikes__for_third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml], [I_kernel_exc__X__exc_spikes], [I_kernel_inh__X__inh_spikes]]))\n", - "DEBUG:\tlinear factors: Matrix([[-1/tau_m], [0], [1.0/C_m], [-1.0/C_m]])\n", + "DEBUG:Splitting expression E_L/tau_m - V_m/tau_m + I_e/C_m + 1.0*I_kernel_exc__X__exc_spikes/C_m - 1.0*I_kernel_inh__X__inh_spikes/C_m + I_stim/C_m (symbols Matrix([[V_m], [post_trace_kernel__for_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml__X__post_spikes__for_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml], [I_kernel_inh__X__inh_spikes], [I_kernel_exc__X__exc_spikes]]))\n", + "DEBUG:\tlinear factors: Matrix([[-1/tau_m], [0], [-1.0/C_m], [1.0/C_m]])\n", "DEBUG:\tinhomogeneous term: E_L/tau_m + I_e/C_m + I_stim/C_m\n" ] }, @@ -512,45 +519,45 @@ "output_type": "stream", "text": [ "DEBUG:\tnonlinear term: 0.0\n", - "INFO:Shape post_trace_kernel__for_third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml__X__post_spikes__for_third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml: reconstituting expression -post_trace_kernel__for_third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml__X__post_spikes__for_third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml/tau_tr_post__for_third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml\n", - "DEBUG:Splitting expression -post_trace_kernel__for_third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml__X__post_spikes__for_third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml/tau_tr_post__for_third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml (symbols Matrix([[V_m], [post_trace_kernel__for_third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml__X__post_spikes__for_third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml], [I_kernel_exc__X__exc_spikes], [I_kernel_inh__X__inh_spikes]]))\n", - "DEBUG:\tlinear factors: Matrix([[0], [-1/tau_tr_post__for_third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml], [0], [0]])\n", + "INFO:Shape post_trace_kernel__for_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml__X__post_spikes__for_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml: reconstituting expression -post_trace_kernel__for_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml__X__post_spikes__for_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml/tau_tr_post__for_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml\n", + "DEBUG:Splitting expression -post_trace_kernel__for_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml__X__post_spikes__for_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml/tau_tr_post__for_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml (symbols Matrix([[V_m], [post_trace_kernel__for_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml__X__post_spikes__for_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml], [I_kernel_inh__X__inh_spikes], [I_kernel_exc__X__exc_spikes]]))\n", + "DEBUG:\tlinear factors: Matrix([[0], [-1/tau_tr_post__for_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml], [0], [0]])\n", "DEBUG:\tinhomogeneous term: 0.0\n", "DEBUG:\tnonlinear term: 0.0\n", - "INFO:Shape I_kernel_exc__X__exc_spikes: reconstituting expression -I_kernel_exc__X__exc_spikes/tau_syn_exc\n", - "DEBUG:Splitting expression -I_kernel_exc__X__exc_spikes/tau_syn_exc (symbols Matrix([[V_m], [post_trace_kernel__for_third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml__X__post_spikes__for_third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml], [I_kernel_exc__X__exc_spikes], [I_kernel_inh__X__inh_spikes]]))\n", - "DEBUG:\tlinear factors: Matrix([[0], [0], [-1/tau_syn_exc], [0]])\n", + "INFO:Shape I_kernel_inh__X__inh_spikes: reconstituting expression -I_kernel_inh__X__inh_spikes/tau_syn_inh\n", + "DEBUG:Splitting expression -I_kernel_inh__X__inh_spikes/tau_syn_inh (symbols Matrix([[V_m], [post_trace_kernel__for_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml__X__post_spikes__for_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml], [I_kernel_inh__X__inh_spikes], [I_kernel_exc__X__exc_spikes]]))\n", + "DEBUG:\tlinear factors: Matrix([[0], [0], [-1/tau_syn_inh], [0]])\n", "DEBUG:\tinhomogeneous term: 0.0\n", "DEBUG:\tnonlinear term: 0.0\n", - "INFO:Shape I_kernel_inh__X__inh_spikes: reconstituting expression -I_kernel_inh__X__inh_spikes/tau_syn_inh\n", - "DEBUG:Splitting expression -I_kernel_inh__X__inh_spikes/tau_syn_inh (symbols Matrix([[V_m], [post_trace_kernel__for_third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml__X__post_spikes__for_third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml], [I_kernel_exc__X__exc_spikes], [I_kernel_inh__X__inh_spikes]]))\n", - "DEBUG:\tlinear factors: Matrix([[0], [0], [0], [-1/tau_syn_inh]])\n", + "INFO:Shape I_kernel_exc__X__exc_spikes: reconstituting expression -I_kernel_exc__X__exc_spikes/tau_syn_exc\n", + "DEBUG:Splitting expression -I_kernel_exc__X__exc_spikes/tau_syn_exc (symbols Matrix([[V_m], [post_trace_kernel__for_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml__X__post_spikes__for_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml], [I_kernel_inh__X__inh_spikes], [I_kernel_exc__X__exc_spikes]]))\n", + "DEBUG:\tlinear factors: Matrix([[0], [0], [0], [-1/tau_syn_exc]])\n", "DEBUG:\tinhomogeneous term: 0.0\n", "DEBUG:\tnonlinear term: 0.0\n", - "DEBUG:Initializing system of shapes with x = Matrix([[V_m], [post_trace_kernel__for_third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml__X__post_spikes__for_third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml], [I_kernel_exc__X__exc_spikes], [I_kernel_inh__X__inh_spikes]]), A = Matrix([[-1/tau_m, 0, 1.0/C_m, -1.0/C_m], [0, -1/tau_tr_post__for_third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml, 0, 0], [0, 0, -1/tau_syn_exc, 0], [0, 0, 0, -1/tau_syn_inh]]), b = Matrix([[E_L/tau_m + I_e/C_m + I_stim/C_m], [0.0], [0.0], [0.0]]), c = Matrix([[0.0], [0.0], [0.0], [0.0]])\n", + "DEBUG:Initializing system of shapes with x = Matrix([[V_m], [post_trace_kernel__for_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml__X__post_spikes__for_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml], [I_kernel_inh__X__inh_spikes], [I_kernel_exc__X__exc_spikes]]), A = Matrix([[-1/tau_m, 0, -1.0/C_m, 1.0/C_m], [0, -1/tau_tr_post__for_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml, 0, 0], [0, 0, -1/tau_syn_inh, 0], [0, 0, 0, -1/tau_syn_exc]]), b = Matrix([[E_L/tau_m + I_e/C_m + I_stim/C_m], [0.0], [0.0], [0.0]]), c = Matrix([[0.0], [0.0], [0.0], [0.0]])\n", "INFO:Finding analytically solvable equations...\n", "INFO:Saving dependency graph plot to /tmp/ode_dependency_graph.dot\n", "DEBUG:os.makedirs('/tmp')\n", "DEBUG:write lines to '/tmp/ode_dependency_graph.dot'\n", "DEBUG:run [PosixPath('dot'), '-Kdot', '-Tpdf', '-O', 'ode_dependency_graph.dot']\n", "INFO:Shape V_m: reconstituting expression E_L/tau_m - V_m/tau_m + I_e/C_m + 1.0*I_kernel_exc__X__exc_spikes/C_m - 1.0*I_kernel_inh__X__inh_spikes/C_m + I_stim/C_m\n", - "DEBUG:Splitting expression E_L/tau_m - V_m/tau_m + I_e/C_m + 1.0*I_kernel_exc__X__exc_spikes/C_m - 1.0*I_kernel_inh__X__inh_spikes/C_m + I_stim/C_m (symbols [V_m, post_trace_kernel__for_third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml__X__post_spikes__for_third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml, I_kernel_exc__X__exc_spikes, I_kernel_inh__X__inh_spikes])\n", - "DEBUG:\tlinear factors: Matrix([[-1/tau_m], [0], [1.0/C_m], [-1.0/C_m]])\n", + "DEBUG:Splitting expression E_L/tau_m - V_m/tau_m + I_e/C_m + 1.0*I_kernel_exc__X__exc_spikes/C_m - 1.0*I_kernel_inh__X__inh_spikes/C_m + I_stim/C_m (symbols [V_m, post_trace_kernel__for_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml__X__post_spikes__for_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml, I_kernel_inh__X__inh_spikes, I_kernel_exc__X__exc_spikes])\n", + "DEBUG:\tlinear factors: Matrix([[-1/tau_m], [0], [-1.0/C_m], [1.0/C_m]])\n", "DEBUG:\tinhomogeneous term: E_L/tau_m + I_e/C_m + I_stim/C_m\n", "DEBUG:\tnonlinear term: 0.0\n", - "INFO:Shape post_trace_kernel__for_third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml__X__post_spikes__for_third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml: reconstituting expression -post_trace_kernel__for_third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml__X__post_spikes__for_third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml/tau_tr_post__for_third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml\n", - "DEBUG:Splitting expression -post_trace_kernel__for_third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml__X__post_spikes__for_third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml/tau_tr_post__for_third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml (symbols [V_m, post_trace_kernel__for_third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml__X__post_spikes__for_third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml, I_kernel_exc__X__exc_spikes, I_kernel_inh__X__inh_spikes])\n", - "DEBUG:\tlinear factors: Matrix([[0], [-1/tau_tr_post__for_third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml], [0], [0]])\n", + "INFO:Shape post_trace_kernel__for_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml__X__post_spikes__for_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml: reconstituting expression -post_trace_kernel__for_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml__X__post_spikes__for_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml/tau_tr_post__for_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml\n", + "DEBUG:Splitting expression -post_trace_kernel__for_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml__X__post_spikes__for_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml/tau_tr_post__for_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml (symbols [V_m, post_trace_kernel__for_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml__X__post_spikes__for_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml, I_kernel_inh__X__inh_spikes, I_kernel_exc__X__exc_spikes])\n", + "DEBUG:\tlinear factors: Matrix([[0], [-1/tau_tr_post__for_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml], [0], [0]])\n", "DEBUG:\tinhomogeneous term: 0.0\n", "DEBUG:\tnonlinear term: 0.0\n", - "INFO:Shape I_kernel_exc__X__exc_spikes: reconstituting expression -I_kernel_exc__X__exc_spikes/tau_syn_exc\n", - "DEBUG:Splitting expression -I_kernel_exc__X__exc_spikes/tau_syn_exc (symbols [V_m, post_trace_kernel__for_third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml__X__post_spikes__for_third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml, I_kernel_exc__X__exc_spikes, I_kernel_inh__X__inh_spikes])\n", - "DEBUG:\tlinear factors: Matrix([[0], [0], [-1/tau_syn_exc], [0]])\n", + "INFO:Shape I_kernel_inh__X__inh_spikes: reconstituting expression -I_kernel_inh__X__inh_spikes/tau_syn_inh\n", + "DEBUG:Splitting expression -I_kernel_inh__X__inh_spikes/tau_syn_inh (symbols [V_m, post_trace_kernel__for_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml__X__post_spikes__for_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml, I_kernel_inh__X__inh_spikes, I_kernel_exc__X__exc_spikes])\n", + "DEBUG:\tlinear factors: Matrix([[0], [0], [-1/tau_syn_inh], [0]])\n", "DEBUG:\tinhomogeneous term: 0.0\n", "DEBUG:\tnonlinear term: 0.0\n", - "INFO:Shape I_kernel_inh__X__inh_spikes: reconstituting expression -I_kernel_inh__X__inh_spikes/tau_syn_inh\n", - "DEBUG:Splitting expression -I_kernel_inh__X__inh_spikes/tau_syn_inh (symbols [V_m, post_trace_kernel__for_third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml__X__post_spikes__for_third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml, I_kernel_exc__X__exc_spikes, I_kernel_inh__X__inh_spikes])\n", - "DEBUG:\tlinear factors: Matrix([[0], [0], [0], [-1/tau_syn_inh]])\n", + "INFO:Shape I_kernel_exc__X__exc_spikes: reconstituting expression -I_kernel_exc__X__exc_spikes/tau_syn_exc\n", + "DEBUG:Splitting expression -I_kernel_exc__X__exc_spikes/tau_syn_exc (symbols [V_m, post_trace_kernel__for_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml__X__post_spikes__for_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml, I_kernel_inh__X__inh_spikes, I_kernel_exc__X__exc_spikes])\n", + "DEBUG:\tlinear factors: Matrix([[0], [0], [0], [-1/tau_syn_exc]])\n", "DEBUG:\tinhomogeneous term: 0.0\n", "DEBUG:\tnonlinear term: 0.0\n", "INFO:Saving dependency graph plot to /tmp/ode_dependency_graph_analytically_solvable_before_propagated.dot\n", @@ -560,32 +567,40 @@ "INFO:Saving dependency graph plot to /tmp/ode_dependency_graph_analytically_solvable.dot\n", "DEBUG:os.makedirs('/tmp')\n", "DEBUG:write lines to '/tmp/ode_dependency_graph_analytically_solvable.dot'\n", - "DEBUG:run [PosixPath('dot'), '-Kdot', '-Tpdf', '-O', 'ode_dependency_graph_analytically_solvable.dot']\n", - "INFO:Generating propagators for the following symbols: V_m, post_trace_kernel__for_third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml__X__post_spikes__for_third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml, I_kernel_exc__X__exc_spikes, I_kernel_inh__X__inh_spikes\n", - "DEBUG:Initializing system of shapes with x = Matrix([[V_m], [post_trace_kernel__for_third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml__X__post_spikes__for_third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml], [I_kernel_exc__X__exc_spikes], [I_kernel_inh__X__inh_spikes]]), A = Matrix([[-1/tau_m, 0, 1.0/C_m, -1.0/C_m], [0, -1/tau_tr_post__for_third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml, 0, 0], [0, 0, -1/tau_syn_exc, 0], [0, 0, 0, -1/tau_syn_inh]]), b = Matrix([[E_L/tau_m + I_e/C_m + I_stim/C_m], [0.0], [0.0], [0.0]]), c = Matrix([[0], [0], [0], [0]])\n", - "WARNING:Under certain conditions, the propagator matrix is singular (contains infinities).\n", - "WARNING:List of all conditions that result in a singular propagator:\n", - "WARNING:\ttau_m = tau_syn_exc\n", - "WARNING:\ttau_m = tau_syn_inh\n", - "DEBUG:System of equations:\n", - "DEBUG:x = Matrix([[V_m], [post_trace_kernel__for_third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml__X__post_spikes__for_third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml], [I_kernel_exc__X__exc_spikes], [I_kernel_inh__X__inh_spikes]])\n" + "DEBUG:run [PosixPath('dot'), '-Kdot', '-Tpdf', '-O', 'ode_dependency_graph_analytically_solvable.dot']\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[63,GLOBAL, INFO]: Analysing/transforming model 'iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml'\n", + "[64,iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml, INFO, [38:0;93:0]]: Starts processing of the model 'iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml'\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ + "INFO:Generating propagators for the following symbols: V_m, post_trace_kernel__for_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml__X__post_spikes__for_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml, I_kernel_inh__X__inh_spikes, I_kernel_exc__X__exc_spikes\n", + "DEBUG:Initializing system of shapes with x = Matrix([[V_m], [post_trace_kernel__for_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml__X__post_spikes__for_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml], [I_kernel_inh__X__inh_spikes], [I_kernel_exc__X__exc_spikes]]), A = Matrix([[-1/tau_m, 0, -1.0/C_m, 1.0/C_m], [0, -1/tau_tr_post__for_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml, 0, 0], [0, 0, -1/tau_syn_inh, 0], [0, 0, 0, -1/tau_syn_exc]]), b = Matrix([[E_L/tau_m + I_e/C_m + I_stim/C_m], [0.0], [0.0], [0.0]]), c = Matrix([[0], [0], [0], [0]])\n", + "WARNING:Under certain conditions, the propagator matrix is singular (contains infinities).\n", + "WARNING:List of all conditions that result in a singular propagator:\n", + "WARNING:\ttau_m = tau_syn_inh\n", + "WARNING:\ttau_m = tau_syn_exc\n", + "DEBUG:System of equations:\n", + "DEBUG:x = Matrix([[V_m], [post_trace_kernel__for_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml__X__post_spikes__for_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml], [I_kernel_inh__X__inh_spikes], [I_kernel_exc__X__exc_spikes]])\n", "DEBUG:A = Matrix([\n", - "[-1/tau_m, 0, 1.0/C_m, -1.0/C_m],\n", - "[ 0, -1/tau_tr_post__for_third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml, 0, 0],\n", - "[ 0, 0, -1/tau_syn_exc, 0],\n", - "[ 0, 0, 0, -1/tau_syn_inh]])\n", + "[-1/tau_m, 0, -1.0/C_m, 1.0/C_m],\n", + "[ 0, -1/tau_tr_post__for_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml, 0, 0],\n", + "[ 0, 0, -1/tau_syn_inh, 0],\n", + "[ 0, 0, 0, -1/tau_syn_exc]])\n", "DEBUG:b = Matrix([[E_L/tau_m + I_e/C_m + I_stim/C_m], [0.0], [0.0], [0.0]])\n", "DEBUG:c = Matrix([[0], [0], [0], [0]])\n", "INFO:update_expr[V_m] = -E_L*__P__V_m__V_m + E_L + I_kernel_exc__X__exc_spikes*__P__V_m__I_kernel_exc__X__exc_spikes + I_kernel_inh__X__inh_spikes*__P__V_m__I_kernel_inh__X__inh_spikes + V_m*__P__V_m__V_m - I_e*__P__V_m__V_m*tau_m/C_m + I_e*tau_m/C_m - I_stim*__P__V_m__V_m*tau_m/C_m + I_stim*tau_m/C_m\n", - "INFO:update_expr[post_trace_kernel__for_third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml__X__post_spikes__for_third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml] = __P__post_trace_kernel__for_third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml__X__post_spikes__for_third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml__post_trace_kernel__for_third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml__X__post_spikes__for_third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml*post_trace_kernel__for_third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml__X__post_spikes__for_third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml\n", - "INFO:update_expr[I_kernel_exc__X__exc_spikes] = I_kernel_exc__X__exc_spikes*__P__I_kernel_exc__X__exc_spikes__I_kernel_exc__X__exc_spikes\n", + "INFO:update_expr[post_trace_kernel__for_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml__X__post_spikes__for_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml] = __P__post_trace_kernel__for_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml__X__post_spikes__for_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml__post_trace_kernel__for_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml__X__post_spikes__for_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml*post_trace_kernel__for_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml__X__post_spikes__for_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml\n", "INFO:update_expr[I_kernel_inh__X__inh_spikes] = I_kernel_inh__X__inh_spikes*__P__I_kernel_inh__X__inh_spikes__I_kernel_inh__X__inh_spikes\n", + "INFO:update_expr[I_kernel_exc__X__exc_spikes] = I_kernel_exc__X__exc_spikes*__P__I_kernel_exc__X__exc_spikes__I_kernel_exc__X__exc_spikes\n", "WARNING:Not preserving expression for variable \"V_m\" as it is solved by propagator solver\n", "INFO:In ode-toolbox: returning outdict = \n", "INFO:[\n", @@ -594,7 +609,7 @@ " \"I_kernel_exc__X__exc_spikes\": \"1\",\n", " \"I_kernel_inh__X__inh_spikes\": \"1\",\n", " \"V_m\": \"E_L\",\n", - " \"post_trace_kernel__for_third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml__X__post_spikes__for_third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml\": \"1\"\n", + " \"post_trace_kernel__for_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml__X__post_spikes__for_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml\": \"1\"\n", " },\n", " \"parameters\": {\n", " \"C_m\": \"250.000000000000\",\n", @@ -603,7 +618,7 @@ " \"tau_m\": \"10.0000000000000\",\n", " \"tau_syn_exc\": \"2.00000000000000\",\n", " \"tau_syn_inh\": \"2.00000000000000\",\n", - " \"tau_tr_post__for_third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml\": \"20.0000000000000\"\n", + " \"tau_tr_post__for_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml\": \"10.0000000000000\"\n", " },\n", " \"propagators\": {\n", " \"__P__I_kernel_exc__X__exc_spikes__I_kernel_exc__X__exc_spikes\": \"1.0*exp(-__h/tau_syn_exc)\",\n", @@ -611,36 +626,23 @@ " \"__P__V_m__I_kernel_exc__X__exc_spikes\": \"1.0*tau_m*tau_syn_exc*(-exp(__h/tau_m) + exp(__h/tau_syn_exc))*exp(-__h*(tau_m + tau_syn_exc)/(tau_m*tau_syn_exc))/(C_m*(tau_m - tau_syn_exc))\",\n", " \"__P__V_m__I_kernel_inh__X__inh_spikes\": \"1.0*tau_m*tau_syn_inh*(exp(__h/tau_m) - exp(__h/tau_syn_inh))*exp(-__h/tau_syn_inh - __h/tau_m)/(C_m*(tau_m - tau_syn_inh))\",\n", " \"__P__V_m__V_m\": \"1.0*exp(-__h/tau_m)\",\n", - " \"__P__post_trace_kernel__for_third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml__X__post_spikes__for_third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml__post_trace_kernel__for_third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml__X__post_spikes__for_third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml\": \"1.0*exp(-__h/tau_tr_post__for_third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml)\"\n", + " \"__P__post_trace_kernel__for_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml__X__post_spikes__for_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml__post_trace_kernel__for_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml__X__post_spikes__for_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml\": \"1.0*exp(-__h/tau_tr_post__for_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml)\"\n", " },\n", " \"solver\": \"analytical\",\n", " \"state_variables\": [\n", " \"V_m\",\n", - " \"post_trace_kernel__for_third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml__X__post_spikes__for_third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml\",\n", - " \"I_kernel_exc__X__exc_spikes\",\n", - " \"I_kernel_inh__X__inh_spikes\"\n", + " \"post_trace_kernel__for_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml__X__post_spikes__for_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml\",\n", + " \"I_kernel_inh__X__inh_spikes\",\n", + " \"I_kernel_exc__X__exc_spikes\"\n", " ],\n", " \"update_expressions\": {\n", " \"I_kernel_exc__X__exc_spikes\": \"I_kernel_exc__X__exc_spikes*__P__I_kernel_exc__X__exc_spikes__I_kernel_exc__X__exc_spikes\",\n", " \"I_kernel_inh__X__inh_spikes\": \"I_kernel_inh__X__inh_spikes*__P__I_kernel_inh__X__inh_spikes__I_kernel_inh__X__inh_spikes\",\n", " \"V_m\": \"-E_L*__P__V_m__V_m + E_L + I_kernel_exc__X__exc_spikes*__P__V_m__I_kernel_exc__X__exc_spikes + I_kernel_inh__X__inh_spikes*__P__V_m__I_kernel_inh__X__inh_spikes + V_m*__P__V_m__V_m - I_e*__P__V_m__V_m*tau_m/C_m + I_e*tau_m/C_m - I_stim*__P__V_m__V_m*tau_m/C_m + I_stim*tau_m/C_m\",\n", - " \"post_trace_kernel__for_third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml__X__post_spikes__for_third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml\": \"__P__post_trace_kernel__for_third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml__X__post_spikes__for_third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml__post_trace_kernel__for_third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml__X__post_spikes__for_third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml*post_trace_kernel__for_third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml__X__post_spikes__for_third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml\"\n", + " \"post_trace_kernel__for_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml__X__post_spikes__for_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml\": \"__P__post_trace_kernel__for_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml__X__post_spikes__for_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml__post_trace_kernel__for_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml__X__post_spikes__for_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml*post_trace_kernel__for_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml__X__post_spikes__for_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml\"\n", " }\n", " }\n", - "]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[65,iaf_psc_exp_dend0f775d0f79724ea0b93ce09f5c1b047d_neuron_nestml__with_third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml, DEBUG, [38:0;93:0]]: Start building symbol table!\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ + "]\n", "INFO:Analysing input:\n", "INFO:{\n", " \"dynamics\": [\n", @@ -660,8 +662,8 @@ " \"lambda\": \"0.01\",\n", " \"mu_minus\": \"1.0\",\n", " \"mu_plus\": \"1.0\",\n", - " \"tau_tr_post\": \"20\",\n", - " \"tau_tr_pre\": \"20\"\n", + " \"tau_tr_post\": \"10\",\n", + " \"tau_tr_pre\": \"10\"\n", " }\n", "}\n", "INFO:Processing global options...\n", @@ -673,7 +675,13 @@ "DEBUG:Shape satisfies ODE of order = 1\n", "DEBUG:Created Shape with symbol pre_trace_kernel__X__pre_spikes, derivative_factors = [-1/tau_tr_pre], inhom_term = 0.0, nonlin_term = 0.0\n", "INFO:Shape pre_trace_kernel__X__pre_spikes: reconstituting expression -pre_trace_kernel__X__pre_spikes/tau_tr_pre\n", - "INFO:All known variables: [pre_trace_kernel__X__pre_spikes], all parameters used in ODEs: {tau_tr_pre}\n", + "INFO:All known variables: [pre_trace_kernel__X__pre_spikes], all parameters used in ODEs: {tau_tr_pre}\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ "INFO:\n", "Processing function-of-time shape \"pre_trace_kernel__X__pre_spikes\" with defining expression = \"exp(-t/tau_tr_pre)\"\n", "DEBUG:Found t: 0\n", @@ -690,7 +698,22 @@ "INFO:Saving dependency graph plot to /tmp/ode_dependency_graph.dot\n", "DEBUG:os.makedirs('/tmp')\n", "DEBUG:write lines to '/tmp/ode_dependency_graph.dot'\n", - "DEBUG:run [PosixPath('dot'), '-Kdot', '-Tpdf', '-O', 'ode_dependency_graph.dot']\n", + "DEBUG:run [PosixPath('dot'), '-Kdot', '-Tpdf', '-O', 'ode_dependency_graph.dot']\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[65,iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml, DEBUG, [38:0;93:0]]: Start building symbol table!\n", + "[66,GLOBAL, INFO]: Analysing/transforming synapse third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml__with_iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml.\n", + "[67,third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml__with_iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml, INFO, [39:0;85:0]]: Starts processing of the model 'third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml__with_iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml'\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ "INFO:Shape pre_trace_kernel__X__pre_spikes: reconstituting expression -pre_trace_kernel__X__pre_spikes/tau_tr_pre\n", "DEBUG:Splitting expression -pre_trace_kernel__X__pre_spikes/tau_tr_pre (symbols [pre_trace_kernel__X__pre_spikes])\n", "DEBUG:\tlinear factors: Matrix([[-1/tau_tr_pre]])\n", @@ -719,7 +742,7 @@ " \"pre_trace_kernel__X__pre_spikes\": \"1\"\n", " },\n", " \"parameters\": {\n", - " \"tau_tr_pre\": \"20.0000000000000\"\n", + " \"tau_tr_pre\": \"10.0000000000000\"\n", " },\n", " \"propagators\": {\n", " \"__P__pre_trace_kernel__X__pre_spikes__pre_trace_kernel__X__pre_spikes\": \"exp(-__h/tau_tr_pre)\"\n", @@ -739,22 +762,25 @@ "name": "stdout", "output_type": "stream", "text": [ - "[66,GLOBAL, INFO]: Analysing/transforming synapse third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml__with_iaf_psc_exp_dend0f775d0f79724ea0b93ce09f5c1b047d_neuron_nestml.\n", - "[67,third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml__with_iaf_psc_exp_dend0f775d0f79724ea0b93ce09f5c1b047d_neuron_nestml, INFO, [39:0;85:0]]: Starts processing of the model 'third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml__with_iaf_psc_exp_dend0f775d0f79724ea0b93ce09f5c1b047d_neuron_nestml'\n", - "[68,third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml__with_iaf_psc_exp_dend0f775d0f79724ea0b93ce09f5c1b047d_neuron_nestml, DEBUG, [39:0;85:0]]: Start building symbol table!\n", - "[69,third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml__with_iaf_psc_exp_dend0f775d0f79724ea0b93ce09f5c1b047d_neuron_nestml, WARNING, [44:8;44:28]]: Variable 'd' has the same name as a physical unit!\n", - "[70,third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml__with_iaf_psc_exp_dend0f775d0f79724ea0b93ce09f5c1b047d_neuron_nestml, DEBUG, [39:0;85:0]]: Start building symbol table!\n", - "[71,third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml__with_iaf_psc_exp_dend0f775d0f79724ea0b93ce09f5c1b047d_neuron_nestml, WARNING, [44:8;44:28]]: Variable 'd' has the same name as a physical unit!\n", - "[72,GLOBAL, INFO]: Rendering template /home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/target/iaf_psc_exp_dend0f775d0f79724ea0b93ce09f5c1b047d_neuron_nestml.cpp\n", - "[73,GLOBAL, INFO]: Rendering template /home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/target/iaf_psc_exp_dend0f775d0f79724ea0b93ce09f5c1b047d_neuron_nestml.h\n", - "[74,iaf_psc_exp_dend0f775d0f79724ea0b93ce09f5c1b047d_neuron_nestml, INFO, [38:0;93:0]]: Successfully generated code for the model: 'iaf_psc_exp_dend0f775d0f79724ea0b93ce09f5c1b047d_neuron_nestml' in: '/home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/target' !\n", - "[75,GLOBAL, INFO]: Rendering template /home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/target/iaf_psc_exp_dend0f775d0f79724ea0b93ce09f5c1b047d_neuron_nestml__with_third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml.cpp\n", - "[76,GLOBAL, INFO]: Rendering template /home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/target/iaf_psc_exp_dend0f775d0f79724ea0b93ce09f5c1b047d_neuron_nestml__with_third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml.h\n", - "[77,iaf_psc_exp_dend0f775d0f79724ea0b93ce09f5c1b047d_neuron_nestml__with_third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml, INFO, [38:0;93:0]]: Successfully generated code for the model: 'iaf_psc_exp_dend0f775d0f79724ea0b93ce09f5c1b047d_neuron_nestml__with_third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml' in: '/home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/target' !\n", - "[78,GLOBAL, INFO]: Rendering template /home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/target/third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml__with_iaf_psc_exp_dend0f775d0f79724ea0b93ce09f5c1b047d_neuron_nestml.h\n", - "[79,third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml__with_iaf_psc_exp_dend0f775d0f79724ea0b93ce09f5c1b047d_neuron_nestml, INFO, [39:0;85:0]]: Successfully generated code for the model: 'third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml__with_iaf_psc_exp_dend0f775d0f79724ea0b93ce09f5c1b047d_neuron_nestml' in: '/home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/target' !\n", - "[80,GLOBAL, INFO]: Rendering template /home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/target/nestml_0f775d0f79724ea0b93ce09f5c1b047d_module.cpp\n", - "[81,GLOBAL, INFO]: Rendering template /home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/target/nestml_0f775d0f79724ea0b93ce09f5c1b047d_module.h\n", + "[68,third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml__with_iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml, DEBUG, [39:0;85:0]]: Start building symbol table!\n", + "[69,third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml__with_iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml, WARNING, [44:8;44:28]]: Variable 'd' has the same name as a physical unit!\n", + "[70,third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml__with_iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml, DEBUG, [39:0;85:0]]: Start building symbol table!\n", + "[71,third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml__with_iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml, WARNING, [44:8;44:28]]: Variable 'd' has the same name as a physical unit!\n", + "[72,GLOBAL, INFO]: Rendering template /home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/target/iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml.cpp\n", + "[73,GLOBAL, INFO]: Rendering template /home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/target/iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml.h\n", + "[74,iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml, INFO, [38:0;93:0]]: Successfully generated code for the model: 'iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml' in: '/home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/target' !\n", + "[75,GLOBAL, INFO]: Rendering template /home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/target/iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml.cpp\n", + "[76,GLOBAL, INFO]: Rendering template /home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/target/iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml.h\n", + "[77,iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml, INFO, [38:0;93:0]]: Successfully generated code for the model: 'iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml' in: '/home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/target' !\n", + "Checking pair {'neuron': 'iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron', 'synapse': 'third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse', 'post_ports': ['post_spikes', ['I_post_dend', 'I_dend']], 'vt_ports': None} for ne = iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron syn = third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse\n", + "post port names: [['I_post_dend', 'I_dend']]\n", + "Searching for I_post_dend\n", + "post port names: [['I_post_dend', 'I_dend']]\n", + "Searching for I_post_dend\n", + "[78,GLOBAL, INFO]: Rendering template /home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/target/third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml__with_iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml.h\n", + "[79,third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml__with_iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml, INFO, [39:0;85:0]]: Successfully generated code for the model: 'third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml__with_iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml' in: '/home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/target' !\n", + "[80,GLOBAL, INFO]: Rendering template /home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/target/nestml_87df6413058144cdbd49c0ed07b2deee_module.cpp\n", + "[81,GLOBAL, INFO]: Rendering template /home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/target/nestml_87df6413058144cdbd49c0ed07b2deee_module.h\n", "[82,GLOBAL, INFO]: Rendering template /home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/target/CMakeLists.txt\n", "[83,GLOBAL, INFO]: Successfully generated NEST module code in '/home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/target' !\n", "CMake Warning (dev) at CMakeLists.txt:95 (project):\n", @@ -771,7 +797,7 @@ "-- Detecting CXX compile features - done\n", "\n", "-------------------------------------------------------\n", - "nestml_0f775d0f79724ea0b93ce09f5c1b047d_module Configuration Summary\n", + "nestml_87df6413058144cdbd49c0ed07b2deee_module Configuration Summary\n", "-------------------------------------------------------\n", "\n", "C++ compiler : /usr/bin/c++\n", @@ -783,15 +809,15 @@ "\n", "-------------------------------------------------------\n", "\n", - "You can now build and install 'nestml_0f775d0f79724ea0b93ce09f5c1b047d_module' using\n", + "You can now build and install 'nestml_87df6413058144cdbd49c0ed07b2deee_module' using\n", " make\n", " make install\n", "\n", - "The library file libnestml_0f775d0f79724ea0b93ce09f5c1b047d_module.so will be installed to\n", - " /tmp/nestml_target_paiucxaj\n", + "The library file libnestml_87df6413058144cdbd49c0ed07b2deee_module.so will be installed to\n", + " /tmp/nestml_target__g6kk6gx\n", "The module can be loaded into NEST using\n", - " (nestml_0f775d0f79724ea0b93ce09f5c1b047d_module) Install (in SLI)\n", - " nest.Install(nestml_0f775d0f79724ea0b93ce09f5c1b047d_module) (in PyNEST)\n", + " (nestml_87df6413058144cdbd49c0ed07b2deee_module) Install (in SLI)\n", + " nest.Install(nestml_87df6413058144cdbd49c0ed07b2deee_module) (in PyNEST)\n", "\n", "CMake Warning (dev) in CMakeLists.txt:\n", " No cmake_minimum_required command is present. A line of code such as\n", @@ -803,37 +829,37 @@ " information run \"cmake --help-policy CMP0000\".\n", "This warning is for project developers. Use -Wno-dev to suppress it.\n", "\n", - "-- Configuring done (0.2s)\n", + "-- Configuring done (0.1s)\n", "-- Generating done (0.0s)\n", "-- Build files have been written to: /home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/target\n", - "[ 25%] Building CXX object CMakeFiles/nestml_0f775d0f79724ea0b93ce09f5c1b047d_module_module.dir/nestml_0f775d0f79724ea0b93ce09f5c1b047d_module.o\n", - "[ 50%] Building CXX object CMakeFiles/nestml_0f775d0f79724ea0b93ce09f5c1b047d_module_module.dir/iaf_psc_exp_dend0f775d0f79724ea0b93ce09f5c1b047d_neuron_nestml.o\n", - "[ 75%] Building CXX object CMakeFiles/nestml_0f775d0f79724ea0b93ce09f5c1b047d_module_module.dir/iaf_psc_exp_dend0f775d0f79724ea0b93ce09f5c1b047d_neuron_nestml__with_third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml.o\n", - "/home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/target/iaf_psc_exp_dend0f775d0f79724ea0b93ce09f5c1b047d_neuron_nestml.cpp: In member function ‘void iaf_psc_exp_dend0f775d0f79724ea0b93ce09f5c1b047d_neuron_nestml::init_state_internal_()’:\n", - "/home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/target/iaf_psc_exp_dend0f775d0f79724ea0b93ce09f5c1b047d_neuron_nestml.cpp:183:16: warning: unused variable ‘__resolution’ [-Wunused-variable]\n", + "[ 25%] Building CXX object CMakeFiles/nestml_87df6413058144cdbd49c0ed07b2deee_module_module.dir/nestml_87df6413058144cdbd49c0ed07b2deee_module.o\n", + "[ 50%] Building CXX object CMakeFiles/nestml_87df6413058144cdbd49c0ed07b2deee_module_module.dir/iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml.o\n", + "[ 75%] Building CXX object CMakeFiles/nestml_87df6413058144cdbd49c0ed07b2deee_module_module.dir/iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml.o\n", + "/home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/target/iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml.cpp: In member function ‘void iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml::init_state_internal_()’:\n", + "/home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/target/iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml.cpp:183:16: warning: unused variable ‘__resolution’ [-Wunused-variable]\n", " 183 | const double __resolution = nest::Time::get_resolution().get_ms(); // do not remove, this is necessary for the resolution() function\n", " | ^~~~~~~~~~~~\n", - "/home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/target/iaf_psc_exp_dend0f775d0f79724ea0b93ce09f5c1b047d_neuron_nestml.cpp: In member function ‘virtual void iaf_psc_exp_dend0f775d0f79724ea0b93ce09f5c1b047d_neuron_nestml::update(const nest::Time&, long int, long int)’:\n", - "/home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/target/iaf_psc_exp_dend0f775d0f79724ea0b93ce09f5c1b047d_neuron_nestml.cpp:291:24: warning: comparison of integer expressions of different signedness: ‘long int’ and ‘const size_t’ {aka ‘const long unsigned int’} [-Wsign-compare]\n", + "/home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/target/iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml.cpp: In member function ‘virtual void iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml::update(const nest::Time&, long int, long int)’:\n", + "/home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/target/iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml.cpp:291:24: warning: comparison of integer expressions of different signedness: ‘long int’ and ‘const size_t’ {aka ‘const long unsigned int’} [-Wsign-compare]\n", " 291 | for (long i = 0; i < NUM_SPIKE_RECEPTORS; ++i)\n", " | ~~^~~~~~~~~~~~~~~~~~~~~\n", - "In file included from /home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/target/iaf_psc_exp_dend0f775d0f79724ea0b93ce09f5c1b047d_neuron_nestml__with_third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml.cpp:43:\n", - "/home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/target/iaf_psc_exp_dend0f775d0f79724ea0b93ce09f5c1b047d_neuron_nestml__with_third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml.h: In constructor ‘continuous_variable_histentry_iaf_psc_exp_dend0f775d0f79724ea0b93ce09f5c1b047d_neuron_nestml__with_third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml::continuous_variable_histentry_iaf_psc_exp_dend0f775d0f79724ea0b93ce09f5c1b047d_neuron_nestml__with_third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml(double, double)’:\n", - "/home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/target/iaf_psc_exp_dend0f775d0f79724ea0b93ce09f5c1b047d_neuron_nestml__with_third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml.h:105:10: warning: ‘continuous_variable_histentry_iaf_psc_exp_dend0f775d0f79724ea0b93ce09f5c1b047d_neuron_nestml__with_third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml::access_counter_’ will be initialized after [-Wreorder]\n", + "In file included from /home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/target/iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml.cpp:43:\n", + "/home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/target/iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml.h: In constructor ‘continuous_variable_histentry_iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::continuous_variable_histentry_iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml(double, double)’:\n", + "/home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/target/iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml.h:105:10: warning: ‘continuous_variable_histentry_iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::access_counter_’ will be initialized after [-Wreorder]\n", " 105 | size_t access_counter_;\n", " | ^~~~~~~~~~~~~~~\n", - "/home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/target/iaf_psc_exp_dend0f775d0f79724ea0b93ce09f5c1b047d_neuron_nestml__with_third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml.h:102:10: warning: ‘double continuous_variable_histentry_iaf_psc_exp_dend0f775d0f79724ea0b93ce09f5c1b047d_neuron_nestml__with_third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml::I_post_dend’ [-Wreorder]\n", + "/home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/target/iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml.h:102:10: warning: ‘double continuous_variable_histentry_iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::I_post_dend’ [-Wreorder]\n", " 102 | double I_post_dend;\n", " | ^~~~~~~~~~~\n", - "/home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/target/iaf_psc_exp_dend0f775d0f79724ea0b93ce09f5c1b047d_neuron_nestml__with_third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml.cpp:46:1: warning: when initialized here [-Wreorder]\n", - " 46 | continuous_variable_histentry_iaf_psc_exp_dend0f775d0f79724ea0b93ce09f5c1b047d_neuron_nestml__with_third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml::continuous_variable_histentry_iaf_psc_exp_dend0f775d0f79724ea0b93ce09f5c1b047d_neuron_nestml__with_third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml( double t,\n", + "/home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/target/iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml.cpp:46:1: warning: when initialized here [-Wreorder]\n", + " 46 | continuous_variable_histentry_iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::continuous_variable_histentry_iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml( double t,\n", " | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n", - "/home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/target/iaf_psc_exp_dend0f775d0f79724ea0b93ce09f5c1b047d_neuron_nestml__with_third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml.cpp: In member function ‘void iaf_psc_exp_dend0f775d0f79724ea0b93ce09f5c1b047d_neuron_nestml__with_third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml::init_state_internal_()’:\n", - "/home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/target/iaf_psc_exp_dend0f775d0f79724ea0b93ce09f5c1b047d_neuron_nestml__with_third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml.cpp:202:16: warning: unused variable ‘__resolution’ [-Wunused-variable]\n", + "/home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/target/iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml.cpp: In member function ‘void iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::init_state_internal_()’:\n", + "/home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/target/iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml.cpp:202:16: warning: unused variable ‘__resolution’ [-Wunused-variable]\n", " 202 | const double __resolution = nest::Time::get_resolution().get_ms(); // do not remove, this is necessary for the resolution() function\n", " | ^~~~~~~~~~~~\n", - "/home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/target/iaf_psc_exp_dend0f775d0f79724ea0b93ce09f5c1b047d_neuron_nestml__with_third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml.cpp: In member function ‘virtual void iaf_psc_exp_dend0f775d0f79724ea0b93ce09f5c1b047d_neuron_nestml__with_third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml::update(const nest::Time&, long int, long int)’:\n", - "/home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/target/iaf_psc_exp_dend0f775d0f79724ea0b93ce09f5c1b047d_neuron_nestml__with_third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml.cpp:321:24: warning: comparison of integer expressions of different signedness: ‘long int’ and ‘const size_t’ {aka ‘const long unsigned int’} [-Wsign-compare]\n", + "/home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/target/iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml.cpp: In member function ‘virtual void iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::update(const nest::Time&, long int, long int)’:\n", + "/home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/target/iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml.cpp:321:24: warning: comparison of integer expressions of different signedness: ‘long int’ and ‘const size_t’ {aka ‘const long unsigned int’} [-Wsign-compare]\n", " 321 | for (long i = 0; i < NUM_SPIKE_RECEPTORS; ++i)\n", " | ~~^~~~~~~~~~~~~~~~~~~~~\n" ] @@ -842,98 +868,92 @@ "name": "stdout", "output_type": "stream", "text": [ - "In file included from /home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/target/nestml_0f775d0f79724ea0b93ce09f5c1b047d_module.cpp:52:\n", - "/home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/target/third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml__with_iaf_psc_exp_dend0f775d0f79724ea0b93ce09f5c1b047d_neuron_nestml.h: In instantiation of ‘nest::third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml__with_iaf_psc_exp_dend0f775d0f79724ea0b93ce09f5c1b047d_neuron_nestml::third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml__with_iaf_psc_exp_dend0f775d0f79724ea0b93ce09f5c1b047d_neuron_nestml() [with targetidentifierT = nest::TargetIdentifierPtrRport]’:\n", - "/home/charl/julich/nest-simulator-install/include/nest/connector_model.h:158:25: required from ‘nest::GenericConnectorModel::GenericConnectorModel(std::string) [with ConnectionT = nest::third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml__with_iaf_psc_exp_dend0f775d0f79724ea0b93ce09f5c1b047d_neuron_nestml; std::string = std::__cxx11::basic_string]’\n", - "/home/charl/julich/nest-simulator-install/include/nest/model_manager_impl.h:61:24: required from ‘void nest::ModelManager::register_connection_model(const std::string&) [with ConnectionT = nest::third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml__with_iaf_psc_exp_dend0f775d0f79724ea0b93ce09f5c1b047d_neuron_nestml; std::string = std::__cxx11::basic_string]’\n", - "/home/charl/julich/nest-simulator-install/include/nest/nest_impl.h:35:70: required from ‘void nest::register_connection_model(const std::string&) [with ConnectorModelT = third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml__with_iaf_psc_exp_dend0f775d0f79724ea0b93ce09f5c1b047d_neuron_nestml; std::string = std::__cxx11::basic_string]’\n", - "/home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/target/nestml_0f775d0f79724ea0b93ce09f5c1b047d_module.cpp:111:179: required from here\n", - "/home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/target/third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml__with_iaf_psc_exp_dend0f775d0f79724ea0b93ce09f5c1b047d_neuron_nestml.h:724:16: warning: unused variable ‘__resolution’ [-Wunused-variable]\n", - " 724 | const double __resolution = nest::Time::get_resolution().get_ms(); // do not remove, this is necessary for the resolution() function\n", + "In file included from /home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/target/nestml_87df6413058144cdbd49c0ed07b2deee_module.cpp:52:\n", + "/home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/target/third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml__with_iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml.h: In instantiation of ‘nest::third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml__with_iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml::third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml__with_iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml() [with targetidentifierT = nest::TargetIdentifierPtrRport]’:\n", + "/home/charl/julich/nest-simulator-install/include/nest/connector_model.h:158:25: required from ‘nest::GenericConnectorModel::GenericConnectorModel(std::string) [with ConnectionT = nest::third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml__with_iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml; std::string = std::__cxx11::basic_string]’\n", + "/home/charl/julich/nest-simulator-install/include/nest/model_manager_impl.h:61:24: required from ‘void nest::ModelManager::register_connection_model(const std::string&) [with ConnectionT = nest::third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml__with_iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml; std::string = std::__cxx11::basic_string]’\n", + "/home/charl/julich/nest-simulator-install/include/nest/nest_impl.h:35:70: required from ‘void nest::register_connection_model(const std::string&) [with ConnectorModelT = third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml__with_iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml; std::string = std::__cxx11::basic_string]’\n", + "/home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/target/nestml_87df6413058144cdbd49c0ed07b2deee_module.cpp:111:179: required from here\n", + "/home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/target/third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml__with_iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml.h:739:16: warning: unused variable ‘__resolution’ [-Wunused-variable]\n", + " 739 | const double __resolution = nest::Time::get_resolution().get_ms(); // do not remove, this is necessary for the resolution() function\n", " | ^~~~~~~~~~~~\n", - "/home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/target/third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml__with_iaf_psc_exp_dend0f775d0f79724ea0b93ce09f5c1b047d_neuron_nestml.h: In instantiation of ‘nest::third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml__with_iaf_psc_exp_dend0f775d0f79724ea0b93ce09f5c1b047d_neuron_nestml::third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml__with_iaf_psc_exp_dend0f775d0f79724ea0b93ce09f5c1b047d_neuron_nestml() [with targetidentifierT = nest::TargetIdentifierIndex]’:\n", - "/home/charl/julich/nest-simulator-install/include/nest/connector_model.h:158:25: required from ‘nest::GenericConnectorModel::GenericConnectorModel(std::string) [with ConnectionT = nest::third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml__with_iaf_psc_exp_dend0f775d0f79724ea0b93ce09f5c1b047d_neuron_nestml; std::string = std::__cxx11::basic_string]’\n", - "/home/charl/julich/nest-simulator-install/include/nest/model_manager_impl.h:67:10: required from ‘void nest::ModelManager::register_connection_model(const std::string&) [with ConnectionT = nest::third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml__with_iaf_psc_exp_dend0f775d0f79724ea0b93ce09f5c1b047d_neuron_nestml; std::string = std::__cxx11::basic_string]’\n", - "/home/charl/julich/nest-simulator-install/include/nest/nest_impl.h:35:70: required from ‘void nest::register_connection_model(const std::string&) [with ConnectorModelT = third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml__with_iaf_psc_exp_dend0f775d0f79724ea0b93ce09f5c1b047d_neuron_nestml; std::string = std::__cxx11::basic_string]’\n", - "/home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/target/nestml_0f775d0f79724ea0b93ce09f5c1b047d_module.cpp:111:179: required from here\n", - "/home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/target/third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml__with_iaf_psc_exp_dend0f775d0f79724ea0b93ce09f5c1b047d_neuron_nestml.h:724:16: warning: unused variable ‘__resolution’ [-Wunused-variable]\n", - "/home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/target/third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml__with_iaf_psc_exp_dend0f775d0f79724ea0b93ce09f5c1b047d_neuron_nestml.h: In instantiation of ‘void nest::third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml__with_iaf_psc_exp_dend0f775d0f79724ea0b93ce09f5c1b047d_neuron_nestml::recompute_internal_variables() [with targetidentifierT = nest::TargetIdentifierPtrRport]’:\n", - "/home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/target/third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml__with_iaf_psc_exp_dend0f775d0f79724ea0b93ce09f5c1b047d_neuron_nestml.h:736:3: required from ‘nest::third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml__with_iaf_psc_exp_dend0f775d0f79724ea0b93ce09f5c1b047d_neuron_nestml::third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml__with_iaf_psc_exp_dend0f775d0f79724ea0b93ce09f5c1b047d_neuron_nestml() [with targetidentifierT = nest::TargetIdentifierPtrRport]’\n", - "/home/charl/julich/nest-simulator-install/include/nest/connector_model.h:158:25: required from ‘nest::GenericConnectorModel::GenericConnectorModel(std::string) [with ConnectionT = nest::third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml__with_iaf_psc_exp_dend0f775d0f79724ea0b93ce09f5c1b047d_neuron_nestml; std::string = std::__cxx11::basic_string]’\n", - "/home/charl/julich/nest-simulator-install/include/nest/model_manager_impl.h:61:24: required from ‘void nest::ModelManager::register_connection_model(const std::string&) [with ConnectionT = nest::third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml__with_iaf_psc_exp_dend0f775d0f79724ea0b93ce09f5c1b047d_neuron_nestml; std::string = std::__cxx11::basic_string]’\n", - "/home/charl/julich/nest-simulator-install/include/nest/nest_impl.h:35:70: required from ‘void nest::register_connection_model(const std::string&) [with ConnectorModelT = third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml__with_iaf_psc_exp_dend0f775d0f79724ea0b93ce09f5c1b047d_neuron_nestml; std::string = std::__cxx11::basic_string]’\n", - "/home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/target/nestml_0f775d0f79724ea0b93ce09f5c1b047d_module.cpp:111:179: required from here\n", - "/home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/target/third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml__with_iaf_psc_exp_dend0f775d0f79724ea0b93ce09f5c1b047d_neuron_nestml.h:712:16: warning: unused variable ‘__resolution’ [-Wunused-variable]\n", - " 712 | const double __resolution = nest::Time::get_resolution().get_ms(); // do not remove, this is necessary for the resolution() function\n", + "/home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/target/third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml__with_iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml.h: In instantiation of ‘nest::third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml__with_iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml::third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml__with_iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml() [with targetidentifierT = nest::TargetIdentifierIndex]’:\n", + "/home/charl/julich/nest-simulator-install/include/nest/connector_model.h:158:25: required from ‘nest::GenericConnectorModel::GenericConnectorModel(std::string) [with ConnectionT = nest::third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml__with_iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml; std::string = std::__cxx11::basic_string]’\n", + "/home/charl/julich/nest-simulator-install/include/nest/model_manager_impl.h:67:10: required from ‘void nest::ModelManager::register_connection_model(const std::string&) [with ConnectionT = nest::third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml__with_iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml; std::string = std::__cxx11::basic_string]’\n", + "/home/charl/julich/nest-simulator-install/include/nest/nest_impl.h:35:70: required from ‘void nest::register_connection_model(const std::string&) [with ConnectorModelT = third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml__with_iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml; std::string = std::__cxx11::basic_string]’\n", + "/home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/target/nestml_87df6413058144cdbd49c0ed07b2deee_module.cpp:111:179: required from here\n", + "/home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/target/third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml__with_iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml.h:739:16: warning: unused variable ‘__resolution’ [-Wunused-variable]\n", + "/home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/target/third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml__with_iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml.h: In instantiation of ‘void nest::third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml__with_iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml::recompute_internal_variables() [with targetidentifierT = nest::TargetIdentifierPtrRport]’:\n", + "/home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/target/third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml__with_iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml.h:751:3: required from ‘nest::third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml__with_iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml::third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml__with_iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml() [with targetidentifierT = nest::TargetIdentifierPtrRport]’\n", + "/home/charl/julich/nest-simulator-install/include/nest/connector_model.h:158:25: required from ‘nest::GenericConnectorModel::GenericConnectorModel(std::string) [with ConnectionT = nest::third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml__with_iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml; std::string = std::__cxx11::basic_string]’\n", + "/home/charl/julich/nest-simulator-install/include/nest/model_manager_impl.h:61:24: required from ‘void nest::ModelManager::register_connection_model(const std::string&) [with ConnectionT = nest::third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml__with_iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml; std::string = std::__cxx11::basic_string]’\n", + "/home/charl/julich/nest-simulator-install/include/nest/nest_impl.h:35:70: required from ‘void nest::register_connection_model(const std::string&) [with ConnectorModelT = third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml__with_iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml; std::string = std::__cxx11::basic_string]’\n", + "/home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/target/nestml_87df6413058144cdbd49c0ed07b2deee_module.cpp:111:179: required from here\n", + "/home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/target/third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml__with_iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml.h:727:16: warning: unused variable ‘__resolution’ [-Wunused-variable]\n", + " 727 | const double __resolution = nest::Time::get_resolution().get_ms(); // do not remove, this is necessary for the resolution() function\n", " | ^~~~~~~~~~~~\n", - "/home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/target/third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml__with_iaf_psc_exp_dend0f775d0f79724ea0b93ce09f5c1b047d_neuron_nestml.h: In instantiation of ‘void nest::third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml__with_iaf_psc_exp_dend0f775d0f79724ea0b93ce09f5c1b047d_neuron_nestml::recompute_internal_variables() [with targetidentifierT = nest::TargetIdentifierIndex]’:\n", - "/home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/target/third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml__with_iaf_psc_exp_dend0f775d0f79724ea0b93ce09f5c1b047d_neuron_nestml.h:736:3: required from ‘nest::third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml__with_iaf_psc_exp_dend0f775d0f79724ea0b93ce09f5c1b047d_neuron_nestml::third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml__with_iaf_psc_exp_dend0f775d0f79724ea0b93ce09f5c1b047d_neuron_nestml() [with targetidentifierT = nest::TargetIdentifierIndex]’\n", - "/home/charl/julich/nest-simulator-install/include/nest/connector_model.h:158:25: required from ‘nest::GenericConnectorModel::GenericConnectorModel(std::string) [with ConnectionT = nest::third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml__with_iaf_psc_exp_dend0f775d0f79724ea0b93ce09f5c1b047d_neuron_nestml; std::string = std::__cxx11::basic_string]’\n", - "/home/charl/julich/nest-simulator-install/include/nest/model_manager_impl.h:67:10: required from ‘void nest::ModelManager::register_connection_model(const std::string&) [with ConnectionT = nest::third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml__with_iaf_psc_exp_dend0f775d0f79724ea0b93ce09f5c1b047d_neuron_nestml; std::string = std::__cxx11::basic_string]’\n", - "/home/charl/julich/nest-simulator-install/include/nest/nest_impl.h:35:70: required from ‘void nest::register_connection_model(const std::string&) [with ConnectorModelT = third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml__with_iaf_psc_exp_dend0f775d0f79724ea0b93ce09f5c1b047d_neuron_nestml; std::string = std::__cxx11::basic_string]’\n", - "/home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/target/nestml_0f775d0f79724ea0b93ce09f5c1b047d_module.cpp:111:179: required from here\n", - "/home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/target/third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml__with_iaf_psc_exp_dend0f775d0f79724ea0b93ce09f5c1b047d_neuron_nestml.h:712:16: warning: unused variable ‘__resolution’ [-Wunused-variable]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "/home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/target/third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml__with_iaf_psc_exp_dend0f775d0f79724ea0b93ce09f5c1b047d_neuron_nestml.h: In instantiation of ‘void nest::third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml__with_iaf_psc_exp_dend0f775d0f79724ea0b93ce09f5c1b047d_neuron_nestml::send(nest::Event&, size_t, const nest::third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml__with_iaf_psc_exp_dend0f775d0f79724ea0b93ce09f5c1b047d_neuron_nestmlCommonSynapseProperties&) [with targetidentifierT = nest::TargetIdentifierPtrRport; size_t = long unsigned int]’:\n", - "/home/charl/julich/nest-simulator-install/include/nest/connector_base.h:381:22: required from ‘void nest::Connector::send_to_all(size_t, const std::vector&, nest::Event&) [with ConnectionT = nest::third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml__with_iaf_psc_exp_dend0f775d0f79724ea0b93ce09f5c1b047d_neuron_nestml; size_t = long unsigned int]’\n", + "/home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/target/third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml__with_iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml.h: In instantiation of ‘void nest::third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml__with_iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml::recompute_internal_variables() [with targetidentifierT = nest::TargetIdentifierIndex]’:\n", + "/home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/target/third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml__with_iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml.h:751:3: required from ‘nest::third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml__with_iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml::third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml__with_iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml() [with targetidentifierT = nest::TargetIdentifierIndex]’\n", + "/home/charl/julich/nest-simulator-install/include/nest/connector_model.h:158:25: required from ‘nest::GenericConnectorModel::GenericConnectorModel(std::string) [with ConnectionT = nest::third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml__with_iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml; std::string = std::__cxx11::basic_string]’\n", + "/home/charl/julich/nest-simulator-install/include/nest/model_manager_impl.h:67:10: required from ‘void nest::ModelManager::register_connection_model(const std::string&) [with ConnectionT = nest::third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml__with_iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml; std::string = std::__cxx11::basic_string]’\n", + "/home/charl/julich/nest-simulator-install/include/nest/nest_impl.h:35:70: required from ‘void nest::register_connection_model(const std::string&) [with ConnectorModelT = third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml__with_iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml; std::string = std::__cxx11::basic_string]’\n", + "/home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/target/nestml_87df6413058144cdbd49c0ed07b2deee_module.cpp:111:179: required from here\n", + "/home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/target/third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml__with_iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml.h:727:16: warning: unused variable ‘__resolution’ [-Wunused-variable]\n", + "/home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/target/third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml__with_iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml.h: In instantiation of ‘void nest::third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml__with_iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml::send(nest::Event&, size_t, const nest::third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml__with_iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestmlCommonSynapseProperties&) [with targetidentifierT = nest::TargetIdentifierPtrRport; size_t = long unsigned int]’:\n", + "/home/charl/julich/nest-simulator-install/include/nest/connector_base.h:381:22: required from ‘void nest::Connector::send_to_all(size_t, const std::vector&, nest::Event&) [with ConnectionT = nest::third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml__with_iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml; size_t = long unsigned int]’\n", "/home/charl/julich/nest-simulator-install/include/nest/connector_base.h:373:3: required from here\n", - "/home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/target/third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml__with_iaf_psc_exp_dend0f775d0f79724ea0b93ce09f5c1b047d_neuron_nestml.h:519:14: warning: variable ‘get_t’ set but not used [-Wunused-but-set-variable]\n", - " 519 | auto get_t = [_tr_t](){ return _tr_t; }; // do not remove, this is in case the predefined time variable ``t`` is used in the NESTML model\n", + "/home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/target/third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml__with_iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml.h:526:14: warning: variable ‘get_t’ set but not used [-Wunused-but-set-variable]\n", + " 526 | auto get_t = [_tr_t](){ return _tr_t; }; // do not remove, this is in case the predefined time variable ``t`` is used in the NESTML model\n", " | ^~~~~\n", - "/home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/target/third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml__with_iaf_psc_exp_dend0f775d0f79724ea0b93ce09f5c1b047d_neuron_nestml.h:548:14: warning: variable ‘get_t’ set but not used [-Wunused-but-set-variable]\n", - " 548 | auto get_t = [__t_spike](){ return __t_spike; }; // do not remove, this is in case the predefined time variable ``t`` is used in the NESTML model\n", + "/home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/target/third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml__with_iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml.h:555:14: warning: variable ‘get_t’ set but not used [-Wunused-but-set-variable]\n", + " 555 | auto get_t = [__t_spike](){ return __t_spike; }; // do not remove, this is in case the predefined time variable ``t`` is used in the NESTML model // XXX: TODO: is this correct or should this be equal to ``_tr_t``, i.e. with dendritic delay subtracted?\n", " | ^~~~~\n", - "/home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/target/third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml__with_iaf_psc_exp_dend0f775d0f79724ea0b93ce09f5c1b047d_neuron_nestml.h:588:14: warning: variable ‘get_t’ set but not used [-Wunused-but-set-variable]\n", - " 588 | auto get_t = [__t_spike](){ return __t_spike; }; // do not remove, this is in case the predefined time variable ``t`` is used in the NESTML model\n", + "/home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/target/third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml__with_iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml.h:599:14: warning: variable ‘get_t’ set but not used [-Wunused-but-set-variable]\n", + " 599 | auto get_t = [__t_spike](){ return __t_spike; }; // do not remove, this is in case the predefined time variable ``t`` is used in the NESTML model\n", " | ^~~~~\n", - "/home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/target/third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml__with_iaf_psc_exp_dend0f775d0f79724ea0b93ce09f5c1b047d_neuron_nestml.h:455:18: warning: unused variable ‘__resolution’ [-Wunused-variable]\n", + "/home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/target/third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml__with_iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml.h:455:18: warning: unused variable ‘__resolution’ [-Wunused-variable]\n", " 455 | const double __resolution = nest::Time::get_resolution().get_ms(); // do not remove, this is necessary for the resolution() function\n", " | ^~~~~~~~~~~~\n", - "/home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/target/third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml__with_iaf_psc_exp_dend0f775d0f79724ea0b93ce09f5c1b047d_neuron_nestml.h:457:10: warning: variable ‘get_thread’ set but not used [-Wunused-but-set-variable]\n", + "/home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/target/third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml__with_iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml.h:457:10: warning: variable ‘get_thread’ set but not used [-Wunused-but-set-variable]\n", " 457 | auto get_thread = [tid]()\n", " | ^~~~~~~~~~\n", - "/home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/target/third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml__with_iaf_psc_exp_dend0f775d0f79724ea0b93ce09f5c1b047d_neuron_nestml.h: In instantiation of ‘void nest::third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml__with_iaf_psc_exp_dend0f775d0f79724ea0b93ce09f5c1b047d_neuron_nestml::send(nest::Event&, size_t, const nest::third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml__with_iaf_psc_exp_dend0f775d0f79724ea0b93ce09f5c1b047d_neuron_nestmlCommonSynapseProperties&) [with targetidentifierT = nest::TargetIdentifierIndex; size_t = long unsigned int]’:\n", - "/home/charl/julich/nest-simulator-install/include/nest/connector_base.h:381:22: required from ‘void nest::Connector::send_to_all(size_t, const std::vector&, nest::Event&) [with ConnectionT = nest::third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml__with_iaf_psc_exp_dend0f775d0f79724ea0b93ce09f5c1b047d_neuron_nestml; size_t = long unsigned int]’\n", + "/home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/target/third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml__with_iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml.h: In instantiation of ‘void nest::third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml__with_iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml::send(nest::Event&, size_t, const nest::third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml__with_iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestmlCommonSynapseProperties&) [with targetidentifierT = nest::TargetIdentifierIndex; size_t = long unsigned int]’:\n", + "/home/charl/julich/nest-simulator-install/include/nest/connector_base.h:381:22: required from ‘void nest::Connector::send_to_all(size_t, const std::vector&, nest::Event&) [with ConnectionT = nest::third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml__with_iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml; size_t = long unsigned int]’\n", "/home/charl/julich/nest-simulator-install/include/nest/connector_base.h:373:3: required from here\n", - "/home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/target/third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml__with_iaf_psc_exp_dend0f775d0f79724ea0b93ce09f5c1b047d_neuron_nestml.h:519:14: warning: variable ‘get_t’ set but not used [-Wunused-but-set-variable]\n", - " 519 | auto get_t = [_tr_t](){ return _tr_t; }; // do not remove, this is in case the predefined time variable ``t`` is used in the NESTML model\n", + "/home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/target/third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml__with_iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml.h:526:14: warning: variable ‘get_t’ set but not used [-Wunused-but-set-variable]\n", + " 526 | auto get_t = [_tr_t](){ return _tr_t; }; // do not remove, this is in case the predefined time variable ``t`` is used in the NESTML model\n", " | ^~~~~\n", - "/home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/target/third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml__with_iaf_psc_exp_dend0f775d0f79724ea0b93ce09f5c1b047d_neuron_nestml.h:548:14: warning: variable ‘get_t’ set but not used [-Wunused-but-set-variable]\n", - " 548 | auto get_t = [__t_spike](){ return __t_spike; }; // do not remove, this is in case the predefined time variable ``t`` is used in the NESTML model\n", + "/home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/target/third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml__with_iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml.h:555:14: warning: variable ‘get_t’ set but not used [-Wunused-but-set-variable]\n", + " 555 | auto get_t = [__t_spike](){ return __t_spike; }; // do not remove, this is in case the predefined time variable ``t`` is used in the NESTML model // XXX: TODO: is this correct or should this be equal to ``_tr_t``, i.e. with dendritic delay subtracted?\n", " | ^~~~~\n", - "/home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/target/third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml__with_iaf_psc_exp_dend0f775d0f79724ea0b93ce09f5c1b047d_neuron_nestml.h:588:14: warning: variable ‘get_t’ set but not used [-Wunused-but-set-variable]\n", - " 588 | auto get_t = [__t_spike](){ return __t_spike; }; // do not remove, this is in case the predefined time variable ``t`` is used in the NESTML model\n", + "/home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/target/third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml__with_iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml.h:599:14: warning: variable ‘get_t’ set but not used [-Wunused-but-set-variable]\n", + " 599 | auto get_t = [__t_spike](){ return __t_spike; }; // do not remove, this is in case the predefined time variable ``t`` is used in the NESTML model\n", " | ^~~~~\n", - "/home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/target/third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml__with_iaf_psc_exp_dend0f775d0f79724ea0b93ce09f5c1b047d_neuron_nestml.h:455:18: warning: unused variable ‘__resolution’ [-Wunused-variable]\n", + "/home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/target/third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml__with_iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml.h:455:18: warning: unused variable ‘__resolution’ [-Wunused-variable]\n", " 455 | const double __resolution = nest::Time::get_resolution().get_ms(); // do not remove, this is necessary for the resolution() function\n", " | ^~~~~~~~~~~~\n", - "/home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/target/third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml__with_iaf_psc_exp_dend0f775d0f79724ea0b93ce09f5c1b047d_neuron_nestml.h:457:10: warning: variable ‘get_thread’ set but not used [-Wunused-but-set-variable]\n", + "/home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/target/third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml__with_iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml.h:457:10: warning: variable ‘get_thread’ set but not used [-Wunused-but-set-variable]\n", " 457 | auto get_thread = [tid]()\n", " | ^~~~~~~~~~\n", - "/home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/target/third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml__with_iaf_psc_exp_dend0f775d0f79724ea0b93ce09f5c1b047d_neuron_nestml.h: In instantiation of ‘void nest::third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml__with_iaf_psc_exp_dend0f775d0f79724ea0b93ce09f5c1b047d_neuron_nestml::update_internal_state_(double, double, const nest::third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml__with_iaf_psc_exp_dend0f775d0f79724ea0b93ce09f5c1b047d_neuron_nestmlCommonSynapseProperties&) [with targetidentifierT = nest::TargetIdentifierPtrRport]’:\n", - "/home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/target/third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml__with_iaf_psc_exp_dend0f775d0f79724ea0b93ce09f5c1b047d_neuron_nestml.h:514:9: required from ‘void nest::third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml__with_iaf_psc_exp_dend0f775d0f79724ea0b93ce09f5c1b047d_neuron_nestml::send(nest::Event&, size_t, const nest::third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml__with_iaf_psc_exp_dend0f775d0f79724ea0b93ce09f5c1b047d_neuron_nestmlCommonSynapseProperties&) [with targetidentifierT = nest::TargetIdentifierPtrRport; size_t = long unsigned int]’\n", - "/home/charl/julich/nest-simulator-install/include/nest/connector_base.h:381:22: required from ‘void nest::Connector::send_to_all(size_t, const std::vector&, nest::Event&) [with ConnectionT = nest::third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml__with_iaf_psc_exp_dend0f775d0f79724ea0b93ce09f5c1b047d_neuron_nestml; size_t = long unsigned int]’\n", + "/home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/target/third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml__with_iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml.h: In instantiation of ‘void nest::third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml__with_iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml::update_internal_state_(double, double, const nest::third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml__with_iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestmlCommonSynapseProperties&) [with targetidentifierT = nest::TargetIdentifierPtrRport]’:\n", + "/home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/target/third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml__with_iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml.h:521:9: required from ‘void nest::third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml__with_iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml::send(nest::Event&, size_t, const nest::third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml__with_iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestmlCommonSynapseProperties&) [with targetidentifierT = nest::TargetIdentifierPtrRport; size_t = long unsigned int]’\n", + "/home/charl/julich/nest-simulator-install/include/nest/connector_base.h:381:22: required from ‘void nest::Connector::send_to_all(size_t, const std::vector&, nest::Event&) [with ConnectionT = nest::third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml__with_iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml; size_t = long unsigned int]’\n", "/home/charl/julich/nest-simulator-install/include/nest/connector_base.h:373:3: required from here\n", - "/home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/target/third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml__with_iaf_psc_exp_dend0f775d0f79724ea0b93ce09f5c1b047d_neuron_nestml.h:786:18: warning: unused variable ‘__resolution’ [-Wunused-variable]\n", - " 786 | const double __resolution = timestep; // do not remove, this is necessary for the resolution() function\n", + "/home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/target/third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml__with_iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml.h:801:18: warning: unused variable ‘__resolution’ [-Wunused-variable]\n", + " 801 | const double __resolution = timestep; // do not remove, this is necessary for the resolution() function\n", " | ^~~~~~~~~~~~\n", - "/home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/target/third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml__with_iaf_psc_exp_dend0f775d0f79724ea0b93ce09f5c1b047d_neuron_nestml.h:787:10: warning: variable ‘get_t’ set but not used [-Wunused-but-set-variable]\n", - " 787 | auto get_t = [t_start](){ return t_start; }; // do not remove, this is in case the predefined time variable ``t`` is used in the NESTML model\n", + "/home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/target/third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml__with_iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml.h:802:10: warning: variable ‘get_t’ set but not used [-Wunused-but-set-variable]\n", + " 802 | auto get_t = [t_start](){ return t_start; }; // do not remove, this is in case the predefined time variable ``t`` is used in the NESTML model\n", " | ^~~~~\n", - "/home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/target/third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml__with_iaf_psc_exp_dend0f775d0f79724ea0b93ce09f5c1b047d_neuron_nestml.h: In instantiation of ‘void nest::third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml__with_iaf_psc_exp_dend0f775d0f79724ea0b93ce09f5c1b047d_neuron_nestml::update_internal_state_(double, double, const nest::third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml__with_iaf_psc_exp_dend0f775d0f79724ea0b93ce09f5c1b047d_neuron_nestmlCommonSynapseProperties&) [with targetidentifierT = nest::TargetIdentifierIndex]’:\n", - "/home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/target/third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml__with_iaf_psc_exp_dend0f775d0f79724ea0b93ce09f5c1b047d_neuron_nestml.h:514:9: required from ‘void nest::third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml__with_iaf_psc_exp_dend0f775d0f79724ea0b93ce09f5c1b047d_neuron_nestml::send(nest::Event&, size_t, const nest::third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml__with_iaf_psc_exp_dend0f775d0f79724ea0b93ce09f5c1b047d_neuron_nestmlCommonSynapseProperties&) [with targetidentifierT = nest::TargetIdentifierIndex; size_t = long unsigned int]’\n", - "/home/charl/julich/nest-simulator-install/include/nest/connector_base.h:381:22: required from ‘void nest::Connector::send_to_all(size_t, const std::vector&, nest::Event&) [with ConnectionT = nest::third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml__with_iaf_psc_exp_dend0f775d0f79724ea0b93ce09f5c1b047d_neuron_nestml; size_t = long unsigned int]’\n", + "/home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/target/third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml__with_iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml.h: In instantiation of ‘void nest::third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml__with_iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml::update_internal_state_(double, double, const nest::third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml__with_iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestmlCommonSynapseProperties&) [with targetidentifierT = nest::TargetIdentifierIndex]’:\n", + "/home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/target/third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml__with_iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml.h:521:9: required from ‘void nest::third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml__with_iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml::send(nest::Event&, size_t, const nest::third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml__with_iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestmlCommonSynapseProperties&) [with targetidentifierT = nest::TargetIdentifierIndex; size_t = long unsigned int]’\n", + "/home/charl/julich/nest-simulator-install/include/nest/connector_base.h:381:22: required from ‘void nest::Connector::send_to_all(size_t, const std::vector&, nest::Event&) [with ConnectionT = nest::third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml__with_iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml; size_t = long unsigned int]’\n", "/home/charl/julich/nest-simulator-install/include/nest/connector_base.h:373:3: required from here\n", - "/home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/target/third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml__with_iaf_psc_exp_dend0f775d0f79724ea0b93ce09f5c1b047d_neuron_nestml.h:786:18: warning: unused variable ‘__resolution’ [-Wunused-variable]\n", - " 786 | const double __resolution = timestep; // do not remove, this is necessary for the resolution() function\n", + "/home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/target/third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml__with_iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml.h:801:18: warning: unused variable ‘__resolution’ [-Wunused-variable]\n", + " 801 | const double __resolution = timestep; // do not remove, this is necessary for the resolution() function\n", " | ^~~~~~~~~~~~\n", - "/home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/target/third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml__with_iaf_psc_exp_dend0f775d0f79724ea0b93ce09f5c1b047d_neuron_nestml.h:787:10: warning: variable ‘get_t’ set but not used [-Wunused-but-set-variable]\n", - " 787 | auto get_t = [t_start](){ return t_start; }; // do not remove, this is in case the predefined time variable ``t`` is used in the NESTML model\n", + "/home/charl/julich/nestml-fork-clopath_synapse/nestml/doc/tutorials/stdp_third_factor_active_dendrite/target/third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml__with_iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml.h:802:10: warning: variable ‘get_t’ set but not used [-Wunused-but-set-variable]\n", + " 802 | auto get_t = [t_start](){ return t_start; }; // do not remove, this is in case the predefined time variable ``t`` is used in the NESTML model\n", " | ^~~~~\n" ] }, @@ -941,21 +961,22 @@ "name": "stdout", "output_type": "stream", "text": [ - "[100%] Linking CXX shared module nestml_0f775d0f79724ea0b93ce09f5c1b047d_module.so\n", - "[100%] Built target nestml_0f775d0f79724ea0b93ce09f5c1b047d_module_module\n", - "[100%] Built target nestml_0f775d0f79724ea0b93ce09f5c1b047d_module_module\n", + "[100%] Linking CXX shared module nestml_87df6413058144cdbd49c0ed07b2deee_module.so\n", + "[100%] Built target nestml_87df6413058144cdbd49c0ed07b2deee_module_module\n", + "[100%] Built target nestml_87df6413058144cdbd49c0ed07b2deee_module_module\n", "Install the project...\n", "-- Install configuration: \"\"\n", - "-- Installing: /tmp/nestml_target_paiucxaj/nestml_0f775d0f79724ea0b93ce09f5c1b047d_module.so\n", - "iaf_psc_exp_dend0f775d0f79724ea0b93ce09f5c1b047d_neuron_nestml::init_state_internal_()\n", - "iaf_psc_exp_dend0f775d0f79724ea0b93ce09f5c1b047d_neuron_nestml__with_third_factor_stdp0f775d0f79724ea0b93ce09f5c1b047d_synapse_nestml::init_state_internal_()\n", + "-- Installing: /tmp/nestml_target__g6kk6gx/nestml_87df6413058144cdbd49c0ed07b2deee_module.so\n", + "iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml::init_state_internal_()\n", + "iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::init_state_internal_()\n", "\n", - "Jan 09 09:09:27 Install [Info]: \n", - " loaded module nestml_0f775d0f79724ea0b93ce09f5c1b047d_module\n" + "Jan 11 11:01:59 Install [Info]: \n", + " loaded module nestml_87df6413058144cdbd49c0ed07b2deee_module\n" ] } ], "source": [ + "%pdb\n", "# codegen_opts = {\"neuron_synapse_pairs\": [{\"neuron\": \"iaf_psc_exp_dend\",\n", "# \"synapse\": \"third_factor_stdp_synapse\",\n", "# \"post_ports\": [\"post_spikes\",\n", @@ -997,7 +1018,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 9, "metadata": {}, "outputs": [], "source": [ @@ -1008,7 +1029,8 @@ " sim_time=None, # if None, computed from pre and post spike times\n", " pre_spike_times=None,\n", " post_spike_times=None,\n", - " fname_snip=\"\"):\n", + " fname_snip=\"\",\n", + " experiment=\"\"):\n", "\n", " if pre_spike_times is None:\n", " pre_spike_times = []\n", @@ -1074,16 +1096,21 @@ " state = 0\n", " while t <= sim_time:\n", " print(\"t = \" + str(t) + \" ms\")\n", - " if t > sim_time / 6. and state == 0:\n", - " nest.SetStatus(post_neuron, {\"I_dend\": 1.})\n", - " state = 1\n", - " if t > 2 * sim_time / 6 and state == 1:\n", - " nest.SetStatus(post_neuron, {\"I_dend\": 1.})\n", - " if t > 3 * sim_time / 6. and state == 1:\n", - " state = 2\n", - " if t > 5 * sim_time / 6. and state == 2:\n", + " if experiment == \"no-updates\":\n", " nest.SetStatus(post_neuron, {\"I_dend\": 0.})\n", - " state = 3\n", + " elif experiment == \"no-filtering\":\n", + " nest.SetStatus(post_neuron, {\"I_dend\": 9999.})\n", + " else:\n", + " if t > sim_time / 6. and state == 0:\n", + " nest.SetStatus(post_neuron, {\"I_dend\": 0.})\n", + " state = 1\n", + " if t > 2 * sim_time / 6 and state == 1:\n", + " nest.SetStatus(post_neuron, {\"I_dend\": 1.})\n", + " if t > 3 * sim_time / 6. and state == 1:\n", + " state = 2\n", + " if t > 5 * sim_time / 6. and state == 2:\n", + " nest.SetStatus(post_neuron, {\"I_dend\": 0.})\n", + " state = 3\n", " nest.Simulate(resolution)\n", " t += resolution\n", " t_hist.append(t)\n", @@ -1138,7 +1165,7 @@ " ax[-3].plot(timevec, third_factor_trace)\n", " ax[-3].set_ylabel(\"3rd factor\")\n", "\n", - " ax[-2].plot(t_hist[:-1], np.diff(w_hist), marker=\"o\", label=u\"Δw\")\n", + " ax[-2].semilogy(t_hist[:-1], np.diff(w_hist), marker=\"o\", label=u\"Δw\")\n", " ax[-2].set_ylabel(u\"Δw\")\n", "\n", " ax[-1].plot(t_hist, w_hist, marker=\"o\")\n", @@ -1157,9 +1184,958 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 5, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + " -- N E S T --\n", + " Copyright (C) 2004 The NEST Initiative\n", + "\n", + " Version: 3.6.0-post0.dev0\n", + " Built: Nov 8 2023 01:11:46\n", + "\n", + " This program is provided AS IS and comes with\n", + " NO WARRANTY. See the file LICENSE for details.\n", + "\n", + " Problems or suggestions?\n", + " Visit https://www.nest-simulator.org\n", + "\n", + " Type 'nest.help()' to find out more about NEST.\n", + "\n", + "[84,GLOBAL, INFO]: The NEST Simulator version was automatically detected as: master\n", + "Pre spike times: [ 2. 4. 5. 6. 7. 8. 11. 16. 18. 21. 23. 24.\n", + " 25. 26. 28. 31. 32. 37. 38. 40. 42. 43. 45. 46.\n", + " 50. 51. 52. 53. 54. 55. 56. 58. 60. 62. 64. 65.\n", + " 68. 70. 71. 72. 73. 74. 75. 76. 78. 80. 81. 84.\n", + " 89. 91. 92. 93. 97. 100. 106. 107. 108. 109. 111. 112.\n", + " 113. 115. 116. 123. 124. 127. 128. 131. 132. 134. 135. 136.\n", + " 140. 143. 144. 145. 146. 147. 152. 157. 159. 163. 166. 169.\n", + " 170. 171. 174. 175. 176. 177. 179. 183. 187. 189. 190. 191.\n", + " 192. 193. 195. 196. 197. 202. 204. 205. 206. 208. 213. 214.\n", + " 217. 219. 223. 224. 226. 228. 231. 232. 233. 234. 235. 236.\n", + " 237. 239. 241. 243. 244. 245. 248. 249. 250. 251. 252. 253.\n", + " 254. 256. 257. 258. 260. 261. 264. 265. 266. 267. 268. 269.\n", + " 270. 273. 275. 277. 278. 285. 289. 291. 292. 293. 295. 296.\n", + " 297. 299. 302. 304. 309. 314. 316. 317. 321. 325. 329. 331.\n", + " 334. 336. 338. 339. 340. 342. 343. 345. 346. 348. 351. 355.\n", + " 362. 363. 364. 365. 369. 370. 373. 374. 375. 378. 379. 381.\n", + " 382. 383. 385. 386. 388. 389. 390. 392. 395. 396. 405. 407.\n", + " 409. 414. 416. 417. 418. 425. 430. 438. 443. 444. 447. 451.\n", + " 452. 454. 457. 458. 466. 468. 472. 473. 474. 476. 478. 479.\n", + " 480. 484. 485. 488. 493. 497. 498. 502. 504. 506. 510. 511.\n", + " 514. 515. 516. 522. 528. 529. 530. 531. 534. 540. 548. 550.\n", + " 551. 553. 560. 561. 562. 563. 567. 568. 570. 572. 576. 577.\n", + " 579. 580. 583. 586. 591. 596. 597. 600. 602. 603. 604. 614.\n", + " 615. 617. 625. 626. 628. 629. 630. 632. 634. 638. 639. 644.\n", + " 651. 655. 656. 665. 669. 671. 674. 675. 677. 681. 688. 689.\n", + " 698. 701. 704. 705. 707. 710. 712. 717. 723. 726. 729. 734.\n", + " 741. 747. 749. 751. 756. 757. 763. 764. 767. 769. 771. 777.\n", + " 789. 791. 795. 797. 801. 806. 814. 815. 824. 826. 828. 831.\n", + " 834. 839. 842. 848. 850. 855. 864. 869. 870. 873. 887. 888.\n", + " 889. 891. 895. 899. 901. 906. 922. 927. 950. 967. 972. 985.\n", + " 1002. 1003. 1055. 1059. 1090. 1128. 1130. 1132. 1157. 1175. 1193. 1195.\n", + " 1256. 1271. 1294. 1332. 1467.]\n", + "Post spike times: [ 2. 3. 4. 6. 7. 8. 9. 12. 15. 16. 17. 20.\n", + " 23. 25. 28. 30. 34. 35. 36. 37. 43. 47. 48. 49.\n", + " 50. 51. 53. 57. 58. 60. 62. 63. 64. 66. 67. 68.\n", + " 69. 73. 74. 75. 77. 79. 82. 86. 88. 89. 90. 91.\n", + " 92. 94. 97. 98. 101. 102. 103. 106. 107. 110. 111. 113.\n", + " 114. 115. 116. 118. 120. 122. 124. 126. 128. 129. 134. 136.\n", + " 138. 139. 140. 142. 143. 145. 146. 147. 148. 149. 152. 154.\n", + " 160. 161. 164. 166. 170. 171. 172. 173. 176. 177. 180. 181.\n", + " 182. 183. 184. 186. 187. 188. 189. 192. 195. 196. 198. 201.\n", + " 203. 206. 207. 208. 209. 212. 215. 216. 217. 219. 220. 221.\n", + " 222. 223. 226. 227. 228. 230. 232. 237. 238. 239. 241. 243.\n", + " 244. 247. 248. 251. 252. 254. 256. 259. 262. 263. 264. 265.\n", + " 266. 269. 270. 271. 272. 274. 277. 279. 280. 283. 285. 286.\n", + " 288. 290. 291. 293. 295. 299. 302. 303. 304. 305. 306. 307.\n", + " 309. 310. 313. 316. 317. 318. 319. 320. 321. 322. 323. 324.\n", + " 325. 328. 329. 330. 331. 337. 339. 340. 341. 345. 348. 349.\n", + " 357. 359. 360. 361. 364. 366. 367. 370. 372. 373. 377. 379.\n", + " 380. 381. 382. 384. 385. 388. 392. 393. 394. 395. 396. 398.\n", + " 400. 402. 419. 420. 425. 430. 431. 432. 438. 439. 440. 441.\n", + " 442. 443. 446. 447. 449. 451. 452. 454. 455. 456. 458. 459.\n", + " 461. 462. 463. 470. 471. 480. 483. 485. 488. 489. 491. 494.\n", + " 496. 499. 505. 508. 510. 512. 513. 514. 519. 520. 522. 525.\n", + " 527. 529. 530. 531. 533. 534. 535. 536. 538. 541. 543. 550.\n", + " 556. 561. 562. 569. 570. 572. 573. 575. 577. 584. 587. 588.\n", + " 592. 594. 604. 609. 616. 619. 620. 625. 630. 632. 634. 637.\n", + " 639. 641. 644. 645. 646. 648. 649. 650. 653. 655. 661. 665.\n", + " 669. 672. 684. 689. 693. 705. 711. 716. 721. 725. 727. 730.\n", + " 733. 741. 743. 749. 754. 760. 763. 768. 779. 780. 782. 784.\n", + " 797. 800. 804. 814. 822. 826. 847. 852. 855. 886. 900. 910.\n", + " 917. 927. 932. 940. 945. 976. 978. 996. 1008. 1014. 1026. 1040.\n", + " 1057. 1072. 1085. 1097. 1104. 1107. 1110. 1145. 1147. 1150. 1171. 1173.\n", + " 1229. 1253. 1288. 1410. 1451. 1552.]\n", + "t = 0.0 ms\n", + "t = 0.5 ms\n", + "t = 1.0 ms\n", + "t = 1.5 ms\n", + "t = 2.0 ms\n", + "t = 2.5 ms\n", + "t = 3.0 ms\n", + "t = 3.5 ms\n", + "t = 4.0 ms\n", + "t = 4.5 ms\n", + "t = 5.0 ms\n", + "t = 5.5 ms\n", + "t = 6.0 ms\n", + "t = 6.5 ms\n", + "t = 7.0 ms\n", + "t = 7.5 ms\n", + "t = 8.0 ms\n", + "t = 8.5 ms\n", + "t = 9.0 ms\n", + "t = 9.5 ms\n", + "t = 10.0 ms\n", + "t = 10.5 ms\n", + "t = 11.0 ms\n", + "t = 11.5 ms\n", + "t = 12.0 ms\n", + "t = 12.5 ms\n", + "t = 13.0 ms\n", + "t = 13.5 ms\n", + "t = 14.0 ms\n", + "t = 14.5 ms\n", + "t = 15.0 ms\n", + "t = 15.5 ms\n", + "t = 16.0 ms\n", + "t = 16.5 ms\n", + "t = 17.0 ms\n", + "t = 17.5 ms\n", + "t = 18.0 ms\n", + "t = 18.5 ms\n", + "t = 19.0 ms\n", + "t = 19.5 ms\n", + "t = 20.0 ms\n", + "t = 20.5 ms\n", + "t = 21.0 ms\n", + "t = 21.5 ms\n", + "t = 22.0 ms\n", + "t = 22.5 ms\n", + "t = 23.0 ms\n", + "t = 23.5 ms\n", + "t = 24.0 ms\n", + "t = 24.5 ms\n", + "t = 25.0 ms\n", + "t = 25.5 ms\n", + "t = 26.0 ms\n", + "t = 26.5 ms\n", + "t = 27.0 ms\n", + "t = 27.5 ms\n", + "t = 28.0 ms\n", + "t = 28.5 ms\n", + "t = 29.0 ms\n", + "t = 29.5 ms\n", + "t = 30.0 ms\n", + "t = 30.5 ms\n", + "t = 31.0 ms\n", + "t = 31.5 ms\n", + "t = 32.0 ms\n", + "t = 32.5 ms\n", + "\n", + "Jan 11 11:01:59 iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml [Warning]: \n", + " Simulation resolution has changed. Internal state and parameters of the \n", + " model have been reset!\n", + "iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml::init_state_internal_()\n", + "\n", + "Jan 11 11:01:59 iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml [Warning]: \n", + " Simulation resolution has changed. Internal state and parameters of the \n", + " model have been reset!\n", + "iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::init_state_internal_()\n", + "t = 33.0 ms\n", + "t = 33.5 ms\n", + "iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::init_buffers_()\n", + "\n", + "Jan 11 11:01:59 SimulationManager::run [Warning]: \n", + " The requested simulation time is not an integer multiple of the minimal \n", + " delay in the network. This may result in inconsistent results under the \n", + " following conditions: (i) A network contains more than one source of \n", + " randomness, e.g., two different poisson_generators, and (ii) Simulate is \n", + " called repeatedly with simulation times that are not multiples of the \n", + " minimal delay.\n", + "In iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::update (dt = 0.5)\n", + "In iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::update: t = 0.5\n", + "\n", + "Jan 11 11:01:59 SimulationManager::run [Warning]: \n", + " The requested simulation time is not an integer multiple of the minimal \n", + " delay in the network. This may result in inconsistent results under the \n", + " following conditions: (i) A network contains more than one source of \n", + " randomness, e.g., two different poisson_generators, and (ii) Simulate is \n", + " called repeatedly with simulation times that are not multiples of the \n", + " minimal delay.\n", + "In iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::update (dt = 0.5)\n", + "In iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::update: t = 1\n", + "\n", + "Jan 11 11:01:59 SimulationManager::run [Warning]: \n", + " The requested simulation time is not an integer multiple of the minimal \n", + " delay in the network. This may result in inconsistent results under the \n", + " following conditions: (i) A network contains more than one source of \n", + " randomness, e.g., two different poisson_generators, and (ii) Simulate is \n", + " called repeatedly with simulation times that are not multiples of the \n", + " minimal delay.\n", + "In iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::update (dt = 0.5)\n", + "In iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::update: t = 1.5\n", + "\n", + "Jan 11 11:01:59 SimulationManager::run [Warning]: \n", + " The requested simulation time is not an integer multiple of the minimal \n", + " delay in the network. This may result in inconsistent results under the \n", + " following conditions: (i) A network contains more than one source of \n", + " randomness, e.g., two different poisson_generators, and (ii) Simulate is \n", + " called repeatedly with simulation times that are not multiples of the \n", + " minimal delay.\n", + "In iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::update (dt = 0.5)\n", + "In iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::update: t = 2\n", + "\n", + "Jan 11 11:01:59 SimulationManager::run [Warning]: \n", + " The requested simulation time is not an integer multiple of the minimal \n", + " delay in the network. This may result in inconsistent results under the \n", + " following conditions: (i) A network contains more than one source of \n", + " randomness, e.g., two different poisson_generators, and (ii) Simulate is \n", + " called repeatedly with simulation times that are not multiples of the \n", + " minimal delay.\n", + "In iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::update (dt = 0.5)\n", + "In iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::update: t = 2.5\n", + "\n", + "Jan 11 11:01:59 SimulationManager::run [Warning]: \n", + " The requested simulation time is not an integer multiple of the minimal \n", + " delay in the network. This may result in inconsistent results under the \n", + " following conditions: (i) A network contains more than one source of \n", + " randomness, e.g., two different poisson_generators, and (ii) Simulate is \n", + " called repeatedly with simulation times that are not multiples of the \n", + " minimal delay.\n", + "[NEST] archivingnode: set_spiketime\n", + "In iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::update (dt = 0.5)\n", + "In iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::update: t = 3\n", + "\n", + "Jan 11 11:01:59 SimulationManager::run [Warning]: \n", + " The requested simulation time is not an integer multiple of the minimal \n", + " delay in the network. This may result in inconsistent results under the \n", + " following conditions: (i) A network contains more than one source of \n", + " randomness, e.g., two different poisson_generators, and (ii) Simulate is \n", + " called repeatedly with simulation times that are not multiples of the \n", + " minimal delay.\n", + "iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::get_post_trace__for_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml: getting value at t = 2\n", + "iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::get_post_trace__for_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml: \thistory empty, returning initial value = 0\n", + "In iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::update (dt = 0.5)\n", + "In iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::update: t = 3.5\n", + "\n", + "Jan 11 11:01:59 SimulationManager::run [Warning]: \n", + " The requested simulation time is not an integer multiple of the minimal \n", + " delay in the network. This may result in inconsistent results under the \n", + " following conditions: (i) A network contains more than one source of \n", + " randomness, e.g., two different poisson_generators, and (ii) Simulate is \n", + " called repeatedly with simulation times that are not multiples of the \n", + " minimal delay.\n", + "In iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::update (dt = 0.5)\n", + "In iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::update: t = 4\n", + "\n", + "Jan 11 11:01:59 SimulationManager::run [Warning]: \n", + " The requested simulation time is not an integer multiple of the minimal \n", + " delay in the network. This may result in inconsistent results under the \n", + " following conditions: (i) A network contains more than one source of \n", + " randomness, e.g., two different poisson_generators, and (ii) Simulate is \n", + " called repeatedly with simulation times that are not multiples of the \n", + " minimal delay.\n", + "In iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::update (dt = 0.5)\n", + "In iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::update: t = 4.5\n", + "\n", + "Jan 11 11:01:59 SimulationManager::run [Warning]: \n", + " The requested simulation time is not an integer multiple of the minimal \n", + " delay in the network. This may result in inconsistent results under the \n", + " following conditions: (i) A network contains more than one source of \n", + " randomness, e.g., two different poisson_generators, and (ii) Simulate is \n", + " called repeatedly with simulation times that are not multiples of the \n", + " minimal delay.\n", + "[NEST] archivingnode: set_spiketime\n", + "In iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::update (dt = 0.5)\n", + "In iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::update: t = 5\n", + "\n", + "Jan 11 11:01:59 SimulationManager::run [Warning]: \n", + " The requested simulation time is not an integer multiple of the minimal \n", + " delay in the network. This may result in inconsistent results under the \n", + " following conditions: (i) A network contains more than one source of \n", + " randomness, e.g., two different poisson_generators, and (ii) Simulate is \n", + " called repeatedly with simulation times that are not multiples of the \n", + " minimal delay.\n", + "iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::get_post_trace__for_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml: getting value at t = 4\n", + "iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::get_post_trace__for_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml: \tfall-through, returning initial value = 0\n", + "In iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::update (dt = 0.5)\n", + "In iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::update: t = 5.5\n", + "\n", + "Jan 11 11:01:59 SimulationManager::run [Warning]: \n", + " The requested simulation time is not an integer multiple of the minimal \n", + " delay in the network. This may result in inconsistent results under the \n", + " following conditions: (i) A network contains more than one source of \n", + " randomness, e.g., two different poisson_generators, and (ii) Simulate is \n", + " called repeatedly with simulation times that are not multiples of the \n", + " minimal delay.\n", + "[NEST] archivingnode: set_spiketime\n", + "In iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::update (dt = 0.5)\n", + "In iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::update: t = 6\n", + "\n", + "Jan 11 11:01:59 SimulationManager::run [Warning]: \n", + " The requested simulation time is not an integer multiple of the minimal \n", + " delay in the network. This may result in inconsistent results under the \n", + " following conditions: (i) A network contains more than one source of \n", + " randomness, e.g., two different poisson_generators, and (ii) Simulate is \n", + " called repeatedly with simulation times that are not multiples of the \n", + " minimal delay.\n", + "iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::get_post_trace__for_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml: getting value at t = 5\n", + "iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::get_post_trace__for_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml: \tspike occurred at history[i].t_ = 4\n", + "iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::get_post_trace__for_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml: \treturning 0.904837\n", + "In iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::update (dt = 0.5)\n", + "In iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::update: t = 6.5\n", + "\n", + "Jan 11 11:01:59 SimulationManager::run [Warning]: \n", + " The requested simulation time is not an integer multiple of the minimal \n", + " delay in the network. This may result in inconsistent results under the \n", + " following conditions: (i) A network contains more than one source of \n", + " randomness, e.g., two different poisson_generators, and (ii) Simulate is \n", + " called repeatedly with simulation times that are not multiples of the \n", + " minimal delay.\n", + "[NEST] archivingnode: set_spiketime\n", + "In iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::update (dt = 0.5)\n", + "In iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::update: t = 7\n", + "\n", + "Jan 11 11:01:59 SimulationManager::run [Warning]: \n", + " The requested simulation time is not an integer multiple of the minimal \n", + " delay in the network. This may result in inconsistent results under the \n", + " following conditions: (i) A network contains more than one source of \n", + " randomness, e.g., two different poisson_generators, and (ii) Simulate is \n", + " called repeatedly with simulation times that are not multiples of the \n", + " minimal delay.\n", + "iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::get_post_trace__for_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml: getting value at t = 6\n", + "iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::get_post_trace__for_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml: \tspike occurred at history[i].t_ = 4\n", + "iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::get_post_trace__for_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml: \treturning 0.818731\n", + "In iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::update (dt = 0.5)\n", + "In iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::update: t = 7.5\n", + "\n", + "Jan 11 11:01:59 SimulationManager::run [Warning]: \n", + " The requested simulation time is not an integer multiple of the minimal \n", + " delay in the network. This may result in inconsistent results under the \n", + " following conditions: (i) A network contains more than one source of \n", + " randomness, e.g., two different poisson_generators, and (ii) Simulate is \n", + " called repeatedly with simulation times that are not multiples of the \n", + " minimal delay.\n", + "[NEST] archivingnode: set_spiketime\n", + "In iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::update (dt = 0.5)\n", + "In iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::update: t = 8\n", + "\n", + "Jan 11 11:01:59 SimulationManager::run [Warning]: \n", + " The requested simulation time is not an integer multiple of the minimal \n", + " delay in the network. This may result in inconsistent results under the \n", + " following conditions: (i) A network contains more than one source of \n", + " randomness, e.g., two different poisson_generators, and (ii) Simulate is \n", + " called repeatedly with simulation times that are not multiples of the \n", + " minimal delay.\n", + "iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::get_post_trace__for_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml: getting value at t = 7\n", + "iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::get_post_trace__for_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml: \tspike occurred at history[i].t_ = 4\n", + "iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::get_post_trace__for_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml: \treturning 0.740818\n", + "In iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::update (dt = 0.5)\n", + "In iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::update: t = 8.5\n", + "\n", + "Jan 11 11:01:59 SimulationManager::run [Warning]: \n", + " The requested simulation time is not an integer multiple of the minimal \n", + " delay in the network. This may result in inconsistent results under the \n", + " following conditions: (i) A network contains more than one source of \n", + " randomness, e.g., two different poisson_generators, and (ii) Simulate is \n", + " called repeatedly with simulation times that are not multiples of the \n", + " minimal delay.\n", + "[NEST] archivingnode: set_spiketime\n", + "In iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::update (dt = 0.5)\n", + "In iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::update: t = 9\n", + "\n", + "Jan 11 11:01:59 SimulationManager::run [Warning]: \n", + " The requested simulation time is not an integer multiple of the minimal \n", + " delay in the network. This may result in inconsistent results under the \n", + " following conditions: (i) A network contains more than one source of \n", + " randomness, e.g., two different poisson_generators, and (ii) Simulate is \n", + " called repeatedly with simulation times that are not multiples of the \n", + " minimal delay.\n", + "iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::get_post_trace__for_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml: getting value at t = 8\n", + "iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::get_post_trace__for_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml: \tspike occurred at history[i].t_ = 7\n", + "iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::get_post_trace__for_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml: \treturning 1.57516\n", + "In iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::update (dt = 0.5)\n", + "In iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::update: t = 9.5\n", + "\n", + "Jan 11 11:01:59 SimulationManager::run [Warning]: \n", + " The requested simulation time is not an integer multiple of the minimal \n", + " delay in the network. This may result in inconsistent results under the \n", + " following conditions: (i) A network contains more than one source of \n", + " randomness, e.g., two different poisson_generators, and (ii) Simulate is \n", + " called repeatedly with simulation times that are not multiples of the \n", + " minimal delay.\n", + "In iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::update (dt = 0.5)\n", + "In iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::update: t = 10\n", + "\n", + "Jan 11 11:01:59 SimulationManager::run [Warning]: \n", + " The requested simulation time is not an integer multiple of the minimal \n", + " delay in the network. This may result in inconsistent results under the \n", + " following conditions: (i) A network contains more than one source of \n", + " randomness, e.g., two different poisson_generators, and (ii) Simulate is \n", + " called repeatedly with simulation times that are not multiples of the \n", + " minimal delay.\n", + "In iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::update (dt = 0.5)\n", + "In iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::update: t = 10.5\n", + "\n", + "Jan 11 11:01:59 SimulationManager::run [Warning]: \n", + " The requested simulation time is not an integer multiple of the minimal \n", + " delay in the network. This may result in inconsistent results under the \n", + " following conditions: (i) A network contains more than one source of \n", + " randomness, e.g., two different poisson_generators, and (ii) Simulate is \n", + " called repeatedly with simulation times that are not multiples of the \n", + " minimal delay.\n", + "In iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::update (dt = 0.5)\n", + "In iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::update: t = 11\n", + "\n", + "Jan 11 11:01:59 SimulationManager::run [Warning]: \n", + " The requested simulation time is not an integer multiple of the minimal \n", + " delay in the network. This may result in inconsistent results under the \n", + " following conditions: (i) A network contains more than one source of \n", + " randomness, e.g., two different poisson_generators, and (ii) Simulate is \n", + " called repeatedly with simulation times that are not multiples of the \n", + " minimal delay.\n", + "In iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::update (dt = 0.5)\n", + "In iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::update: t = 11.5\n", + "\n", + "Jan 11 11:01:59 SimulationManager::run [Warning]: \n", + " The requested simulation time is not an integer multiple of the minimal \n", + " delay in the network. This may result in inconsistent results under the \n", + " following conditions: (i) A network contains more than one source of \n", + " randomness, e.g., two different poisson_generators, and (ii) Simulate is \n", + " called repeatedly with simulation times that are not multiples of the \n", + " minimal delay.\n", + "[NEST] archivingnode: set_spiketime\n", + "In iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::update (dt = 0.5)\n", + "In iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::update: t = 12\n", + "\n", + "Jan 11 11:01:59 SimulationManager::run [Warning]: \n", + " The requested simulation time is not an integer multiple of the minimal \n", + " delay in the network. This may result in inconsistent results under the \n", + " following conditions: (i) A network contains more than one source of \n", + " randomness, e.g., two different poisson_generators, and (ii) Simulate is \n", + " called repeatedly with simulation times that are not multiples of the \n", + " minimal delay.\n", + "iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::get_post_trace__for_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml: getting value at t = 11\n", + "iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::get_post_trace__for_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml: \tspike occurred at history[i].t_ = 9.5\n", + "iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::get_post_trace__for_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml: \treturning 2.02761\n", + "In iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::update (dt = 0.5)\n", + "In iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::update: t = 12.5\n", + "\n", + "Jan 11 11:01:59 SimulationManager::run [Warning]: \n", + " The requested simulation time is not an integer multiple of the minimal \n", + " delay in the network. This may result in inconsistent results under the \n", + " following conditions: (i) A network contains more than one source of \n", + " randomness, e.g., two different poisson_generators, and (ii) Simulate is \n", + " called repeatedly with simulation times that are not multiples of the \n", + " minimal delay.\n", + "In iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::update (dt = 0.5)\n", + "In iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::update: t = 13\n", + "\n", + "Jan 11 11:01:59 SimulationManager::run [Warning]: \n", + " The requested simulation time is not an integer multiple of the minimal \n", + " delay in the network. This may result in inconsistent results under the \n", + " following conditions: (i) A network contains more than one source of \n", + " randomness, e.g., two different poisson_generators, and (ii) Simulate is \n", + " called repeatedly with simulation times that are not multiples of the \n", + " minimal delay.\n", + "In iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::update (dt = 0.5)\n", + "In iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::update: t = 13.5\n", + "\n", + "Jan 11 11:01:59 SimulationManager::run [Warning]: \n", + " The requested simulation time is not an integer multiple of the minimal \n", + " delay in the network. This may result in inconsistent results under the \n", + " following conditions: (i) A network contains more than one source of \n", + " randomness, e.g., two different poisson_generators, and (ii) Simulate is \n", + " called repeatedly with simulation times that are not multiples of the \n", + " minimal delay.\n", + "In iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::update (dt = 0.5)\n", + "In iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::update: t = 14\n", + "\n", + "Jan 11 11:01:59 SimulationManager::run [Warning]: \n", + " The requested simulation time is not an integer multiple of the minimal \n", + " delay in the network. This may result in inconsistent results under the \n", + " following conditions: (i) A network contains more than one source of \n", + " randomness, e.g., two different poisson_generators, and (ii) Simulate is \n", + " called repeatedly with simulation times that are not multiples of the \n", + " minimal delay.\n", + "In iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::update (dt = 0.5)\n", + "In iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::update: t = 14.5\n", + "\n", + "Jan 11 11:01:59 SimulationManager::run [Warning]: \n", + " The requested simulation time is not an integer multiple of the minimal \n", + " delay in the network. This may result in inconsistent results under the \n", + " following conditions: (i) A network contains more than one source of \n", + " randomness, e.g., two different poisson_generators, and (ii) Simulate is \n", + " called repeatedly with simulation times that are not multiples of the \n", + " minimal delay.\n", + "In iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::update (dt = 0.5)\n", + "In iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::update: t = 15\n", + "\n", + "Jan 11 11:01:59 SimulationManager::run [Warning]: \n", + " The requested simulation time is not an integer multiple of the minimal \n", + " delay in the network. This may result in inconsistent results under the \n", + " following conditions: (i) A network contains more than one source of \n", + " randomness, e.g., two different poisson_generators, and (ii) Simulate is \n", + " called repeatedly with simulation times that are not multiples of the \n", + " minimal delay.\n", + "In iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::update (dt = 0.5)\n", + "In iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::update: t = 15.5\n", + "\n", + "Jan 11 11:01:59 SimulationManager::run [Warning]: \n", + " The requested simulation time is not an integer multiple of the minimal \n", + " delay in the network. This may result in inconsistent results under the \n", + " following conditions: (i) A network contains more than one source of \n", + " randomness, e.g., two different poisson_generators, and (ii) Simulate is \n", + " called repeatedly with simulation times that are not multiples of the \n", + " minimal delay.\n", + "In iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::update (dt = 0.5)\n", + "In iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::update: t = 16\n", + "\n", + "Jan 11 11:01:59 SimulationManager::run [Warning]: \n", + " The requested simulation time is not an integer multiple of the minimal \n", + " delay in the network. This may result in inconsistent results under the \n", + " following conditions: (i) A network contains more than one source of \n", + " randomness, e.g., two different poisson_generators, and (ii) Simulate is \n", + " called repeatedly with simulation times that are not multiples of the \n", + " minimal delay.\n", + "In iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::update (dt = 0.5)\n", + "In iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::update: t = 16.5\n", + "\n", + "Jan 11 11:01:59 SimulationManager::run [Warning]: \n", + " The requested simulation time is not an integer multiple of the minimal \n", + " delay in the network. This may result in inconsistent results under the \n", + " following conditions: (i) A network contains more than one source of \n", + " randomness, e.g., two different poisson_generators, and (ii) Simulate is \n", + " called repeatedly with simulation times that are not multiples of the \n", + " minimal delay.\n", + "[NEST] archivingnode: set_spiketime\n", + "In iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::update (dt = 0.5)\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "In iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::update: t = 17\n", + "\n", + "Jan 11 11:01:59 SimulationManager::run [Warning]: \n", + " The requested simulation time is not an integer multiple of the minimal \n", + " delay in the network. This may result in inconsistent results under the \n", + " following conditions: (i) A network contains more than one source of \n", + " randomness, e.g., two different poisson_generators, and (ii) Simulate is \n", + " called repeatedly with simulation times that are not multiples of the \n", + " minimal delay.\n", + "iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::get_post_trace__for_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml: getting value at t = 16\n", + "iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::get_post_trace__for_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml: \tspike occurred at history[i].t_ = 12.5\n", + "iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::get_post_trace__for_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml: \treturning 1.9345\n", + "In iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::update (dt = 0.5)\n", + "In iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::update: t = 17.5\n", + "\n", + "Jan 11 11:01:59 SimulationManager::run [Warning]: \n", + " The requested simulation time is not an integer multiple of the minimal \n", + " delay in the network. This may result in inconsistent results under the \n", + " following conditions: (i) A network contains more than one source of \n", + " randomness, e.g., two different poisson_generators, and (ii) Simulate is \n", + " called repeatedly with simulation times that are not multiples of the \n", + " minimal delay.\n", + "In iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::update (dt = 0.5)\n", + "In iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::update: t = 18\n", + "\n", + "Jan 11 11:01:59 SimulationManager::run [Warning]: \n", + " The requested simulation time is not an integer multiple of the minimal \n", + " delay in the network. This may result in inconsistent results under the \n", + " following conditions: (i) A network contains more than one source of \n", + " randomness, e.g., two different poisson_generators, and (ii) Simulate is \n", + " called repeatedly with simulation times that are not multiples of the \n", + " minimal delay.\n", + "In iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::update (dt = 0.5)\n", + "In iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::update: t = 18.5\n", + "\n", + "Jan 11 11:01:59 SimulationManager::run [Warning]: \n", + " The requested simulation time is not an integer multiple of the minimal \n", + " delay in the network. This may result in inconsistent results under the \n", + " following conditions: (i) A network contains more than one source of \n", + " randomness, e.g., two different poisson_generators, and (ii) Simulate is \n", + " called repeatedly with simulation times that are not multiples of the \n", + " minimal delay.\n", + "[NEST] archivingnode: set_spiketime\n", + "In iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::update (dt = 0.5)\n", + "In iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::update: t = 19\n", + "\n", + "Jan 11 11:01:59 SimulationManager::run [Warning]: \n", + " The requested simulation time is not an integer multiple of the minimal \n", + " delay in the network. This may result in inconsistent results under the \n", + " following conditions: (i) A network contains more than one source of \n", + " randomness, e.g., two different poisson_generators, and (ii) Simulate is \n", + " called repeatedly with simulation times that are not multiples of the \n", + " minimal delay.\n", + "iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::get_post_trace__for_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml: getting value at t = 18\n", + "iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::get_post_trace__for_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml: \tspike occurred at history[i].t_ = 16\n", + "iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::get_post_trace__for_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml: \treturning 2.40256\n", + "In iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::update (dt = 0.5)\n", + "In iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::update: t = 19.5\n", + "\n", + "Jan 11 11:01:59 SimulationManager::run [Warning]: \n", + " The requested simulation time is not an integer multiple of the minimal \n", + " delay in the network. This may result in inconsistent results under the \n", + " following conditions: (i) A network contains more than one source of \n", + " randomness, e.g., two different poisson_generators, and (ii) Simulate is \n", + " called repeatedly with simulation times that are not multiples of the \n", + " minimal delay.\n", + "In iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::update (dt = 0.5)\n", + "In iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::update: t = 20\n", + "\n", + "Jan 11 11:01:59 SimulationManager::run [Warning]: \n", + " The requested simulation time is not an integer multiple of the minimal \n", + " delay in the network. This may result in inconsistent results under the \n", + " following conditions: (i) A network contains more than one source of \n", + " randomness, e.g., two different poisson_generators, and (ii) Simulate is \n", + " called repeatedly with simulation times that are not multiples of the \n", + " minimal delay.\n", + "In iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::update (dt = 0.5)\n", + "In iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::update: t = 20.5\n", + "\n", + "Jan 11 11:01:59 SimulationManager::run [Warning]: \n", + " The requested simulation time is not an integer multiple of the minimal \n", + " delay in the network. This may result in inconsistent results under the \n", + " following conditions: (i) A network contains more than one source of \n", + " randomness, e.g., two different poisson_generators, and (ii) Simulate is \n", + " called repeatedly with simulation times that are not multiples of the \n", + " minimal delay.\n", + "In iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::update (dt = 0.5)\n", + "In iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::update: t = 21\n", + "\n", + "Jan 11 11:01:59 SimulationManager::run [Warning]: \n", + " The requested simulation time is not an integer multiple of the minimal \n", + " delay in the network. This may result in inconsistent results under the \n", + " following conditions: (i) A network contains more than one source of \n", + " randomness, e.g., two different poisson_generators, and (ii) Simulate is \n", + " called repeatedly with simulation times that are not multiples of the \n", + " minimal delay.\n", + "In iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::update (dt = 0.5)\n", + "In iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::update: t = 21.5\n", + "\n", + "Jan 11 11:01:59 SimulationManager::run [Warning]: \n", + " The requested simulation time is not an integer multiple of the minimal \n", + " delay in the network. This may result in inconsistent results under the \n", + " following conditions: (i) A network contains more than one source of \n", + " randomness, e.g., two different poisson_generators, and (ii) Simulate is \n", + " called repeatedly with simulation times that are not multiples of the \n", + " minimal delay.\n", + "[NEST] archivingnode: set_spiketime\n", + "In iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::update (dt = 0.5)\n", + "In iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::update: t = 22\n", + "\n", + "Jan 11 11:01:59 SimulationManager::run [Warning]: \n", + " The requested simulation time is not an integer multiple of the minimal \n", + " delay in the network. This may result in inconsistent results under the \n", + " following conditions: (i) A network contains more than one source of \n", + " randomness, e.g., two different poisson_generators, and (ii) Simulate is \n", + " called repeatedly with simulation times that are not multiples of the \n", + " minimal delay.\n", + "iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::get_post_trace__for_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml: getting value at t = 21\n", + "iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::get_post_trace__for_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml: \tspike occurred at history[i].t_ = 18.5\n", + "iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::get_post_trace__for_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml: \treturning 2.55866\n", + "In iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::update (dt = 0.5)\n", + "In iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::update: t = 22.5\n", + "\n", + "Jan 11 11:01:59 SimulationManager::run [Warning]: \n", + " The requested simulation time is not an integer multiple of the minimal \n", + " delay in the network. This may result in inconsistent results under the \n", + " following conditions: (i) A network contains more than one source of \n", + " randomness, e.g., two different poisson_generators, and (ii) Simulate is \n", + " called repeatedly with simulation times that are not multiples of the \n", + " minimal delay.\n", + "In iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::update (dt = 0.5)\n", + "In iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::update: t = 23\n", + "\n", + "Jan 11 11:01:59 SimulationManager::run [Warning]: \n", + " The requested simulation time is not an integer multiple of the minimal \n", + " delay in the network. This may result in inconsistent results under the \n", + " following conditions: (i) A network contains more than one source of \n", + " randomness, e.g., two different poisson_generators, and (ii) Simulate is \n", + " called repeatedly with simulation times that are not multiples of the \n", + " minimal delay.\n", + "In iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::update (dt = 0.5)\n", + "In iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::update: t = 23.5\n", + "\n", + "Jan 11 11:01:59 SimulationManager::run [Warning]: \n", + " The requested simulation time is not an integer multiple of the minimal \n", + " delay in the network. This may result in inconsistent results under the \n", + " following conditions: (i) A network contains more than one source of \n", + " randomness, e.g., two different poisson_generators, and (ii) Simulate is \n", + " called repeatedly with simulation times that are not multiples of the \n", + " minimal delay.\n", + "[NEST] archivingnode: set_spiketime\n", + "In iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::update (dt = 0.5)\n", + "In iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::update: t = 24\n", + "\n", + "Jan 11 11:01:59 SimulationManager::run [Warning]: \n", + " The requested simulation time is not an integer multiple of the minimal \n", + " delay in the network. This may result in inconsistent results under the \n", + " following conditions: (i) A network contains more than one source of \n", + " randomness, e.g., two different poisson_generators, and (ii) Simulate is \n", + " called repeatedly with simulation times that are not multiples of the \n", + " minimal delay.\n", + "iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::get_post_trace__for_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml: getting value at t = 23\n", + "iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::get_post_trace__for_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml: \tspike occurred at history[i].t_ = 21.5\n", + "iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::get_post_trace__for_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml: \treturning 2.95556\n", + "In iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::update (dt = 0.5)\n", + "In iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::update: t = 24.5\n", + "\n", + "Jan 11 11:01:59 SimulationManager::run [Warning]: \n", + " The requested simulation time is not an integer multiple of the minimal \n", + " delay in the network. This may result in inconsistent results under the \n", + " following conditions: (i) A network contains more than one source of \n", + " randomness, e.g., two different poisson_generators, and (ii) Simulate is \n", + " called repeatedly with simulation times that are not multiples of the \n", + " minimal delay.\n", + "[NEST] archivingnode: set_spiketime\n", + "In iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::update (dt = 0.5)\n", + "In iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::update: t = 25\n", + "\n", + "Jan 11 11:01:59 SimulationManager::run [Warning]: \n", + " The requested simulation time is not an integer multiple of the minimal \n", + " delay in the network. This may result in inconsistent results under the \n", + " following conditions: (i) A network contains more than one source of \n", + " randomness, e.g., two different poisson_generators, and (ii) Simulate is \n", + " called repeatedly with simulation times that are not multiples of the \n", + " minimal delay.\n", + "iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::get_post_trace__for_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml: getting value at t = 24\n", + "iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::get_post_trace__for_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml: \tspike occurred at history[i].t_ = 21.5\n", + "iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::get_post_trace__for_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml: \treturning 2.67431\n", + "In iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::update (dt = 0.5)\n", + "In iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::update: t = 25.5\n", + "\n", + "Jan 11 11:01:59 SimulationManager::run [Warning]: \n", + " The requested simulation time is not an integer multiple of the minimal \n", + " delay in the network. This may result in inconsistent results under the \n", + " following conditions: (i) A network contains more than one source of \n", + " randomness, e.g., two different poisson_generators, and (ii) Simulate is \n", + " called repeatedly with simulation times that are not multiples of the \n", + " minimal delay.\n", + "[NEST] archivingnode: set_spiketime\n", + "In iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::update (dt = 0.5)\n", + "In iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::update: t = 26\n", + "\n", + "Jan 11 11:01:59 SimulationManager::run [Warning]: \n", + " The requested simulation time is not an integer multiple of the minimal \n", + " delay in the network. This may result in inconsistent results under the \n", + " following conditions: (i) A network contains more than one source of \n", + " randomness, e.g., two different poisson_generators, and (ii) Simulate is \n", + " called repeatedly with simulation times that are not multiples of the \n", + " minimal delay.\n", + "iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::get_post_trace__for_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml: getting value at t = 25\n", + "iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::get_post_trace__for_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml: \tspike occurred at history[i].t_ = 24.5\n", + "iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::get_post_trace__for_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml: \treturning 3.37104\n", + "In iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::update (dt = 0.5)\n", + "In iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::update: t = 26.5\n", + "\n", + "Jan 11 11:01:59 SimulationManager::run [Warning]: \n", + " The requested simulation time is not an integer multiple of the minimal \n", + " delay in the network. This may result in inconsistent results under the \n", + " following conditions: (i) A network contains more than one source of \n", + " randomness, e.g., two different poisson_generators, and (ii) Simulate is \n", + " called repeatedly with simulation times that are not multiples of the \n", + " minimal delay.\n", + "[NEST] archivingnode: set_spiketime\n", + "In iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::update (dt = 0.5)\n", + "In iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::update: t = 27\n", + "\n", + "Jan 11 11:01:59 SimulationManager::run [Warning]: \n", + " The requested simulation time is not an integer multiple of the minimal \n", + " delay in the network. This may result in inconsistent results under the \n", + " following conditions: (i) A network contains more than one source of \n", + " randomness, e.g., two different poisson_generators, and (ii) Simulate is \n", + " called repeatedly with simulation times that are not multiples of the \n", + " minimal delay.\n", + "iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::get_post_trace__for_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml: getting value at t = 26\n", + "iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::get_post_trace__for_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml: \tspike occurred at history[i].t_ = 24.5\n", + "iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::get_post_trace__for_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml: \treturning 3.05024\n", + "In iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::update (dt = 0.5)\n", + "In iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::update: t = 27.5\n", + "\n", + "Jan 11 11:01:59 SimulationManager::run [Warning]: \n", + " The requested simulation time is not an integer multiple of the minimal \n", + " delay in the network. This may result in inconsistent results under the \n", + " following conditions: (i) A network contains more than one source of \n", + " randomness, e.g., two different poisson_generators, and (ii) Simulate is \n", + " called repeatedly with simulation times that are not multiples of the \n", + " minimal delay.\n", + "In iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::update (dt = 0.5)\n", + "In iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::update: t = 28\n", + "\n", + "Jan 11 11:01:59 SimulationManager::run [Warning]: \n", + " The requested simulation time is not an integer multiple of the minimal \n", + " delay in the network. This may result in inconsistent results under the \n", + " following conditions: (i) A network contains more than one source of \n", + " randomness, e.g., two different poisson_generators, and (ii) Simulate is \n", + " called repeatedly with simulation times that are not multiples of the \n", + " minimal delay.\n", + "In iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::update (dt = 0.5)\n", + "In iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::update: t = 28.5\n", + "\n", + "Jan 11 11:01:59 SimulationManager::run [Warning]: \n", + " The requested simulation time is not an integer multiple of the minimal \n", + " delay in the network. This may result in inconsistent results under the \n", + " following conditions: (i) A network contains more than one source of \n", + " randomness, e.g., two different poisson_generators, and (ii) Simulate is \n", + " called repeatedly with simulation times that are not multiples of the \n", + " minimal delay.\n", + "[NEST] archivingnode: set_spiketime\n", + "In iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::update (dt = 0.5)\n", + "In iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::update: t = 29\n", + "\n", + "Jan 11 11:01:59 SimulationManager::run [Warning]: \n", + " The requested simulation time is not an integer multiple of the minimal \n", + " delay in the network. This may result in inconsistent results under the \n", + " following conditions: (i) A network contains more than one source of \n", + " randomness, e.g., two different poisson_generators, and (ii) Simulate is \n", + " called repeatedly with simulation times that are not multiples of the \n", + " minimal delay.\n", + "iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::get_post_trace__for_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml: getting value at t = 28\n", + "iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::get_post_trace__for_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml: \tspike occurred at history[i].t_ = 27.5\n", + "iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::get_post_trace__for_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml: \treturning 3.44856\n", + "In iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::update (dt = 0.5)\n", + "In iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::update: t = 29.5\n", + "\n", + "Jan 11 11:01:59 SimulationManager::run [Warning]: \n", + " The requested simulation time is not an integer multiple of the minimal \n", + " delay in the network. This may result in inconsistent results under the \n", + " following conditions: (i) A network contains more than one source of \n", + " randomness, e.g., two different poisson_generators, and (ii) Simulate is \n", + " called repeatedly with simulation times that are not multiples of the \n", + " minimal delay.\n", + "In iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::update (dt = 0.5)\n", + "In iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::update: t = 30\n", + "\n", + "Jan 11 11:01:59 SimulationManager::run [Warning]: \n", + " The requested simulation time is not an integer multiple of the minimal \n", + " delay in the network. This may result in inconsistent results under the \n", + " following conditions: (i) A network contains more than one source of \n", + " randomness, e.g., two different poisson_generators, and (ii) Simulate is \n", + " called repeatedly with simulation times that are not multiples of the \n", + " minimal delay.\n", + "In iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::update (dt = 0.5)\n", + "In iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::update: t = 30.5\n", + "\n", + "Jan 11 11:01:59 SimulationManager::run [Warning]: \n", + " The requested simulation time is not an integer multiple of the minimal \n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + " delay in the network. This may result in inconsistent results under the \n", + " following conditions: (i) A network contains more than one source of \n", + " randomness, e.g., two different poisson_generators, and (ii) Simulate is \n", + " called repeatedly with simulation times that are not multiples of the \n", + " minimal delay.\n", + "In iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::update (dt = 0.5)\n", + "In iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::update: t = 31\n", + "\n", + "Jan 11 11:01:59 SimulationManager::run [Warning]: \n", + " The requested simulation time is not an integer multiple of the minimal \n", + " delay in the network. This may result in inconsistent results under the \n", + " following conditions: (i) A network contains more than one source of \n", + " randomness, e.g., two different poisson_generators, and (ii) Simulate is \n", + " called repeatedly with simulation times that are not multiples of the \n", + " minimal delay.\n", + "In iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::update (dt = 0.5)\n", + "In iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::update: t = 31.5\n", + "\n", + "Jan 11 11:01:59 SimulationManager::run [Warning]: \n", + " The requested simulation time is not an integer multiple of the minimal \n", + " delay in the network. This may result in inconsistent results under the \n", + " following conditions: (i) A network contains more than one source of \n", + " randomness, e.g., two different poisson_generators, and (ii) Simulate is \n", + " called repeatedly with simulation times that are not multiples of the \n", + " minimal delay.\n", + "[NEST] archivingnode: set_spiketime\n", + "In iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::update (dt = 0.5)\n", + "In iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::update: t = 32\n", + "\n", + "Jan 11 11:01:59 SimulationManager::run [Warning]: \n", + " The requested simulation time is not an integer multiple of the minimal \n", + " delay in the network. This may result in inconsistent results under the \n", + " following conditions: (i) A network contains more than one source of \n", + " randomness, e.g., two different poisson_generators, and (ii) Simulate is \n", + " called repeatedly with simulation times that are not multiples of the \n", + " minimal delay.\n", + "iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::get_post_trace__for_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml: getting value at t = 31\n", + "iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::get_post_trace__for_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml: \tspike occurred at history[i].t_ = 30.5\n", + "iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::get_post_trace__for_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml: \treturning 3.50598\n", + "In iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::update (dt = 0.5)\n", + "In iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::update: t = 32.5\n", + "\n", + "Jan 11 11:01:59 SimulationManager::run [Warning]: \n", + " The requested simulation time is not an integer multiple of the minimal \n", + " delay in the network. This may result in inconsistent results under the \n", + " following conditions: (i) A network contains more than one source of \n", + " randomness, e.g., two different p" + ] + }, + { + "ename": "KeyboardInterrupt", + "evalue": "", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mKeyboardInterrupt\u001b[0m Traceback (most recent call last)", + "Cell \u001b[0;32mIn [5], line 7\u001b[0m\n\u001b[1;32m 4\u001b[0m pre_spike_times \u001b[38;5;241m=\u001b[39m np\u001b[38;5;241m.\u001b[39msort(np\u001b[38;5;241m.\u001b[39munique(\u001b[38;5;241m1\u001b[39m \u001b[38;5;241m+\u001b[39m np\u001b[38;5;241m.\u001b[39mround(\u001b[38;5;241m500\u001b[39m \u001b[38;5;241m*\u001b[39m np\u001b[38;5;241m.\u001b[39msort(np\u001b[38;5;241m.\u001b[39mabs(np\u001b[38;5;241m.\u001b[39mrandom\u001b[38;5;241m.\u001b[39mrandn(\u001b[38;5;241m500\u001b[39m)))))) \u001b[38;5;66;03m# [ms]\u001b[39;00m\n\u001b[1;32m 6\u001b[0m \u001b[38;5;66;03m# run the simulation\u001b[39;00m\n\u001b[0;32m----> 7\u001b[0m timevec, t_hist, third_factor_trace, w_hist \u001b[38;5;241m=\u001b[39m \u001b[43mrun_synapse_test\u001b[49m\u001b[43m(\u001b[49m\u001b[43mneuron_model_name\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mneuron_model_name\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 8\u001b[0m \u001b[43m \u001b[49m\u001b[43msynapse_model_name\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43msynapse_model_name\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 9\u001b[0m \u001b[43m \u001b[49m\u001b[43mresolution\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;241;43m.5\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;66;43;03m# [ms]\u001b[39;49;00m\n\u001b[1;32m 10\u001b[0m \u001b[43m \u001b[49m\u001b[43mdelay\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;241;43m1.5\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;66;43;03m# [ms]\u001b[39;49;00m\n\u001b[1;32m 11\u001b[0m \u001b[43m \u001b[49m\u001b[43mpre_spike_times\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mpre_spike_times\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 12\u001b[0m \u001b[43m \u001b[49m\u001b[43mpost_spike_times\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mpost_spike_times\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 13\u001b[0m \u001b[43m \u001b[49m\u001b[43msim_time\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;241;43m400.\u001b[39;49m\u001b[43m,\u001b[49m\n\u001b[1;32m 14\u001b[0m \u001b[43m \u001b[49m\u001b[43mfname_snip\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mfname_snip\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 16\u001b[0m \u001b[38;5;66;03m# verify\u001b[39;00m\n\u001b[1;32m 17\u001b[0m \u001b[38;5;28;01massert\u001b[39;00m np\u001b[38;5;241m.\u001b[39many(np\u001b[38;5;241m.\u001b[39mabs(np\u001b[38;5;241m.\u001b[39marray(w_hist) \u001b[38;5;241m-\u001b[39m \u001b[38;5;241m1\u001b[39m) \u001b[38;5;241m>\u001b[39m \u001b[38;5;241m0.\u001b[39m), \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mNo change in the weight!\u001b[39m\u001b[38;5;124m\"\u001b[39m\n", + "Cell \u001b[0;32mIn [4], line 90\u001b[0m, in \u001b[0;36mrun_synapse_test\u001b[0;34m(neuron_model_name, synapse_model_name, resolution, delay, sim_time, pre_spike_times, post_spike_times, fname_snip, experiment)\u001b[0m\n\u001b[1;32m 88\u001b[0m nest\u001b[38;5;241m.\u001b[39mSetStatus(post_neuron, {\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mI_dend\u001b[39m\u001b[38;5;124m\"\u001b[39m: \u001b[38;5;241m0.\u001b[39m})\n\u001b[1;32m 89\u001b[0m state \u001b[38;5;241m=\u001b[39m \u001b[38;5;241m3\u001b[39m\n\u001b[0;32m---> 90\u001b[0m \u001b[43mnest\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mSimulate\u001b[49m\u001b[43m(\u001b[49m\u001b[43mresolution\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 91\u001b[0m t \u001b[38;5;241m+\u001b[39m\u001b[38;5;241m=\u001b[39m resolution\n\u001b[1;32m 92\u001b[0m t_hist\u001b[38;5;241m.\u001b[39mappend(t)\n", + "File \u001b[0;32m~/julich/nest-simulator-install/lib/python3.11/site-packages/nest/ll_api.py:216\u001b[0m, in \u001b[0;36mstack_checker..stack_checker_func\u001b[0;34m(*args, **kwargs)\u001b[0m\n\u001b[1;32m 213\u001b[0m \u001b[38;5;129m@functools\u001b[39m\u001b[38;5;241m.\u001b[39mwraps(f)\n\u001b[1;32m 214\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mstack_checker_func\u001b[39m(\u001b[38;5;241m*\u001b[39margs, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs):\n\u001b[1;32m 215\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m get_debug():\n\u001b[0;32m--> 216\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mf\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 217\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m 218\u001b[0m sr(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mcount\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n", + "File \u001b[0;32m~/julich/nest-simulator-install/lib/python3.11/site-packages/nest/lib/hl_api_simulation.py:65\u001b[0m, in \u001b[0;36mSimulate\u001b[0;34m(t)\u001b[0m\n\u001b[1;32m 49\u001b[0m \u001b[38;5;250m\u001b[39m\u001b[38;5;124;03m\"\"\"Simulate the network for `t` milliseconds.\u001b[39;00m\n\u001b[1;32m 50\u001b[0m \n\u001b[1;32m 51\u001b[0m \u001b[38;5;124;03m`Simulate(t)` runs `Prepare()`, `Run(t)`, and `Cleanup()` in this order.\u001b[39;00m\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 61\u001b[0m \n\u001b[1;32m 62\u001b[0m \u001b[38;5;124;03m\"\"\"\u001b[39;00m\n\u001b[1;32m 64\u001b[0m sps(\u001b[38;5;28mfloat\u001b[39m(t))\n\u001b[0;32m---> 65\u001b[0m \u001b[43msr\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mms Simulate\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m)\u001b[49m\n", + "File \u001b[0;32m~/julich/nest-simulator-install/lib/python3.11/site-packages/nest/ll_api.py:95\u001b[0m, in \u001b[0;36mcatching_sli_run\u001b[0;34m(cmd)\u001b[0m\n\u001b[1;32m 81\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mcatching_sli_run\u001b[39m(cmd):\n\u001b[1;32m 82\u001b[0m \u001b[38;5;250m \u001b[39m\u001b[38;5;124;03m\"\"\"Send a command string to the NEST kernel to be executed, catch\u001b[39;00m\n\u001b[1;32m 83\u001b[0m \u001b[38;5;124;03m SLI errors and re-raise them in Python.\u001b[39;00m\n\u001b[1;32m 84\u001b[0m \n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 92\u001b[0m \u001b[38;5;124;03m SLI errors are bubbled to the Python API as NESTErrors.\u001b[39;00m\n\u001b[1;32m 93\u001b[0m \u001b[38;5;124;03m \"\"\"\u001b[39;00m\n\u001b[0;32m---> 95\u001b[0m \u001b[43mengine\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mrun\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43m{\u001b[39;49m\u001b[38;5;132;43;01m%s\u001b[39;49;00m\u001b[38;5;124;43m} runprotected\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m \u001b[49m\u001b[38;5;241;43m%\u001b[39;49m\u001b[43m \u001b[49m\u001b[43mcmd\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 96\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m sli_pop():\n\u001b[1;32m 97\u001b[0m errorname \u001b[38;5;241m=\u001b[39m sli_pop()\n", + "\u001b[0;31mKeyboardInterrupt\u001b[0m: " + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "oisson_generators, and (ii) Simulate is \n", + " called repeatedly with simulation times that are not multiples of the \n", + " minimal delay.\n", + "[NEST] archivingnode: set_spiketime\n", + "In iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::update (dt = 0.5)\n", + "In iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::update: t = 33\n", + "\n", + "Jan 11 11:01:59 SimulationManager::run [Warning]: \n", + " The requested simulation time is not an integer multiple of the minimal \n", + " delay in the network. This may result in inconsistent results under the \n", + " following conditions: (i) A network contains more than one source of \n", + " randomness, e.g., two different poisson_generators, and (ii) Simulate is \n", + " called repeatedly with simulation times that are not multiples of the \n", + " minimal delay.\n", + "iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::get_post_trace__for_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml: getting value at t = 32\n", + "iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::get_post_trace__for_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml: \tspike occurred at history[i].t_ = 30.5\n", + "iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::get_post_trace__for_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml: \treturning 3.17235\n", + "In iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::update (dt = 0.5)\n", + "In iaf_psc_exp_dend87df6413058144cdbd49c0ed07b2deee_neuron_nestml__with_third_factor_stdp87df6413058144cdbd49c0ed07b2deee_synapse_nestml::update: t = 33.5\n", + "\n", + "Jan 11 11:01:59 SimulationManager::run [Warning]: \n", + " The requested simulation time is not an integer multiple of the minimal \n", + " delay in the network. This may result in inconsistent results under the \n", + " following conditions: (i) A network contains more than one source of \n", + "> \u001b[0;32m/home/charl/julich/nest-simulator-install/lib/python3.11/site-packages/nest/ll_api.py\u001b[0m(95)\u001b[0;36mcatching_sli_run\u001b[0;34m()\u001b[0m\n", + "\u001b[0;32m 93 \u001b[0;31m \"\"\"\n", + "\u001b[0m\u001b[0;32m 94 \u001b[0;31m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0m\u001b[0;32m---> 95 \u001b[0;31m \u001b[0mengine\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mrun\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"{%s} runprotected\"\u001b[0m \u001b[0;34m%\u001b[0m \u001b[0mcmd\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0m\u001b[0;32m 96 \u001b[0;31m \u001b[0;32mif\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0msli_pop\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0m\u001b[0;32m 97 \u001b[0;31m \u001b[0merrorname\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0msli_pop\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0m\n", + "ipdb> q\n" + ] + } + ], "source": [ "fname_snip = \"\"\n", "\n", @@ -1201,14 +2177,1157 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 6, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + " -- N E S T --\n", + " Copyright (C) 2004 The NEST Initiative\n", + "\n", + " Version: 3.6.0-post0.dev0\n", + " Built: Nov 8 2023 01:11:46\n", + "\n", + " This program is provided AS IS and comes with\n", + " NO WARRANTY. See the file LICENSE for details.\n", + "\n", + " Problems or suggestions?\n", + " Visit https://www.nest-simulator.org\n", + "\n", + " Type 'nest.help()' to find out more about NEST.\n", + "\n", + "[85,GLOBAL, INFO]: The NEST Simulator version was automatically detected as: master\n", + "Pre spike times: [15.0, 40.0, 70.0, 100.0]\n", + "Post spike times: [20.0, 45.0, 75.0]\n", + "t = 0.0 ms\n", + "t = 0.1 ms\n", + "t = 0.2 ms\n", + "t = 0.30000000000000004 ms\n", + "t = 0.4 ms\n", + "t = 0.5 ms\n", + "t = 0.6 ms\n", + "t = 0.7 ms\n", + "t = 0.7999999999999999 ms\n", + "t = 0.8999999999999999 ms\n", + "t = 0.9999999999999999 ms\n", + "t = 1.0999999999999999 ms\n", + "t = 1.2 ms\n", + "t = 1.3 ms\n", + "t = 1.4000000000000001 ms\n", + "t = 1.5000000000000002 ms\n", + "t = 1.6000000000000003 ms\n", + "t = 1.7000000000000004 ms\n", + "t = 1.8000000000000005 ms\n", + "t = 1.9000000000000006 ms\n", + "t = 2.0000000000000004 ms\n", + "t = 2.1000000000000005 ms\n", + "t = 2.2000000000000006 ms\n", + "t = 2.3000000000000007 ms\n", + "t = 2.400000000000001 ms\n", + "t = 2.500000000000001 ms\n", + "t = 2.600000000000001 ms\n", + "t = 2.700000000000001 ms\n", + "t = 2.800000000000001 ms\n", + "t = 2.9000000000000012 ms\n", + "t = 3.0000000000000013 ms\n", + "t = 3.1000000000000014 ms\n", + "t = 3.2000000000000015 ms\n", + "t = 3.3000000000000016 ms\n", + "t = 3.4000000000000017 ms\n", + "t = 3.5000000000000018 ms\n", + "t = 3.600000000000002 ms\n", + "t = 3.700000000000002 ms\n", + "t = 3.800000000000002 ms\n", + "t = 3.900000000000002 ms\n", + "t = 4.000000000000002 ms\n", + "t = 4.100000000000001 ms\n", + "t = 4.200000000000001 ms\n", + "t = 4.300000000000001 ms\n", + "t = 4.4 ms\n", + "t = 4.5 ms\n", + "t = 4.6 ms\n", + "t = 4.699999999999999 ms\n", + "t = 4.799999999999999 ms\n", + "t = 4.899999999999999 ms\n", + "t = 4.999999999999998 ms\n", + "t = 5.099999999999998 ms\n", + "t = 5.1999999999999975 ms\n", + "t = 5.299999999999997 ms\n", + "t = 5.399999999999997 ms\n", + "t = 5.4999999999999964 ms\n", + "t = 5.599999999999996 ms\n", + "t = 5.699999999999996 ms\n", + "t = 5.799999999999995 ms\n", + "t = 5.899999999999995 ms\n", + "t = 5.999999999999995 ms\n", + "t = 6.099999999999994 ms\n", + "t = 6.199999999999994 ms\n", + "t = 6.299999999999994 ms\n", + "t = 6.399999999999993 ms\n", + "t = 6.499999999999993 ms\n", + "t = 6.5999999999999925 ms\n", + "t = 6.699999999999992 ms\n", + "t = 6.799999999999992 ms\n", + "t = 6.8999999999999915 ms\n", + "t = 6.999999999999991 ms\n", + "t = 7.099999999999991 ms\n", + "t = 7.19999999999999 ms\n", + "t = 7.29999999999999 ms\n", + "t = 7.39999999999999 ms\n", + "t = 7.499999999999989 ms\n", + "t = 7.599999999999989 ms\n", + "t = 7.699999999999989 ms\n", + "t = 7.799999999999988 ms\n", + "t = 7.899999999999988 ms\n", + "t = 7.999999999999988 ms\n", + "t = 8.099999999999987 ms\n", + "t = 8.199999999999987 ms\n", + "t = 8.299999999999986 ms\n", + "t = 8.399999999999986 ms\n", + "t = 8.499999999999986 ms\n", + "t = 8.599999999999985 ms\n", + "t = 8.699999999999985 ms\n", + "t = 8.799999999999985 ms\n", + "t = 8.899999999999984 ms\n", + "t = 8.999999999999984 ms\n", + "t = 9.099999999999984 ms\n", + "t = 9.199999999999983 ms\n", + "t = 9.299999999999983 ms\n", + "t = 9.399999999999983 ms\n", + "t = 9.499999999999982 ms\n", + "t = 9.599999999999982 ms\n", + "t = 9.699999999999982 ms\n", + "t = 9.799999999999981 ms\n", + "t = 9.89999999999998 ms\n", + "t = 9.99999999999998 ms\n", + "t = 10.09999999999998 ms\n", + "t = 10.19999999999998 ms\n", + "t = 10.29999999999998 ms\n", + "t = 10.399999999999979 ms\n", + "t = 10.499999999999979 ms\n", + "t = 10.599999999999978 ms\n", + "t = 10.699999999999978 ms\n", + "t = 10.799999999999978 ms\n", + "t = 10.899999999999977 ms\n", + "t = 10.999999999999977 ms\n", + "t = 11.099999999999977 ms\n", + "t = 11.199999999999976 ms\n", + "t = 11.299999999999976 ms\n", + "t = 11.399999999999975 ms\n", + "t = 11.499999999999975 ms\n", + "t = 11.599999999999975 ms\n", + "t = 11.699999999999974 ms\n", + "t = 11.799999999999974 ms\n", + "t = 11.899999999999974 ms\n", + "t = 11.999999999999973 ms\n", + "t = 12.099999999999973 ms\n", + "t = 12.199999999999973 ms\n", + "t = 12.299999999999972 ms\n", + "t = 12.399999999999972 ms\n", + "t = 12.499999999999972 ms\n", + "t = 12.599999999999971 ms\n", + "t = 12.69999999999997 ms\n", + "t = 12.79999999999997 ms\n", + "t = 12.89999999999997 ms\n", + "t = 12.99999999999997 ms\n", + "t = 13.09999999999997 ms\n", + "t = 13.199999999999969 ms\n", + "t = 13.299999999999969 ms\n", + "t = 13.399999999999968 ms\n", + "t = 13.499999999999968 ms\n", + "t = 13.599999999999968 ms\n", + "t = 13.699999999999967 ms\n", + "t = 13.799999999999967 ms\n", + "t = 13.899999999999967 ms\n", + "t = 13.999999999999966 ms\n", + "t = 14.099999999999966 ms\n", + "t = 14.199999999999966 ms\n", + "t = 14.299999999999965 ms\n", + "t = 14.399999999999965 ms\n", + "t = 14.499999999999964 ms\n", + "t = 14.599999999999964 ms\n", + "t = 14.699999999999964 ms\n", + "t = 14.799999999999963 ms\n", + "t = 14.899999999999963 ms\n", + "t = 14.999999999999963 ms\n", + "t = 15.099999999999962 ms\n", + "t = 15.199999999999962 ms\n", + "t = 15.299999999999962 ms\n", + "t = 15.399999999999961 ms\n", + "t = 15.499999999999961 ms\n", + "t = 15.59999999999996 ms\n", + "t = 15.69999999999996 ms\n", + "t = 15.79999999999996 ms\n", + "t = 15.89999999999996 ms\n", + "t = 15.99999999999996 ms\n", + "t = 16.09999999999996 ms\n", + "t = 16.19999999999996 ms\n", + "t = 16.29999999999996 ms\n", + "t = 16.399999999999963 ms\n", + "t = 16.499999999999964 ms\n", + "t = 16.599999999999966 ms\n", + "t = 16.699999999999967 ms\n", + "t = 16.79999999999997 ms\n", + "t = 16.89999999999997 ms\n", + "t = 16.99999999999997 ms\n", + "t = 17.099999999999973 ms\n", + "t = 17.199999999999974 ms\n", + "t = 17.299999999999976 ms\n", + "t = 17.399999999999977 ms\n", + "t = 17.49999999999998 ms\n", + "t = 17.59999999999998 ms\n", + "t = 17.69999999999998 ms\n", + "t = 17.799999999999983 ms\n", + "t = 17.899999999999984 ms\n", + "t = 17.999999999999986 ms\n", + "t = 18.099999999999987 ms\n", + "t = 18.19999999999999 ms\n", + "t = 18.29999999999999 ms\n", + "t = 18.39999999999999 ms\n", + "t = 18.499999999999993 ms\n", + "t = 18.599999999999994 ms\n", + "t = 18.699999999999996 ms\n", + "t = 18.799999999999997 ms\n", + "t = 18.9 ms\n", + "t = 19.0 ms\n", + "t = 19.1 ms\n", + "t = 19.200000000000003 ms\n", + "t = 19.300000000000004 ms\n", + "t = 19.400000000000006 ms\n", + "t = 19.500000000000007 ms\n", + "t = 19.60000000000001 ms\n", + "t = 19.70000000000001 ms\n", + "t = 19.80000000000001 ms\n", + "t = 19.900000000000013 ms\n", + "t = 20.000000000000014 ms\n", + "t = 20.100000000000016 ms\n", + "t = 20.200000000000017 ms\n", + "t = 20.30000000000002 ms\n", + "t = 20.40000000000002 ms\n", + "t = 20.50000000000002 ms\n", + "t = 20.600000000000023 ms\n", + "t = 20.700000000000024 ms\n", + "t = 20.800000000000026 ms\n", + "t = 20.900000000000027 ms\n", + "t = 21.00000000000003 ms\n", + "t = 21.10000000000003 ms\n", + "t = 21.20000000000003 ms\n", + "t = 21.300000000000033 ms\n", + "t = 21.400000000000034 ms\n", + "t = 21.500000000000036 ms\n", + "t = 21.600000000000037 ms\n", + "t = 21.70000000000004 ms\n", + "t = 21.80000000000004 ms\n", + "t = 21.90000000000004 ms\n", + "t = 22.000000000000043 ms\n", + "t = 22.100000000000044 ms\n", + "t = 22.200000000000045 ms\n", + "t = 22.300000000000047 ms\n", + "t = 22.40000000000005 ms\n", + "t = 22.50000000000005 ms\n", + "t = 22.60000000000005 ms\n", + "t = 22.700000000000053 ms\n", + "t = 22.800000000000054 ms\n", + "t = 22.900000000000055 ms\n", + "t = 23.000000000000057 ms\n", + "t = 23.10000000000006 ms\n", + "t = 23.20000000000006 ms\n", + "t = 23.30000000000006 ms\n", + "t = 23.400000000000063 ms\n", + "t = 23.500000000000064 ms\n", + "t = 23.600000000000065 ms\n", + "t = 23.700000000000067 ms\n", + "t = 23.800000000000068 ms\n", + "t = 23.90000000000007 ms\n", + "t = 24.00000000000007 ms\n", + "t = 24.100000000000072 ms\n", + "t = 24.200000000000074 ms\n", + "t = 24.300000000000075 ms\n", + "t = 24.400000000000077 ms\n", + "t = 24.500000000000078 ms\n", + "t = 24.60000000000008 ms\n", + "t = 24.70000000000008 ms\n", + "t = 24.800000000000082 ms\n", + "t = 24.900000000000084 ms\n", + "t = 25.000000000000085 ms\n", + "t = 25.100000000000087 ms\n", + "t = 25.200000000000088 ms\n", + "t = 25.30000000000009 ms\n", + "t = 25.40000000000009 ms\n", + "t = 25.500000000000092 ms\n", + "t = 25.600000000000094 ms\n", + "t = 25.700000000000095 ms\n", + "t = 25.800000000000097 ms\n", + "t = 25.900000000000098 ms\n", + "t = 26.0000000000001 ms\n", + "t = 26.1000000000001 ms\n", + "t = 26.200000000000102 ms\n", + "t = 26.300000000000104 ms\n", + "t = 26.400000000000105 ms\n", + "t = 26.500000000000107 ms\n", + "t = 26.600000000000108 ms\n", + "t = 26.70000000000011 ms\n", + "t = 26.80000000000011 ms\n", + "t = 26.900000000000112 ms\n", + "t = 27.000000000000114 ms\n", + "t = 27.100000000000115 ms\n", + "t = 27.200000000000117 ms\n", + "t = 27.300000000000118 ms\n", + "t = 27.40000000000012 ms\n", + "t = 27.50000000000012 ms\n", + "t = 27.600000000000122 ms\n", + "t = 27.700000000000124 ms\n", + "t = 27.800000000000125 ms\n", + "t = 27.900000000000126 ms\n", + "t = 28.000000000000128 ms\n", + "t = 28.10000000000013 ms\n", + "t = 28.20000000000013 ms\n", + "t = 28.300000000000132 ms\n", + "t = 28.400000000000134 ms\n", + "t = 28.500000000000135 ms\n", + "t = 28.600000000000136 ms\n", + "t = 28.700000000000138 ms\n", + "t = 28.80000000000014 ms\n", + "t = 28.90000000000014 ms\n", + "t = 29.000000000000142 ms\n", + "t = 29.100000000000144 ms\n", + "t = 29.200000000000145 ms\n", + "t = 29.300000000000146 ms\n", + "t = 29.400000000000148 ms\n", + "t = 29.50000000000015 ms\n", + "t = 29.60000000000015 ms\n", + "t = 29.700000000000152 ms\n", + "t = 29.800000000000153 ms\n", + "t = 29.900000000000155 ms\n", + "t = 30.000000000000156 ms\n", + "t = 30.100000000000158 ms\n", + "t = 30.20000000000016 ms\n", + "t = 30.30000000000016 ms\n", + "t = 30.400000000000162 ms\n", + "t = 30.500000000000163 ms\n", + "t = 30.600000000000165 ms\n", + "t = 30.700000000000166 ms\n", + "t = 30.800000000000168 ms\n", + "t = 30.90000000000017 ms\n", + "t = 31.00000000000017 ms\n", + "t = 31.100000000000172 ms\n", + "t = 31.200000000000173 ms\n", + "t = 31.300000000000175 ms\n", + "t = 31.400000000000176 ms\n", + "t = 31.500000000000178 ms\n", + "t = 31.60000000000018 ms\n", + "t = 31.70000000000018 ms\n", + "t = 31.800000000000182 ms\n", + "t = 31.900000000000183 ms\n", + "t = 32.000000000000185 ms\n", + "t = 32.100000000000186 ms\n", + "t = 32.20000000000019 ms\n", + "t = 32.30000000000019 ms\n", + "t = 32.40000000000019 ms\n", + "t = 32.50000000000019 ms\n", + "t = 32.60000000000019 ms\n", + "t = 32.700000000000195 ms\n", + "t = 32.800000000000196 ms\n", + "t = 32.9000000000002 ms\n", + "t = 33.0000000000002 ms\n", + "t = 33.1000000000002 ms\n", + "t = 33.2000000000002 ms\n", + "t = 33.3000000000002 ms\n", + "t = 33.400000000000205 ms\n", + "t = 33.500000000000206 ms\n", + "t = 33.60000000000021 ms\n", + "t = 33.70000000000021 ms\n", + "t = 33.80000000000021 ms\n", + "t = 33.90000000000021 ms\n", + "t = 34.00000000000021 ms\n", + "t = 34.100000000000215 ms\n", + "t = 34.200000000000216 ms\n", + "t = 34.30000000000022 ms\n", + "t = 34.40000000000022 ms\n", + "t = 34.50000000000022 ms\n", + "t = 34.60000000000022 ms\n", + "t = 34.70000000000022 ms\n", + "t = 34.800000000000225 ms\n", + "t = 34.900000000000226 ms\n", + "t = 35.00000000000023 ms\n", + "t = 35.10000000000023 ms\n", + "t = 35.20000000000023 ms\n", + "t = 35.30000000000023 ms\n", + "t = 35.40000000000023 ms\n", + "t = 35.500000000000234 ms\n", + "t = 35.600000000000236 ms\n", + "t = 35.70000000000024 ms\n", + "t = 35.80000000000024 ms\n", + "t = 35.90000000000024 ms\n", + "t = 36.00000000000024 ms\n", + "t = 36.10000000000024 ms\n", + "t = 36.200000000000244 ms\n", + "t = 36.300000000000246 ms\n", + "t = 36.40000000000025 ms\n", + "t = 36.50000000000025 ms\n", + "t = 36.60000000000025 ms\n", + "t = 36.70000000000025 ms\n", + "t = 36.80000000000025 ms\n", + "t = 36.900000000000254 ms\n", + "t = 37.000000000000256 ms\n", + "t = 37.10000000000026 ms\n", + "t = 37.20000000000026 ms\n", + "t = 37.30000000000026 ms\n", + "t = 37.40000000000026 ms\n", + "t = 37.50000000000026 ms\n", + "t = 37.600000000000264 ms\n", + "t = 37.700000000000266 ms\n", + "t = 37.80000000000027 ms\n", + "t = 37.90000000000027 ms\n", + "t = 38.00000000000027 ms\n", + "t = 38.10000000000027 ms\n", + "t = 38.20000000000027 ms\n", + "t = 38.300000000000274 ms\n", + "t = 38.400000000000276 ms\n", + "t = 38.50000000000028 ms\n", + "t = 38.60000000000028 ms\n", + "t = 38.70000000000028 ms\n", + "t = 38.80000000000028 ms\n", + "t = 38.90000000000028 ms\n", + "t = 39.000000000000284 ms\n", + "t = 39.100000000000286 ms\n", + "t = 39.20000000000029 ms\n", + "t = 39.30000000000029 ms\n", + "t = 39.40000000000029 ms\n", + "t = 39.50000000000029 ms\n", + "t = 39.60000000000029 ms\n", + "t = 39.700000000000294 ms\n", + "t = 39.800000000000296 ms\n", + "t = 39.9000000000003 ms\n", + "t = 40.0000000000003 ms\n", + "t = 40.1000000000003 ms\n", + "t = 40.2000000000003 ms\n", + "t = 40.3000000000003 ms\n", + "t = 40.400000000000304 ms\n", + "t = 40.500000000000306 ms\n", + "t = 40.60000000000031 ms\n", + "t = 40.70000000000031 ms\n", + "t = 40.80000000000031 ms\n", + "t = 40.90000000000031 ms\n", + "t = 41.00000000000031 ms\n", + "t = 41.100000000000314 ms\n", + "t = 41.200000000000315 ms\n", + "t = 41.30000000000032 ms\n", + "t = 41.40000000000032 ms\n", + "t = 41.50000000000032 ms\n", + "t = 41.60000000000032 ms\n", + "t = 41.70000000000032 ms\n", + "t = 41.800000000000324 ms\n", + "t = 41.900000000000325 ms\n", + "t = 42.00000000000033 ms\n", + "t = 42.10000000000033 ms\n", + "t = 42.20000000000033 ms\n", + "t = 42.30000000000033 ms\n", + "t = 42.40000000000033 ms\n", + "t = 42.500000000000334 ms\n", + "t = 42.600000000000335 ms\n", + "t = 42.70000000000034 ms\n", + "t = 42.80000000000034 ms\n", + "t = 42.90000000000034 ms\n", + "t = 43.00000000000034 ms\n", + "t = 43.10000000000034 ms\n", + "t = 43.200000000000344 ms\n", + "t = 43.300000000000345 ms\n", + "t = 43.40000000000035 ms\n", + "t = 43.50000000000035 ms\n", + "t = 43.60000000000035 ms\n", + "t = 43.70000000000035 ms\n", + "t = 43.80000000000035 ms\n", + "t = 43.900000000000354 ms\n", + "t = 44.000000000000355 ms\n", + "t = 44.10000000000036 ms\n", + "t = 44.20000000000036 ms\n", + "t = 44.30000000000036 ms\n", + "t = 44.40000000000036 ms\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "t = 44.50000000000036 ms\n", + "t = 44.600000000000364 ms\n", + "t = 44.700000000000365 ms\n", + "t = 44.80000000000037 ms\n", + "t = 44.90000000000037 ms\n", + "t = 45.00000000000037 ms\n", + "t = 45.10000000000037 ms\n", + "t = 45.20000000000037 ms\n", + "t = 45.300000000000374 ms\n", + "t = 45.400000000000375 ms\n", + "t = 45.50000000000038 ms\n", + "t = 45.60000000000038 ms\n", + "t = 45.70000000000038 ms\n", + "t = 45.80000000000038 ms\n", + "t = 45.90000000000038 ms\n", + "t = 46.000000000000384 ms\n", + "t = 46.100000000000385 ms\n", + "t = 46.20000000000039 ms\n", + "t = 46.30000000000039 ms\n", + "t = 46.40000000000039 ms\n", + "t = 46.50000000000039 ms\n", + "t = 46.60000000000039 ms\n", + "t = 46.700000000000394 ms\n", + "t = 46.800000000000395 ms\n", + "t = 46.9000000000004 ms\n", + "t = 47.0000000000004 ms\n", + "t = 47.1000000000004 ms\n", + "t = 47.2000000000004 ms\n", + "t = 47.3000000000004 ms\n", + "t = 47.400000000000404 ms\n", + "t = 47.500000000000405 ms\n", + "t = 47.600000000000406 ms\n", + "t = 47.70000000000041 ms\n", + "t = 47.80000000000041 ms\n", + "t = 47.90000000000041 ms\n", + "t = 48.00000000000041 ms\n", + "t = 48.10000000000041 ms\n", + "t = 48.200000000000415 ms\n", + "t = 48.300000000000416 ms\n", + "t = 48.40000000000042 ms\n", + "t = 48.50000000000042 ms\n", + "t = 48.60000000000042 ms\n", + "t = 48.70000000000042 ms\n", + "t = 48.80000000000042 ms\n", + "t = 48.900000000000425 ms\n", + "t = 49.000000000000426 ms\n", + "t = 49.10000000000043 ms\n", + "t = 49.20000000000043 ms\n", + "t = 49.30000000000043 ms\n", + "t = 49.40000000000043 ms\n", + "t = 49.50000000000043 ms\n", + "t = 49.600000000000435 ms\n", + "t = 49.700000000000436 ms\n", + "t = 49.80000000000044 ms\n", + "t = 49.90000000000044 ms\n", + "t = 50.00000000000044 ms\n", + "t = 50.10000000000044 ms\n", + "t = 50.20000000000044 ms\n", + "t = 50.300000000000445 ms\n", + "t = 50.400000000000446 ms\n", + "t = 50.50000000000045 ms\n", + "t = 50.60000000000045 ms\n", + "t = 50.70000000000045 ms\n", + "t = 50.80000000000045 ms\n", + "t = 50.90000000000045 ms\n", + "t = 51.000000000000455 ms\n", + "t = 51.100000000000456 ms\n", + "t = 51.20000000000046 ms\n", + "t = 51.30000000000046 ms\n", + "t = 51.40000000000046 ms\n", + "t = 51.50000000000046 ms\n", + "t = 51.60000000000046 ms\n", + "t = 51.700000000000465 ms\n", + "t = 51.800000000000466 ms\n", + "t = 51.90000000000047 ms\n", + "t = 52.00000000000047 ms\n", + "t = 52.10000000000047 ms\n", + "t = 52.20000000000047 ms\n", + "t = 52.30000000000047 ms\n", + "t = 52.400000000000475 ms\n", + "t = 52.500000000000476 ms\n", + "t = 52.60000000000048 ms\n", + "t = 52.70000000000048 ms\n", + "t = 52.80000000000048 ms\n", + "t = 52.90000000000048 ms\n", + "t = 53.00000000000048 ms\n", + "t = 53.100000000000485 ms\n", + "t = 53.200000000000486 ms\n", + "t = 53.30000000000049 ms\n", + "t = 53.40000000000049 ms\n", + "t = 53.50000000000049 ms\n", + "t = 53.60000000000049 ms\n", + "t = 53.70000000000049 ms\n", + "t = 53.800000000000495 ms\n", + "t = 53.900000000000496 ms\n", + "t = 54.0000000000005 ms\n", + "t = 54.1000000000005 ms\n", + "t = 54.2000000000005 ms\n", + "t = 54.3000000000005 ms\n", + "t = 54.4000000000005 ms\n", + "t = 54.500000000000504 ms\n", + "t = 54.600000000000506 ms\n", + "t = 54.70000000000051 ms\n", + "t = 54.80000000000051 ms\n", + "t = 54.90000000000051 ms\n", + "t = 55.00000000000051 ms\n", + "t = 55.10000000000051 ms\n", + "t = 55.200000000000514 ms\n", + "t = 55.300000000000516 ms\n", + "t = 55.40000000000052 ms\n", + "t = 55.50000000000052 ms\n", + "t = 55.60000000000052 ms\n", + "t = 55.70000000000052 ms\n", + "t = 55.80000000000052 ms\n", + "t = 55.900000000000524 ms\n", + "t = 56.000000000000526 ms\n", + "t = 56.10000000000053 ms\n", + "t = 56.20000000000053 ms\n", + "t = 56.30000000000053 ms\n", + "t = 56.40000000000053 ms\n", + "t = 56.50000000000053 ms\n", + "t = 56.600000000000534 ms\n", + "t = 56.700000000000536 ms\n", + "t = 56.80000000000054 ms\n", + "t = 56.90000000000054 ms\n", + "t = 57.00000000000054 ms\n", + "t = 57.10000000000054 ms\n", + "t = 57.20000000000054 ms\n", + "t = 57.300000000000544 ms\n", + "t = 57.400000000000546 ms\n", + "t = 57.50000000000055 ms\n", + "t = 57.60000000000055 ms\n", + "t = 57.70000000000055 ms\n", + "t = 57.80000000000055 ms\n", + "t = 57.90000000000055 ms\n", + "t = 58.000000000000554 ms\n", + "t = 58.100000000000556 ms\n", + "t = 58.20000000000056 ms\n", + "t = 58.30000000000056 ms\n", + "t = 58.40000000000056 ms\n", + "t = 58.50000000000056 ms\n", + "t = 58.60000000000056 ms\n", + "t = 58.700000000000564 ms\n", + "t = 58.800000000000566 ms\n", + "t = 58.90000000000057 ms\n", + "t = 59.00000000000057 ms\n", + "t = 59.10000000000057 ms\n", + "t = 59.20000000000057 ms\n", + "t = 59.30000000000057 ms\n", + "t = 59.400000000000574 ms\n", + "t = 59.500000000000576 ms\n", + "t = 59.60000000000058 ms\n", + "t = 59.70000000000058 ms\n", + "t = 59.80000000000058 ms\n", + "t = 59.90000000000058 ms\n", + "t = 60.00000000000058 ms\n", + "t = 60.100000000000584 ms\n", + "t = 60.200000000000585 ms\n", + "t = 60.30000000000059 ms\n", + "t = 60.40000000000059 ms\n", + "t = 60.50000000000059 ms\n", + "t = 60.60000000000059 ms\n", + "t = 60.70000000000059 ms\n", + "t = 60.800000000000594 ms\n", + "t = 60.900000000000595 ms\n", + "t = 61.0000000000006 ms\n", + "t = 61.1000000000006 ms\n", + "t = 61.2000000000006 ms\n", + "t = 61.3000000000006 ms\n", + "t = 61.4000000000006 ms\n", + "t = 61.500000000000604 ms\n", + "t = 61.600000000000605 ms\n", + "t = 61.70000000000061 ms\n", + "t = 61.80000000000061 ms\n", + "t = 61.90000000000061 ms\n", + "t = 62.00000000000061 ms\n", + "t = 62.10000000000061 ms\n", + "t = 62.200000000000614 ms\n", + "t = 62.300000000000615 ms\n", + "t = 62.40000000000062 ms\n", + "t = 62.50000000000062 ms\n", + "t = 62.60000000000062 ms\n", + "t = 62.70000000000062 ms\n", + "t = 62.80000000000062 ms\n", + "t = 62.900000000000624 ms\n", + "t = 63.000000000000625 ms\n", + "t = 63.10000000000063 ms\n", + "t = 63.20000000000063 ms\n", + "t = 63.30000000000063 ms\n", + "t = 63.40000000000063 ms\n", + "t = 63.50000000000063 ms\n", + "t = 63.600000000000634 ms\n", + "t = 63.700000000000635 ms\n", + "t = 63.80000000000064 ms\n", + "t = 63.90000000000064 ms\n", + "t = 64.00000000000064 ms\n", + "t = 64.10000000000063 ms\n", + "t = 64.20000000000063 ms\n", + "t = 64.30000000000062 ms\n", + "t = 64.40000000000062 ms\n", + "t = 64.50000000000061 ms\n", + "t = 64.6000000000006 ms\n", + "t = 64.7000000000006 ms\n", + "t = 64.8000000000006 ms\n", + "t = 64.90000000000059 ms\n", + "t = 65.00000000000058 ms\n", + "t = 65.10000000000058 ms\n", + "t = 65.20000000000057 ms\n", + "t = 65.30000000000057 ms\n", + "t = 65.40000000000056 ms\n", + "t = 65.50000000000055 ms\n", + "t = 65.60000000000055 ms\n", + "t = 65.70000000000054 ms\n", + "t = 65.80000000000054 ms\n", + "t = 65.90000000000053 ms\n", + "t = 66.00000000000053 ms\n", + "t = 66.10000000000052 ms\n", + "t = 66.20000000000051 ms\n", + "t = 66.30000000000051 ms\n", + "t = 66.4000000000005 ms\n", + "t = 66.5000000000005 ms\n", + "t = 66.60000000000049 ms\n", + "t = 66.70000000000049 ms\n", + "t = 66.80000000000048 ms\n", + "t = 66.90000000000047 ms\n", + "t = 67.00000000000047 ms\n", + "t = 67.10000000000046 ms\n", + "t = 67.20000000000046 ms\n", + "t = 67.30000000000045 ms\n", + "t = 67.40000000000045 ms\n", + "t = 67.50000000000044 ms\n", + "t = 67.60000000000043 ms\n", + "t = 67.70000000000043 ms\n", + "t = 67.80000000000042 ms\n", + "t = 67.90000000000042 ms\n", + "t = 68.00000000000041 ms\n", + "t = 68.1000000000004 ms\n", + "t = 68.2000000000004 ms\n", + "t = 68.3000000000004 ms\n", + "t = 68.40000000000039 ms\n", + "t = 68.50000000000038 ms\n", + "t = 68.60000000000038 ms\n", + "t = 68.70000000000037 ms\n", + "t = 68.80000000000037 ms\n", + "t = 68.90000000000036 ms\n", + "t = 69.00000000000036 ms\n", + "t = 69.10000000000035 ms\n", + "t = 69.20000000000034 ms\n", + "t = 69.30000000000034 ms\n", + "t = 69.40000000000033 ms\n", + "t = 69.50000000000033 ms\n", + "t = 69.60000000000032 ms\n", + "t = 69.70000000000032 ms\n", + "t = 69.80000000000031 ms\n", + "t = 69.9000000000003 ms\n", + "t = 70.0000000000003 ms\n", + "t = 70.10000000000029 ms\n", + "t = 70.20000000000029 ms\n", + "t = 70.30000000000028 ms\n", + "t = 70.40000000000028 ms\n", + "t = 70.50000000000027 ms\n", + "t = 70.60000000000026 ms\n", + "t = 70.70000000000026 ms\n", + "t = 70.80000000000025 ms\n", + "t = 70.90000000000025 ms\n", + "t = 71.00000000000024 ms\n", + "t = 71.10000000000024 ms\n", + "t = 71.20000000000023 ms\n", + "t = 71.30000000000022 ms\n", + "t = 71.40000000000022 ms\n", + "t = 71.50000000000021 ms\n", + "t = 71.60000000000021 ms\n", + "t = 71.7000000000002 ms\n", + "t = 71.8000000000002 ms\n", + "t = 71.90000000000019 ms\n", + "t = 72.00000000000018 ms\n", + "t = 72.10000000000018 ms\n", + "t = 72.20000000000017 ms\n", + "t = 72.30000000000017 ms\n", + "t = 72.40000000000016 ms\n", + "t = 72.50000000000016 ms\n", + "t = 72.60000000000015 ms\n", + "t = 72.70000000000014 ms\n", + "t = 72.80000000000014 ms\n", + "t = 72.90000000000013 ms\n", + "t = 73.00000000000013 ms\n", + "t = 73.10000000000012 ms\n", + "t = 73.20000000000012 ms\n", + "t = 73.30000000000011 ms\n", + "t = 73.4000000000001 ms\n", + "t = 73.5000000000001 ms\n", + "t = 73.6000000000001 ms\n", + "t = 73.70000000000009 ms\n", + "t = 73.80000000000008 ms\n", + "t = 73.90000000000008 ms\n", + "t = 74.00000000000007 ms\n", + "t = 74.10000000000007 ms\n", + "t = 74.20000000000006 ms\n", + "t = 74.30000000000005 ms\n", + "t = 74.40000000000005 ms\n", + "t = 74.50000000000004 ms\n", + "t = 74.60000000000004 ms\n", + "t = 74.70000000000003 ms\n", + "t = 74.80000000000003 ms\n", + "t = 74.90000000000002 ms\n", + "t = 75.00000000000001 ms\n", + "t = 75.10000000000001 ms\n", + "t = 75.2 ms\n", + "t = 75.3 ms\n", + "t = 75.39999999999999 ms\n", + "t = 75.49999999999999 ms\n", + "t = 75.59999999999998 ms\n", + "t = 75.69999999999997 ms\n", + "t = 75.79999999999997 ms\n", + "t = 75.89999999999996 ms\n", + "t = 75.99999999999996 ms\n", + "t = 76.09999999999995 ms\n", + "t = 76.19999999999995 ms\n", + "t = 76.29999999999994 ms\n", + "t = 76.39999999999993 ms\n", + "t = 76.49999999999993 ms\n", + "t = 76.59999999999992 ms\n", + "t = 76.69999999999992 ms\n", + "t = 76.79999999999991 ms\n", + "t = 76.8999999999999 ms\n", + "t = 76.9999999999999 ms\n", + "t = 77.0999999999999 ms\n", + "t = 77.19999999999989 ms\n", + "t = 77.29999999999988 ms\n", + "t = 77.39999999999988 ms\n", + "t = 77.49999999999987 ms\n", + "t = 77.59999999999987 ms\n", + "t = 77.69999999999986 ms\n", + "t = 77.79999999999986 ms\n", + "t = 77.89999999999985 ms\n", + "t = 77.99999999999984 ms\n", + "t = 78.09999999999984 ms\n", + "t = 78.19999999999983 ms\n", + "t = 78.29999999999983 ms\n", + "t = 78.39999999999982 ms\n", + "t = 78.49999999999982 ms\n", + "t = 78.59999999999981 ms\n", + "t = 78.6999999999998 ms\n", + "t = 78.7999999999998 ms\n", + "t = 78.89999999999979 ms\n", + "t = 78.99999999999979 ms\n", + "t = 79.09999999999978 ms\n", + "t = 79.19999999999978 ms\n", + "t = 79.29999999999977 ms\n", + "t = 79.39999999999976 ms\n", + "t = 79.49999999999976 ms\n", + "t = 79.59999999999975 ms\n", + "t = 79.69999999999975 ms\n", + "t = 79.79999999999974 ms\n", + "t = 79.89999999999974 ms\n", + "t = 79.99999999999973 ms\n", + "t = 80.09999999999972 ms\n", + "t = 80.19999999999972 ms\n", + "t = 80.29999999999971 ms\n", + "t = 80.39999999999971 ms\n", + "t = 80.4999999999997 ms\n", + "t = 80.5999999999997 ms\n", + "t = 80.69999999999969 ms\n", + "t = 80.79999999999968 ms\n", + "t = 80.89999999999968 ms\n", + "t = 80.99999999999967 ms\n", + "t = 81.09999999999967 ms\n", + "t = 81.19999999999966 ms\n", + "t = 81.29999999999966 ms\n", + "t = 81.39999999999965 ms\n", + "t = 81.49999999999964 ms\n", + "t = 81.59999999999964 ms\n", + "t = 81.69999999999963 ms\n", + "t = 81.79999999999963 ms\n", + "t = 81.89999999999962 ms\n", + "t = 81.99999999999962 ms\n", + "t = 82.09999999999961 ms\n", + "t = 82.1999999999996 ms\n", + "t = 82.2999999999996 ms\n", + "t = 82.3999999999996 ms\n", + "t = 82.49999999999959 ms\n", + "t = 82.59999999999958 ms\n", + "t = 82.69999999999958 ms\n", + "t = 82.79999999999957 ms\n", + "t = 82.89999999999957 ms\n", + "t = 82.99999999999956 ms\n", + "t = 83.09999999999955 ms\n", + "t = 83.19999999999955 ms\n", + "t = 83.29999999999954 ms\n", + "t = 83.39999999999954 ms\n", + "t = 83.49999999999953 ms\n", + "t = 83.59999999999953 ms\n", + "t = 83.69999999999952 ms\n", + "t = 83.79999999999951 ms\n", + "t = 83.89999999999951 ms\n", + "t = 83.9999999999995 ms\n", + "t = 84.0999999999995 ms\n", + "t = 84.19999999999949 ms\n", + "t = 84.29999999999949 ms\n", + "t = 84.39999999999948 ms\n", + "t = 84.49999999999947 ms\n", + "t = 84.59999999999947 ms\n", + "t = 84.69999999999946 ms\n", + "t = 84.79999999999946 ms\n", + "t = 84.89999999999945 ms\n", + "t = 84.99999999999945 ms\n", + "t = 85.09999999999944 ms\n", + "t = 85.19999999999943 ms\n", + "t = 85.29999999999943 ms\n", + "t = 85.39999999999942 ms\n", + "t = 85.49999999999942 ms\n", + "t = 85.59999999999941 ms\n", + "t = 85.6999999999994 ms\n", + "t = 85.7999999999994 ms\n", + "t = 85.8999999999994 ms\n", + "t = 85.99999999999939 ms\n", + "t = 86.09999999999938 ms\n", + "t = 86.19999999999938 ms\n", + "t = 86.29999999999937 ms\n", + "t = 86.39999999999937 ms\n", + "t = 86.49999999999936 ms\n", + "t = 86.59999999999935 ms\n", + "t = 86.69999999999935 ms\n", + "t = 86.79999999999934 ms\n", + "t = 86.89999999999934 ms\n", + "t = 86.99999999999933 ms\n", + "t = 87.09999999999933 ms\n", + "t = 87.19999999999932 ms\n", + "t = 87.29999999999932 ms\n", + "t = 87.39999999999931 ms\n", + "t = 87.4999999999993 ms\n", + "t = 87.5999999999993 ms\n", + "t = 87.69999999999929 ms\n", + "t = 87.79999999999929 ms\n", + "t = 87.89999999999928 ms\n", + "t = 87.99999999999928 ms\n", + "t = 88.09999999999927 ms\n", + "t = 88.19999999999926 ms\n", + "t = 88.29999999999926 ms\n", + "t = 88.39999999999925 ms\n", + "t = 88.49999999999925 ms\n", + "t = 88.59999999999924 ms\n", + "t = 88.69999999999924 ms\n", + "t = 88.79999999999923 ms\n", + "t = 88.89999999999922 ms\n", + "t = 88.99999999999922 ms\n", + "t = 89.09999999999921 ms\n", + "t = 89.1999999999992 ms\n", + "t = 89.2999999999992 ms\n", + "t = 89.3999999999992 ms\n", + "t = 89.49999999999919 ms\n", + "t = 89.59999999999918 ms\n", + "t = 89.69999999999918 ms\n", + "t = 89.79999999999917 ms\n", + "t = 89.89999999999917 ms\n", + "t = 89.99999999999916 ms\n", + "t = 90.09999999999916 ms\n", + "t = 90.19999999999915 ms\n", + "t = 90.29999999999914 ms\n", + "t = 90.39999999999914 ms\n", + "t = 90.49999999999913 ms\n", + "t = 90.59999999999913 ms\n", + "t = 90.69999999999912 ms\n", + "t = 90.79999999999912 ms\n", + "t = 90.89999999999911 ms\n", + "t = 90.9999999999991 ms\n", + "t = 91.0999999999991 ms\n", + "t = 91.1999999999991 ms\n", + "t = 91.29999999999909 ms\n", + "t = 91.39999999999908 ms\n", + "t = 91.49999999999908 ms\n", + "t = 91.59999999999907 ms\n", + "t = 91.69999999999906 ms\n", + "t = 91.79999999999906 ms\n", + "t = 91.89999999999905 ms\n", + "t = 91.99999999999905 ms\n", + "t = 92.09999999999904 ms\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "DEBUG:findfont: Matching sans\\-serif:style=normal:variant=normal:weight=normal:stretch=normal:size=10.0.\n", + "DEBUG:findfont: Matching sans\\-serif:style=normal:variant=normal:weight=normal:stretch=normal:size=10.0 to DejaVu Sans ('/home/charl/.local/lib/python3.11/site-packages/matplotlib/mpl-data/fonts/ttf/DejaVuSans.ttf') with score of 0.050000.\n", + "WARNING:No artists with labels found to put in legend. Note that artists whose label start with an underscore are ignored when legend() is called with no argument.\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "t = 92.19999999999904 ms\n", + "t = 92.29999999999903 ms\n", + "t = 92.39999999999903 ms\n", + "t = 92.49999999999902 ms\n", + "t = 92.59999999999901 ms\n", + "t = 92.69999999999901 ms\n", + "t = 92.799999999999 ms\n", + "t = 92.899999999999 ms\n", + "t = 92.99999999999899 ms\n", + "t = 93.09999999999899 ms\n", + "t = 93.19999999999898 ms\n", + "t = 93.29999999999897 ms\n", + "t = 93.39999999999897 ms\n", + "t = 93.49999999999896 ms\n", + "t = 93.59999999999896 ms\n", + "t = 93.69999999999895 ms\n", + "t = 93.79999999999895 ms\n", + "t = 93.89999999999894 ms\n", + "t = 93.99999999999893 ms\n", + "t = 94.09999999999893 ms\n", + "t = 94.19999999999892 ms\n", + "t = 94.29999999999892 ms\n", + "t = 94.39999999999891 ms\n", + "t = 94.4999999999989 ms\n", + "t = 94.5999999999989 ms\n", + "t = 94.6999999999989 ms\n", + "t = 94.79999999999889 ms\n", + "t = 94.89999999999888 ms\n", + "t = 94.99999999999888 ms\n", + "t = 95.09999999999887 ms\n", + "t = 95.19999999999887 ms\n", + "t = 95.29999999999886 ms\n", + "t = 95.39999999999885 ms\n", + "t = 95.49999999999885 ms\n", + "t = 95.59999999999884 ms\n", + "t = 95.69999999999884 ms\n", + "t = 95.79999999999883 ms\n", + "t = 95.89999999999883 ms\n", + "t = 95.99999999999882 ms\n", + "t = 96.09999999999881 ms\n", + "t = 96.19999999999881 ms\n", + "t = 96.2999999999988 ms\n", + "t = 96.3999999999988 ms\n", + "t = 96.49999999999879 ms\n", + "t = 96.59999999999879 ms\n", + "t = 96.69999999999878 ms\n", + "t = 96.79999999999878 ms\n", + "t = 96.89999999999877 ms\n", + "t = 96.99999999999876 ms\n", + "t = 97.09999999999876 ms\n", + "t = 97.19999999999875 ms\n", + "t = 97.29999999999875 ms\n", + "t = 97.39999999999874 ms\n", + "t = 97.49999999999874 ms\n", + "t = 97.59999999999873 ms\n", + "t = 97.69999999999872 ms\n", + "t = 97.79999999999872 ms\n", + "t = 97.89999999999871 ms\n", + "t = 97.9999999999987 ms\n", + "t = 98.0999999999987 ms\n", + "t = 98.1999999999987 ms\n", + "t = 98.29999999999869 ms\n", + "t = 98.39999999999868 ms\n", + "t = 98.49999999999868 ms\n", + "t = 98.59999999999867 ms\n", + "t = 98.69999999999867 ms\n", + "t = 98.79999999999866 ms\n", + "t = 98.89999999999866 ms\n", + "t = 98.99999999999865 ms\n", + "t = 99.09999999999864 ms\n", + "t = 99.19999999999864 ms\n", + "t = 99.29999999999863 ms\n", + "t = 99.39999999999863 ms\n", + "t = 99.49999999999862 ms\n", + "t = 99.59999999999862 ms\n", + "t = 99.69999999999861 ms\n", + "t = 99.7999999999986 ms\n", + "t = 99.8999999999986 ms\n", + "t = 99.9999999999986 ms\n", + "t = 100.09999999999859 ms\n", + "t = 100.19999999999858 ms\n", + "t = 100.29999999999858 ms\n", + "t = 100.39999999999857 ms\n", + "t = 100.49999999999856 ms\n", + "t = 100.59999999999856 ms\n", + "t = 100.69999999999855 ms\n", + "t = 100.79999999999855 ms\n", + "t = 100.89999999999854 ms\n", + "t = 100.99999999999854 ms\n", + "Actual pre spike times: [ 16. 41. 71. 101.]\n", + "Actual post spike times: [21.8 46.7 76.8]\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "DEBUG:findfont: Matching sans\\-serif:style=normal:variant=normal:weight=normal:stretch=normal:size=10.0.\n", + "DEBUG:findfont: Matching sans\\-serif:style=normal:variant=normal:weight=normal:stretch=normal:size=10.0 to DejaVu Sans ('/home/charl/.local/lib/python3.11/site-packages/matplotlib/mpl-data/fonts/ttf/DejaVuSans.ttf') with score of 0.050000.\n", + "DEBUG:findfont: Matching STIXGeneral:style=normal:variant=normal:weight=normal:stretch=normal:size=10.0.\n", + "DEBUG:findfont: Matching STIXGeneral:style=normal:variant=normal:weight=normal:stretch=normal:size=10.0 to STIXGeneral ('/home/charl/.local/lib/python3.11/site-packages/matplotlib/mpl-data/fonts/ttf/STIXGeneral.ttf') with score of 0.050000.\n", + "DEBUG:findfont: Matching STIXGeneral:style=italic:variant=normal:weight=normal:stretch=normal:size=10.0.\n", + "DEBUG:findfont: Matching STIXGeneral:style=italic:variant=normal:weight=normal:stretch=normal:size=10.0 to STIXGeneral ('/home/charl/.local/lib/python3.11/site-packages/matplotlib/mpl-data/fonts/ttf/STIXGeneralItalic.ttf') with score of 0.050000.\n", + "DEBUG:findfont: Matching STIXGeneral:style=normal:variant=normal:weight=bold:stretch=normal:size=10.0.\n", + "DEBUG:findfont: Matching STIXGeneral:style=normal:variant=normal:weight=bold:stretch=normal:size=10.0 to STIXGeneral ('/home/charl/.local/lib/python3.11/site-packages/matplotlib/mpl-data/fonts/ttf/STIXGeneralBol.ttf') with score of 0.050000.\n", + "DEBUG:findfont: Matching STIXGeneral:style=italic:variant=normal:weight=bold:stretch=normal:size=10.0.\n", + "DEBUG:findfont: Matching STIXGeneral:style=italic:variant=normal:weight=bold:stretch=normal:size=10.0 to STIXGeneral ('/home/charl/.local/lib/python3.11/site-packages/matplotlib/mpl-data/fonts/ttf/STIXGeneralBolIta.ttf') with score of 0.050000.\n", + "DEBUG:findfont: Matching STIXNonUnicode:style=normal:variant=normal:weight=normal:stretch=normal:size=10.0.\n", + "DEBUG:findfont: Matching STIXNonUnicode:style=normal:variant=normal:weight=normal:stretch=normal:size=10.0 to STIXNonUnicode ('/home/charl/.local/lib/python3.11/site-packages/matplotlib/mpl-data/fonts/ttf/STIXNonUni.ttf') with score of 0.050000.\n", + "DEBUG:findfont: Matching STIXNonUnicode:style=italic:variant=normal:weight=normal:stretch=normal:size=10.0.\n", + "DEBUG:findfont: Matching STIXNonUnicode:style=italic:variant=normal:weight=normal:stretch=normal:size=10.0 to STIXNonUnicode ('/home/charl/.local/lib/python3.11/site-packages/matplotlib/mpl-data/fonts/ttf/STIXNonUniIta.ttf') with score of 0.050000.\n", + "DEBUG:findfont: Matching STIXNonUnicode:style=normal:variant=normal:weight=bold:stretch=normal:size=10.0.\n", + "DEBUG:findfont: Matching STIXNonUnicode:style=normal:variant=normal:weight=bold:stretch=normal:size=10.0 to STIXNonUnicode ('/home/charl/.local/lib/python3.11/site-packages/matplotlib/mpl-data/fonts/ttf/STIXNonUniBol.ttf') with score of 0.050000.\n", + "DEBUG:findfont: Matching STIXSizeOneSym:style=normal:variant=normal:weight=normal:stretch=normal:size=10.0.\n", + "DEBUG:findfont: Matching STIXSizeOneSym:style=normal:variant=normal:weight=normal:stretch=normal:size=10.0 to STIXSizeOneSym ('/home/charl/.local/lib/python3.11/site-packages/matplotlib/mpl-data/fonts/ttf/STIXSizOneSymReg.ttf') with score of 0.050000.\n", + "DEBUG:findfont: Matching STIXSizeTwoSym:style=normal:variant=normal:weight=normal:stretch=normal:size=10.0.\n", + "DEBUG:findfont: Matching STIXSizeTwoSym:style=normal:variant=normal:weight=normal:stretch=normal:size=10.0 to STIXSizeTwoSym ('/home/charl/.local/lib/python3.11/site-packages/matplotlib/mpl-data/fonts/ttf/STIXSizTwoSymReg.ttf') with score of 0.050000.\n", + "DEBUG:findfont: Matching STIXSizeThreeSym:style=normal:variant=normal:weight=normal:stretch=normal:size=10.0.\n", + "DEBUG:findfont: Matching STIXSizeThreeSym:style=normal:variant=normal:weight=normal:stretch=normal:size=10.0 to STIXSizeThreeSym ('/home/charl/.local/lib/python3.11/site-packages/matplotlib/mpl-data/fonts/ttf/STIXSizThreeSymReg.ttf') with score of 0.050000.\n", + "DEBUG:findfont: Matching STIXSizeFourSym:style=normal:variant=normal:weight=normal:stretch=normal:size=10.0.\n", + "DEBUG:findfont: Matching STIXSizeFourSym:style=normal:variant=normal:weight=normal:stretch=normal:size=10.0 to STIXSizeFourSym ('/home/charl/.local/lib/python3.11/site-packages/matplotlib/mpl-data/fonts/ttf/STIXSizFourSymReg.ttf') with score of 0.050000.\n", + "DEBUG:findfont: Matching STIXSizeFiveSym:style=normal:variant=normal:weight=normal:stretch=normal:size=10.0.\n", + "DEBUG:findfont: Matching STIXSizeFiveSym:style=normal:variant=normal:weight=normal:stretch=normal:size=10.0 to STIXSizeFiveSym ('/home/charl/.local/lib/python3.11/site-packages/matplotlib/mpl-data/fonts/ttf/STIXSizFiveSymReg.ttf') with score of 0.050000.\n", + "DEBUG:findfont: Matching cmsy10:style=normal:variant=normal:weight=normal:stretch=normal:size=10.0.\n", + "DEBUG:findfont: Matching cmsy10:style=normal:variant=normal:weight=normal:stretch=normal:size=10.0 to cmsy10 ('/home/charl/.local/lib/python3.11/site-packages/matplotlib/mpl-data/fonts/ttf/cmsy10.ttf') with score of 0.050000.\n", + "DEBUG:findfont: Matching cmr10:style=normal:variant=normal:weight=normal:stretch=normal:size=10.0.\n", + "DEBUG:findfont: Matching cmr10:style=normal:variant=normal:weight=normal:stretch=normal:size=10.0 to cmr10 ('/home/charl/.local/lib/python3.11/site-packages/matplotlib/mpl-data/fonts/ttf/cmr10.ttf') with score of 0.050000.\n", + "DEBUG:findfont: Matching cmtt10:style=normal:variant=normal:weight=normal:stretch=normal:size=10.0.\n", + "DEBUG:findfont: Matching cmtt10:style=normal:variant=normal:weight=normal:stretch=normal:size=10.0 to cmtt10 ('/home/charl/.local/lib/python3.11/site-packages/matplotlib/mpl-data/fonts/ttf/cmtt10.ttf') with score of 0.050000.\n", + "DEBUG:findfont: Matching cmmi10:style=normal:variant=normal:weight=normal:stretch=normal:size=10.0.\n", + "DEBUG:findfont: Matching cmmi10:style=normal:variant=normal:weight=normal:stretch=normal:size=10.0 to cmmi10 ('/home/charl/.local/lib/python3.11/site-packages/matplotlib/mpl-data/fonts/ttf/cmmi10.ttf') with score of 0.050000.\n", + "DEBUG:findfont: Matching cmb10:style=normal:variant=normal:weight=normal:stretch=normal:size=10.0.\n", + "DEBUG:findfont: Matching cmb10:style=normal:variant=normal:weight=normal:stretch=normal:size=10.0 to cmb10 ('/home/charl/.local/lib/python3.11/site-packages/matplotlib/mpl-data/fonts/ttf/cmb10.ttf') with score of 0.050000.\n", + "DEBUG:findfont: Matching cmss10:style=normal:variant=normal:weight=normal:stretch=normal:size=10.0.\n", + "DEBUG:findfont: Matching cmss10:style=normal:variant=normal:weight=normal:stretch=normal:size=10.0 to cmss10 ('/home/charl/.local/lib/python3.11/site-packages/matplotlib/mpl-data/fonts/ttf/cmss10.ttf') with score of 0.050000.\n", + "DEBUG:findfont: Matching cmex10:style=normal:variant=normal:weight=normal:stretch=normal:size=10.0.\n", + "DEBUG:findfont: Matching cmex10:style=normal:variant=normal:weight=normal:stretch=normal:size=10.0 to cmex10 ('/home/charl/.local/lib/python3.11/site-packages/matplotlib/mpl-data/fonts/ttf/cmex10.ttf') with score of 0.050000.\n", + "DEBUG:findfont: Matching DejaVu Sans:style=normal:variant=normal:weight=normal:stretch=normal:size=10.0.\n", + "DEBUG:findfont: Matching DejaVu Sans:style=normal:variant=normal:weight=normal:stretch=normal:size=10.0 to DejaVu Sans ('/home/charl/.local/lib/python3.11/site-packages/matplotlib/mpl-data/fonts/ttf/DejaVuSans.ttf') with score of 0.050000.\n", + "DEBUG:findfont: Matching DejaVu Sans:style=italic:variant=normal:weight=normal:stretch=normal:size=10.0.\n", + "DEBUG:findfont: Matching DejaVu Sans:style=italic:variant=normal:weight=normal:stretch=normal:size=10.0 to DejaVu Sans ('/home/charl/.local/lib/python3.11/site-packages/matplotlib/mpl-data/fonts/ttf/DejaVuSans-Oblique.ttf') with score of 0.150000.\n", + "DEBUG:findfont: Matching DejaVu Sans:style=normal:variant=normal:weight=bold:stretch=normal:size=10.0.\n", + "DEBUG:findfont: Matching DejaVu Sans:style=normal:variant=normal:weight=bold:stretch=normal:size=10.0 to DejaVu Sans ('/home/charl/.local/lib/python3.11/site-packages/matplotlib/mpl-data/fonts/ttf/DejaVuSans-Bold.ttf') with score of 0.050000.\n", + "DEBUG:findfont: Matching DejaVu Sans:style=italic:variant=normal:weight=bold:stretch=normal:size=10.0.\n", + "DEBUG:findfont: Matching DejaVu Sans:style=italic:variant=normal:weight=bold:stretch=normal:size=10.0 to DejaVu Sans ('/home/charl/.local/lib/python3.11/site-packages/matplotlib/mpl-data/fonts/ttf/DejaVuSans-BoldOblique.ttf') with score of 0.150000.\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "DEBUG:findfont: Matching DejaVu Sans Mono:style=normal:variant=normal:weight=normal:stretch=normal:size=10.0.\n", + "DEBUG:findfont: Matching DejaVu Sans Mono:style=normal:variant=normal:weight=normal:stretch=normal:size=10.0 to DejaVu Sans Mono ('/home/charl/.local/lib/python3.11/site-packages/matplotlib/mpl-data/fonts/ttf/DejaVuSansMono.ttf') with score of 0.050000.\n", + "DEBUG:findfont: Matching DejaVu Sans Display:style=normal:variant=normal:weight=normal:stretch=normal:size=10.0.\n", + "DEBUG:findfont: Matching DejaVu Sans Display:style=normal:variant=normal:weight=normal:stretch=normal:size=10.0 to DejaVu Sans Display ('/home/charl/.local/lib/python3.11/site-packages/matplotlib/mpl-data/fonts/ttf/DejaVuSansDisplay.ttf') with score of 0.050000.\n" + ] + }, + { + "data": { + "image/png": "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wMXFBQqFAoGBge0+bI/JExERERG1ikwmg1qtljoMojbHOU9EREREREQ2YPJERERERERkAyZPRERERERENmDyREREREREZAMmT0RERERERDZg8kRERERERGQDJk9EREREREQ2YPJERERERERkAyZPRERERERENmDyREREREREZAMmT0RERERERDZg8kRERERERGQDJk9EREREREQ2YPJERERERERkAyZPRERERERENmDyREREREREZAPJk6dffvkFEyZMgJeXFzw9PTF+/HicPHnSqt7o0aMhCILVz4QJE6zqarVaPPnkkwgODoabmxuGDRuG3bt3N3r9Q4cOYeTIkVAqlQgKCsKSJUtQXV1t77dJREREREQdnJOUFz9x4gRGjhyJsLAwrFixAiaTCRs2bEBiYiKOHj2K3r17W9QPDQ3Fiy++aFEWHBxsdd65c+di27ZtWLp0KaKiovDee+9h0qRJ+PHHHzFy5EhzvZMnT2Ls2LGIjY3FK6+8guzsbKxbtw7p6en45ptv2uZNExERERFRhyRp8rR8+XK4ubkhOTkZfn5+AIDZs2cjOjoaTz/9NLZv325RX6VSYfbs2Tc859GjR/HJJ58gKSkJjz/+OABgzpw5iI+PxxNPPIFDhw6Z6z799NPw8fHBvn374OXlBQDo0aMHHnroIXz//fcYP368Pd8uERERERF1YJIO2ztw4ADGjRtnTpwAQK1WIzExEbt27Wp0+JzBYLjhsLpt27ZBLpdj/vz55jJXV1fMmzcPycnJyMrKAgBUVlZi9+7dmD17tjlxAuoTLQ8PD2zdutUeb5GIiIiIiDoJSXuetFot3NzcrMqVSiV0Oh1SU1Nx0003mcvT0tLg7u4OnU6HwMBAPPTQQ3juuefg7OxsrpOSkoLo6GiLhAgAhg4dCqB+qF5YWBhOnToFg8GAwYMHW9RzcXFBQkICUlJSrht3YWEhioqKLMoyMjJu+F5f+PI0zuRW3rAOERERERHZR0XuRbufU9LkqXfv3jh8+DCMRiPkcjkAQKfT4ciRIwCAnJwcc91evXrhlltuQd++fVFTU4Nt27Zh1apVSEtLw5YtW8z18vLyoFarra51tSw3N9dc79ryhnUPHDhw3bg3bNiAF154oVnv9UxuJY5cKm3Wa4iIiIiIqGV0RRV2P6ekydPChQuxYMECzJs3D0888QRMJhNWrVpl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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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AwN89913mDlzJurVq4c33ngDgwYNwpgxY2BlZVWumoiISCxO4IiIiEpJV1e3VO2SJAGA+pEEO3fuLHRi9OLROznrAoAZM2bAxcUFBw8exIkTJzBv3jx88803OH36NNq3b1+uuoiISBxO4IiIiGTStGlTAIClpSX69OmjcDUFNW3aFDNnzsTMmTNx69YttGvXDt9//z127dqldGlERPT/8Ro4IiIimfTr1w8mJiZYunQpsrOzCyxPSkpSoCogIyMDz54902hr2rQpateujczMTEVqIiKiwvEIHBERkUxMTEywfv16/Oc//0GHDh3wwQcfwMLCAv/88w9+/fVXvPnmm1i7dq3sdUVGRuLtt9+Gu7s7WrVqBT09Pfj7++PBgwf44IMPZK+HiIiKxgkcERGRjEaOHAkbGxt8++238PLyQmZmJurXr48ePXrgww8/VKQmW1tbjBgxAqdOncLOnTuhp6eHFi1awNfXF0OHDlWkJiIiKpxKevEKZiIiIqq0FixYgIULFyIpKQkqlQqvvfaarPtPTU1FTk4OOnTogDZt2uDIkSOy7p+IiHgNHBERUZVjYWGBRo0ayb7fXr16wcLCAjExMbLvm4iInuMROCIioirizp076odv6+npoVevXrLuPyQkBI8fPwbwfBLZtm1bWfdPREScwBEREREREVUZPIWSiIiIiIioiuAEjoiIiIiIqIrgBI6IiIiIiKiK4ASOiIiIiIioiuAEjoiIiIiIqIrgBI6IiIiIiKiK4ASOiIiIiIioiuAEjoiIiIiIqIrgBI6IiIiIiKiK4ASOiIiIiIioiuAEjoiIiIiIqIr4fxiBp/3aANblAAAAAElFTkSuQmCC\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "fname_snip = \"detailed\"\n", "\n", - "pre_spike_times = [40., 100.] # [ms]\n", - "post_spike_times = [25., 75.] # [ms]\n", + "pre_spike_times = [15., 40., 70., 100.] # [ms]\n", + "post_spike_times = [20., 45., 75.] # [ms]\n", "\n", "# run the simulation\n", "timevec, t_hist, third_factor_trace, w_hist = run_synapse_test(neuron_model_name=neuron_model_name,\n", @@ -1218,10 +3337,11 @@ " pre_spike_times=pre_spike_times,\n", " post_spike_times=post_spike_times,\n", " sim_time=101.,\n", - " fname_snip=fname_snip)\n", + " fname_snip=fname_snip,\n", + " experiment=\"no-filtering\")\n", "\n", "# verify that weight stays zero: buffering ensures that the value of I_dend at the right time is used\n", - "np.testing.assert_allclose(w_hist, 0.)\n", + "#np.testing.assert_allclose(w_hist, 0.)\n", "\n", "# idx = np.where(np.abs(third_factor_trace) < 1E-12)[0] # find where third_factor_trace is (almost) zero\n", "# times_dw_should_be_zero = timevec[idx]\n", @@ -1234,6 +3354,2205 @@ "\n" ] }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + " -- N E S T --\n", + " Copyright (C) 2004 The NEST Initiative\n", + "\n", + " Version: 3.6.0-post0.dev0\n", + " Built: Nov 8 2023 01:11:46\n", + "\n", + " This program is provided AS IS and comes with\n", + " NO WARRANTY. See the file LICENSE for details.\n", + "\n", + " Problems or suggestions?\n", + " Visit https://www.nest-simulator.org\n", + "\n", + " Type 'nest.help()' to find out more about NEST.\n", + "\n", + "[86,GLOBAL, INFO]: The NEST Simulator version was automatically detected as: master\n", + "Pre spike times: [15.0, 40.0, 70.0, 100.0]\n", + "Post spike times: [20.0, 45.0, 75.0]\n", + "t = 0.0 ms\n", + "t = 0.1 ms\n", + "t = 0.2 ms\n", + "t = 0.30000000000000004 ms\n", + "t = 0.4 ms\n", + "t = 0.5 ms\n", + "t = 0.6 ms\n", + "t = 0.7 ms\n", + "t = 0.7999999999999999 ms\n", + "t = 0.8999999999999999 ms\n", + "t = 0.9999999999999999 ms\n", + "t = 1.0999999999999999 ms\n", + "t = 1.2 ms\n", + "t = 1.3 ms\n", + "t = 1.4000000000000001 ms\n", + "t = 1.5000000000000002 ms\n", + "t = 1.6000000000000003 ms\n", + "t = 1.7000000000000004 ms\n", + "t = 1.8000000000000005 ms\n", + "t = 1.9000000000000006 ms\n", + "t = 2.0000000000000004 ms\n", + "t = 2.1000000000000005 ms\n", + "t = 2.2000000000000006 ms\n", + "t = 2.3000000000000007 ms\n", + "t = 2.400000000000001 ms\n", + "t = 2.500000000000001 ms\n", + "t = 2.600000000000001 ms\n", + "t = 2.700000000000001 ms\n", + "t = 2.800000000000001 ms\n", + "t = 2.9000000000000012 ms\n", + "t = 3.0000000000000013 ms\n", + "t = 3.1000000000000014 ms\n", + "t = 3.2000000000000015 ms\n", + "t = 3.3000000000000016 ms\n", + "t = 3.4000000000000017 ms\n", + "t = 3.5000000000000018 ms\n", + "t = 3.600000000000002 ms\n", + "t = 3.700000000000002 ms\n", + "t = 3.800000000000002 ms\n", + "t = 3.900000000000002 ms\n", + "t = 4.000000000000002 ms\n", + "t = 4.100000000000001 ms\n", + "t = 4.200000000000001 ms\n", + "t = 4.300000000000001 ms\n", + "t = 4.4 ms\n", + "t = 4.5 ms\n", + "t = 4.6 ms\n", + "t = 4.699999999999999 ms\n", + "t = 4.799999999999999 ms\n", + "t = 4.899999999999999 ms\n", + "t = 4.999999999999998 ms\n", + "t = 5.099999999999998 ms\n", + "t = 5.1999999999999975 ms\n", + "t = 5.299999999999997 ms\n", + "t = 5.399999999999997 ms\n", + "t = 5.4999999999999964 ms\n", + "t = 5.599999999999996 ms\n", + "t = 5.699999999999996 ms\n", + "t = 5.799999999999995 ms\n", + "t = 5.899999999999995 ms\n", + "t = 5.999999999999995 ms\n", + "t = 6.099999999999994 ms\n", + "t = 6.199999999999994 ms\n", + "t = 6.299999999999994 ms\n", + "t = 6.399999999999993 ms\n", + "t = 6.499999999999993 ms\n", + "t = 6.5999999999999925 ms\n", + "t = 6.699999999999992 ms\n", + "t = 6.799999999999992 ms\n", + "t = 6.8999999999999915 ms\n", + "t = 6.999999999999991 ms\n", + "t = 7.099999999999991 ms\n", + "t = 7.19999999999999 ms\n", + "t = 7.29999999999999 ms\n", + "t = 7.39999999999999 ms\n", + "t = 7.499999999999989 ms\n", + "t = 7.599999999999989 ms\n", + "t = 7.699999999999989 ms\n", + "t = 7.799999999999988 ms\n", + "t = 7.899999999999988 ms\n", + "t = 7.999999999999988 ms\n", + "t = 8.099999999999987 ms\n", + "t = 8.199999999999987 ms\n", + "t = 8.299999999999986 ms\n", + "t = 8.399999999999986 ms\n", + "t = 8.499999999999986 ms\n", + "t = 8.599999999999985 ms\n", + "t = 8.699999999999985 ms\n", + "t = 8.799999999999985 ms\n", + "t = 8.899999999999984 ms\n", + "t = 8.999999999999984 ms\n", + "t = 9.099999999999984 ms\n", + "t = 9.199999999999983 ms\n", + "t = 9.299999999999983 ms\n", + "t = 9.399999999999983 ms\n", + "t = 9.499999999999982 ms\n", + "t = 9.599999999999982 ms\n", + "t = 9.699999999999982 ms\n", + "t = 9.799999999999981 ms\n", + "t = 9.89999999999998 ms\n", + "t = 9.99999999999998 ms\n", + "t = 10.09999999999998 ms\n", + "t = 10.19999999999998 ms\n", + "t = 10.29999999999998 ms\n", + "t = 10.399999999999979 ms\n", + "t = 10.499999999999979 ms\n", + "t = 10.599999999999978 ms\n", + "t = 10.699999999999978 ms\n", + "t = 10.799999999999978 ms\n", + "t = 10.899999999999977 ms\n", + "t = 10.999999999999977 ms\n", + "t = 11.099999999999977 ms\n", + "t = 11.199999999999976 ms\n", + "t = 11.299999999999976 ms\n", + "t = 11.399999999999975 ms\n", + "t = 11.499999999999975 ms\n", + "t = 11.599999999999975 ms\n", + "t = 11.699999999999974 ms\n", + "t = 11.799999999999974 ms\n", + "t = 11.899999999999974 ms\n", + "t = 11.999999999999973 ms\n", + "t = 12.099999999999973 ms\n", + "t = 12.199999999999973 ms\n", + "t = 12.299999999999972 ms\n", + "t = 12.399999999999972 ms\n", + "t = 12.499999999999972 ms\n", + "t = 12.599999999999971 ms\n", + "t = 12.69999999999997 ms\n", + "t = 12.79999999999997 ms\n", + "t = 12.89999999999997 ms\n", + "t = 12.99999999999997 ms\n", + "t = 13.09999999999997 ms\n", + "t = 13.199999999999969 ms\n", + "t = 13.299999999999969 ms\n", + "t = 13.399999999999968 ms\n", + "t = 13.499999999999968 ms\n", + "t = 13.599999999999968 ms\n", + "t = 13.699999999999967 ms\n", + "t = 13.799999999999967 ms\n", + "t = 13.899999999999967 ms\n", + "t = 13.999999999999966 ms\n", + "t = 14.099999999999966 ms\n", + "t = 14.199999999999966 ms\n", + "t = 14.299999999999965 ms\n", + "t = 14.399999999999965 ms\n", + "t = 14.499999999999964 ms\n", + "t = 14.599999999999964 ms\n", + "t = 14.699999999999964 ms\n", + "t = 14.799999999999963 ms\n", + "t = 14.899999999999963 ms\n", + "t = 14.999999999999963 ms\n", + "t = 15.099999999999962 ms\n", + "t = 15.199999999999962 ms\n", + "t = 15.299999999999962 ms\n", + "t = 15.399999999999961 ms\n", + "t = 15.499999999999961 ms\n", + "t = 15.59999999999996 ms\n", + "t = 15.69999999999996 ms\n", + "t = 15.79999999999996 ms\n", + "t = 15.89999999999996 ms\n", + "t = 15.99999999999996 ms\n", + "t = 16.09999999999996 ms\n", + "t = 16.19999999999996 ms\n", + "t = 16.29999999999996 ms\n", + "t = 16.399999999999963 ms\n", + "t = 16.499999999999964 ms\n", + "t = 16.599999999999966 ms\n", + "t = 16.699999999999967 ms\n", + "t = 16.79999999999997 ms\n", + "t = 16.89999999999997 ms\n", + "t = 16.99999999999997 ms\n", + "t = 17.099999999999973 ms\n", + "t = 17.199999999999974 ms\n", + "t = 17.299999999999976 ms\n", + "t = 17.399999999999977 ms\n", + "t = 17.49999999999998 ms\n", + "t = 17.59999999999998 ms\n", + "t = 17.69999999999998 ms\n", + "t = 17.799999999999983 ms\n", + "t = 17.899999999999984 ms\n", + "t = 17.999999999999986 ms\n", + "t = 18.099999999999987 ms\n", + "t = 18.19999999999999 ms\n", + "t = 18.29999999999999 ms\n", + "t = 18.39999999999999 ms\n", + "t = 18.499999999999993 ms\n", + "t = 18.599999999999994 ms\n", + "t = 18.699999999999996 ms\n", + "t = 18.799999999999997 ms\n", + "t = 18.9 ms\n", + "t = 19.0 ms\n", + "t = 19.1 ms\n", + "t = 19.200000000000003 ms\n", + "t = 19.300000000000004 ms\n", + "t = 19.400000000000006 ms\n", + "t = 19.500000000000007 ms\n", + "t = 19.60000000000001 ms\n", + "t = 19.70000000000001 ms\n", + "t = 19.80000000000001 ms\n", + "t = 19.900000000000013 ms\n", + "t = 20.000000000000014 ms\n", + "t = 20.100000000000016 ms\n", + "t = 20.200000000000017 ms\n", + "t = 20.30000000000002 ms\n", + "t = 20.40000000000002 ms\n", + "t = 20.50000000000002 ms\n", + "t = 20.600000000000023 ms\n", + "t = 20.700000000000024 ms\n", + "t = 20.800000000000026 ms\n", + "t = 20.900000000000027 ms\n", + "t = 21.00000000000003 ms\n", + "t = 21.10000000000003 ms\n", + "t = 21.20000000000003 ms\n", + "t = 21.300000000000033 ms\n", + "t = 21.400000000000034 ms\n", + "t = 21.500000000000036 ms\n", + "t = 21.600000000000037 ms\n", + "t = 21.70000000000004 ms\n", + "t = 21.80000000000004 ms\n", + "t = 21.90000000000004 ms\n", + "t = 22.000000000000043 ms\n", + "t = 22.100000000000044 ms\n", + "t = 22.200000000000045 ms\n", + "t = 22.300000000000047 ms\n", + "t = 22.40000000000005 ms\n", + "t = 22.50000000000005 ms\n", + "t = 22.60000000000005 ms\n", + "t = 22.700000000000053 ms\n", + "t = 22.800000000000054 ms\n", + "t = 22.900000000000055 ms\n", + "t = 23.000000000000057 ms\n", + "t = 23.10000000000006 ms\n", + "t = 23.20000000000006 ms\n", + "t = 23.30000000000006 ms\n", + "t = 23.400000000000063 ms\n", + "t = 23.500000000000064 ms\n", + "t = 23.600000000000065 ms\n", + "t = 23.700000000000067 ms\n", + "t = 23.800000000000068 ms\n", + "t = 23.90000000000007 ms\n", + "t = 24.00000000000007 ms\n", + "t = 24.100000000000072 ms\n", + "t = 24.200000000000074 ms\n", + "t = 24.300000000000075 ms\n", + "t = 24.400000000000077 ms\n", + "t = 24.500000000000078 ms\n", + "t = 24.60000000000008 ms\n", + "t = 24.70000000000008 ms\n", + "t = 24.800000000000082 ms\n", + "t = 24.900000000000084 ms\n", + "t = 25.000000000000085 ms\n", + "t = 25.100000000000087 ms\n", + "t = 25.200000000000088 ms\n", + "t = 25.30000000000009 ms\n", + "t = 25.40000000000009 ms\n", + "t = 25.500000000000092 ms\n", + "t = 25.600000000000094 ms\n", + "t = 25.700000000000095 ms\n", + "t = 25.800000000000097 ms\n", + "t = 25.900000000000098 ms\n", + "t = 26.0000000000001 ms\n", + "t = 26.1000000000001 ms\n", + "t = 26.200000000000102 ms\n", + "t = 26.300000000000104 ms\n", + "t = 26.400000000000105 ms\n", + "t = 26.500000000000107 ms\n", + "t = 26.600000000000108 ms\n", + "t = 26.70000000000011 ms\n", + "t = 26.80000000000011 ms\n", + "t = 26.900000000000112 ms\n", + "t = 27.000000000000114 ms\n", + "t = 27.100000000000115 ms\n", + "t = 27.200000000000117 ms\n", + "t = 27.300000000000118 ms\n", + "t = 27.40000000000012 ms\n", + "t = 27.50000000000012 ms\n", + "t = 27.600000000000122 ms\n", + "t = 27.700000000000124 ms\n", + "t = 27.800000000000125 ms\n", + "t = 27.900000000000126 ms\n", + "t = 28.000000000000128 ms\n", + "t = 28.10000000000013 ms\n", + "t = 28.20000000000013 ms\n", + "t = 28.300000000000132 ms\n", + "t = 28.400000000000134 ms\n", + "t = 28.500000000000135 ms\n", + "t = 28.600000000000136 ms\n", + "t = 28.700000000000138 ms\n", + "t = 28.80000000000014 ms\n", + "t = 28.90000000000014 ms\n", + "t = 29.000000000000142 ms\n", + "t = 29.100000000000144 ms\n", + "t = 29.200000000000145 ms\n", + "t = 29.300000000000146 ms\n", + "t = 29.400000000000148 ms\n", + "t = 29.50000000000015 ms\n", + "t = 29.60000000000015 ms\n", + "t = 29.700000000000152 ms\n", + "t = 29.800000000000153 ms\n", + "t = 29.900000000000155 ms\n", + "t = 30.000000000000156 ms\n", + "t = 30.100000000000158 ms\n", + "t = 30.20000000000016 ms\n", + "t = 30.30000000000016 ms\n", + "t = 30.400000000000162 ms\n", + "t = 30.500000000000163 ms\n", + "t = 30.600000000000165 ms\n", + "t = 30.700000000000166 ms\n", + "t = 30.800000000000168 ms\n", + "t = 30.90000000000017 ms\n", + "t = 31.00000000000017 ms\n", + "t = 31.100000000000172 ms\n", + "t = 31.200000000000173 ms\n", + "t = 31.300000000000175 ms\n", + "t = 31.400000000000176 ms\n", + "t = 31.500000000000178 ms\n", + "t = 31.60000000000018 ms\n", + "t = 31.70000000000018 ms\n", + "t = 31.800000000000182 ms\n", + "t = 31.900000000000183 ms\n", + "t = 32.000000000000185 ms\n", + "t = 32.100000000000186 ms\n", + "t = 32.20000000000019 ms\n", + "t = 32.30000000000019 ms\n", + "t = 32.40000000000019 ms\n", + "t = 32.50000000000019 ms\n", + "t = 32.60000000000019 ms\n", + "t = 32.700000000000195 ms\n", + "t = 32.800000000000196 ms\n", + "t = 32.9000000000002 ms\n", + "t = 33.0000000000002 ms\n", + "t = 33.1000000000002 ms\n", + "t = 33.2000000000002 ms\n", + "t = 33.3000000000002 ms\n", + "t = 33.400000000000205 ms\n", + "t = 33.500000000000206 ms\n", + "t = 33.60000000000021 ms\n", + "t = 33.70000000000021 ms\n", + "t = 33.80000000000021 ms\n", + "t = 33.90000000000021 ms\n", + "t = 34.00000000000021 ms\n", + "t = 34.100000000000215 ms\n", + "t = 34.200000000000216 ms\n", + "t = 34.30000000000022 ms\n", + "t = 34.40000000000022 ms\n", + "t = 34.50000000000022 ms\n", + "t = 34.60000000000022 ms\n", + "t = 34.70000000000022 ms\n", + "t = 34.800000000000225 ms\n", + "t = 34.900000000000226 ms\n", + "t = 35.00000000000023 ms\n", + "t = 35.10000000000023 ms\n", + "t = 35.20000000000023 ms\n", + "t = 35.30000000000023 ms\n", + "t = 35.40000000000023 ms\n", + "t = 35.500000000000234 ms\n", + "t = 35.600000000000236 ms\n", + "t = 35.70000000000024 ms\n", + "t = 35.80000000000024 ms\n", + "t = 35.90000000000024 ms\n", + "t = 36.00000000000024 ms\n", + "t = 36.10000000000024 ms\n", + "t = 36.200000000000244 ms\n", + "t = 36.300000000000246 ms\n", + "t = 36.40000000000025 ms\n", + "t = 36.50000000000025 ms\n", + "t = 36.60000000000025 ms\n", + "t = 36.70000000000025 ms\n", + "t = 36.80000000000025 ms\n", + "t = 36.900000000000254 ms\n", + "t = 37.000000000000256 ms\n", + "t = 37.10000000000026 ms\n", + "t = 37.20000000000026 ms\n", + "t = 37.30000000000026 ms\n", + "t = 37.40000000000026 ms\n", + "t = 37.50000000000026 ms\n", + "t = 37.600000000000264 ms\n", + "t = 37.700000000000266 ms\n", + "t = 37.80000000000027 ms\n", + "t = 37.90000000000027 ms\n", + "t = 38.00000000000027 ms\n", + "t = 38.10000000000027 ms\n", + "t = 38.20000000000027 ms\n", + "t = 38.300000000000274 ms\n", + "t = 38.400000000000276 ms\n", + "t = 38.50000000000028 ms\n", + "t = 38.60000000000028 ms\n", + "t = 38.70000000000028 ms\n", + "t = 38.80000000000028 ms\n", + "t = 38.90000000000028 ms\n", + "t = 39.000000000000284 ms\n", + "t = 39.100000000000286 ms\n", + "t = 39.20000000000029 ms\n", + "t = 39.30000000000029 ms\n", + "t = 39.40000000000029 ms\n", + "t = 39.50000000000029 ms\n", + "t = 39.60000000000029 ms\n", + "t = 39.700000000000294 ms\n", + "t = 39.800000000000296 ms\n", + "t = 39.9000000000003 ms\n", + "t = 40.0000000000003 ms\n", + "t = 40.1000000000003 ms\n", + "t = 40.2000000000003 ms\n", + "t = 40.3000000000003 ms\n", + "t = 40.400000000000304 ms\n", + "t = 40.500000000000306 ms\n", + "t = 40.60000000000031 ms\n", + "t = 40.70000000000031 ms\n", + "t = 40.80000000000031 ms\n", + "t = 40.90000000000031 ms\n", + "t = 41.00000000000031 ms\n", + "t = 41.100000000000314 ms\n", + "t = 41.200000000000315 ms\n", + "t = 41.30000000000032 ms\n", + "t = 41.40000000000032 ms\n", + "t = 41.50000000000032 ms\n", + "t = 41.60000000000032 ms\n", + "t = 41.70000000000032 ms\n", + "t = 41.800000000000324 ms\n", + "t = 41.900000000000325 ms\n", + "t = 42.00000000000033 ms\n", + "t = 42.10000000000033 ms\n", + "t = 42.20000000000033 ms\n", + "t = 42.30000000000033 ms\n", + "t = 42.40000000000033 ms\n", + "t = 42.500000000000334 ms\n", + "t = 42.600000000000335 ms\n", + "t = 42.70000000000034 ms\n", + "t = 42.80000000000034 ms\n", + "t = 42.90000000000034 ms\n", + "t = 43.00000000000034 ms\n", + "t = 43.10000000000034 ms\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "t = 43.200000000000344 ms\n", + "t = 43.300000000000345 ms\n", + "t = 43.40000000000035 ms\n", + "t = 43.50000000000035 ms\n", + "t = 43.60000000000035 ms\n", + "t = 43.70000000000035 ms\n", + "t = 43.80000000000035 ms\n", + "t = 43.900000000000354 ms\n", + "t = 44.000000000000355 ms\n", + "t = 44.10000000000036 ms\n", + "t = 44.20000000000036 ms\n", + "t = 44.30000000000036 ms\n", + "t = 44.40000000000036 ms\n", + "t = 44.50000000000036 ms\n", + "t = 44.600000000000364 ms\n", + "t = 44.700000000000365 ms\n", + "t = 44.80000000000037 ms\n", + "t = 44.90000000000037 ms\n", + "t = 45.00000000000037 ms\n", + "t = 45.10000000000037 ms\n", + "t = 45.20000000000037 ms\n", + "t = 45.300000000000374 ms\n", + "t = 45.400000000000375 ms\n", + "t = 45.50000000000038 ms\n", + "t = 45.60000000000038 ms\n", + "t = 45.70000000000038 ms\n", + "t = 45.80000000000038 ms\n", + "t = 45.90000000000038 ms\n", + "t = 46.000000000000384 ms\n", + "t = 46.100000000000385 ms\n", + "t = 46.20000000000039 ms\n", + "t = 46.30000000000039 ms\n", + "t = 46.40000000000039 ms\n", + "t = 46.50000000000039 ms\n", + "t = 46.60000000000039 ms\n", + "t = 46.700000000000394 ms\n", + "t = 46.800000000000395 ms\n", + "t = 46.9000000000004 ms\n", + "t = 47.0000000000004 ms\n", + "t = 47.1000000000004 ms\n", + "t = 47.2000000000004 ms\n", + "t = 47.3000000000004 ms\n", + "t = 47.400000000000404 ms\n", + "t = 47.500000000000405 ms\n", + "t = 47.600000000000406 ms\n", + "t = 47.70000000000041 ms\n", + "t = 47.80000000000041 ms\n", + "t = 47.90000000000041 ms\n", + "t = 48.00000000000041 ms\n", + "t = 48.10000000000041 ms\n", + "t = 48.200000000000415 ms\n", + "t = 48.300000000000416 ms\n", + "t = 48.40000000000042 ms\n", + "t = 48.50000000000042 ms\n", + "t = 48.60000000000042 ms\n", + "t = 48.70000000000042 ms\n", + "t = 48.80000000000042 ms\n", + "t = 48.900000000000425 ms\n", + "t = 49.000000000000426 ms\n", + "t = 49.10000000000043 ms\n", + "t = 49.20000000000043 ms\n", + "t = 49.30000000000043 ms\n", + "t = 49.40000000000043 ms\n", + "t = 49.50000000000043 ms\n", + "t = 49.600000000000435 ms\n", + "t = 49.700000000000436 ms\n", + "t = 49.80000000000044 ms\n", + "t = 49.90000000000044 ms\n", + "t = 50.00000000000044 ms\n", + "t = 50.10000000000044 ms\n", + "t = 50.20000000000044 ms\n", + "t = 50.300000000000445 ms\n", + "t = 50.400000000000446 ms\n", + "t = 50.50000000000045 ms\n", + "t = 50.60000000000045 ms\n", + "t = 50.70000000000045 ms\n", + "t = 50.80000000000045 ms\n", + "t = 50.90000000000045 ms\n", + "t = 51.000000000000455 ms\n", + "t = 51.100000000000456 ms\n", + "t = 51.20000000000046 ms\n", + "t = 51.30000000000046 ms\n", + "t = 51.40000000000046 ms\n", + "t = 51.50000000000046 ms\n", + "t = 51.60000000000046 ms\n", + "t = 51.700000000000465 ms\n", + "t = 51.800000000000466 ms\n", + "t = 51.90000000000047 ms\n", + "t = 52.00000000000047 ms\n", + "t = 52.10000000000047 ms\n", + "t = 52.20000000000047 ms\n", + "t = 52.30000000000047 ms\n", + "t = 52.400000000000475 ms\n", + "t = 52.500000000000476 ms\n", + "t = 52.60000000000048 ms\n", + "t = 52.70000000000048 ms\n", + "t = 52.80000000000048 ms\n", + "t = 52.90000000000048 ms\n", + "t = 53.00000000000048 ms\n", + "t = 53.100000000000485 ms\n", + "t = 53.200000000000486 ms\n", + "t = 53.30000000000049 ms\n", + "t = 53.40000000000049 ms\n", + "t = 53.50000000000049 ms\n", + "t = 53.60000000000049 ms\n", + "t = 53.70000000000049 ms\n", + "t = 53.800000000000495 ms\n", + "t = 53.900000000000496 ms\n", + "t = 54.0000000000005 ms\n", + "t = 54.1000000000005 ms\n", + "t = 54.2000000000005 ms\n", + "t = 54.3000000000005 ms\n", + "t = 54.4000000000005 ms\n", + "t = 54.500000000000504 ms\n", + "t = 54.600000000000506 ms\n", + "t = 54.70000000000051 ms\n", + "t = 54.80000000000051 ms\n", + "t = 54.90000000000051 ms\n", + "t = 55.00000000000051 ms\n", + "t = 55.10000000000051 ms\n", + "t = 55.200000000000514 ms\n", + "t = 55.300000000000516 ms\n", + "t = 55.40000000000052 ms\n", + "t = 55.50000000000052 ms\n", + "t = 55.60000000000052 ms\n", + "t = 55.70000000000052 ms\n", + "t = 55.80000000000052 ms\n", + "t = 55.900000000000524 ms\n", + "t = 56.000000000000526 ms\n", + "t = 56.10000000000053 ms\n", + "t = 56.20000000000053 ms\n", + "t = 56.30000000000053 ms\n", + "t = 56.40000000000053 ms\n", + "t = 56.50000000000053 ms\n", + "t = 56.600000000000534 ms\n", + "t = 56.700000000000536 ms\n", + "t = 56.80000000000054 ms\n", + "t = 56.90000000000054 ms\n", + "t = 57.00000000000054 ms\n", + "t = 57.10000000000054 ms\n", + "t = 57.20000000000054 ms\n", + "t = 57.300000000000544 ms\n", + "t = 57.400000000000546 ms\n", + "t = 57.50000000000055 ms\n", + "t = 57.60000000000055 ms\n", + "t = 57.70000000000055 ms\n", + "t = 57.80000000000055 ms\n", + "t = 57.90000000000055 ms\n", + "t = 58.000000000000554 ms\n", + "t = 58.100000000000556 ms\n", + "t = 58.20000000000056 ms\n", + "t = 58.30000000000056 ms\n", + "t = 58.40000000000056 ms\n", + "t = 58.50000000000056 ms\n", + "t = 58.60000000000056 ms\n", + "t = 58.700000000000564 ms\n", + "t = 58.800000000000566 ms\n", + "t = 58.90000000000057 ms\n", + "t = 59.00000000000057 ms\n", + "t = 59.10000000000057 ms\n", + "t = 59.20000000000057 ms\n", + "t = 59.30000000000057 ms\n", + "t = 59.400000000000574 ms\n", + "t = 59.500000000000576 ms\n", + "t = 59.60000000000058 ms\n", + "t = 59.70000000000058 ms\n", + "t = 59.80000000000058 ms\n", + "t = 59.90000000000058 ms\n", + "t = 60.00000000000058 ms\n", + "t = 60.100000000000584 ms\n", + "t = 60.200000000000585 ms\n", + "t = 60.30000000000059 ms\n", + "t = 60.40000000000059 ms\n", + "t = 60.50000000000059 ms\n", + "t = 60.60000000000059 ms\n", + "t = 60.70000000000059 ms\n", + "t = 60.800000000000594 ms\n", + "t = 60.900000000000595 ms\n", + "t = 61.0000000000006 ms\n", + "t = 61.1000000000006 ms\n", + "t = 61.2000000000006 ms\n", + "t = 61.3000000000006 ms\n", + "t = 61.4000000000006 ms\n", + "t = 61.500000000000604 ms\n", + "t = 61.600000000000605 ms\n", + "t = 61.70000000000061 ms\n", + "t = 61.80000000000061 ms\n", + "t = 61.90000000000061 ms\n", + "t = 62.00000000000061 ms\n", + "t = 62.10000000000061 ms\n", + "t = 62.200000000000614 ms\n", + "t = 62.300000000000615 ms\n", + "t = 62.40000000000062 ms\n", + "t = 62.50000000000062 ms\n", + "t = 62.60000000000062 ms\n", + "t = 62.70000000000062 ms\n", + "t = 62.80000000000062 ms\n", + "t = 62.900000000000624 ms\n", + "t = 63.000000000000625 ms\n", + "t = 63.10000000000063 ms\n", + "t = 63.20000000000063 ms\n", + "t = 63.30000000000063 ms\n", + "t = 63.40000000000063 ms\n", + "t = 63.50000000000063 ms\n", + "t = 63.600000000000634 ms\n", + "t = 63.700000000000635 ms\n", + "t = 63.80000000000064 ms\n", + "t = 63.90000000000064 ms\n", + "t = 64.00000000000064 ms\n", + "t = 64.10000000000063 ms\n", + "t = 64.20000000000063 ms\n", + "t = 64.30000000000062 ms\n", + "t = 64.40000000000062 ms\n", + "t = 64.50000000000061 ms\n", + "t = 64.6000000000006 ms\n", + "t = 64.7000000000006 ms\n", + "t = 64.8000000000006 ms\n", + "t = 64.90000000000059 ms\n", + "t = 65.00000000000058 ms\n", + "t = 65.10000000000058 ms\n", + "t = 65.20000000000057 ms\n", + "t = 65.30000000000057 ms\n", + "t = 65.40000000000056 ms\n", + "t = 65.50000000000055 ms\n", + "t = 65.60000000000055 ms\n", + "t = 65.70000000000054 ms\n", + "t = 65.80000000000054 ms\n", + "t = 65.90000000000053 ms\n", + "t = 66.00000000000053 ms\n", + "t = 66.10000000000052 ms\n", + "t = 66.20000000000051 ms\n", + "t = 66.30000000000051 ms\n", + "t = 66.4000000000005 ms\n", + "t = 66.5000000000005 ms\n", + "t = 66.60000000000049 ms\n", + "t = 66.70000000000049 ms\n", + "t = 66.80000000000048 ms\n", + "t = 66.90000000000047 ms\n", + "t = 67.00000000000047 ms\n", + "t = 67.10000000000046 ms\n", + "t = 67.20000000000046 ms\n", + "t = 67.30000000000045 ms\n", + "t = 67.40000000000045 ms\n", + "t = 67.50000000000044 ms\n", + "t = 67.60000000000043 ms\n", + "t = 67.70000000000043 ms\n", + "t = 67.80000000000042 ms\n", + "t = 67.90000000000042 ms\n", + "t = 68.00000000000041 ms\n", + "t = 68.1000000000004 ms\n", + "t = 68.2000000000004 ms\n", + "t = 68.3000000000004 ms\n", + "t = 68.40000000000039 ms\n", + "t = 68.50000000000038 ms\n", + "t = 68.60000000000038 ms\n", + "t = 68.70000000000037 ms\n", + "t = 68.80000000000037 ms\n", + "t = 68.90000000000036 ms\n", + "t = 69.00000000000036 ms\n", + "t = 69.10000000000035 ms\n", + "t = 69.20000000000034 ms\n", + "t = 69.30000000000034 ms\n", + "t = 69.40000000000033 ms\n", + "t = 69.50000000000033 ms\n", + "t = 69.60000000000032 ms\n", + "t = 69.70000000000032 ms\n", + "t = 69.80000000000031 ms\n", + "t = 69.9000000000003 ms\n", + "t = 70.0000000000003 ms\n", + "t = 70.10000000000029 ms\n", + "t = 70.20000000000029 ms\n", + "t = 70.30000000000028 ms\n", + "t = 70.40000000000028 ms\n", + "t = 70.50000000000027 ms\n", + "t = 70.60000000000026 ms\n", + "t = 70.70000000000026 ms\n", + "t = 70.80000000000025 ms\n", + "t = 70.90000000000025 ms\n", + "t = 71.00000000000024 ms\n", + "t = 71.10000000000024 ms\n", + "t = 71.20000000000023 ms\n", + "t = 71.30000000000022 ms\n", + "t = 71.40000000000022 ms\n", + "t = 71.50000000000021 ms\n", + "t = 71.60000000000021 ms\n", + "t = 71.7000000000002 ms\n", + "t = 71.8000000000002 ms\n", + "t = 71.90000000000019 ms\n", + "t = 72.00000000000018 ms\n", + "t = 72.10000000000018 ms\n", + "t = 72.20000000000017 ms\n", + "t = 72.30000000000017 ms\n", + "t = 72.40000000000016 ms\n", + "t = 72.50000000000016 ms\n", + "t = 72.60000000000015 ms\n", + "t = 72.70000000000014 ms\n", + "t = 72.80000000000014 ms\n", + "t = 72.90000000000013 ms\n", + "t = 73.00000000000013 ms\n", + "t = 73.10000000000012 ms\n", + "t = 73.20000000000012 ms\n", + "t = 73.30000000000011 ms\n", + "t = 73.4000000000001 ms\n", + "t = 73.5000000000001 ms\n", + "t = 73.6000000000001 ms\n", + "t = 73.70000000000009 ms\n", + "t = 73.80000000000008 ms\n", + "t = 73.90000000000008 ms\n", + "t = 74.00000000000007 ms\n", + "t = 74.10000000000007 ms\n", + "t = 74.20000000000006 ms\n", + "t = 74.30000000000005 ms\n", + "t = 74.40000000000005 ms\n", + "t = 74.50000000000004 ms\n", + "t = 74.60000000000004 ms\n", + "t = 74.70000000000003 ms\n", + "t = 74.80000000000003 ms\n", + "t = 74.90000000000002 ms\n", + "t = 75.00000000000001 ms\n", + "t = 75.10000000000001 ms\n", + "t = 75.2 ms\n", + "t = 75.3 ms\n", + "t = 75.39999999999999 ms\n", + "t = 75.49999999999999 ms\n", + "t = 75.59999999999998 ms\n", + "t = 75.69999999999997 ms\n", + "t = 75.79999999999997 ms\n", + "t = 75.89999999999996 ms\n", + "t = 75.99999999999996 ms\n", + "t = 76.09999999999995 ms\n", + "t = 76.19999999999995 ms\n", + "t = 76.29999999999994 ms\n", + "t = 76.39999999999993 ms\n", + "t = 76.49999999999993 ms\n", + "t = 76.59999999999992 ms\n", + "t = 76.69999999999992 ms\n", + "t = 76.79999999999991 ms\n", + "t = 76.8999999999999 ms\n", + "t = 76.9999999999999 ms\n", + "t = 77.0999999999999 ms\n", + "t = 77.19999999999989 ms\n", + "t = 77.29999999999988 ms\n", + "t = 77.39999999999988 ms\n", + "t = 77.49999999999987 ms\n", + "t = 77.59999999999987 ms\n", + "t = 77.69999999999986 ms\n", + "t = 77.79999999999986 ms\n", + "t = 77.89999999999985 ms\n", + "t = 77.99999999999984 ms\n", + "t = 78.09999999999984 ms\n", + "t = 78.19999999999983 ms\n", + "t = 78.29999999999983 ms\n", + "t = 78.39999999999982 ms\n", + "t = 78.49999999999982 ms\n", + "t = 78.59999999999981 ms\n", + "t = 78.6999999999998 ms\n", + "t = 78.7999999999998 ms\n", + "t = 78.89999999999979 ms\n", + "t = 78.99999999999979 ms\n", + "t = 79.09999999999978 ms\n", + "t = 79.19999999999978 ms\n", + "t = 79.29999999999977 ms\n", + "t = 79.39999999999976 ms\n", + "t = 79.49999999999976 ms\n", + "t = 79.59999999999975 ms\n", + "t = 79.69999999999975 ms\n", + "t = 79.79999999999974 ms\n", + "t = 79.89999999999974 ms\n", + "t = 79.99999999999973 ms\n", + "t = 80.09999999999972 ms\n", + "t = 80.19999999999972 ms\n", + "t = 80.29999999999971 ms\n", + "t = 80.39999999999971 ms\n", + "t = 80.4999999999997 ms\n", + "t = 80.5999999999997 ms\n", + "t = 80.69999999999969 ms\n", + "t = 80.79999999999968 ms\n", + "t = 80.89999999999968 ms\n", + "t = 80.99999999999967 ms\n", + "t = 81.09999999999967 ms\n", + "t = 81.19999999999966 ms\n", + "t = 81.29999999999966 ms\n", + "t = 81.39999999999965 ms\n", + "t = 81.49999999999964 ms\n", + "t = 81.59999999999964 ms\n", + "t = 81.69999999999963 ms\n", + "t = 81.79999999999963 ms\n", + "t = 81.89999999999962 ms\n", + "t = 81.99999999999962 ms\n", + "t = 82.09999999999961 ms\n", + "t = 82.1999999999996 ms\n", + "t = 82.2999999999996 ms\n", + "t = 82.3999999999996 ms\n", + "t = 82.49999999999959 ms\n", + "t = 82.59999999999958 ms\n", + "t = 82.69999999999958 ms\n", + "t = 82.79999999999957 ms\n", + "t = 82.89999999999957 ms\n", + "t = 82.99999999999956 ms\n", + "t = 83.09999999999955 ms\n", + "t = 83.19999999999955 ms\n", + "t = 83.29999999999954 ms\n", + "t = 83.39999999999954 ms\n", + "t = 83.49999999999953 ms\n", + "t = 83.59999999999953 ms\n", + "t = 83.69999999999952 ms\n", + "t = 83.79999999999951 ms\n", + "t = 83.89999999999951 ms\n", + "t = 83.9999999999995 ms\n", + "t = 84.0999999999995 ms\n", + "t = 84.19999999999949 ms\n", + "t = 84.29999999999949 ms\n", + "t = 84.39999999999948 ms\n", + "t = 84.49999999999947 ms\n", + "t = 84.59999999999947 ms\n", + "t = 84.69999999999946 ms\n", + "t = 84.79999999999946 ms\n", + "t = 84.89999999999945 ms\n", + "t = 84.99999999999945 ms\n", + "t = 85.09999999999944 ms\n", + "t = 85.19999999999943 ms\n", + "t = 85.29999999999943 ms\n", + "t = 85.39999999999942 ms\n", + "t = 85.49999999999942 ms\n", + "t = 85.59999999999941 ms\n", + "t = 85.6999999999994 ms\n", + "t = 85.7999999999994 ms\n", + "t = 85.8999999999994 ms\n", + "t = 85.99999999999939 ms\n", + "t = 86.09999999999938 ms\n", + "t = 86.19999999999938 ms\n", + "t = 86.29999999999937 ms\n", + "t = 86.39999999999937 ms\n", + "t = 86.49999999999936 ms\n", + "t = 86.59999999999935 ms\n", + "t = 86.69999999999935 ms\n", + "t = 86.79999999999934 ms\n", + "t = 86.89999999999934 ms\n", + "t = 86.99999999999933 ms\n", + "t = 87.09999999999933 ms\n", + "t = 87.19999999999932 ms\n", + "t = 87.29999999999932 ms\n", + "t = 87.39999999999931 ms\n", + "t = 87.4999999999993 ms\n", + "t = 87.5999999999993 ms\n", + "t = 87.69999999999929 ms\n", + "t = 87.79999999999929 ms\n", + "t = 87.89999999999928 ms\n", + "t = 87.99999999999928 ms\n", + "t = 88.09999999999927 ms\n", + "t = 88.19999999999926 ms\n", + "t = 88.29999999999926 ms\n", + "t = 88.39999999999925 ms\n", + "t = 88.49999999999925 ms\n", + "t = 88.59999999999924 ms\n", + "t = 88.69999999999924 ms\n", + "t = 88.79999999999923 ms\n", + "t = 88.89999999999922 ms\n", + "t = 88.99999999999922 ms\n", + "t = 89.09999999999921 ms\n", + "t = 89.1999999999992 ms\n", + "t = 89.2999999999992 ms\n", + "t = 89.3999999999992 ms\n", + "t = 89.49999999999919 ms\n", + "t = 89.59999999999918 ms\n", + "t = 89.69999999999918 ms\n", + "t = 89.79999999999917 ms\n", + "t = 89.89999999999917 ms\n", + "t = 89.99999999999916 ms\n", + "t = 90.09999999999916 ms\n", + "t = 90.19999999999915 ms\n", + "t = 90.29999999999914 ms\n", + "t = 90.39999999999914 ms\n", + "t = 90.49999999999913 ms\n", + "t = 90.59999999999913 ms\n", + "t = 90.69999999999912 ms\n", + "t = 90.79999999999912 ms\n", + "t = 90.89999999999911 ms\n", + "t = 90.9999999999991 ms\n", + "t = 91.0999999999991 ms\n", + "t = 91.1999999999991 ms\n", + "t = 91.29999999999909 ms\n", + "t = 91.39999999999908 ms\n", + "t = 91.49999999999908 ms\n", + "t = 91.59999999999907 ms\n", + "t = 91.69999999999906 ms\n", + "t = 91.79999999999906 ms\n", + "t = 91.89999999999905 ms\n", + "t = 91.99999999999905 ms\n", + "t = 92.09999999999904 ms\n", + "t = 92.19999999999904 ms\n", + "t = 92.29999999999903 ms\n", + "t = 92.39999999999903 ms\n", + "t = 92.49999999999902 ms\n", + "t = 92.59999999999901 ms\n", + "t = 92.69999999999901 ms\n", + "t = 92.799999999999 ms\n", + "t = 92.899999999999 ms\n", + "t = 92.99999999999899 ms\n", + "t = 93.09999999999899 ms\n", + "t = 93.19999999999898 ms\n", + "t = 93.29999999999897 ms\n", + "t = 93.39999999999897 ms\n", + "t = 93.49999999999896 ms\n", + "t = 93.59999999999896 ms\n", + "t = 93.69999999999895 ms\n", + "t = 93.79999999999895 ms\n", + "t = 93.89999999999894 ms\n", + "t = 93.99999999999893 ms\n", + "t = 94.09999999999893 ms\n", + "t = 94.19999999999892 ms\n", + "t = 94.29999999999892 ms\n", + "t = 94.39999999999891 ms\n", + "t = 94.4999999999989 ms\n", + "t = 94.5999999999989 ms\n", + "t = 94.6999999999989 ms\n", + "t = 94.79999999999889 ms\n", + "t = 94.89999999999888 ms\n", + "t = 94.99999999999888 ms\n", + "t = 95.09999999999887 ms\n", + "t = 95.19999999999887 ms\n", + "t = 95.29999999999886 ms\n", + "t = 95.39999999999885 ms\n", + "t = 95.49999999999885 ms\n", + "t = 95.59999999999884 ms\n", + "t = 95.69999999999884 ms\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "WARNING:No artists with labels found to put in legend. Note that artists whose label start with an underscore are ignored when legend() is called with no argument.\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "t = 95.79999999999883 ms\n", + "t = 95.89999999999883 ms\n", + "t = 95.99999999999882 ms\n", + "t = 96.09999999999881 ms\n", + "t = 96.19999999999881 ms\n", + "t = 96.2999999999988 ms\n", + "t = 96.3999999999988 ms\n", + "t = 96.49999999999879 ms\n", + "t = 96.59999999999879 ms\n", + "t = 96.69999999999878 ms\n", + "t = 96.79999999999878 ms\n", + "t = 96.89999999999877 ms\n", + "t = 96.99999999999876 ms\n", + "t = 97.09999999999876 ms\n", + "t = 97.19999999999875 ms\n", + "t = 97.29999999999875 ms\n", + "t = 97.39999999999874 ms\n", + "t = 97.49999999999874 ms\n", + "t = 97.59999999999873 ms\n", + "t = 97.69999999999872 ms\n", + "t = 97.79999999999872 ms\n", + "t = 97.89999999999871 ms\n", + "t = 97.9999999999987 ms\n", + "t = 98.0999999999987 ms\n", + "t = 98.1999999999987 ms\n", + "t = 98.29999999999869 ms\n", + "t = 98.39999999999868 ms\n", + "t = 98.49999999999868 ms\n", + "t = 98.59999999999867 ms\n", + "t = 98.69999999999867 ms\n", + "t = 98.79999999999866 ms\n", + "t = 98.89999999999866 ms\n", + "t = 98.99999999999865 ms\n", + "t = 99.09999999999864 ms\n", + "t = 99.19999999999864 ms\n", + "t = 99.29999999999863 ms\n", + "t = 99.39999999999863 ms\n", + "t = 99.49999999999862 ms\n", + "t = 99.59999999999862 ms\n", + "t = 99.69999999999861 ms\n", + "t = 99.7999999999986 ms\n", + "t = 99.8999999999986 ms\n", + "t = 99.9999999999986 ms\n", + "t = 100.09999999999859 ms\n", + "t = 100.19999999999858 ms\n", + "t = 100.29999999999858 ms\n", + "t = 100.39999999999857 ms\n", + "t = 100.49999999999856 ms\n", + "t = 100.59999999999856 ms\n", + "t = 100.69999999999855 ms\n", + "t = 100.79999999999855 ms\n", + "t = 100.89999999999854 ms\n", + "t = 100.99999999999854 ms\n", + "Actual pre spike times: [ 16. 41. 71. 101.]\n", + "Actual post spike times: [21.8 46.7 76.8]\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/tmp/ipykernel_787504/100986089.py:152: UserWarning:Data has no positive values, and therefore cannot be log-scaled.\n" + ] + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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A4CUlJQiE6ynT5/i22+/Rf369dGpU6cy110wUWzTpg1/80VC2NraMkskDPNEojBLJAqzRCKVlCdRV7wKKG7y5eLigmHDhmH27NlITk6Gra0ttm/fjri4OGzevFnTb/To0QgLC0Ph9UaWLVuG6OhouLi4oEaNGggKCsLx48exePFiODk5afr5+fkhKCgIbm5uaNy4MZKSkrBlyxbcu3cPO3fuhJ6enqRjJiIiIiKiqk9xky8A2LFjB+bOnYudO3ciLS0Njo6OOHr0KFxdXV+5X9u2bREYGIjDhw8jLy8Pjo6O2L9/P4YNG6bV75133sHZs2exadMm/PXXX6hVqxacnZ2xZcsW9OrVqzKHRkRERERE1ZQiJ18GBgbw8fGBj49PiX1CQ0OLtA0cOBADBw587fH79OmDPn36VKREIiIiIiJ6wyjuIcvVlZmZGebPn1+uxTqICmOWSCTmiURhlkgUZolEkjpPinvIMhERERERUVXEK19EREREREQS4OSLiIiIiIhIApx8ERERERERSYCTLyIiIiIiIglw8kVERERERCQBTr5klpOTgy+//BJWVlYwNDSEi4sLTpw4IXdZVIWdP38en376Kezt7VGrVi00btwYnp6eiImJKdL3xo0b6N+/P2rXrg1TU1N89NFHSElJkaFqqi6WLFkClUoFBweHItvOnj2Lbt26wcjICBYWFpg2bRoyMjJkqJKqskuXLuEf//gHTE1NYWRkBAcHB6xZs0arD7NEr3Pr1i2MGDECjRo1gpGREVq1aoWFCxciMzNTqx+zRIVlZGRg/vz56N+/P0xNTaFSqbBt27Zi+5b2O1J+fj6WL18OGxsbGBgYwNHREXv37i13jYp8yHJ1MnbsWBw8eBAzZsxAixYtsG3bNgwYMACnTp1Ct27d5C6PqqBvvvkGv/32G4YNGwZHR0c8ePAAa9euRceOHfG///1P86X5/v37cHV1RZ06dbB06VJkZGRgxYoViIqKQmRkJPT09GQeCVU19+/fx9KlS1GrVq0i265cuYL33nsPrVu3xqpVq3D//n2sWLECt27dws8//yxDtVQVHT9+HG5ubujQoQPmzp2L2rVr488//8T9+/c1fZglep34+Hg4OzujTp06+PTTT2Fqaopz585h/vz5uHjxIg4dOgSAWaKiHj16hIULF6Jx48Zo164dQkNDi+1Xlu9IX3/9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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "\n", + "# run the simulation\n", + "timevec, t_hist, third_factor_trace, w_hist = run_synapse_test(neuron_model_name=neuron_model_name,\n", + " synapse_model_name=synapse_model_name,\n", + " resolution=.1, # [ms]\n", + " delay=1., # [ms]\n", + " pre_spike_times=pre_spike_times,\n", + " post_spike_times=post_spike_times,\n", + " sim_time=101.,\n", + " fname_snip=fname_snip,\n", + " experiment=\"no-updates\")\n" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + " -- N E S T --\n", + " Copyright (C) 2004 The NEST Initiative\n", + "\n", + " Version: 3.6.0-post0.dev0\n", + " Built: Nov 8 2023 01:11:46\n", + "\n", + " This program is provided AS IS and comes with\n", + " NO WARRANTY. See the file LICENSE for details.\n", + "\n", + " Problems or suggestions?\n", + " Visit https://www.nest-simulator.org\n", + "\n", + " Type 'nest.help()' to find out more about NEST.\n", + "\n", + "[88,GLOBAL, INFO]: The NEST Simulator version was automatically detected as: master\n", + "Pre spike times: [15.0, 40.0, 70.0, 100.0]\n", + "Post spike times: [20.0, 45.0, 75.0]\n", + "t = 0.0 ms\n", + "t = 0.1 ms\n", + "t = 0.2 ms\n", + "t = 0.30000000000000004 ms\n", + "t = 0.4 ms\n", + "t = 0.5 ms\n", + "t = 0.6 ms\n", + "t = 0.7 ms\n", + "t = 0.7999999999999999 ms\n", + "t = 0.8999999999999999 ms\n", + "t = 0.9999999999999999 ms\n", + "t = 1.0999999999999999 ms\n", + "t = 1.2 ms\n", + "t = 1.3 ms\n", + "t = 1.4000000000000001 ms\n", + "t = 1.5000000000000002 ms\n", + "t = 1.6000000000000003 ms\n", + "t = 1.7000000000000004 ms\n", + "t = 1.8000000000000005 ms\n", + "t = 1.9000000000000006 ms\n", + "t = 2.0000000000000004 ms\n", + "t = 2.1000000000000005 ms\n", + "t = 2.2000000000000006 ms\n", + "t = 2.3000000000000007 ms\n", + "t = 2.400000000000001 ms\n", + "t = 2.500000000000001 ms\n", + "t = 2.600000000000001 ms\n", + "t = 2.700000000000001 ms\n", + "t = 2.800000000000001 ms\n", + "t = 2.9000000000000012 ms\n", + "t = 3.0000000000000013 ms\n", + "t = 3.1000000000000014 ms\n", + "t = 3.2000000000000015 ms\n", + "t = 3.3000000000000016 ms\n", + "t = 3.4000000000000017 ms\n", + "t = 3.5000000000000018 ms\n", + "t = 3.600000000000002 ms\n", + "t = 3.700000000000002 ms\n", + "t = 3.800000000000002 ms\n", + "t = 3.900000000000002 ms\n", + "t = 4.000000000000002 ms\n", + "t = 4.100000000000001 ms\n", + "t = 4.200000000000001 ms\n", + "t = 4.300000000000001 ms\n", + "t = 4.4 ms\n", + "t = 4.5 ms\n", + "t = 4.6 ms\n", + "t = 4.699999999999999 ms\n", + "t = 4.799999999999999 ms\n", + "t = 4.899999999999999 ms\n", + "t = 4.999999999999998 ms\n", + "t = 5.099999999999998 ms\n", + "t = 5.1999999999999975 ms\n", + "t = 5.299999999999997 ms\n", + "t = 5.399999999999997 ms\n", + "t = 5.4999999999999964 ms\n", + "t = 5.599999999999996 ms\n", + "t = 5.699999999999996 ms\n", + "t = 5.799999999999995 ms\n", + "t = 5.899999999999995 ms\n", + "t = 5.999999999999995 ms\n", + "t = 6.099999999999994 ms\n", + "t = 6.199999999999994 ms\n", + "t = 6.299999999999994 ms\n", + "t = 6.399999999999993 ms\n", + "t = 6.499999999999993 ms\n", + "t = 6.5999999999999925 ms\n", + "t = 6.699999999999992 ms\n", + "t = 6.799999999999992 ms\n", + "t = 6.8999999999999915 ms\n", + "t = 6.999999999999991 ms\n", + "t = 7.099999999999991 ms\n", + "t = 7.19999999999999 ms\n", + "t = 7.29999999999999 ms\n", + "t = 7.39999999999999 ms\n", + "t = 7.499999999999989 ms\n", + "t = 7.599999999999989 ms\n", + "t = 7.699999999999989 ms\n", + "t = 7.799999999999988 ms\n", + "t = 7.899999999999988 ms\n", + "t = 7.999999999999988 ms\n", + "t = 8.099999999999987 ms\n", + "t = 8.199999999999987 ms\n", + "t = 8.299999999999986 ms\n", + "t = 8.399999999999986 ms\n", + "t = 8.499999999999986 ms\n", + "t = 8.599999999999985 ms\n", + "t = 8.699999999999985 ms\n", + "t = 8.799999999999985 ms\n", + "t = 8.899999999999984 ms\n", + "t = 8.999999999999984 ms\n", + "t = 9.099999999999984 ms\n", + "t = 9.199999999999983 ms\n", + "t = 9.299999999999983 ms\n", + "t = 9.399999999999983 ms\n", + "t = 9.499999999999982 ms\n", + "t = 9.599999999999982 ms\n", + "t = 9.699999999999982 ms\n", + "t = 9.799999999999981 ms\n", + "t = 9.89999999999998 ms\n", + "t = 9.99999999999998 ms\n", + "t = 10.09999999999998 ms\n", + "t = 10.19999999999998 ms\n", + "t = 10.29999999999998 ms\n", + "t = 10.399999999999979 ms\n", + "t = 10.499999999999979 ms\n", + "t = 10.599999999999978 ms\n", + "t = 10.699999999999978 ms\n", + "t = 10.799999999999978 ms\n", + "t = 10.899999999999977 ms\n", + "t = 10.999999999999977 ms\n", + "t = 11.099999999999977 ms\n", + "t = 11.199999999999976 ms\n", + "t = 11.299999999999976 ms\n", + "t = 11.399999999999975 ms\n", + "t = 11.499999999999975 ms\n", + "t = 11.599999999999975 ms\n", + "t = 11.699999999999974 ms\n", + "t = 11.799999999999974 ms\n", + "t = 11.899999999999974 ms\n", + "t = 11.999999999999973 ms\n", + "t = 12.099999999999973 ms\n", + "t = 12.199999999999973 ms\n", + "t = 12.299999999999972 ms\n", + "t = 12.399999999999972 ms\n", + "t = 12.499999999999972 ms\n", + "t = 12.599999999999971 ms\n", + "t = 12.69999999999997 ms\n", + "t = 12.79999999999997 ms\n", + "t = 12.89999999999997 ms\n", + "t = 12.99999999999997 ms\n", + "t = 13.09999999999997 ms\n", + "t = 13.199999999999969 ms\n", + "t = 13.299999999999969 ms\n", + "t = 13.399999999999968 ms\n", + "t = 13.499999999999968 ms\n", + "t = 13.599999999999968 ms\n", + "t = 13.699999999999967 ms\n", + "t = 13.799999999999967 ms\n", + "t = 13.899999999999967 ms\n", + "t = 13.999999999999966 ms\n", + "t = 14.099999999999966 ms\n", + "t = 14.199999999999966 ms\n", + "t = 14.299999999999965 ms\n", + "t = 14.399999999999965 ms\n", + "t = 14.499999999999964 ms\n", + "t = 14.599999999999964 ms\n", + "t = 14.699999999999964 ms\n", + "t = 14.799999999999963 ms\n", + "t = 14.899999999999963 ms\n", + "t = 14.999999999999963 ms\n", + "t = 15.099999999999962 ms\n", + "t = 15.199999999999962 ms\n", + "t = 15.299999999999962 ms\n", + "t = 15.399999999999961 ms\n", + "t = 15.499999999999961 ms\n", + "t = 15.59999999999996 ms\n", + "t = 15.69999999999996 ms\n", + "t = 15.79999999999996 ms\n", + "t = 15.89999999999996 ms\n", + "t = 15.99999999999996 ms\n", + "t = 16.09999999999996 ms\n", + "t = 16.19999999999996 ms\n", + "t = 16.29999999999996 ms\n", + "t = 16.399999999999963 ms\n", + "t = 16.499999999999964 ms\n", + "t = 16.599999999999966 ms\n", + "t = 16.699999999999967 ms\n", + "t = 16.79999999999997 ms\n", + "t = 16.89999999999997 ms\n", + "t = 16.99999999999997 ms\n", + "t = 17.099999999999973 ms\n", + "t = 17.199999999999974 ms\n", + "t = 17.299999999999976 ms\n", + "t = 17.399999999999977 ms\n", + "t = 17.49999999999998 ms\n", + "t = 17.59999999999998 ms\n", + "t = 17.69999999999998 ms\n", + "t = 17.799999999999983 ms\n", + "t = 17.899999999999984 ms\n", + "t = 17.999999999999986 ms\n", + "t = 18.099999999999987 ms\n", + "t = 18.19999999999999 ms\n", + "t = 18.29999999999999 ms\n", + "t = 18.39999999999999 ms\n", + "t = 18.499999999999993 ms\n", + "t = 18.599999999999994 ms\n", + "t = 18.699999999999996 ms\n", + "t = 18.799999999999997 ms\n", + "t = 18.9 ms\n", + "t = 19.0 ms\n", + "t = 19.1 ms\n", + "t = 19.200000000000003 ms\n", + "t = 19.300000000000004 ms\n", + "t = 19.400000000000006 ms\n", + "t = 19.500000000000007 ms\n", + "t = 19.60000000000001 ms\n", + "t = 19.70000000000001 ms\n", + "t = 19.80000000000001 ms\n", + "t = 19.900000000000013 ms\n", + "t = 20.000000000000014 ms\n", + "t = 20.100000000000016 ms\n", + "t = 20.200000000000017 ms\n", + "t = 20.30000000000002 ms\n", + "t = 20.40000000000002 ms\n", + "t = 20.50000000000002 ms\n", + "t = 20.600000000000023 ms\n", + "t = 20.700000000000024 ms\n", + "t = 20.800000000000026 ms\n", + "t = 20.900000000000027 ms\n", + "t = 21.00000000000003 ms\n", + "t = 21.10000000000003 ms\n", + "t = 21.20000000000003 ms\n", + "t = 21.300000000000033 ms\n", + "t = 21.400000000000034 ms\n", + "t = 21.500000000000036 ms\n", + "t = 21.600000000000037 ms\n", + "t = 21.70000000000004 ms\n", + "t = 21.80000000000004 ms\n", + "t = 21.90000000000004 ms\n", + "t = 22.000000000000043 ms\n", + "t = 22.100000000000044 ms\n", + "t = 22.200000000000045 ms\n", + "t = 22.300000000000047 ms\n", + "t = 22.40000000000005 ms\n", + "t = 22.50000000000005 ms\n", + "t = 22.60000000000005 ms\n", + "t = 22.700000000000053 ms\n", + "t = 22.800000000000054 ms\n", + "t = 22.900000000000055 ms\n", + "t = 23.000000000000057 ms\n", + "t = 23.10000000000006 ms\n", + "t = 23.20000000000006 ms\n", + "t = 23.30000000000006 ms\n", + "t = 23.400000000000063 ms\n", + "t = 23.500000000000064 ms\n", + "t = 23.600000000000065 ms\n", + "t = 23.700000000000067 ms\n", + "t = 23.800000000000068 ms\n", + "t = 23.90000000000007 ms\n", + "t = 24.00000000000007 ms\n", + "t = 24.100000000000072 ms\n", + "t = 24.200000000000074 ms\n", + "t = 24.300000000000075 ms\n", + "t = 24.400000000000077 ms\n", + "t = 24.500000000000078 ms\n", + "t = 24.60000000000008 ms\n", + "t = 24.70000000000008 ms\n", + "t = 24.800000000000082 ms\n", + "t = 24.900000000000084 ms\n", + "t = 25.000000000000085 ms\n", + "t = 25.100000000000087 ms\n", + "t = 25.200000000000088 ms\n", + "t = 25.30000000000009 ms\n", + "t = 25.40000000000009 ms\n", + "t = 25.500000000000092 ms\n", + "t = 25.600000000000094 ms\n", + "t = 25.700000000000095 ms\n", + "t = 25.800000000000097 ms\n", + "t = 25.900000000000098 ms\n", + "t = 26.0000000000001 ms\n", + "t = 26.1000000000001 ms\n", + "t = 26.200000000000102 ms\n", + "t = 26.300000000000104 ms\n", + "t = 26.400000000000105 ms\n", + "t = 26.500000000000107 ms\n", + "t = 26.600000000000108 ms\n", + "t = 26.70000000000011 ms\n", + "t = 26.80000000000011 ms\n", + "t = 26.900000000000112 ms\n", + "t = 27.000000000000114 ms\n", + "t = 27.100000000000115 ms\n", + "t = 27.200000000000117 ms\n", + "t = 27.300000000000118 ms\n", + "t = 27.40000000000012 ms\n", + "t = 27.50000000000012 ms\n", + "t = 27.600000000000122 ms\n", + "t = 27.700000000000124 ms\n", + "t = 27.800000000000125 ms\n", + "t = 27.900000000000126 ms\n", + "t = 28.000000000000128 ms\n", + "t = 28.10000000000013 ms\n", + "t = 28.20000000000013 ms\n", + "t = 28.300000000000132 ms\n", + "t = 28.400000000000134 ms\n", + "t = 28.500000000000135 ms\n", + "t = 28.600000000000136 ms\n", + "t = 28.700000000000138 ms\n", + "t = 28.80000000000014 ms\n", + "t = 28.90000000000014 ms\n", + "t = 29.000000000000142 ms\n", + "t = 29.100000000000144 ms\n", + "t = 29.200000000000145 ms\n", + "t = 29.300000000000146 ms\n", + "t = 29.400000000000148 ms\n", + "t = 29.50000000000015 ms\n", + "t = 29.60000000000015 ms\n", + "t = 29.700000000000152 ms\n", + "t = 29.800000000000153 ms\n", + "t = 29.900000000000155 ms\n", + "t = 30.000000000000156 ms\n", + "t = 30.100000000000158 ms\n", + "t = 30.20000000000016 ms\n", + "t = 30.30000000000016 ms\n", + "t = 30.400000000000162 ms\n", + "t = 30.500000000000163 ms\n", + "t = 30.600000000000165 ms\n", + "t = 30.700000000000166 ms\n", + "t = 30.800000000000168 ms\n", + "t = 30.90000000000017 ms\n", + "t = 31.00000000000017 ms\n", + "t = 31.100000000000172 ms\n", + "t = 31.200000000000173 ms\n", + "t = 31.300000000000175 ms\n", + "t = 31.400000000000176 ms\n", + "t = 31.500000000000178 ms\n", + "t = 31.60000000000018 ms\n", + "t = 31.70000000000018 ms\n", + "t = 31.800000000000182 ms\n", + "t = 31.900000000000183 ms\n", + "t = 32.000000000000185 ms\n", + "t = 32.100000000000186 ms\n", + "t = 32.20000000000019 ms\n", + "t = 32.30000000000019 ms\n", + "t = 32.40000000000019 ms\n", + "t = 32.50000000000019 ms\n", + "t = 32.60000000000019 ms\n", + "t = 32.700000000000195 ms\n", + "t = 32.800000000000196 ms\n", + "t = 32.9000000000002 ms\n", + "t = 33.0000000000002 ms\n", + "t = 33.1000000000002 ms\n", + "t = 33.2000000000002 ms\n", + "t = 33.3000000000002 ms\n", + "t = 33.400000000000205 ms\n", + "t = 33.500000000000206 ms\n", + "t = 33.60000000000021 ms\n", + "t = 33.70000000000021 ms\n", + "t = 33.80000000000021 ms\n", + "t = 33.90000000000021 ms\n", + "t = 34.00000000000021 ms\n", + "t = 34.100000000000215 ms\n", + "t = 34.200000000000216 ms\n", + "t = 34.30000000000022 ms\n", + "t = 34.40000000000022 ms\n", + "t = 34.50000000000022 ms\n", + "t = 34.60000000000022 ms\n", + "t = 34.70000000000022 ms\n", + "t = 34.800000000000225 ms\n", + "t = 34.900000000000226 ms\n", + "t = 35.00000000000023 ms\n", + "t = 35.10000000000023 ms\n", + "t = 35.20000000000023 ms\n", + "t = 35.30000000000023 ms\n", + "t = 35.40000000000023 ms\n", + "t = 35.500000000000234 ms\n", + "t = 35.600000000000236 ms\n", + "t = 35.70000000000024 ms\n", + "t = 35.80000000000024 ms\n", + "t = 35.90000000000024 ms\n", + "t = 36.00000000000024 ms\n", + "t = 36.10000000000024 ms\n", + "t = 36.200000000000244 ms\n", + "t = 36.300000000000246 ms\n", + "t = 36.40000000000025 ms\n", + "t = 36.50000000000025 ms\n", + "t = 36.60000000000025 ms\n", + "t = 36.70000000000025 ms\n", + "t = 36.80000000000025 ms\n", + "t = 36.900000000000254 ms\n", + "t = 37.000000000000256 ms\n", + "t = 37.10000000000026 ms\n", + "t = 37.20000000000026 ms\n", + "t = 37.30000000000026 ms\n", + "t = 37.40000000000026 ms\n", + "t = 37.50000000000026 ms\n", + "t = 37.600000000000264 ms\n", + "t = 37.700000000000266 ms\n", + "t = 37.80000000000027 ms\n", + "t = 37.90000000000027 ms\n", + "t = 38.00000000000027 ms\n", + "t = 38.10000000000027 ms\n", + "t = 38.20000000000027 ms\n", + "t = 38.300000000000274 ms\n", + "t = 38.400000000000276 ms\n", + "t = 38.50000000000028 ms\n", + "t = 38.60000000000028 ms\n", + "t = 38.70000000000028 ms\n", + "t = 38.80000000000028 ms\n", + "t = 38.90000000000028 ms\n", + "t = 39.000000000000284 ms\n", + "t = 39.100000000000286 ms\n", + "t = 39.20000000000029 ms\n", + "t = 39.30000000000029 ms\n", + "t = 39.40000000000029 ms\n", + "t = 39.50000000000029 ms\n", + "t = 39.60000000000029 ms\n", + "t = 39.700000000000294 ms\n", + "t = 39.800000000000296 ms\n", + "t = 39.9000000000003 ms\n", + "t = 40.0000000000003 ms\n", + "t = 40.1000000000003 ms\n", + "t = 40.2000000000003 ms\n", + "t = 40.3000000000003 ms\n", + "t = 40.400000000000304 ms\n", + "t = 40.500000000000306 ms\n", + "t = 40.60000000000031 ms\n", + "t = 40.70000000000031 ms\n", + "t = 40.80000000000031 ms\n", + "t = 40.90000000000031 ms\n", + "t = 41.00000000000031 ms\n", + "t = 41.100000000000314 ms\n", + "t = 41.200000000000315 ms\n", + "t = 41.30000000000032 ms\n", + "t = 41.40000000000032 ms\n", + "t = 41.50000000000032 ms\n", + "t = 41.60000000000032 ms\n", + "t = 41.70000000000032 ms\n", + "t = 41.800000000000324 ms\n", + "t = 41.900000000000325 ms\n", + "t = 42.00000000000033 ms\n", + "t = 42.10000000000033 ms\n", + "t = 42.20000000000033 ms\n", + "t = 42.30000000000033 ms\n", + "t = 42.40000000000033 ms\n", + "t = 42.500000000000334 ms\n", + "t = 42.600000000000335 ms\n", + "t = 42.70000000000034 ms\n", + "t = 42.80000000000034 ms\n", + "t = 42.90000000000034 ms\n", + "t = 43.00000000000034 ms\n", + "t = 43.10000000000034 ms\n", + "t = 43.200000000000344 ms\n", + "t = 43.300000000000345 ms\n", + "t = 43.40000000000035 ms\n", + "t = 43.50000000000035 ms\n", + "t = 43.60000000000035 ms\n", + "t = 43.70000000000035 ms\n", + "t = 43.80000000000035 ms\n", + "t = 43.900000000000354 ms\n", + "t = 44.000000000000355 ms\n", + "t = 44.10000000000036 ms\n", + "t = 44.20000000000036 ms\n", + "t = 44.30000000000036 ms\n", + "t = 44.40000000000036 ms\n", + "t = 44.50000000000036 ms\n", + "t = 44.600000000000364 ms\n", + "t = 44.700000000000365 ms\n", + "t = 44.80000000000037 ms\n", + "t = 44.90000000000037 ms\n", + "t = 45.00000000000037 ms\n", + "t = 45.10000000000037 ms\n", + "t = 45.20000000000037 ms\n", + "t = 45.300000000000374 ms\n", + "t = 45.400000000000375 ms\n", + "t = 45.50000000000038 ms\n", + "t = 45.60000000000038 ms\n", + "t = 45.70000000000038 ms\n", + "t = 45.80000000000038 ms\n", + "t = 45.90000000000038 ms\n", + "t = 46.000000000000384 ms\n", + "t = 46.100000000000385 ms\n", + "t = 46.20000000000039 ms\n", + "t = 46.30000000000039 ms\n", + "t = 46.40000000000039 ms\n", + "t = 46.50000000000039 ms\n", + "t = 46.60000000000039 ms\n", + "t = 46.700000000000394 ms\n", + "t = 46.800000000000395 ms\n", + "t = 46.9000000000004 ms\n", + "t = 47.0000000000004 ms\n", + "t = 47.1000000000004 ms\n", + "t = 47.2000000000004 ms\n", + "t = 47.3000000000004 ms\n", + "t = 47.400000000000404 ms\n", + "t = 47.500000000000405 ms\n", + "t = 47.600000000000406 ms\n", + "t = 47.70000000000041 ms\n", + "t = 47.80000000000041 ms\n", + "t = 47.90000000000041 ms\n", + "t = 48.00000000000041 ms\n", + "t = 48.10000000000041 ms\n", + "t = 48.200000000000415 ms\n", + "t = 48.300000000000416 ms\n", + "t = 48.40000000000042 ms\n", + "t = 48.50000000000042 ms\n", + "t = 48.60000000000042 ms\n", + "t = 48.70000000000042 ms\n", + "t = 48.80000000000042 ms\n", + "t = 48.900000000000425 ms\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "WARNING:No artists with labels found to put in legend. Note that artists whose label start with an underscore are ignored when legend() is called with no argument.\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "t = 49.000000000000426 ms\n", + "t = 49.10000000000043 ms\n", + "t = 49.20000000000043 ms\n", + "t = 49.30000000000043 ms\n", + "t = 49.40000000000043 ms\n", + "t = 49.50000000000043 ms\n", + "t = 49.600000000000435 ms\n", + "t = 49.700000000000436 ms\n", + "t = 49.80000000000044 ms\n", + "t = 49.90000000000044 ms\n", + "t = 50.00000000000044 ms\n", + "t = 50.10000000000044 ms\n", + "t = 50.20000000000044 ms\n", + "t = 50.300000000000445 ms\n", + "t = 50.400000000000446 ms\n", + "t = 50.50000000000045 ms\n", + "t = 50.60000000000045 ms\n", + "t = 50.70000000000045 ms\n", + "t = 50.80000000000045 ms\n", + "t = 50.90000000000045 ms\n", + "t = 51.000000000000455 ms\n", + "t = 51.100000000000456 ms\n", + "t = 51.20000000000046 ms\n", + "t = 51.30000000000046 ms\n", + "t = 51.40000000000046 ms\n", + "t = 51.50000000000046 ms\n", + "t = 51.60000000000046 ms\n", + "t = 51.700000000000465 ms\n", + "t = 51.800000000000466 ms\n", + "t = 51.90000000000047 ms\n", + "t = 52.00000000000047 ms\n", + "t = 52.10000000000047 ms\n", + "t = 52.20000000000047 ms\n", + "t = 52.30000000000047 ms\n", + "t = 52.400000000000475 ms\n", + "t = 52.500000000000476 ms\n", + "t = 52.60000000000048 ms\n", + "t = 52.70000000000048 ms\n", + "t = 52.80000000000048 ms\n", + "t = 52.90000000000048 ms\n", + "t = 53.00000000000048 ms\n", + "t = 53.100000000000485 ms\n", + "t = 53.200000000000486 ms\n", + "t = 53.30000000000049 ms\n", + "t = 53.40000000000049 ms\n", + "t = 53.50000000000049 ms\n", + "t = 53.60000000000049 ms\n", + "t = 53.70000000000049 ms\n", + "t = 53.800000000000495 ms\n", + "t = 53.900000000000496 ms\n", + "t = 54.0000000000005 ms\n", + "t = 54.1000000000005 ms\n", + "t = 54.2000000000005 ms\n", + "t = 54.3000000000005 ms\n", + "t = 54.4000000000005 ms\n", + "t = 54.500000000000504 ms\n", + "t = 54.600000000000506 ms\n", + "t = 54.70000000000051 ms\n", + "t = 54.80000000000051 ms\n", + "t = 54.90000000000051 ms\n", + "t = 55.00000000000051 ms\n", + "t = 55.10000000000051 ms\n", + "t = 55.200000000000514 ms\n", + "t = 55.300000000000516 ms\n", + "t = 55.40000000000052 ms\n", + "t = 55.50000000000052 ms\n", + "t = 55.60000000000052 ms\n", + "t = 55.70000000000052 ms\n", + "t = 55.80000000000052 ms\n", + "t = 55.900000000000524 ms\n", + "t = 56.000000000000526 ms\n", + "t = 56.10000000000053 ms\n", + "t = 56.20000000000053 ms\n", + "t = 56.30000000000053 ms\n", + "t = 56.40000000000053 ms\n", + "t = 56.50000000000053 ms\n", + "t = 56.600000000000534 ms\n", + "t = 56.700000000000536 ms\n", + "t = 56.80000000000054 ms\n", + "t = 56.90000000000054 ms\n", + "t = 57.00000000000054 ms\n", + "t = 57.10000000000054 ms\n", + "t = 57.20000000000054 ms\n", + "t = 57.300000000000544 ms\n", + "t = 57.400000000000546 ms\n", + "t = 57.50000000000055 ms\n", + "t = 57.60000000000055 ms\n", + "t = 57.70000000000055 ms\n", + "t = 57.80000000000055 ms\n", + "t = 57.90000000000055 ms\n", + "t = 58.000000000000554 ms\n", + "t = 58.100000000000556 ms\n", + "t = 58.20000000000056 ms\n", + "t = 58.30000000000056 ms\n", + "t = 58.40000000000056 ms\n", + "t = 58.50000000000056 ms\n", + "t = 58.60000000000056 ms\n", + "t = 58.700000000000564 ms\n", + "t = 58.800000000000566 ms\n", + "t = 58.90000000000057 ms\n", + "t = 59.00000000000057 ms\n", + "t = 59.10000000000057 ms\n", + "t = 59.20000000000057 ms\n", + "t = 59.30000000000057 ms\n", + "t = 59.400000000000574 ms\n", + "t = 59.500000000000576 ms\n", + "t = 59.60000000000058 ms\n", + "t = 59.70000000000058 ms\n", + "t = 59.80000000000058 ms\n", + "t = 59.90000000000058 ms\n", + "t = 60.00000000000058 ms\n", + "t = 60.100000000000584 ms\n", + "t = 60.200000000000585 ms\n", + "t = 60.30000000000059 ms\n", + "t = 60.40000000000059 ms\n", + "t = 60.50000000000059 ms\n", + "t = 60.60000000000059 ms\n", + "t = 60.70000000000059 ms\n", + "t = 60.800000000000594 ms\n", + "t = 60.900000000000595 ms\n", + "t = 61.0000000000006 ms\n", + "t = 61.1000000000006 ms\n", + "t = 61.2000000000006 ms\n", + "t = 61.3000000000006 ms\n", + "t = 61.4000000000006 ms\n", + "t = 61.500000000000604 ms\n", + "t = 61.600000000000605 ms\n", + "t = 61.70000000000061 ms\n", + "t = 61.80000000000061 ms\n", + "t = 61.90000000000061 ms\n", + "t = 62.00000000000061 ms\n", + "t = 62.10000000000061 ms\n", + "t = 62.200000000000614 ms\n", + "t = 62.300000000000615 ms\n", + "t = 62.40000000000062 ms\n", + "t = 62.50000000000062 ms\n", + "t = 62.60000000000062 ms\n", + "t = 62.70000000000062 ms\n", + "t = 62.80000000000062 ms\n", + "t = 62.900000000000624 ms\n", + "t = 63.000000000000625 ms\n", + "t = 63.10000000000063 ms\n", + "t = 63.20000000000063 ms\n", + "t = 63.30000000000063 ms\n", + "t = 63.40000000000063 ms\n", + "t = 63.50000000000063 ms\n", + "t = 63.600000000000634 ms\n", + "t = 63.700000000000635 ms\n", + "t = 63.80000000000064 ms\n", + "t = 63.90000000000064 ms\n", + "t = 64.00000000000064 ms\n", + "t = 64.10000000000063 ms\n", + "t = 64.20000000000063 ms\n", + "t = 64.30000000000062 ms\n", + "t = 64.40000000000062 ms\n", + "t = 64.50000000000061 ms\n", + "t = 64.6000000000006 ms\n", + "t = 64.7000000000006 ms\n", + "t = 64.8000000000006 ms\n", + "t = 64.90000000000059 ms\n", + "t = 65.00000000000058 ms\n", + "t = 65.10000000000058 ms\n", + "t = 65.20000000000057 ms\n", + "t = 65.30000000000057 ms\n", + "t = 65.40000000000056 ms\n", + "t = 65.50000000000055 ms\n", + "t = 65.60000000000055 ms\n", + "t = 65.70000000000054 ms\n", + "t = 65.80000000000054 ms\n", + "t = 65.90000000000053 ms\n", + "t = 66.00000000000053 ms\n", + "t = 66.10000000000052 ms\n", + "t = 66.20000000000051 ms\n", + "t = 66.30000000000051 ms\n", + "t = 66.4000000000005 ms\n", + "t = 66.5000000000005 ms\n", + "t = 66.60000000000049 ms\n", + "t = 66.70000000000049 ms\n", + "t = 66.80000000000048 ms\n", + "t = 66.90000000000047 ms\n", + "t = 67.00000000000047 ms\n", + "t = 67.10000000000046 ms\n", + "t = 67.20000000000046 ms\n", + "t = 67.30000000000045 ms\n", + "t = 67.40000000000045 ms\n", + "t = 67.50000000000044 ms\n", + "t = 67.60000000000043 ms\n", + "t = 67.70000000000043 ms\n", + "t = 67.80000000000042 ms\n", + "t = 67.90000000000042 ms\n", + "t = 68.00000000000041 ms\n", + "t = 68.1000000000004 ms\n", + "t = 68.2000000000004 ms\n", + "t = 68.3000000000004 ms\n", + "t = 68.40000000000039 ms\n", + "t = 68.50000000000038 ms\n", + "t = 68.60000000000038 ms\n", + "t = 68.70000000000037 ms\n", + "t = 68.80000000000037 ms\n", + "t = 68.90000000000036 ms\n", + "t = 69.00000000000036 ms\n", + "t = 69.10000000000035 ms\n", + "t = 69.20000000000034 ms\n", + "t = 69.30000000000034 ms\n", + "t = 69.40000000000033 ms\n", + "t = 69.50000000000033 ms\n", + "t = 69.60000000000032 ms\n", + "t = 69.70000000000032 ms\n", + "t = 69.80000000000031 ms\n", + "t = 69.9000000000003 ms\n", + "t = 70.0000000000003 ms\n", + "t = 70.10000000000029 ms\n", + "t = 70.20000000000029 ms\n", + "t = 70.30000000000028 ms\n", + "t = 70.40000000000028 ms\n", + "t = 70.50000000000027 ms\n", + "t = 70.60000000000026 ms\n", + "t = 70.70000000000026 ms\n", + "t = 70.80000000000025 ms\n", + "t = 70.90000000000025 ms\n", + "t = 71.00000000000024 ms\n", + "t = 71.10000000000024 ms\n", + "t = 71.20000000000023 ms\n", + "t = 71.30000000000022 ms\n", + "t = 71.40000000000022 ms\n", + "t = 71.50000000000021 ms\n", + "t = 71.60000000000021 ms\n", + "t = 71.7000000000002 ms\n", + "t = 71.8000000000002 ms\n", + "t = 71.90000000000019 ms\n", + "t = 72.00000000000018 ms\n", + "t = 72.10000000000018 ms\n", + "t = 72.20000000000017 ms\n", + "t = 72.30000000000017 ms\n", + "t = 72.40000000000016 ms\n", + "t = 72.50000000000016 ms\n", + "t = 72.60000000000015 ms\n", + "t = 72.70000000000014 ms\n", + "t = 72.80000000000014 ms\n", + "t = 72.90000000000013 ms\n", + "t = 73.00000000000013 ms\n", + "t = 73.10000000000012 ms\n", + "t = 73.20000000000012 ms\n", + "t = 73.30000000000011 ms\n", + "t = 73.4000000000001 ms\n", + "t = 73.5000000000001 ms\n", + "t = 73.6000000000001 ms\n", + "t = 73.70000000000009 ms\n", + "t = 73.80000000000008 ms\n", + "t = 73.90000000000008 ms\n", + "t = 74.00000000000007 ms\n", + "t = 74.10000000000007 ms\n", + "t = 74.20000000000006 ms\n", + "t = 74.30000000000005 ms\n", + "t = 74.40000000000005 ms\n", + "t = 74.50000000000004 ms\n", + "t = 74.60000000000004 ms\n", + "t = 74.70000000000003 ms\n", + "t = 74.80000000000003 ms\n", + "t = 74.90000000000002 ms\n", + "t = 75.00000000000001 ms\n", + "t = 75.10000000000001 ms\n", + "t = 75.2 ms\n", + "t = 75.3 ms\n", + "t = 75.39999999999999 ms\n", + "t = 75.49999999999999 ms\n", + "t = 75.59999999999998 ms\n", + "t = 75.69999999999997 ms\n", + "t = 75.79999999999997 ms\n", + "t = 75.89999999999996 ms\n", + "t = 75.99999999999996 ms\n", + "t = 76.09999999999995 ms\n", + "t = 76.19999999999995 ms\n", + "t = 76.29999999999994 ms\n", + "t = 76.39999999999993 ms\n", + "t = 76.49999999999993 ms\n", + "t = 76.59999999999992 ms\n", + "t = 76.69999999999992 ms\n", + "t = 76.79999999999991 ms\n", + "t = 76.8999999999999 ms\n", + "t = 76.9999999999999 ms\n", + "t = 77.0999999999999 ms\n", + "t = 77.19999999999989 ms\n", + "t = 77.29999999999988 ms\n", + "t = 77.39999999999988 ms\n", + "t = 77.49999999999987 ms\n", + "t = 77.59999999999987 ms\n", + "t = 77.69999999999986 ms\n", + "t = 77.79999999999986 ms\n", + "t = 77.89999999999985 ms\n", + "t = 77.99999999999984 ms\n", + "t = 78.09999999999984 ms\n", + "t = 78.19999999999983 ms\n", + "t = 78.29999999999983 ms\n", + "t = 78.39999999999982 ms\n", + "t = 78.49999999999982 ms\n", + "t = 78.59999999999981 ms\n", + "t = 78.6999999999998 ms\n", + "t = 78.7999999999998 ms\n", + "t = 78.89999999999979 ms\n", + "t = 78.99999999999979 ms\n", + "t = 79.09999999999978 ms\n", + "t = 79.19999999999978 ms\n", + "t = 79.29999999999977 ms\n", + "t = 79.39999999999976 ms\n", + "t = 79.49999999999976 ms\n", + "t = 79.59999999999975 ms\n", + "t = 79.69999999999975 ms\n", + "t = 79.79999999999974 ms\n", + "t = 79.89999999999974 ms\n", + "t = 79.99999999999973 ms\n", + "t = 80.09999999999972 ms\n", + "t = 80.19999999999972 ms\n", + "t = 80.29999999999971 ms\n", + "t = 80.39999999999971 ms\n", + "t = 80.4999999999997 ms\n", + "t = 80.5999999999997 ms\n", + "t = 80.69999999999969 ms\n", + "t = 80.79999999999968 ms\n", + "t = 80.89999999999968 ms\n", + "t = 80.99999999999967 ms\n", + "t = 81.09999999999967 ms\n", + "t = 81.19999999999966 ms\n", + "t = 81.29999999999966 ms\n", + "t = 81.39999999999965 ms\n", + "t = 81.49999999999964 ms\n", + "t = 81.59999999999964 ms\n", + "t = 81.69999999999963 ms\n", + "t = 81.79999999999963 ms\n", + "t = 81.89999999999962 ms\n", + "t = 81.99999999999962 ms\n", + "t = 82.09999999999961 ms\n", + "t = 82.1999999999996 ms\n", + "t = 82.2999999999996 ms\n", + "t = 82.3999999999996 ms\n", + "t = 82.49999999999959 ms\n", + "t = 82.59999999999958 ms\n", + "t = 82.69999999999958 ms\n", + "t = 82.79999999999957 ms\n", + "t = 82.89999999999957 ms\n", + "t = 82.99999999999956 ms\n", + "t = 83.09999999999955 ms\n", + "t = 83.19999999999955 ms\n", + "t = 83.29999999999954 ms\n", + "t = 83.39999999999954 ms\n", + "t = 83.49999999999953 ms\n", + "t = 83.59999999999953 ms\n", + "t = 83.69999999999952 ms\n", + "t = 83.79999999999951 ms\n", + "t = 83.89999999999951 ms\n", + "t = 83.9999999999995 ms\n", + "t = 84.0999999999995 ms\n", + "t = 84.19999999999949 ms\n", + "t = 84.29999999999949 ms\n", + "t = 84.39999999999948 ms\n", + "t = 84.49999999999947 ms\n", + "t = 84.59999999999947 ms\n", + "t = 84.69999999999946 ms\n", + "t = 84.79999999999946 ms\n", + "t = 84.89999999999945 ms\n", + "t = 84.99999999999945 ms\n", + "t = 85.09999999999944 ms\n", + "t = 85.19999999999943 ms\n", + "t = 85.29999999999943 ms\n", + "t = 85.39999999999942 ms\n", + "t = 85.49999999999942 ms\n", + "t = 85.59999999999941 ms\n", + "t = 85.6999999999994 ms\n", + "t = 85.7999999999994 ms\n", + "t = 85.8999999999994 ms\n", + "t = 85.99999999999939 ms\n", + "t = 86.09999999999938 ms\n", + "t = 86.19999999999938 ms\n", + "t = 86.29999999999937 ms\n", + "t = 86.39999999999937 ms\n", + "t = 86.49999999999936 ms\n", + "t = 86.59999999999935 ms\n", + "t = 86.69999999999935 ms\n", + "t = 86.79999999999934 ms\n", + "t = 86.89999999999934 ms\n", + "t = 86.99999999999933 ms\n", + "t = 87.09999999999933 ms\n", + "t = 87.19999999999932 ms\n", + "t = 87.29999999999932 ms\n", + "t = 87.39999999999931 ms\n", + "t = 87.4999999999993 ms\n", + "t = 87.5999999999993 ms\n", + "t = 87.69999999999929 ms\n", + "t = 87.79999999999929 ms\n", + "t = 87.89999999999928 ms\n", + "t = 87.99999999999928 ms\n", + "t = 88.09999999999927 ms\n", + "t = 88.19999999999926 ms\n", + "t = 88.29999999999926 ms\n", + "t = 88.39999999999925 ms\n", + "t = 88.49999999999925 ms\n", + "t = 88.59999999999924 ms\n", + "t = 88.69999999999924 ms\n", + "t = 88.79999999999923 ms\n", + "t = 88.89999999999922 ms\n", + "t = 88.99999999999922 ms\n", + "t = 89.09999999999921 ms\n", + "t = 89.1999999999992 ms\n", + "t = 89.2999999999992 ms\n", + "t = 89.3999999999992 ms\n", + "t = 89.49999999999919 ms\n", + "t = 89.59999999999918 ms\n", + "t = 89.69999999999918 ms\n", + "t = 89.79999999999917 ms\n", + "t = 89.89999999999917 ms\n", + "t = 89.99999999999916 ms\n", + "t = 90.09999999999916 ms\n", + "t = 90.19999999999915 ms\n", + "t = 90.29999999999914 ms\n", + "t = 90.39999999999914 ms\n", + "t = 90.49999999999913 ms\n", + "t = 90.59999999999913 ms\n", + "t = 90.69999999999912 ms\n", + "t = 90.79999999999912 ms\n", + "t = 90.89999999999911 ms\n", + "t = 90.9999999999991 ms\n", + "t = 91.0999999999991 ms\n", + "t = 91.1999999999991 ms\n", + "t = 91.29999999999909 ms\n", + "t = 91.39999999999908 ms\n", + "t = 91.49999999999908 ms\n", + "t = 91.59999999999907 ms\n", + "t = 91.69999999999906 ms\n", + "t = 91.79999999999906 ms\n", + "t = 91.89999999999905 ms\n", + "t = 91.99999999999905 ms\n", + "t = 92.09999999999904 ms\n", + "t = 92.19999999999904 ms\n", + "t = 92.29999999999903 ms\n", + "t = 92.39999999999903 ms\n", + "t = 92.49999999999902 ms\n", + "t = 92.59999999999901 ms\n", + "t = 92.69999999999901 ms\n", + "t = 92.799999999999 ms\n", + "t = 92.899999999999 ms\n", + "t = 92.99999999999899 ms\n", + "t = 93.09999999999899 ms\n", + "t = 93.19999999999898 ms\n", + "t = 93.29999999999897 ms\n", + "t = 93.39999999999897 ms\n", + "t = 93.49999999999896 ms\n", + "t = 93.59999999999896 ms\n", + "t = 93.69999999999895 ms\n", + "t = 93.79999999999895 ms\n", + "t = 93.89999999999894 ms\n", + "t = 93.99999999999893 ms\n", + "t = 94.09999999999893 ms\n", + "t = 94.19999999999892 ms\n", + "t = 94.29999999999892 ms\n", + "t = 94.39999999999891 ms\n", + "t = 94.4999999999989 ms\n", + "t = 94.5999999999989 ms\n", + "t = 94.6999999999989 ms\n", + "t = 94.79999999999889 ms\n", + "t = 94.89999999999888 ms\n", + "t = 94.99999999999888 ms\n", + "t = 95.09999999999887 ms\n", + "t = 95.19999999999887 ms\n", + "t = 95.29999999999886 ms\n", + "t = 95.39999999999885 ms\n", + "t = 95.49999999999885 ms\n", + "t = 95.59999999999884 ms\n", + "t = 95.69999999999884 ms\n", + "t = 95.79999999999883 ms\n", + "t = 95.89999999999883 ms\n", + "t = 95.99999999999882 ms\n", + "t = 96.09999999999881 ms\n", + "t = 96.19999999999881 ms\n", + "t = 96.2999999999988 ms\n", + "t = 96.3999999999988 ms\n", + "t = 96.49999999999879 ms\n", + "t = 96.59999999999879 ms\n", + "t = 96.69999999999878 ms\n", + "t = 96.79999999999878 ms\n", + "t = 96.89999999999877 ms\n", + "t = 96.99999999999876 ms\n", + "t = 97.09999999999876 ms\n", + "t = 97.19999999999875 ms\n", + "t = 97.29999999999875 ms\n", + "t = 97.39999999999874 ms\n", + "t = 97.49999999999874 ms\n", + "t = 97.59999999999873 ms\n", + "t = 97.69999999999872 ms\n", + "t = 97.79999999999872 ms\n", + "t = 97.89999999999871 ms\n", + "t = 97.9999999999987 ms\n", + "t = 98.0999999999987 ms\n", + "t = 98.1999999999987 ms\n", + "t = 98.29999999999869 ms\n", + "t = 98.39999999999868 ms\n", + "t = 98.49999999999868 ms\n", + "t = 98.59999999999867 ms\n", + "t = 98.69999999999867 ms\n", + "t = 98.79999999999866 ms\n", + "t = 98.89999999999866 ms\n", + "t = 98.99999999999865 ms\n", + "t = 99.09999999999864 ms\n", + "t = 99.19999999999864 ms\n", + "t = 99.29999999999863 ms\n", + "t = 99.39999999999863 ms\n", + "t = 99.49999999999862 ms\n", + "t = 99.59999999999862 ms\n", + "t = 99.69999999999861 ms\n", + "t = 99.7999999999986 ms\n", + "t = 99.8999999999986 ms\n", + "t = 99.9999999999986 ms\n", + "t = 100.09999999999859 ms\n", + "t = 100.19999999999858 ms\n", + "t = 100.29999999999858 ms\n", + "t = 100.39999999999857 ms\n", + "t = 100.49999999999856 ms\n", + "t = 100.59999999999856 ms\n", + "t = 100.69999999999855 ms\n", + "t = 100.79999999999855 ms\n", + "t = 100.89999999999854 ms\n", + "t = 100.99999999999854 ms\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Actual pre spike times: [ 16. 41. 71. 101.]\n", + "Actual post spike times: [21.8 46.7 76.8]\n" + ] + }, + { + "data": { + "image/png": "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6urqDvsTP6sIOPed1XaRf2RkJACgpqaGfYkcsnr1agwbNsyaOLWaMWMGmpqacPDgQfYl6rLOXCNpNBqUlpZCFEW744CuXaszeeqGoUOHIjs721pVptWePXusjxO1R6fT4dprr0V2dja++OILDBw40Obx2NhYREREYP/+/Xbn7t27l32LALQsmrVYLFi6dCn69etn/dmzZw+ys7PRr18/LF++HJmZmVAoFHb9yWAw4NChQ+xPBAAYMWIEgJZ+db7WNQERERHsS+SQsrIymM1mu3aj0QgAMJlM7EvUZZ25Rho6dCiamppsqhkD3btW57S9bpg1axZeeOEFvPPOO7j99tvx/fffIyoqCm+99RYGDRqEuro6HD16VOowycWYzWbce++92LVrF15//XUEBQW1208uv/xybNq0Cdu2bbPeZfn555+RnZ2NOXPmsG8RFAoFXn31Vbv21157DY2NjXjkkUcQHx+PwsJCjB49GmvWrMGsWbOsm+hu2LABDQ0NGDVqFPsTWZOnF1980Wb06cUXX4RcLodGo2FfIodoNBrs3LkTmzdvRmJiorX97bffhiAIUCqV7EvUoVOnTgFouaHTti84eo2UlJQEuVyOl156Cf/85z8BtFQ4fuuttxAbG4uxY8d2Oi5BbDuORZ1y44034rPPPsM111yDjRs3Sh0OERERERG1sXDhQowcORIbN27E5s2b8cEHH2DevHmdfh4mT92k0+nw+OOP41//+heqq6uxceNGJCcnSx0WEREREZFXy83NxcyZM7F48WJ88cUXKCkpQUpKCh555BHMnz+/S8/J5MlJjh49iszMTGRlZSEjI0PqcIiIiIiIvFpPXJ+zYAQREREREZEDWDCCiKgTSrTNqG40SB0GOZnKR46kPv52u9ATERGdj8kTEZGDPv+1GEs/PCh1GNRDbhmbiCdncNo1ERFdGKftERE56MfsCqlDoB708b4CNBlMUodBREQujCNPREQO0ja3bPAYF+qHx68Z2MHR5C5yyurxwpZsNBvN2HqsDNcNjZU6JCIiclFMnoiIHFSna0meYoL9cFVGtMTRkLNcPiAS7/xwGnU6E/73azGTJ6IusFgsKCsrg16vh8VikToc8nAymQxKpRJRUVGQyXp3Ih2n7REROUjb3DKlK8iP9508ia9ChmmZLTvUf59dAW2TUeKIiNyLxWJBfn4+amtr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Z2fjiy++wMCBA20ej42NRUREBPbv32937t69e9m3CEDLolmLxYKlS5eiX79+1p89e/YgOzsb/fr1w/Lly5GZmQmFQmHXnwwGAw4dOsT+RACAESNGAGjpV+drXRMQERHBvkQOKSsrg9lstms3Go0AAJPJxL5EXdaZa6ShQ4eiqanJppox0L1rdSZP3TBr1iyYzWa888471ja9Xo81a9Zg9OjRiI+PlzA6clVmsxlz5szB7t278emnn2LMmDHtHnfDDTfgiy++sCl5v337dmRnZ2P27Nm9FS65sMzMTHz22Wd2PxkZGUhISMBnn32G2267DcHBwZgyZQref/991NfXW89/77330NDQwP5EAIAbb7wRAPDuu+/atP/zn/+EQqHAxIkT2ZfIIampqTh48CCys7Nt2j/88EPIZDIMHjyYfYm6xdFrpOuuuw4+Pj5YvXq1tU0URbz11luIjY3F2LFjO/3agth2HIs65cYbb8Rnn32G+++/H8nJyfj3v/+NvXv3Yvv27Rg/frzU4ZELuu+++/Dqq6/i2muvtV6snO/mm28G0LJD+7BhwxASEoJ7770XDQ0NWLVqFeLi4rBv3z5O26MLmjhxIiorK5GVlWVtO3DgAMaOHYuBAwdi4cKFKCwsxIsvvojx48fjm2++kTBaciW33XYb/vWvf+HGG2/EhAkTsGPHDnz66ad45JFHsGLFCgDsS9SxH374AZMmTUJ4eDjuuecehIeH44svvsBXX32F22+/Hf/4xz8AsC9R+9544w3U1taiuLgYb775Jq6//noMGzYMALBkyRIEBwd36hrpoYcewqpVq7Bw4UKMHDkSGzduxObNm/HBBx9g3rx5nQ+w09vqko3m5mbxgQceEKOjo0WlUimOHDlS/Prrr6UOi1zYhAkTRAAX/DlfVlaWeOWVV4pqtVoMCQkR58+fL5aWlkoUObmLCRMmiBkZGXbtP/74ozh27FhRpVKJERER4uLFi8W6ujoJIiRXZTAYxCeffFLs27ev6OPjIyYnJ4svv/yy3XHsS9SRPXv2iNOmTROjo6NFHx8fMTU1VXz22WdFo9Focxz7ErXVt2/fC14jnTlzxnqco9dIZrNZXLFihdi3b1/R19dXzMjIEN9///0ux8eRJyIiIiIiIgdwzRMREREREZEDmDwRERERERE5gMkTERERERGRA5g8EREREREROYDJExERERERkQOYPBERERERETmAyRMREREREZEDmDwRERERERE5gMkTERERERGRA5g8EREREREROYDJExERERERkQOYPBERERERETmAyRMREREREZEDmDwRERERERE54P8B51MqjOfS5zUAAAAASUVORK5CYII=\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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fke6cuWKZr2n/Y5UVFQkLVmyRGrRooVkZmYmubq6Sl9//bXO9fEIFRERERERkY54DRUREREREZGO2FARERERERHpiA0VERERERGRjthQERERERER6YgNFRERERERkY7YUBEREREREemIDRUREREREZGO2FARERERERHpiA0VERERERGRjthQERERERER6YgNFRER6Y0JEyagZcuWSpehMX/+fKhUKqhUKtStW1f29+/cubPm/YcNGyb7+xMREWCidAFERFS7qVSqp1ovIiKimivR3datW2Fqair7+y5ZsgSZmZnw8/OT/b2JiKgEGyoiIlLU1q1btZ5v2bIFBw4cKDPevn17fPXVVyguLpazvKfy+uuvK/K+Q4cOBQB88sknirw/ERGxoSIiIoX9sxn5/fffceDAAcWaFCIiosrgNVRERKQ3/nkNVVJSElQqFZYtW4bAwEC0bt0aVlZWGDRoEJKTkyFJEgICAtCsWTNYWlpi+PDhyMzMLLPdn376CX379kWdOnVQr149vPzyyzhz5kyVam3ZsiWGDRuGyMhIdO/eHZaWlujYsSMiIyMBADt37kTHjh1hYWGBbt264eTJk1qvv3HjBiZOnIhmzZrB3NwcDg4OGD58OJKSkqpUFxERicUjVEREpPe2bduGBw8eYPr06cjMzMTSpUvh4+ODAQMGIDIyEh9++CESExOxcuVKvP/++wgKCtK8duvWrfD19cXgwYPx2WefIS8vD2vWrEGfPn1w8uTJKk2CkZiYiLFjx2LKlCl4/fXXsWzZMnh5eWHt2rXw9/fHtGnTAAD/+c9/4OPjgwsXLsDIqOR3na+++irOnDmD6dOno2XLlkhPT8eBAwdw7dq1GjUxBxFRbceGioiI9F5KSgouXrwIGxsbAEBRURH+85//4P79+zh+/DhMTEr+ucvIyMC2bduwZs0amJubIzc3F++++y7+/e9/Y/369Zrt+fr6ol27dliyZInWeGVduHABR44cQa9evQAAHTp0wODBg/Hmm2/i/PnzaN68OQCgQYMGmDJlCg4dOoT+/fsjOzsbR44cgVqtxvvvv6/Z3pw5c3SuhYiIqgdP+SMiIr03atQoTTMFAB4eHgBKrs8qbaZKxx88eICUlBQAwIEDB5CdnY0xY8bg1q1bmoexsTE8PDyqPLNghw4dNM3Uo3UNGDBA00w9On758mUAgKWlJczMzBAZGYmsrKwq1UBERNWLR6iIiEjvPdqcANA0V05OTuWOlzYpFy9eBFDS4JTH2tpakbrMzc3x2WefYdasWWjSpAmeffZZDBs2DOPHj4e9vX2VaiIiIrHYUBERkd4zNjau1LgkSQCgmYJ969at5TYqjx7dkrMuAJg5cya8vLywa9cu7N+/H3PnzsV//vMf/Prrr+jSpUuV6iIiInHYUBERUa3Vpk0bAICdnR0GDhyocDVltWnTBrNmzcKsWbNw8eJFdO7cGZ9//jm+/vprpUsjIqK/8BoqIiKqtQYPHgxra2ssWbIEDx8+LLM8IyNDgaqAvLw85Ofna421adMG9erVQ0FBgSI1ERFR+XiEioiIai1ra2usWbMGb7zxBrp27YrRo0fD1tYW165dw48//ojnnnsOq1atkr2uhIQEvPDCC/Dx8UGHDh1gYmKCsLAw3Lx5E6NHj5a9HiIiqhgbKiIiqtXGjh0LR0dH/Pe//4VarUZBQQGaNm2Kvn37YuLEiYrU5OTkhDFjxuDgwYPYunUrTExM8Mwzz2DHjh149dVXFamJiIjKp5IevQKWiIiIntr8+fOxYMECZGRkQKVSoVGjRrK+f3Z2NgoLC9G1a1e4u7tj7969sr4/ERHxGioiIqIqs7W1RYsWLWR/3/79+8PW1hbJycmyvzcREZXgESoiIiIdXb58WXMzXhMTE/Tv31/W94+JicHdu3cBlDR1nTp1kvX9iYiIDRUREREREZHOeMofERERERGRjthQERERERER6YgNFRERERERkY7YUBEREREREemIDRUREREREZGO2FARERERERHpiA0VERERERGRjthQERERERER6YgNFRERERERkY7YUBEREREREemIDRUREREREZGO/h8Wg8TZkwGtPgAAAABJRU5ErkJggg==\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "\n", + "# run the simulation\n", + "timevec, t_hist, third_factor_trace, w_hist = run_synapse_test(neuron_model_name=neuron_model_name,\n", + " synapse_model_name=synapse_model_name,\n", + " resolution=.1, # [ms]\n", + " delay=1., # [ms]\n", + " pre_spike_times=pre_spike_times,\n", + " post_spike_times=post_spike_times,\n", + " sim_time=101.,\n", + " fname_snip=fname_snip,\n", + " experiment=\"\")\n" + ] + }, { "cell_type": "markdown", "metadata": {}, @@ -1251,6 +5570,23 @@ "\n" ] }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import pynestml\n", + "pynestml?" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, { "cell_type": "code", "execution_count": null, diff --git a/models/synapses/third_factor_stdp_synapse.nestml b/models/synapses/third_factor_stdp_synapse.nestml index 6bff294e3..a9b515387 100644 --- a/models/synapses/third_factor_stdp_synapse.nestml +++ b/models/synapses/third_factor_stdp_synapse.nestml @@ -43,8 +43,8 @@ model third_factor_stdp_synapse: parameters: d ms = 1 ms @nest::delay # Synaptic transmission delay lambda real = .01 - tau_tr_pre ms = 20 ms - tau_tr_post ms = 20 ms + tau_tr_pre ms = 10 ms + tau_tr_post ms = 10 ms alpha real = 1. mu_plus real = 1. mu_minus real = 1. diff --git a/pynestml/codegeneration/nest_code_generator.py b/pynestml/codegeneration/nest_code_generator.py index 76db1d2cc..c04bdad7f 100644 --- a/pynestml/codegeneration/nest_code_generator.py +++ b/pynestml/codegeneration/nest_code_generator.py @@ -488,9 +488,16 @@ def _get_synapse_model_namespace(self, synapse: ASTModel) -> Dict: if "paired_neuron" in dir(synapse): # synapse is being co-generated with neuron - namespace["paired_neuron"] = synapse.paired_neuron.get_name() + namespace["paired_neuron"] = synapse.paired_neuron + namespace["paired_neuron_name"] = synapse.paired_neuron.get_name() namespace["post_ports"] = synapse.post_port_names namespace["spiking_post_ports"] = synapse.spiking_post_port_names + + namespace["continuous_post_ports"] = [] + if "neuron_synapse_pairs" in FrontendConfiguration.get_codegen_opts().keys(): + post_ports = ASTUtils.get_post_ports_of_neuron_synapse_pair(synapse.paired_neuron, synapse, FrontendConfiguration.get_codegen_opts()["neuron_synapse_pairs"]) + namespace["continuous_post_ports"] = [v for v in post_ports if isinstance(v, tuple) or isinstance(v, list)] + namespace["vt_ports"] = synapse.vt_port_names namespace["pre_ports"] = list(set(all_input_port_names) - set(namespace["post_ports"]) - set(namespace["vt_ports"])) @@ -587,7 +594,7 @@ def _get_neuron_model_namespace(self, neuron: ASTModel) -> Dict: codegen_and_builder_opts = FrontendConfiguration.get_codegen_opts() xfrm = SynapsePostNeuronTransformer(codegen_and_builder_opts) - namespace["state_vars_that_need_continuous_buffering_transformed"] = [xfrm.get_neuron_var_name_from_syn_port_name(port_name, neuron.unpaired_name.removesuffix(FrontendConfiguration.suffix), neuron.paired_synapse.get_name().split("__with_")[0].removesuffix("_nestml")) for port_name in neuron.state_vars_that_need_continuous_buffering] + namespace["state_vars_that_need_continuous_buffering_transformed"] = [xfrm.get_neuron_var_name_from_syn_port_name(port_name, neuron.unpaired_name.removesuffix(FrontendConfiguration.suffix), neuron.paired_synapse.get_name().split("__with_")[0].removesuffix(FrontendConfiguration.suffix)) for port_name in neuron.state_vars_that_need_continuous_buffering] else: namespace["state_vars_that_need_continuous_buffering"] = [] namespace["extra_on_emit_spike_stmts_from_synapse"] = neuron.extra_on_emit_spike_stmts_from_synapse diff --git a/pynestml/codegeneration/printers/nest_variable_printer.py b/pynestml/codegeneration/printers/nest_variable_printer.py index 696583319..33f4d3ecf 100644 --- a/pynestml/codegeneration/printers/nest_variable_printer.py +++ b/pynestml/codegeneration/printers/nest_variable_printer.py @@ -61,7 +61,8 @@ def print_variable(self, variable: ASTVariable) -> str: _name = str(variable) if variable.get_alternate_name(): # the disadvantage of this approach is that the time the value is to be obtained is not explicitly specified, so we will actually get the value at the end of the min_delay timestep - return "((post_neuron_t*)(__target))->get_" + variable.get_alternate_name() + "()" + return "__" + variable.get_alternate_name() + # return "((post_neuron_t*)(__target))->get_" + variable.get_alternate_name() + "()" return "((post_neuron_t*)(__target))->get_" + _name + "(_tr_t)" diff --git a/pynestml/codegeneration/resources_nest/point_neuron/common/SynapseHeader.h.jinja2 b/pynestml/codegeneration/resources_nest/point_neuron/common/SynapseHeader.h.jinja2 index a7d45adf3..924f39ca2 100644 --- a/pynestml/codegeneration/resources_nest/point_neuron/common/SynapseHeader.h.jinja2 +++ b/pynestml/codegeneration/resources_nest/point_neuron/common/SynapseHeader.h.jinja2 @@ -222,8 +222,8 @@ public: template < typename targetidentifierT > class {{synapseName}} : public Connection< targetidentifierT > { -{%- if paired_neuron | length > 0 %} - typedef {{ paired_neuron }} post_neuron_t; +{%- if paired_neuron_name | length > 0 %} + typedef {{ paired_neuron_name }} post_neuron_t; {% endif %} {%- if vt_ports is defined and vt_ports|length > 0 %} @@ -636,10 +636,10 @@ public: {%- if paired_neuron is defined %} try { - dynamic_cast<{{paired_neuron}}&>(t); + dynamic_cast<{{paired_neuron_name}}&>(t); } catch (std::bad_cast &exp) { - std::cout << "wrong type of neuron connected! Synapse '{{synapseName}}' will only work with neuron '{{paired_neuron}}'.\n"; + std::cout << "wrong type of neuron connected! Synapse '{{synapseName}}' will only work with neuron '{{paired_neuron_name}}'.\n"; exit(1); } {%- endif %} @@ -669,7 +669,7 @@ public: return tid; }; - const double __t_spike = e.get_stamp().get_ms(); + const double __t_spike = e.get_stamp().get_ms(); // time of the presynaptic spike [ms] #ifdef DEBUG std::cout << "{{synapseName}}::send(): handling pre spike at t = " << __t_spike << std::endl; #endif @@ -680,8 +680,8 @@ public: {%- endif %} // use accessor functions (inherited from Connection< >) to obtain delay and target -{%- if paired_neuron is not none and paired_neuron|length > 0 %} - {{paired_neuron}}* __target = static_cast<{{paired_neuron}}*>(get_target(tid)); +{%- if paired_neuron_name is not none and paired_neuron_name|length > 0 %} + {{paired_neuron_name}}* __target = static_cast<{{paired_neuron_name}}*>(get_target(tid)); assert(__target); {%- else %} Node* __target = get_target( tid ); @@ -696,7 +696,7 @@ public: t_lastspike_ = 0.; } -{%- if paired_neuron is not none and paired_neuron|length > 0 %} +{%- if paired_neuron_name is not none and paired_neuron_name|length > 0 %} double timestep = 0; { /** @@ -706,8 +706,8 @@ public: * * Note that this also increases the access counter for these entries which is used to prune the history. **/ - std::deque< histentry__{{paired_neuron}} >::iterator start; - std::deque< histentry__{{paired_neuron}} >::iterator finish; + std::deque< histentry__{{paired_neuron_name}} >::iterator start; + std::deque< histentry__{{paired_neuron_name}} >::iterator finish; {%- if vt_ports is defined and vt_ports|length > 0 %} double t0 = t_last_update_; {%- endif %} @@ -717,23 +717,25 @@ public: &finish ); while ( start != finish ) { -{%- if paired_neuron is not none and paired_neuron|length > 0 %} - +{%- if paired_neuron_name is not none and paired_neuron_name|length > 0 %} + /** + * grab the postsynaptic continuous variable values from the postsynaptic neuron + **/ {%- if paired_neuron.state_vars_that_need_continuous_buffering | length > 0 %} - auto histentry = ((post_neuron_t*)(__target))->get_continuous_variable_history(start->t_ - __dendritic_delay); + auto histentry = ((post_neuron_t*)(__target))->get_continuous_variable_history(start->t_ - __dendritic_delay); {%- endif %} {%- for var_name in paired_neuron.state_vars_that_need_continuous_buffering %} {%- set var = utils.get_parameter_variable_by_name(astnode, var_name) %} - const double {{ var_name }}_at_post_spike_time = histentry.{{ var_name }}; + const double __{{ var_name }} = histentry.{{ var_name }}; {%- endfor %} {%- endif %} - {%- if vt_ports is defined and vt_ports|length > 0 %} - {%- set vt_port = vt_ports[0] %} +{% if vt_ports is defined and vt_ports|length > 0 %} +{%- set vt_port = vt_ports[0] %} process_{{vt_port}}_spikes_( vt_spikes, t0, start->t_ + __dendritic_delay, cp ); t0 = start->t_ + __dendritic_delay; - {%- endif %} +{%- endif %} const double minus_dt = t_lastspike_ - ( start->t_ + __dendritic_delay ); // get_history() should make sure that // start->t_ > t_lastspike_ - dendritic_delay, i.e. minus_dt < 0 @@ -798,7 +800,18 @@ public: const double _tr_t = __t_spike - __dendritic_delay; { - auto get_t = [__t_spike](){ return __t_spike; }; // do not remove, this is in case the predefined time variable ``t`` is used in the NESTML model + auto get_t = [__t_spike](){ return __t_spike; }; // do not remove, this is in case the predefined time variable ``t`` is used in the NESTML model // XXX: TODO: is this correct or should this be equal to ``_tr_t``, i.e. with dendritic delay subtracted? + +{%- if paired_neuron_name is not none and paired_neuron_name|length > 0 and paired_neuron. state_vars_that_need_continuous_buffering | length > 0 %} + /** + * grab the postsynaptic continuous variable values from the postsynaptic neuron + **/ +{%- for var_name in paired_neuron.state_vars_that_need_continuous_buffering %} + +{%- set var_name_post = utils.get_var_name_tuples_of_neuron_synapse_pair(continuous_post_ports, var_name) %} + const double __{{ var_name }} = ((post_neuron_t*)(__target))->get_{{ var_name_post }}(); +{%- endfor %} +{%- endif %} {%- filter indent(8, True) %} {%- for pre_port in pre_ports %} @@ -833,6 +846,17 @@ public: { auto get_t = [__t_spike](){ return __t_spike; }; // do not remove, this is in case the predefined time variable ``t`` is used in the NESTML model +{%- if paired_neuron_name is not none and paired_neuron_name|length > 0 and paired_neuron. state_vars_that_need_continuous_buffering | length > 0 %} + /** + * grab the postsynaptic continuous variable values from the postsynaptic neuron + **/ +{%- for var_name in paired_neuron.state_vars_that_need_continuous_buffering %} + +{%- set var_name_post = utils.get_var_name_tuples_of_neuron_synapse_pair(continuous_post_ports, var_name) %} + const double __{{ var_name }} = ((post_neuron_t*)(__target))->get_{{ var_name_post }}(); +{%- endfor %} +{%- endif %} + {%- filter indent(6, True) %} {%- if post_ports is defined %} {%- for post_port in spiking_post_ports %} @@ -1249,9 +1273,9 @@ inline void double dendritic_delay = get_delay(); // get spike history in relevant range (t_last_update, t_trig] from postsyn. neuron - std::deque< histentry__{{paired_neuron}} >::iterator start; - std::deque< histentry__{{paired_neuron}} >::iterator finish; - static_cast<{{paired_neuron}}*>(get_target(t))->get_history__( t_last_update_ - dendritic_delay, t_trig - dendritic_delay, &start, &finish ); + std::deque< histentry__{{paired_neuron_name}} >::iterator start; + std::deque< histentry__{{paired_neuron_name}} >::iterator finish; + static_cast<{{paired_neuron_name}}*>(get_target(t))->get_history__( t_last_update_ - dendritic_delay, t_trig - dendritic_delay, &start, &finish ); // facilitation due to postsyn. spikes since last update double t0 = t_last_update_; diff --git a/pynestml/transformers/synapse_post_neuron_transformer.py b/pynestml/transformers/synapse_post_neuron_transformer.py index 098424d9e..b12f23d7f 100644 --- a/pynestml/transformers/synapse_post_neuron_transformer.py +++ b/pynestml/transformers/synapse_post_neuron_transformer.py @@ -495,7 +495,7 @@ def mark_post_port(_expr=None): for state_var, alternate_name in zip(post_connected_continuous_input_ports, post_variable_names): Logger.log_message(None, -1, "\t• Replacing variable " + str(state_var), None, LoggingLevel.INFO) ASTUtils.replace_with_external_variable(state_var, new_synapse, "", - new_synapse.get_equations_blocks()[0], alternate_name) + new_synapse.get_equations_blocks()[0], state_var) # # copy parameters diff --git a/pynestml/utils/ast_utils.py b/pynestml/utils/ast_utils.py index 2fc6f4a0d..024191689 100644 --- a/pynestml/utils/ast_utils.py +++ b/pynestml/utils/ast_utils.py @@ -29,6 +29,7 @@ from pynestml.codegeneration.printers.ast_printer import ASTPrinter from pynestml.codegeneration.printers.cpp_variable_printer import CppVariablePrinter from pynestml.codegeneration.printers.nestml_printer import NESTMLPrinter +from pynestml.frontend.frontend_configuration import FrontendConfiguration from pynestml.generated.PyNestMLLexer import PyNestMLLexer from pynestml.meta_model.ast_assignment import ASTAssignment from pynestml.meta_model.ast_block import ASTBlock @@ -614,6 +615,31 @@ def get_kernel_by_name(cls, node, name: str) -> Optional[ASTKernel]: return None + @classmethod + def print_alternate_var_name(cls, var_name, continuous_post_ports): + for pair in continuous_post_ports: + if pair[0] == var_name: + return pair[1] + + assert False + + @classmethod + def get_post_ports_of_neuron_synapse_pair(cls, neuron, synapse, codegen_opts_pairs): + for pair in codegen_opts_pairs: + print("Checking pair " + str(pair) + " for ne = " + str(neuron.get_name().split("__with_")[0].removesuffix(FrontendConfiguration.suffix)) + " syn = " + synapse.get_name().split("__with_")[0].removesuffix(FrontendConfiguration.suffix)) + if pair["neuron"] == neuron.get_name().split("__with_")[0].removesuffix(FrontendConfiguration.suffix) and pair["synapse"] == synapse.get_name().split("__with_")[0].removesuffix(FrontendConfiguration.suffix): + return pair["post_ports"] + return None + + @classmethod + def get_var_name_tuples_of_neuron_synapse_pair(cls, post_port_names, post_port): + print("post port names: " + str(post_port_names)) + print("Searching for " + str(post_port)) + for pair in post_port_names: + if pair[0] == post_port: + return pair[1] + return None + @classmethod def replace_with_external_variable(cls, var_name, node: ASTNode, suffix, new_scope, alternate_name=None): """