[med-svn] [cnrun] 25/25: packaged 2.0.0, release in sight
andrei zavada
hmmr-guest at moszumanska.debian.org
Thu Nov 6 22:08:32 UTC 2014
This is an automated email from the git hooks/post-receive script.
hmmr-guest pushed a commit to branch WIP
in repository cnrun.
commit aea30a79afbf343d0d79dfe9bcc5e43386a91d35
Author: Andrei Zavada <johnhommer at gmail.com>
Date: Fri Nov 7 00:08:03 2014 +0200
packaged 2.0.0, release in sight
---
debian/.gitignore | 1 +
debian/README.Debian | 3 +
debian/changelog | 3 +-
debian/control | 33 +-
debian/copyright | 2 +-
debian/libcnrun-lua.install | 2 -
debian/libcnrun-lua.postinst | 21 -
debian/libcnrun-lua.postrm | 17 -
debian/libcnrun.install | 2 -
debian/libcnrun2-dev.install | 4 +
debian/libcnrun2.install | 2 +
debian/libcnrun2.symbols | 492 +++++++++++++++++++
debian/lua-cnrun.info | 1 +
debian/lua-cnrun.install | 2 +
debian/lua-cnrun.lintian-overrides | 3 +
debian/rules | 32 +-
debian/unwanted-files | 8 +
upstream/ChangeLog | 4 +-
upstream/INSTALL | 10 +-
upstream/Makefile.am | 7 +-
upstream/configure.ac | 4 +-
upstream/doc/Makefile.am | 9 +-
upstream/doc/examples/example1.lua | 80 +++-
upstream/doc/examples/{ratiocoding => }/m.nml | 0
upstream/doc/examples/ratiocoding/ORNa.in | 112 -----
upstream/doc/lua-api/.gitignore | 6 +
upstream/doc/lua-api/Makefile.am | 4 +
upstream/doc/lua-api/cnrun-lua-api.texi | 533 +++++++++++++++++++++
upstream/libcnrun.pc.in | 12 +
upstream/src/Makefile.am | 2 +-
upstream/src/libcnrun-lua/Makefile.am | 15 -
upstream/src/libcnrun/Makefile.am | 24 +-
upstream/src/libcnrun/base-neuron.hh | 3 +-
upstream/src/libcnrun/hosted-neurons.cc | 168 +++----
upstream/src/libcnrun/hosted-synapses.cc | 85 ++--
upstream/src/libcnrun/model-struct.cc | 16 +-
upstream/src/libcnrun/standalone-neurons.cc | 116 ++---
upstream/src/libcnrun/standalone-synapses.cc | 14 +-
upstream/src/libcnrun/types.cc | 335 +++++++------
upstream/src/libcnrun/types.hh | 212 ++++----
upstream/src/libstilton/Makefile.am | 19 +-
upstream/src/libstilton/libstilton.cc | 47 +-
upstream/src/libstilton/string.hh | 2 +-
.../src/{libcnrun-lua => lua-cnrun}/.gitignore | 0
upstream/src/lua-cnrun/Makefile.am | 25 +
upstream/src/{libcnrun-lua => lua-cnrun}/cnhost.hh | 0
.../src/{libcnrun-lua => lua-cnrun}/commands.cc | 180 +++----
upstream/src/tools/Makefile.am | 1 -
48 files changed, 1857 insertions(+), 816 deletions(-)
diff --git a/debian/.gitignore b/debian/.gitignore
new file mode 100644
index 0000000..397b4a7
--- /dev/null
+++ b/debian/.gitignore
@@ -0,0 +1 @@
+*.log
diff --git a/debian/README.Debian b/debian/README.Debian
index c8e090b..db46043 100644
--- a/debian/README.Debian
+++ b/debian/README.Debian
@@ -5,3 +5,6 @@ For Debian, cnrun is configured --with-tools=yes. These tools are:
- spike2sdf, for estimation of a spike density function from a record of
spike times.
+
+Note that this package is not a next-version cnrun; both can be
+installed at the same time.
diff --git a/debian/changelog b/debian/changelog
index 2666ff9..e70229a 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,8 +1,9 @@
cnrun (2.0.0-1) unstable; urgency=low
* New upstream version.
+ * Separate packaging of shared lib, dev files, tools and lua module.
- -- Andrei Zavada <johnhommer at gmail.com> Mon, 27 Oct 2014 00:46:00 +0300
+ -- Andrei Zavada <johnhommer at gmail.com> Sat, 01 Nov 2014 02:28:00 +0200
cnrun (1.1.14-1) unstable; urgency=low
diff --git a/debian/control b/debian/control
index 34e38bc..e0907bb 100644
--- a/debian/control
+++ b/debian/control
@@ -2,22 +2,34 @@ Source: cnrun
Section: science
Priority: optional
Maintainer: Andrei Zavada <johnhommer at gmail.com>
-Build-Depends: debhelper (>= 9), dh-autoreconf, autoconf-archive,
+Build-Depends: debhelper (>= 9), dh-autoreconf, autoconf-archive, texinfo,
libgomp1, pkg-config, libgsl0-dev, libxml2-dev,
- liblua5.2-dev
+ liblua5.1-dev | liblua5.2-dev, lua5.1 | lua5.2
Standards-Version: 3.9.6
Homepage: http://johnhommer.com/academic/code/cnrun
-Vcs-Git: git://git.debian.org/git/debian-med/cnrun.git
+Vcs-Git: git://anonscm.debian.org/cnrun/cnrun.git
Vcs-Browser: http://anonscm.debian.org/gitweb/?p=debian-med/cnrun.git;a=summary
-Package: libcnrun
+Package: libcnrun2
Architecture: any
+Pre-Depends: ${misc:Pre-Depends}
Depends: ${shlibs:Depends}, ${misc:Depends}
Description: NeuroML-capable neuronal network simulator (shared lib)
CNrun is a neuronal network simulator implemented as a Lua package.
This package contains shared libraries.
.
- See libcnrun-lua description for extended description.
+ See lua-cnrun description for extended description.
+
+Package: libcnrun2-dev
+Section: libdevel
+Architecture: any
+Depends: libcnrun2 (= ${binary:Version}), ${misc:Depends}
+Suggests: pkg-config
+Description: NeuroML-capable neuronal network simulator (development files)
+ CNrun is a neuronal network simulator implemented as a Lua package.
+ This package contains development files.
+ .
+ See lua-licnrun description for extended description.
Package: cnrun-tools
Architecture: any
@@ -27,13 +39,12 @@ Description: NeuroML-capable neuronal network simulator (tools)
This package contains two standalone tools (hh-latency-estimator and
spike2sdf) that may be of interest to CNrun users.
.
- See libcnrun-lua description for extended description.
+ See lua-cnrun description for extended description.
-Package: libcnrun-lua
+Package: lua-cnrun
Architecture: any
-Depends: libcnrun, ${shlibs:Depends}, ${misc:Depends}
+Depends: libcnrun2, lua5.1 | lua5.2, ${misc:Depends}
Suggests: gnuplot
-Recommends: lua
Description: NeuroML-capable neuronal network simulator (Lua package)
CNrun is a neuronal network simulator, with these features:
* a conductance- and rate-based Hodgkin-Huxley neurons, a Rall and
@@ -48,3 +59,7 @@ Description: NeuroML-capable neuronal network simulator (Lua package)
* interaction (topology push/pull, async connections) with other
cnrun models running elsewhere on a network, with interactions
(planned).
+ .
+ Note that there is no `cnrun' executable, which existed in cnrun-1.*.
+ Instead, you write a script for your simulation in Lua, and execute
+ it as detailed in /usr/share/cnrun/examples/example1.lua.
diff --git a/debian/copyright b/debian/copyright
index 0b640c7..7eaf1af 100644
--- a/debian/copyright
+++ b/debian/copyright
@@ -4,7 +4,7 @@ Upstream-Contact: Andrei Zavada <johnhommer at gmail.com>
Source: http://johnhommer.com/academic/code/cnrun/source/
Files: *
-Copyright: 2008-2012 Andrei Zavada <johnhommer at gmail.com>
+Copyright: 2008-2014 Andrei Zavada <johnhommer at gmail.com>
License: GPL-2+
Files: src/libcnrun/*.cc
diff --git a/debian/libcnrun-lua.install b/debian/libcnrun-lua.install
deleted file mode 100644
index 1561dea..0000000
--- a/debian/libcnrun-lua.install
+++ /dev/null
@@ -1,2 +0,0 @@
-usr/lib/*/cnrun/libcnrun-lua.so
-usr/share/doc/cnrun/examples/example1.lua
diff --git a/debian/libcnrun-lua.postinst b/debian/libcnrun-lua.postinst
deleted file mode 100644
index c92a7eb..0000000
--- a/debian/libcnrun-lua.postinst
+++ /dev/null
@@ -1,21 +0,0 @@
-#!/bin/sh
-
-#DEBHELPER#
-
-set -e
-
-case "$1" in
- configure|upgrade)
- ln -s /usr/lib/cnrun/libcnrun-lua.so /usr/lib/lua/5.2/cnrun.so
- ;;
-
- abort-upgrade|abort-remove|abort-deconfigure|failed-upgrade)
- rm -f /usr/lib/lua/5.2/cnrun.so
- ;;
- *)
- echo "postinst called with unknown argument \`$1'" >&2
- exit 1
- ;;
-esac
-
-exit 0
diff --git a/debian/libcnrun-lua.postrm b/debian/libcnrun-lua.postrm
deleted file mode 100644
index ba0cfc8..0000000
--- a/debian/libcnrun-lua.postrm
+++ /dev/null
@@ -1,17 +0,0 @@
-#!/bin/sh
-
-#DEBHELPER#
-
-set -e
-
-case "$1" in
- purge|remove|upgrade|failed-upgrade|abort-install|abort-upgrade|disappear)
- rm -f /usr/lib/lua/5.2/cnrun.so
- ;;
- *)
- echo "postrm called with unknown argument \`$1'" >&2
- exit 1
- ;;
-esac
-
-exit 0
diff --git a/debian/libcnrun.install b/debian/libcnrun.install
deleted file mode 100644
index 199cec1..0000000
--- a/debian/libcnrun.install
+++ /dev/null
@@ -1,2 +0,0 @@
-usr/lib/*/cnrun/libstilton.so
-usr/lib/*/cnrun/libcnrun.so
diff --git a/debian/libcnrun2-dev.install b/debian/libcnrun2-dev.install
new file mode 100644
index 0000000..23e2166
--- /dev/null
+++ b/debian/libcnrun2-dev.install
@@ -0,0 +1,4 @@
+usr/include/libcnrun/*
+usr/include/libstilton/*
+usr/lib/*/libcnrun.so
+usr/lib/*/pkgconfig/*
diff --git a/debian/libcnrun2.install b/debian/libcnrun2.install
new file mode 100644
index 0000000..480d5e7
--- /dev/null
+++ b/debian/libcnrun2.install
@@ -0,0 +1,2 @@
+usr/lib/*/libcnrun.so.2.0.0
+usr/lib/*/libcnrun.so.2
diff --git a/debian/libcnrun2.symbols b/debian/libcnrun2.symbols
new file mode 100644
index 0000000..cc04aeb
--- /dev/null
+++ b/debian/libcnrun2.symbols
@@ -0,0 +1,492 @@
+libcnrun.so.2 libcnrun2 #MINVER#
+(c++)"cnrun::CNeuronMap::preadvance()@Base" 2.0.0
+(c++)"cnrun::CNeuronMap::CNeuronMap(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, double, double, double, cnrun::CModel*, int)@Base" 2.0.0
+(c++)"cnrun::CNeuronMap::CNeuronMap(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, double, double, double, cnrun::CModel*, int)@Base" 2.0.0
+(c++)"cnrun::CNeuronMap::~CNeuronMap()@Base" 2.0.0
+(c++)"cnrun::CNeuronMap::~CNeuronMap()@Base" 2.0.0
+(c++)"cnrun::CNeuronMap::~CNeuronMap()@Base" 2.0.0
+(c++)"cnrun::C_BaseUnit::reset_state()@Base" 2.0.0
+(c++)"cnrun::C_BaseUnit::detach_source(cnrun::C_BaseSource*, cnrun::C_BaseUnit::TSinkType, unsigned long)@Base" 2.0.0
+(c++)"cnrun::C_BaseUnit::stop_listening()@Base" 2.0.0
+(c++)"cnrun::C_BaseUnit::start_listening(int)@Base" 2.0.0
+(c++)"cnrun::C_BaseUnit::param_changed_hook()@Base" 2.0.0
+(c++)"cnrun::C_BaseUnit::apprise_from_sources()@Base" 2.0.0
+(c++)"cnrun::C_BaseUnit::tell()@Base" 2.0.0
+(c++)"cnrun::C_BaseUnit::C_BaseUnit(cnrun::TUnitType, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, cnrun::CModel*, int)@Base" 2.0.0
+(c++)"cnrun::C_BaseUnit::C_BaseUnit(cnrun::TUnitType, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, cnrun::CModel*, int)@Base" 2.0.0
+(c++)"cnrun::C_BaseUnit::~C_BaseUnit()@Base" 2.0.0
+(c++)"cnrun::C_BaseUnit::~C_BaseUnit()@Base" 2.0.0
+(c++)"cnrun::C_BaseUnit::~C_BaseUnit()@Base" 2.0.0
+(c++)"cnrun::CNeuronEC_d::derivative(std::vector<double, std::allocator<double> >&, std::vector<double, std::allocator<double> >&)@Base" 2.0.0
+(c++)"cnrun::CNeuronEC_d::~CNeuronEC_d()@Base" 2.0.0
+(c++)"cnrun::CNeuronEC_d::~CNeuronEC_d()@Base" 2.0.0
+(c++)"cnrun::CNeuronEC_d::~CNeuronEC_d()@Base" 2.0.0
+(c++)"cnrun::CNeuronHH_d::derivative(std::vector<double, std::allocator<double> >&, std::vector<double, std::allocator<double> >&)@Base" 2.0.0
+(c++)"cnrun::CNeuronHH_d::~CNeuronHH_d()@Base" 2.0.0
+(c++)"cnrun::CNeuronHH_d::~CNeuronHH_d()@Base" 2.0.0
+(c++)"cnrun::CNeuronHH_d::~CNeuronHH_d()@Base" 2.0.0
+(c++)"cnrun::CNeuronHH_r::preadvance()@Base" 2.0.0
+(c++)"cnrun::CNeuronHH_r::~CNeuronHH_r()@Base" 2.0.0
+(c++)"cnrun::CNeuronHH_r::~CNeuronHH_r()@Base" 2.0.0
+(c++)"cnrun::CNeuronHH_r::~CNeuronHH_r()@Base" 2.0.0
+(c++)"cnrun::CSourceTape::CSourceTape(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, cnrun::TSourceLoopingOption)@Base" 2.0.0
+(c++)"cnrun::CSourceTape::CSourceTape(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, cnrun::TSourceLoopingOption)@Base" 2.0.0
+(c++)"cnrun::CSourceTape::~CSourceTape()@Base" 2.0.0
+(c++)"cnrun::CSourceTape::~CSourceTape()@Base" 2.0.0
+(c++)"cnrun::CSourceTape::~CSourceTape()@Base" 2.0.0
+(c++)"cnrun::CSourceTape::operator()(double)@Base" 2.0.0
+(c++)"cnrun::CSynapseMap::preadvance()@Base" 2.0.0
+(c++)"cnrun::CSynapseMap::CSynapseMap(cnrun::C_BaseNeuron*, cnrun::C_BaseNeuron*, double, cnrun::CModel*, int, cnrun::TUnitType)@Base" 2.0.0
+(c++)"cnrun::CSynapseMap::CSynapseMap(cnrun::C_BaseNeuron*, cnrun::C_BaseNeuron*, double, cnrun::CModel*, int, cnrun::TUnitType)@Base" 2.0.0
+(c++)"cnrun::CSynapseMap::~CSynapseMap()@Base" 2.0.0
+(c++)"cnrun::CSynapseMap::~CSynapseMap()@Base" 2.0.0
+(c++)"cnrun::CSynapseMap::~CSynapseMap()@Base" 2.0.0
+(c++)"cnrun::CNeuronECA_d::derivative(std::vector<double, std::allocator<double> >&, std::vector<double, std::allocator<double> >&)@Base" 2.0.0
+(c++)"cnrun::CNeuronECA_d::~CNeuronECA_d()@Base" 2.0.0
+(c++)"cnrun::CNeuronECA_d::~CNeuronECA_d()@Base" 2.0.0
+(c++)"cnrun::CNeuronECA_d::~CNeuronECA_d()@Base" 2.0.0
+(c++)"cnrun::CNeuronHH2_d::derivative(std::vector<double, std::allocator<double> >&, std::vector<double, std::allocator<double> >&)@Base" 2.0.0
+(c++)"cnrun::CNeuronHH2_d::~CNeuronHH2_d()@Base" 2.0.0
+(c++)"cnrun::CNeuronHH2_d::~CNeuronHH2_d()@Base" 2.0.0
+(c++)"cnrun::CNeuronHH2_d::~CNeuronHH2_d()@Base" 2.0.0
+(c++)"cnrun::CSourceNoise::distribution_s(cnrun::CSourceNoise::TDistribution)@Base" 2.0.0
+(c++)"cnrun::CSourceNoise::distribution_by_name(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 2.0.0
+(c++)"cnrun::CSourceNoise::CSourceNoise(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, double, double, double, cnrun::CSourceNoise::TDistribution, int)@Base" 2.0.0
+(c++)"cnrun::CSourceNoise::CSourceNoise(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, double, double, double, cnrun::CSourceNoise::TDistribution, int)@Base" 2.0.0
+(c++)"cnrun::CSourceNoise::~CSourceNoise()@Base" 2.0.0
+(c++)"cnrun::CSourceNoise::~CSourceNoise()@Base" 2.0.0
+(c++)"cnrun::CSourceNoise::~CSourceNoise()@Base" 2.0.0
+(c++)"cnrun::CSourceNoise::operator()(double)@Base" 2.0.0
+(c++)"cnrun::C_BaseNeuron::reset_state()@Base" 2.0.0
+(c++)"cnrun::C_BaseNeuron::possibly_fire()@Base" 2.0.0
+(c++)"cnrun::C_BaseNeuron::do_detect_spike_or_whatever()@Base" 2.0.0
+(c++)"cnrun::C_BaseNeuron::~C_BaseNeuron()@Base" 2.0.0
+(c++)"cnrun::C_BaseNeuron::~C_BaseNeuron()@Base" 2.0.0
+(c++)"cnrun::C_BaseNeuron::~C_BaseNeuron()@Base" 2.0.0
+(c++)"cnrun::C_BaseSource::is_periodic()@Base" 2.0.0
+(c++)"cnrun::C_BaseSource::type_s(cnrun::TSourceType)@Base" 2.0.0
+(c++)"cnrun::C_BaseSource::operator()(double)@Base" 2.0.0
+(c++)"cnrun::CSynapseAB_dd::derivative(std::vector<double, std::allocator<double> >&, std::vector<double, std::allocator<double> >&)@Base" 2.0.0
+(c++)"cnrun::CSynapseAB_dd::~CSynapseAB_dd()@Base" 2.0.0
+(c++)"cnrun::CSynapseAB_dd::~CSynapseAB_dd()@Base" 2.0.0
+(c++)"cnrun::CSynapseAB_dd::~CSynapseAB_dd()@Base" 2.0.0
+(c++)"cnrun::CSynapseAB_rr::derivative(std::vector<double, std::allocator<double> >&, std::vector<double, std::allocator<double> >&)@Base" 2.0.0
+(c++)"cnrun::CSynapseAB_rr::param_changed_hook()@Base" 2.0.0
+(c++)"cnrun::CSynapseAB_rr::~CSynapseAB_rr()@Base" 2.0.0
+(c++)"cnrun::CSynapseAB_rr::~CSynapseAB_rr()@Base" 2.0.0
+(c++)"cnrun::CSynapseAB_rr::~CSynapseAB_rr()@Base" 2.0.0
+(c++)"cnrun::CSynapseMxMap::preadvance()@Base" 2.0.0
+(c++)"cnrun::CSynapseMxMap::update_queue()@Base" 2.0.0
+(c++)"cnrun::CSynapseMxMap::~CSynapseMxMap()@Base" 2.0.0
+(c++)"cnrun::CSynapseMxMap::~CSynapseMxMap()@Base" 2.0.0
+(c++)"cnrun::CSynapseMxMap::~CSynapseMxMap()@Base" 2.0.0
+(c++)"cnrun::C_BaseSynapse::reset_state()@Base" 2.0.0
+(c++)"cnrun::C_BaseSynapse::update_queue()@Base" 2.0.0
+(c++)"cnrun::C_BaseSynapse::clone_to_target(cnrun::C_BaseNeuron*, double)@Base" 2.0.0
+(c++)"cnrun::C_BaseSynapse::make_clone_independent(cnrun::C_BaseNeuron*)@Base" 2.0.0
+(c++)"cnrun::C_BaseSynapse::C_BaseSynapse(cnrun::TUnitType, cnrun::C_BaseNeuron*, cnrun::C_BaseNeuron*, double, cnrun::CModel*, int)@Base" 2.0.0
+(c++)"cnrun::C_BaseSynapse::C_BaseSynapse(cnrun::TUnitType, cnrun::C_BaseNeuron*, cnrun::C_BaseNeuron*, double, cnrun::CModel*, int)@Base" 2.0.0
+(c++)"cnrun::C_BaseSynapse::~C_BaseSynapse()@Base" 2.0.0
+(c++)"cnrun::C_BaseSynapse::~C_BaseSynapse()@Base" 2.0.0
+(c++)"cnrun::C_BaseSynapse::~C_BaseSynapse()@Base" 2.0.0
+(c++)"cnrun::CIntegrateRK65::cycle()@Base" 2.0.0
+(c++)"cnrun::CIntegrateRK65::fixate()@Base" 2.0.0
+(c++)"cnrun::CIntegrateRK65::prepare()@Base" 2.0.0
+(c++)"cnrun::CIntegrateRK65::~CIntegrateRK65()@Base" 2.0.0
+(c++)"cnrun::CIntegrateRK65::~CIntegrateRK65()@Base" 2.0.0
+(c++)"cnrun::CIntegrateRK65::~CIntegrateRK65()@Base" 2.0.0
+(c++)"cnrun::C_HostedNeuron::reset_vars()@Base" 2.0.0
+(c++)"cnrun::C_HostedNeuron::var_value(unsigned long)@Base" 2.0.0
+(c++)"cnrun::C_HostedNeuron::C_HostedNeuron(cnrun::TUnitType, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, double, double, double, cnrun::CModel*, int, cnrun::TIncludeOption)@Base" 2.0.0
+(c++)"cnrun::C_HostedNeuron::C_HostedNeuron(cnrun::TUnitType, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, double, double, double, cnrun::CModel*, int, cnrun::TIncludeOption)@Base" 2.0.0
+(c++)"cnrun::CNeuronDotPulse::possibly_fire()@Base" 2.0.0
+(c++)"cnrun::CNeuronDotPulse::param_changed_hook()@Base" 2.0.0
+(c++)"cnrun::CNeuronDotPulse::~CNeuronDotPulse()@Base" 2.0.0
+(c++)"cnrun::CNeuronDotPulse::~CNeuronDotPulse()@Base" 2.0.0
+(c++)"cnrun::CNeuronDotPulse::~CNeuronDotPulse()@Base" 2.0.0
+(c++)"cnrun::CSourceFunction::~CSourceFunction()@Base" 2.0.0
+(c++)"cnrun::CSourceFunction::~CSourceFunction()@Base" 2.0.0
+(c++)"cnrun::CSourceFunction::~CSourceFunction()@Base" 2.0.0
+(c++)"cnrun::CSourceFunction::operator()(double)@Base" 2.0.0
+(c++)"cnrun::CSourcePeriodic::is_periodic()@Base" 2.0.0
+(c++)"cnrun::CSourcePeriodic::CSourcePeriodic(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, cnrun::TSourceLoopingOption, double)@Base" 2.0.0
+(c++)"cnrun::CSourcePeriodic::CSourcePeriodic(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, cnrun::TSourceLoopingOption, double)@Base" 2.0.0
+(c++)"cnrun::CSourcePeriodic::~CSourcePeriodic()@Base" 2.0.0
+(c++)"cnrun::CSourcePeriodic::~CSourcePeriodic()@Base" 2.0.0
+(c++)"cnrun::CSourcePeriodic::~CSourcePeriodic()@Base" 2.0.0
+(c++)"cnrun::CSourcePeriodic::operator()(double)@Base" 2.0.0
+(c++)"cnrun::CSynapseMxAB_dd::derivative(std::vector<double, std::allocator<double> >&, std::vector<double, std::allocator<double> >&)@Base" 2.0.0
+(c++)"cnrun::CSynapseMxAB_dd::reset_state()@Base" 2.0.0
+(c++)"cnrun::CSynapseMxAB_dd::update_queue()@Base" 2.0.0
+(c++)"cnrun::CSynapseMxAB_dd::~CSynapseMxAB_dd()@Base" 2.0.0
+(c++)"cnrun::CSynapseMxAB_dd::~CSynapseMxAB_dd()@Base" 2.0.0
+(c++)"cnrun::CSynapseMxAB_dd::~CSynapseMxAB_dd()@Base" 2.0.0
+(c++)"cnrun::CSynapseMxAB_dr::~CSynapseMxAB_dr()@Base" 2.0.0
+(c++)"cnrun::CSynapseMxAB_dr::~CSynapseMxAB_dr()@Base" 2.0.0
+(c++)"cnrun::CSynapseMxAB_dr::~CSynapseMxAB_dr()@Base" 2.0.0
+(c++)"cnrun::CSynapseRall_dd::derivative(std::vector<double, std::allocator<double> >&, std::vector<double, std::allocator<double> >&)@Base" 2.0.0
+(c++)"cnrun::CSynapseRall_dd::~CSynapseRall_dd()@Base" 2.0.0
+(c++)"cnrun::CSynapseRall_dd::~CSynapseRall_dd()@Base" 2.0.0
+(c++)"cnrun::CSynapseRall_dd::~CSynapseRall_dd()@Base" 2.0.0
+(c++)"cnrun::C_HostedSynapse::reset_vars()@Base" 2.0.0
+(c++)"cnrun::C_HostedSynapse::var_value(unsigned long)@Base" 2.0.0
+(c++)"cnrun::C_HostedSynapse::C_HostedSynapse(cnrun::TUnitType, cnrun::C_BaseNeuron*, cnrun::C_BaseNeuron*, double, cnrun::CModel*, int, cnrun::TIncludeOption)@Base" 2.0.0
+(c++)"cnrun::C_HostedSynapse::C_HostedSynapse(cnrun::TUnitType, cnrun::C_BaseNeuron*, cnrun::C_BaseNeuron*, double, cnrun::CModel*, int, cnrun::TIncludeOption)@Base" 2.0.0
+(c++)"cnrun::COscillatorVdPol::derivative(std::vector<double, std::allocator<double> >&, std::vector<double, std::allocator<double> >&)@Base" 2.0.0
+(c++)"cnrun::COscillatorVdPol::~COscillatorVdPol()@Base" 2.0.0
+(c++)"cnrun::COscillatorVdPol::~COscillatorVdPol()@Base" 2.0.0
+(c++)"cnrun::COscillatorVdPol::~COscillatorVdPol()@Base" 2.0.0
+(c++)"cnrun::COscillatorPoisson::possibly_fire()@Base" 2.0.0
+(c++)"cnrun::COscillatorPoisson::do_detect_spike_or_whatever()@Base" 2.0.0
+(c++)"cnrun::COscillatorPoisson::~COscillatorPoisson()@Base" 2.0.0
+(c++)"cnrun::COscillatorPoisson::~COscillatorPoisson()@Base" 2.0.0
+(c++)"cnrun::COscillatorPoisson::~COscillatorPoisson()@Base" 2.0.0
+(c++)"cnrun::CSynapseABMinus_dd::derivative(std::vector<double, std::allocator<double> >&, std::vector<double, std::allocator<double> >&)@Base" 2.0.0
+(c++)"cnrun::CSynapseABMinus_dd::~CSynapseABMinus_dd()@Base" 2.0.0
+(c++)"cnrun::CSynapseABMinus_dd::~CSynapseABMinus_dd()@Base" 2.0.0
+(c++)"cnrun::CSynapseABMinus_dd::~CSynapseABMinus_dd()@Base" 2.0.0
+(c++)"cnrun::C_StandaloneNeuron::reset_vars()@Base" 2.0.0
+(c++)"cnrun::C_StandaloneNeuron::var_value(unsigned long)@Base" 2.0.0
+(c++)"cnrun::C_StandaloneNeuron::C_StandaloneNeuron(cnrun::TUnitType, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, double, double, double, cnrun::CModel*, int)@Base" 2.0.0
+(c++)"cnrun::C_StandaloneNeuron::C_StandaloneNeuron(cnrun::TUnitType, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, double, double, double, cnrun::CModel*, int)@Base" 2.0.0
+(c++)"cnrun::C_StandaloneNeuron::~C_StandaloneNeuron()@Base" 2.0.0
+(c++)"cnrun::C_StandaloneNeuron::~C_StandaloneNeuron()@Base" 2.0.0
+(c++)"cnrun::C_StandaloneNeuron::~C_StandaloneNeuron()@Base" 2.0.0
+(c++)"cnrun::COscillatorColpitts::derivative(std::vector<double, std::allocator<double> >&, std::vector<double, std::allocator<double> >&)@Base" 2.0.0
+(c++)"cnrun::COscillatorColpitts::~COscillatorColpitts()@Base" 2.0.0
+(c++)"cnrun::COscillatorColpitts::~COscillatorColpitts()@Base" 2.0.0
+(c++)"cnrun::COscillatorColpitts::~COscillatorColpitts()@Base" 2.0.0
+(c++)"cnrun::C_StandaloneSynapse::reset_vars()@Base" 2.0.0
+(c++)"cnrun::C_StandaloneSynapse::var_value(unsigned long)@Base" 2.0.0
+(c++)"cnrun::C_StandaloneSynapse::C_StandaloneSynapse(cnrun::TUnitType, cnrun::C_BaseNeuron*, cnrun::C_BaseNeuron*, double, cnrun::CModel*, int)@Base" 2.0.0
+(c++)"cnrun::C_StandaloneSynapse::C_StandaloneSynapse(cnrun::TUnitType, cnrun::C_BaseNeuron*, cnrun::C_BaseNeuron*, double, cnrun::CModel*, int)@Base" 2.0.0
+(c++)"cnrun::CN_Vars_NeuronMap at Base" 2.0.0
+(c++)"cnrun::CN_Vars_SynapseAB at Base" 2.0.0
+(c++)"cnrun::CN_Vars_NeuronEC_d at Base" 2.0.0
+(c++)"cnrun::CN_Vars_NeuronHH_d at Base" 2.0.0
+(c++)"cnrun::CN_Vars_NeuronHH_r at Base" 2.0.0
+(c++)"cnrun::COscillatorDotPoisson::possibly_fire()@Base" 2.0.0
+(c++)"cnrun::COscillatorDotPoisson::do_detect_spike_or_whatever()@Base" 2.0.0
+(c++)"cnrun::COscillatorDotPoisson::~COscillatorDotPoisson()@Base" 2.0.0
+(c++)"cnrun::COscillatorDotPoisson::~COscillatorDotPoisson()@Base" 2.0.0
+(c++)"cnrun::COscillatorDotPoisson::~COscillatorDotPoisson()@Base" 2.0.0
+(c++)"cnrun::CN_Params_NeuronMap at Base" 2.0.0
+(c++)"cnrun::CN_Vars_NeuronECA_d at Base" 2.0.0
+(c++)"cnrun::CN_Vars_NeuronHH2_d at Base" 2.0.0
+(c++)"cnrun::CN_Vars_SynapseRall at Base" 2.0.0
+(c++)"cnrun::unit_family_by_string(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 2.0.0
+(c++)"cnrun::C_StandaloneAttributes::preadvance()@Base" 2.0.0
+(c++)"cnrun::C_StandaloneAttributes::~C_StandaloneAttributes()@Base" 2.0.0
+(c++)"cnrun::C_StandaloneAttributes::~C_StandaloneAttributes()@Base" 2.0.0
+(c++)"cnrun::CN_Params_NeuronEC_d at Base" 2.0.0
+(c++)"cnrun::CN_Params_NeuronHH_d at Base" 2.0.0
+(c++)"cnrun::CN_Params_NeuronHH_r at Base" 2.0.0
+(c++)"cnrun::CN_Params_SynapseMap at Base" 2.0.0
+(c++)"cnrun::CN_VarSyms_NeuronMap at Base" 2.0.0
+(c++)"cnrun::CN_VarSyms_SynapseAB at Base" 2.0.0
+(c++)"cnrun::unit_species_by_string(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 2.0.0
+(c++)"cnrun::CN_Params_NeuronECA_d at Base" 2.0.0
+(c++)"cnrun::CN_Params_NeuronHH2_d at Base" 2.0.0
+(c++)"cnrun::CN_VarNames_NeuronMap at Base" 2.0.0
+(c++)"cnrun::CN_VarNames_SynapseAB at Base" 2.0.0
+(c++)"cnrun::CN_VarSyms_NeuronEC_d at Base" 2.0.0
+(c++)"cnrun::CN_VarSyms_NeuronHH_d at Base" 2.0.0
+(c++)"cnrun::CN_VarSyms_NeuronHH_r at Base" 2.0.0
+(c++)"cnrun::CN_ParamSyms_NeuronMap at Base" 2.0.0
+(c++)"cnrun::CN_Params_SynapseAB_dd at Base" 2.0.0
+(c++)"cnrun::CN_Params_SynapseAB_rr at Base" 2.0.0
+(c++)"cnrun::CN_VarNames_NeuronEC_d at Base" 2.0.0
+(c++)"cnrun::CN_VarNames_NeuronHH_d at Base" 2.0.0
+(c++)"cnrun::CN_VarNames_NeuronHH_r at Base" 2.0.0
+(c++)"cnrun::CN_VarSyms_NeuronECA_d at Base" 2.0.0
+(c++)"cnrun::CN_VarSyms_SynapseRall at Base" 2.0.0
+(c++)"cnrun::CN_Vars_NeuronDotPulse at Base" 2.0.0
+(c++)"cnrun::CN_ParamNames_NeuronMap at Base" 2.0.0
+(c++)"cnrun::CN_ParamSyms_NeuronEC_d at Base" 2.0.0
+(c++)"cnrun::CN_ParamSyms_NeuronHH_d at Base" 2.0.0
+(c++)"cnrun::CN_ParamSyms_NeuronHH_r at Base" 2.0.0
+(c++)"cnrun::CN_ParamSyms_SynapseMap at Base" 2.0.0
+(c++)"cnrun::CN_VarNames_NeuronECA_d at Base" 2.0.0
+(c++)"cnrun::CN_VarNames_SynapseRall at Base" 2.0.0
+(c++)"cnrun::CN_Vars_OscillatorVdPol at Base" 2.0.0
+(c++)"cnrun::CN_ParamNames_NeuronEC_d at Base" 2.0.0
+(c++)"cnrun::CN_ParamNames_NeuronHH_d at Base" 2.0.0
+(c++)"cnrun::CN_ParamNames_NeuronHH_r at Base" 2.0.0
+(c++)"cnrun::CN_ParamNames_SynapseMap at Base" 2.0.0
+(c++)"cnrun::CN_ParamSyms_NeuronECA_d at Base" 2.0.0
+(c++)"cnrun::CN_ParamSyms_NeuronHH2_d at Base" 2.0.0
+(c++)"cnrun::CN_Params_NeuronDotPulse at Base" 2.0.0
+(c++)"cnrun::CN_Params_SynapseMxAB_dd at Base" 2.0.0
+(c++)"cnrun::CN_Params_SynapseMxAB_dr at Base" 2.0.0
+(c++)"cnrun::CN_Params_SynapseRall_dd at Base" 2.0.0
+(c++)"cnrun::C_StandaloneRateBasedNeuron::~C_StandaloneRateBasedNeuron()@Base" 2.0.0
+(c++)"cnrun::C_StandaloneRateBasedNeuron::~C_StandaloneRateBasedNeuron()@Base" 2.0.0
+(c++)"cnrun::C_StandaloneRateBasedNeuron::~C_StandaloneRateBasedNeuron()@Base" 2.0.0
+(c++)"cnrun::CN_ParamNames_NeuronECA_d at Base" 2.0.0
+(c++)"cnrun::CN_ParamNames_NeuronHH2_d at Base" 2.0.0
+(c++)"cnrun::CN_ParamSyms_SynapseAB_dd at Base" 2.0.0
+(c++)"cnrun::CN_ParamSyms_SynapseAB_dr at Base" 2.0.0
+(c++)"cnrun::CN_ParamSyms_SynapseAB_rr at Base" 2.0.0
+(c++)"cnrun::CN_Params_OscillatorVdPol at Base" 2.0.0
+(c++)"cnrun::CN_VarSyms_NeuronDotPulse at Base" 2.0.0
+(c++)"cnrun::CN_Vars_OscillatorPoisson at Base" 2.0.0
+(c++)"cnrun::CN_ParamNames_SynapseAB_dd at Base" 2.0.0
+(c++)"cnrun::CN_ParamNames_SynapseAB_dr at Base" 2.0.0
+(c++)"cnrun::CN_ParamNames_SynapseAB_rr at Base" 2.0.0
+(c++)"cnrun::CN_VarNames_NeuronDotPulse at Base" 2.0.0
+(c++)"cnrun::CN_VarSyms_OscillatorVdPol at Base" 2.0.0
+(c++)"cnrun::CN_Vars_OscillatorColpitts at Base" 2.0.0
+(c++)"cnrun::cnmodel_dump_available_units()@Base" 2.0.0
+(c++)"cnrun::CN_ParamSyms_NeuronDotPulse at Base" 2.0.0
+(c++)"cnrun::CN_ParamSyms_SynapseRall_dd at Base" 2.0.0
+(c++)"cnrun::CN_Params_OscillatorPoisson at Base" 2.0.0
+(c++)"cnrun::CN_Params_SynapseABMinus_dd at Base" 2.0.0
+(c++)"cnrun::CN_VarNames_OscillatorVdPol at Base" 2.0.0
+(c++)"cnrun::C_HostedConductanceBasedNeuron::do_detect_spike_or_whatever()@Base" 2.0.0
+(c++)"cnrun::CN_ParamNames_NeuronDotPulse at Base" 2.0.0
+(c++)"cnrun::CN_ParamNames_SynapseRall_dd at Base" 2.0.0
+(c++)"cnrun::CN_ParamSyms_OscillatorVdPol at Base" 2.0.0
+(c++)"cnrun::CN_Params_OscillatorColpitts at Base" 2.0.0
+(c++)"cnrun::CN_VarSyms_OscillatorPoisson at Base" 2.0.0
+(c++)"cnrun::CN_Vars_OscillatorPoissonDot at Base" 2.0.0
+(c++)"cnrun::CN_ParamNames_OscillatorVdPol at Base" 2.0.0
+(c++)"cnrun::CN_VarNames_OscillatorPoisson at Base" 2.0.0
+(c++)"cnrun::CN_VarSyms_OscillatorColpitts at Base" 2.0.0
+(c++)"cnrun::CN_ParamSyms_OscillatorPoisson at Base" 2.0.0
+(c++)"cnrun::CN_Params_OscillatorPoissonDot at Base" 2.0.0
+(c++)"cnrun::CN_VarNames_OscillatorColpitts at Base" 2.0.0
+(c++)"cnrun::CN_ParamNames_OscillatorPoisson at Base" 2.0.0
+(c++)"cnrun::CN_ParamSyms_OscillatorColpitts at Base" 2.0.0
+(c++)"cnrun::CN_VarSyms_OscillatorPoissonDot at Base" 2.0.0
+(c++)"cnrun::C_StandaloneConductanceBasedNeuron::~C_StandaloneConductanceBasedNeuron()@Base" 2.0.0
+(c++)"cnrun::C_StandaloneConductanceBasedNeuron::~C_StandaloneConductanceBasedNeuron()@Base" 2.0.0
+(c++)"cnrun::C_StandaloneConductanceBasedNeuron::~C_StandaloneConductanceBasedNeuron()@Base" 2.0.0
+(c++)"cnrun::CN_ParamNames_OscillatorColpitts at Base" 2.0.0
+(c++)"cnrun::CN_VarNames_OscillatorPoissonDot at Base" 2.0.0
+(c++)"cnrun::CN_ParamSyms_OscillatorPoissonDot at Base" 2.0.0
+(c++)"cnrun::CN_ParamNames_OscillatorPoissonDot at Base" 2.0.0
+(c++)"cnrun::CModel::exclude_unit(cnrun::C_BaseUnit*, cnrun::CModel::TExcludeOption)@Base" 2.0.0
+(c++)"cnrun::CModel::include_unit(cnrun::C_HostedNeuron*, cnrun::TIncludeOption)@Base" 2.0.0
+(c++)"cnrun::CModel::include_unit(cnrun::C_HostedSynapse*, cnrun::TIncludeOption)@Base" 2.0.0
+(c++)"cnrun::CModel::include_unit(cnrun::C_StandaloneNeuron*)@Base" 2.0.0
+(c++)"cnrun::CModel::include_unit(cnrun::C_StandaloneSynapse*)@Base" 2.0.0
+(c++)"cnrun::CModel::prepare_advance()@Base" 2.0.0
+(c++)"cnrun::CModel::export_NetworkML(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 2.0.0
+(c++)"cnrun::CModel::import_NetworkML(_xmlDoc*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, cnrun::CModel::TNMLImportOption)@Base" 2.0.0
+(c++)"cnrun::CModel::import_NetworkML(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, cnrun::CModel::TNMLImportOption)@Base" 2.0.0
+(c++)"cnrun::CModel::_setup_schedulers()@Base" 2.0.0
+(c++)"cnrun::CModel::coalesce_synapses()@Base" 2.0.0
+(c++)"cnrun::CModel::register_listener(cnrun::C_BaseUnit*)@Base" 2.0.0
+(c++)"cnrun::CModel::_include_base_unit(cnrun::C_BaseUnit*)@Base" 2.0.0
+(c++)"cnrun::CModel::add_neuron_species(cnrun::TUnitType, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, cnrun::TIncludeOption, double, double, double)@Base" 2.0.0
+(c++)"cnrun::CModel::add_neuron_species(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, cnrun::TIncludeOption, double, double, double)@Base" 2.0.0
+(c++)"cnrun::CModel::cull_deaf_synapses()@Base" 2.0.0
+(c++)"cnrun::CModel::finalize_additions()@Base" 2.0.0
+(c++)"cnrun::CModel::add_synapse_species(cnrun::TUnitType, cnrun::C_BaseNeuron*, cnrun::C_BaseNeuron*, double, cnrun::CModel::TSynapseCloningOption, cnrun::TIncludeOption)@Base" 2.0.0
+(c++)"cnrun::CModel::add_synapse_species(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, double, cnrun::CModel::TSynapseCloningOption, cnrun::TIncludeOption)@Base" 2.0.0
+(c++)"cnrun::CModel::cull_blind_synapses()@Base" 2.0.0
+(c++)"cnrun::CModel::process_putout_tags(std::list<cnrun::CModel::STagGroup, std::allocator<cnrun::CModel::STagGroup> > const&)@Base" 2.0.0
+(c++)"cnrun::CModel::unregister_listener(cnrun::C_BaseUnit*)@Base" 2.0.0
+(c++)"cnrun::CModel::_do_advance_on_mixed(double, double*)@Base" 2.0.0
+(c++)"cnrun::CModel::_process_populations(_xmlNode*)@Base" 2.0.0
+(c++)"cnrun::CModel::_process_projections(_xmlNode*)@Base" 2.0.0
+(c++)"cnrun::CModel::register_spikelogger(cnrun::C_BaseNeuron*)@Base" 2.0.0
+(c++)"cnrun::CModel::process_decimate_tags(std::list<cnrun::CModel::STagGroupDecimate, std::allocator<cnrun::CModel::STagGroupDecimate> > const&)@Base" 2.0.0
+(c++)"cnrun::CModel::process_listener_tags(std::list<cnrun::CModel::STagGroupListener, std::allocator<cnrun::CModel::STagGroupListener> > const&)@Base" 2.0.0
+(c++)"cnrun::CModel::reset_state_all_units()@Base" 2.0.0
+(c++)"cnrun::CModel::unregister_spikelogger(cnrun::C_BaseNeuron*)@Base" 2.0.0
+(c++)"cnrun::CModel::process_spikelogger_tags(std::list<cnrun::CModel::STagGroupSpikelogger, std::allocator<cnrun::CModel::STagGroupSpikelogger> > const&)@Base" 2.0.0
+(c++)"cnrun::CModel::_do_advance_on_pure_hosted(double, double*)@Base" 2.0.0
+(c++)"cnrun::CModel::register_unit_with_sources(cnrun::C_BaseUnit*)@Base" 2.0.0
+(c++)"cnrun::CModel::_do_advance_on_pure_ddtbound(double, double*)@Base" 2.0.0
+(c++)"cnrun::CModel::process_paramset_source_tags(std::list<cnrun::CModel::STagGroupSource, std::allocator<cnrun::CModel::STagGroupSource> > const&)@Base" 2.0.0
+(c++)"cnrun::CModel::process_paramset_static_tags(std::list<cnrun::CModel::STagGroupNeuronParmSet, std::allocator<cnrun::CModel::STagGroupNeuronParmSet> > const&)@Base" 2.0.0
+(c++)"cnrun::CModel::process_paramset_static_tags(std::list<cnrun::CModel::STagGroupSynapseParmSet, std::allocator<cnrun::CModel::STagGroupSynapseParmSet> > const&)@Base" 2.0.0
+(c++)"cnrun::CModel::unregister_unit_with_sources(cnrun::C_BaseUnit*)@Base" 2.0.0
+(c++)"cnrun::CModel::_process_population_instances(_xmlNode*, unsigned char const*, unsigned char const*)@Base" 2.0.0
+(c++)"cnrun::CModel::_do_advance_on_pure_standalone(double, double*)@Base" 2.0.0
+(c++)"cnrun::CModel::_process_projection_connections(_xmlNode*, unsigned char const*, unsigned char const*, unsigned char const*, unsigned char const*)@Base" 2.0.0
+(c++)"cnrun::CModel::reset(cnrun::CModel::TResetOption)@Base" 2.0.0
+(c++)"cnrun::CModel::advance(double, double*)@Base" 2.0.0
+(c++)"cnrun::CModel::CModel(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, cnrun::CIntegrate_base*, cnrun::SModelOptions const&)@Base" 2.0.0
+(c++)"cnrun::CModel::CModel(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, cnrun::CIntegrate_base*, cnrun::SModelOptions const&)@Base" 2.0.0
+(c++)"cnrun::CModel::~CModel()@Base" 2.0.0
+(c++)"cnrun::CModel::~CModel()@Base" 2.0.0
+(c++)"cnrun::CModel::~CModel()@Base" 2.0.0
+(c++)"cnrun::global::precision at Base" 2.0.0
+(c++)"cnrun::global::verbosely at Base" 2.0.0
+(c++)"cnrun::__CNUDT at Base" 2.0.0
+(c++)"cnrun::stilton::str::dhms_colon(double, int)@Base" 2.0.0
+(c++)"cnrun::stilton::str::svasprintf(char const*, __va_list_tag*)@Base" 2.0.0
+(c++)"cnrun::stilton::str::homedir2tilda(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 2.0.0
+(c++)"cnrun::stilton::str::homedir2tilda(std::basic_string<char, std::char_traits<char>, std::allocator<char> >&)@Base" 2.0.0
+(c++)"cnrun::stilton::str::tilda2homedir(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 2.0.0
+(c++)"cnrun::stilton::str::tilda2homedir(std::basic_string<char, std::char_traits<char>, std::allocator<char> >&)@Base" 2.0.0
+(c++)"cnrun::stilton::str::tokens_trimmed(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, char const*)@Base" 2.0.0
+(c++)"cnrun::stilton::str::decompose_double(double, double*, int*)@Base" 2.0.0
+(c++)"cnrun::stilton::str::double_dot_aligned_s(double, int, int)@Base" 2.0.0
+(c++)"cnrun::stilton::str::pad(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned long)@Base" 2.0.0
+(c++)"cnrun::stilton::str::dhms(double, int)@Base" 2.0.0
+(c++)"std::basic_string<char, std::char_traits<char>, std::allocator<char> > cnrun::stilton::str::join<std::list<double, std::allocator<double> > >(std::list<double, std::allocator<double> > const&, char const*)@Base" 2.0.0
+(c++)"std::basic_string<char, std::char_traits<char>, std::allocator<char> > cnrun::stilton::str::join<std::vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >(std::vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&, char const*)@Base" 2.0.0
+(c++)"cnrun::stilton::str::trim(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 2.0.0
+(c++)"cnrun::stilton::str::tokens(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, char const*)@Base" 2.0.0
+(c++)"cnrun::stilton::str::sasprintf(char const*, ...)@Base" 2.0.0
+(c++)"cnrun::C_BaseUnit::var_idx_by_sym(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const at Base" 2.0.0
+(c++)"cnrun::C_BaseUnit::param_idx_by_sym(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const at Base" 2.0.0
+(c++)"cnrun::C_BaseUnit::dump(bool, _IO_FILE*) const at Base" 2.0.0
+(c++)"cnrun::CNeuronHH_r::F(std::vector<double, std::allocator<double> >&) const at Base" 2.0.0
+(c++)"cnrun::CSourceTape::dump(_IO_FILE*) const at Base" 2.0.0
+(c++)"cnrun::CSynapseMap::Isyn(cnrun::C_BaseNeuron const&, double) const at Base" 2.0.0
+(c++)"cnrun::CSynapseMap::Isyn(std::vector<double, std::allocator<double> >&, cnrun::C_BaseNeuron const&, double) const at Base" 2.0.0
+(c++)"cnrun::CSourceNoise::dump(_IO_FILE*) const at Base" 2.0.0
+(c++)"cnrun::C_BaseNeuron::connects_to(cnrun::C_BaseNeuron const&) const at Base" 2.0.0
+(c++)"cnrun::C_BaseNeuron::connects_via(cnrun::C_BaseNeuron const&, double*) const at Base" 2.0.0
+(c++)"cnrun::C_BaseNeuron::n_spikes_in_last_dt() const at Base" 2.0.0
+(c++)"cnrun::C_BaseNeuron::E(std::vector<double, std::allocator<double> >&) const at Base" 2.0.0
+(c++)"cnrun::C_BaseNeuron::E() const at Base" 2.0.0
+(c++)"cnrun::C_BaseNeuron::F(std::vector<double, std::allocator<double> >&) const at Base" 2.0.0
+(c++)"cnrun::C_BaseNeuron::F() const at Base" 2.0.0
+(c++)"cnrun::C_BaseNeuron::dump(bool, _IO_FILE*) const at Base" 2.0.0
+(c++)"cnrun::CSynapseAB_dd::Isyn(cnrun::C_BaseNeuron const&, double) const at Base" 2.0.0
+(c++)"cnrun::CSynapseAB_dd::Isyn(std::vector<double, std::allocator<double> >&, cnrun::C_BaseNeuron const&, double) const at Base" 2.0.0
+(c++)"cnrun::CSynapseAB_rr::Isyn(cnrun::C_BaseNeuron const&, double) const at Base" 2.0.0
+(c++)"cnrun::CSynapseAB_rr::Isyn(std::vector<double, std::allocator<double> >&, cnrun::C_BaseNeuron const&, double) const at Base" 2.0.0
+(c++)"cnrun::C_BaseSynapse::dump(bool, _IO_FILE*) const at Base" 2.0.0
+(c++)"cnrun::C_HostedNeuron::get_var_value(unsigned long) const at Base" 2.0.0
+(c++)"cnrun::CSourceFunction::dump(_IO_FILE*) const at Base" 2.0.0
+(c++)"cnrun::CSourcePeriodic::dump(_IO_FILE*) const at Base" 2.0.0
+(c++)"cnrun::CSynapseMxAB_dr::Isyn(cnrun::C_BaseNeuron const&, double) const at Base" 2.0.0
+(c++)"cnrun::CSynapseMxAB_dr::Isyn(std::vector<double, std::allocator<double> >&, cnrun::C_BaseNeuron const&, double) const at Base" 2.0.0
+(c++)"cnrun::CSynapseRall_dd::Isyn(cnrun::C_BaseNeuron const&, double) const at Base" 2.0.0
+(c++)"cnrun::CSynapseRall_dd::Isyn(std::vector<double, std::allocator<double> >&, cnrun::C_BaseNeuron const&, double) const at Base" 2.0.0
+(c++)"cnrun::C_HostedSynapse::get_var_value(unsigned long) const at Base" 2.0.0
+(c++)"cnrun::C_StandaloneNeuron::get_var_value(unsigned long) const at Base" 2.0.0
+(c++)"cnrun::C_StandaloneSynapse::get_var_value(unsigned long) const at Base" 2.0.0
+(c++)"cnrun::SSpikeloggerService::sync_history() const at Base" 2.0.0
+(c++)"cnrun::SSpikeloggerService::n_spikes_since(double) const at Base" 2.0.0
+(c++)"cnrun::SSpikeloggerService::get_sxf_vector_custom(std::vector<double, std::allocator<double> >*, std::vector<double, std::allocator<double> >*, std::vector<unsigned long, std::allocator<unsigned long> >*, double, double, double, double) const at Base" 2.0.0
+(c++)"cnrun::SSpikeloggerService::sdf(double, double, double, unsigned long*) const at Base" 2.0.0
+(c++)"cnrun::SSpikeloggerService::shf(double, double) const at Base" 2.0.0
+(c++)"cnrun::C_HostedRateBasedNeuron::n_spikes_in_last_dt() const at Base" 2.0.0
+(c++)"cnrun::C_StandaloneRateBasedNeuron::n_spikes_in_last_dt() const at Base" 2.0.0
+(c++)"cnrun::C_HostedConductanceBasedNeuron::n_spikes_in_last_dt() const at Base" 2.0.0
+(c++)"cnrun::C_HostedConductanceBasedNeuron::E(std::vector<double, std::allocator<double> >&) const at Base" 2.0.0
+(c++)"cnrun::C_HostedConductanceBasedNeuron::E() const at Base" 2.0.0
+(c++)"cnrun::C_StandaloneConductanceBasedNeuron::n_spikes_in_last_dt() const at Base" 2.0.0
+(c++)"cnrun::C_StandaloneConductanceBasedNeuron::E(std::vector<double, std::allocator<double> >&) const at Base" 2.0.0
+(c++)"cnrun::C_StandaloneConductanceBasedNeuron::E() const at Base" 2.0.0
+(c++)"cnrun::CModel::dump_state(_IO_FILE*) const at Base" 2.0.0
+(c++)"cnrun::CModel::dump_units(_IO_FILE*) const at Base" 2.0.0
+(c++)"cnrun::CModel::list_units(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const at Base" 2.0.0
+(c++)"cnrun::CModel::dump_metrics(_IO_FILE*) const at Base" 2.0.0
+(c++)"cnrun::CModel::unit_by_label(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const at Base" 2.0.0
+(c++)"cnrun::CModel::neuron_by_label(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const at Base" 2.0.0
+(c++)"cnrun::CModel::synapse_by_label(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const at Base" 2.0.0
+(c++)"cnrun::CModel::verbose_threshold() const at Base" 2.0.0
+(c++)"cnrun::stilton::C_verprintf::vp(int, _IO_FILE*, char const*, ...) const at Base" 2.0.0
+(c++)"cnrun::stilton::C_verprintf::vp(int, char const*, ...) const at Base" 2.0.0
+(c++)"std::ctype<char>::do_widen(char) const at Base" 2.0.0
+(c++)"std::_Rb_tree<int, int, std::_Identity<int>, std::less<int>, std::allocator<int> >::find(int const&) const at Base" 2.0.0
+(c++)"char* std::basic_string<char, std::char_traits<char>, std::allocator<char> >::_S_construct<char*>(char*, char*, std::allocator<char> const&, std::forward_iterator_tag)@Base" 2.0.0
+(c++)"std::_List_base<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::_M_clear()@Base" 2.0.0
+(c++)"std::list<cnrun::C_BaseUnit*, std::allocator<cnrun::C_BaseUnit*> >::remove(cnrun::C_BaseUnit* const&)@Base" 2.0.0
+(c++)"std::list<cnrun::C_BaseUnit*, std::allocator<cnrun::C_BaseUnit*> >::unique()@Base" 2.0.0
+(c++)"std::list<cnrun::C_BaseNeuron*, std::allocator<cnrun::C_BaseNeuron*> >::sort()@Base" 2.0.0
+(c++)"std::list<cnrun::C_BaseNeuron*, std::allocator<cnrun::C_BaseNeuron*> >::merge(std::list<cnrun::C_BaseNeuron*, std::allocator<cnrun::C_BaseNeuron*> >&&)@Base" 2.0.0
+(c++)"std::list<cnrun::C_BaseNeuron*, std::allocator<cnrun::C_BaseNeuron*> >::remove(cnrun::C_BaseNeuron* const&)@Base" 2.0.0
+(c++)"std::list<double, std::allocator<double> >::sort()@Base" 2.0.0
+(c++)"std::list<double, std::allocator<double> >::merge(std::list<double, std::allocator<double> >&&)@Base" 2.0.0
+(c++)"std::list<unsigned int, std::allocator<unsigned int> >::_M_default_append(unsigned long)@Base" 2.0.0
+(c++)"void std::vector<cnrun::C_BaseUnit*, std::allocator<cnrun::C_BaseUnit*> >::_M_emplace_back_aux<cnrun::C_BaseUnit* const&>(cnrun::C_BaseUnit* const&)@Base" 2.0.0
+(c++)"void std::vector<cnrun::C_BaseUnit*, std::allocator<cnrun::C_BaseUnit*> >::_M_emplace_back_aux<cnrun::C_BaseUnit* const&>(cnrun::C_BaseUnit* const&)@Base" 2.0.0
+(c++)"void std::vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::emplace_back<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >(std::basic_string<char, std::char_traits<char>, std::allocator<char> >&&)@Base" 2.0.0
+(c++)"void std::vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::emplace_back<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >(std::basic_string<char, std::char_traits<char>, std::allocator<char> >&&)@Base" 2.0.0
+(c++)"void std::vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::_M_emplace_back_aux<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >(std::basic_string<char, std::char_traits<char>, std::allocator<char> >&&)@Base" 2.0.0
+(c++)"void std::vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::_M_emplace_back_aux<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >(std::basic_string<char, std::char_traits<char>, std::allocator<char> >&&)@Base" 2.0.0
+(c++)"std::vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::~vector()@Base" 2.0.0
+(c++)"std::vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::~vector()@Base" 2.0.0
+(c++)"void std::vector<std::pair<double, double>, std::allocator<std::pair<double, double> > >::_M_emplace_back_aux<std::pair<double, double> >(std::pair<double, double>&&)@Base" 2.0.0
+(c++)"void std::vector<std::pair<double, double>, std::allocator<std::pair<double, double> > >::_M_emplace_back_aux<std::pair<double, double> >(std::pair<double, double>&&)@Base" 2.0.0
+(c++)"void std::vector<double, std::allocator<double> >::emplace_back<double>(double&&)@Base" 2.0.0
+(c++)"void std::vector<double, std::allocator<double> >::emplace_back<double>(double&&)@Base" 2.0.0
+(c++)"void std::vector<double, std::allocator<double> >::_M_emplace_back_aux<double const&>(double const&)@Base" 2.0.0
+(c++)"void std::vector<double, std::allocator<double> >::_M_emplace_back_aux<double>(double&&)@Base" 2.0.0
+(c++)"void std::vector<double, std::allocator<double> >::_M_emplace_back_aux<double const&>(double const&)@Base" 2.0.0
+(c++)"void std::vector<double, std::allocator<double> >::_M_emplace_back_aux<double>(double&&)@Base" 2.0.0
+(c++)"std::vector<double, std::allocator<double> >::operator=(std::vector<double, std::allocator<double> > const&)@Base" 2.0.0
+(c++)"void std::vector<unsigned long, std::allocator<unsigned long> >::_M_emplace_back_aux<unsigned long const&>(unsigned long const&)@Base" 2.0.0
+(c++)"void std::vector<unsigned long, std::allocator<unsigned long> >::_M_emplace_back_aux<unsigned long const&>(unsigned long const&)@Base" 2.0.0
+(c++)"std::_Rb_tree<cnrun::C_BaseSynapse*, std::pair<cnrun::C_BaseSynapse* const, double>, std::_Select1st<std::pair<cnrun::C_BaseSynapse* const, double> >, std::less<cnrun::C_BaseSynapse*>, std::allocator<std::pair<cnrun::C_BaseSynapse* const, double> > >::_M_get_insert_unique_pos(cnrun::C_BaseSynapse* const&)@Base" 2.0.0
+(c++)"std::_Rb_tree<cnrun::C_BaseSynapse*, std::pair<cnrun::C_BaseSynapse* const, double>, std::_Select1st<std::pair<cnrun::C_BaseSynapse* const, double> >, std::less<cnrun::C_BaseSynapse*>, std::allocator<std::pair<cnrun::C_BaseSynapse* const, double> > >::_M_get_insert_hint_unique_pos(std::_Rb_tree_const_iterator<std::pair<cnrun::C_BaseSynapse* const, double> >, cnrun::C_BaseSynapse* const&)@Base" 2.0.0
+(c++)"std::_Rb_tree<cnrun::C_BaseSynapse*, std::pair<cnrun::C_BaseSynapse* const, double>, std::_Select1st<std::pair<cnrun::C_BaseSynapse* const, double> >, std::less<cnrun::C_BaseSynapse*>, std::allocator<std::pair<cnrun::C_BaseSynapse* const, double> > >::erase(cnrun::C_BaseSynapse* const&)@Base" 2.0.0
+(c++)"std::_Rb_tree<cnrun::C_BaseSynapse*, std::pair<cnrun::C_BaseSynapse* const, double>, std::_Select1st<std::pair<cnrun::C_BaseSynapse* const, double> >, std::less<cnrun::C_BaseSynapse*>, std::allocator<std::pair<cnrun::C_BaseSynapse* const, double> > >::_M_erase(std::_Rb_tree_node<std::pair<cnrun::C_BaseSynapse* const, double> >*)@Base" 2.0.0
+(c++)"std::pair<std::_Rb_tree_iterator<int>, bool> std::_Rb_tree<int, int, std::_Identity<int>, std::less<int>, std::allocator<int> >::_M_insert_unique<int>(int&&)@Base" 2.0.0
+(c++)"std::_Rb_tree<int, int, std::_Identity<int>, std::less<int>, std::allocator<int> >::_M_erase(std::_Rb_tree_node<int>*)@Base" 2.0.0
+(c++)"typeinfo for cnrun::CModel::TNMLIOResult at Base" 2.0.0
+(c++)"typeinfo for std::basic_string<char, std::char_traits<char>, std::allocator<char> >@Base" 2.0.0
+(c++)"typeinfo name for cnrun::CModel::TNMLIOResult at Base" 2.0.0
+(c++)"typeinfo name for std::basic_string<char, std::char_traits<char>, std::allocator<char> >@Base" 2.0.0
+(c++)"vtable for cnrun::CNeuronMap at Base" 2.0.0
+(c++)"vtable for cnrun::C_BaseUnit at Base" 2.0.0
+(c++)"vtable for cnrun::CNeuronEC_d at Base" 2.0.0
+(c++)"vtable for cnrun::CNeuronHH_d at Base" 2.0.0
+(c++)"vtable for cnrun::CNeuronHH_r at Base" 2.0.0
+(c++)"vtable for cnrun::CSourceTape at Base" 2.0.0
+(c++)"vtable for cnrun::CSynapseMap at Base" 2.0.0
+(c++)"vtable for cnrun::CNeuronECA_d at Base" 2.0.0
+(c++)"vtable for cnrun::CNeuronHH2_d at Base" 2.0.0
+(c++)"vtable for cnrun::CSourceNoise at Base" 2.0.0
+(c++)"vtable for cnrun::C_BaseNeuron at Base" 2.0.0
+(c++)"vtable for cnrun::C_BaseSource at Base" 2.0.0
+(c++)"vtable for cnrun::CSynapseAB_dd at Base" 2.0.0
+(c++)"vtable for cnrun::CSynapseAB_rr at Base" 2.0.0
+(c++)"vtable for cnrun::CSynapseMxMap at Base" 2.0.0
+(c++)"vtable for cnrun::C_BaseSynapse at Base" 2.0.0
+(c++)"vtable for cnrun::CIntegrateRK65 at Base" 2.0.0
+(c++)"vtable for cnrun::C_HostedNeuron at Base" 2.0.0
+(c++)"vtable for cnrun::CIntegrate_base at Base" 2.0.0
+(c++)"vtable for cnrun::CNeuronDotPulse at Base" 2.0.0
+(c++)"vtable for cnrun::CSourceFunction at Base" 2.0.0
+(c++)"vtable for cnrun::CSourcePeriodic at Base" 2.0.0
+(c++)"vtable for cnrun::CSynapseMxAB_dd at Base" 2.0.0
+(c++)"vtable for cnrun::CSynapseMxAB_dr at Base" 2.0.0
+(c++)"vtable for cnrun::CSynapseRall_dd at Base" 2.0.0
+(c++)"vtable for cnrun::C_HostedSynapse at Base" 2.0.0
+(c++)"vtable for cnrun::COscillatorVdPol at Base" 2.0.0
+(c++)"vtable for cnrun::COscillatorPoisson at Base" 2.0.0
+(c++)"vtable for cnrun::CSynapseABMinus_dd at Base" 2.0.0
+(c++)"vtable for cnrun::C_HostedAttributes at Base" 2.0.0
+(c++)"vtable for cnrun::C_StandaloneNeuron at Base" 2.0.0
+(c++)"vtable for cnrun::COscillatorColpitts at Base" 2.0.0
+(c++)"vtable for cnrun::C_StandaloneSynapse at Base" 2.0.0
+(c++)"vtable for cnrun::COscillatorDotPoisson at Base" 2.0.0
+(c++)"vtable for cnrun::C_StandaloneAttributes at Base" 2.0.0
+(c++)"vtable for cnrun::C_HostedRateBasedNeuron at Base" 2.0.0
+(c++)"vtable for cnrun::C_MultiplexingAttributes at Base" 2.0.0
+(c++)"vtable for cnrun::C_StandaloneRateBasedNeuron at Base" 2.0.0
+(c++)"vtable for cnrun::C_HostedConductanceBasedNeuron at Base" 2.0.0
+(c++)"vtable for cnrun::C_StandaloneConductanceBasedNeuron at Base" 2.0.0
+(c++)"vtable for cnrun::CModel at Base" 2.0.0
+(c++)"vtable for cnrun::stilton::C_verprintf at Base" 2.0.0
+(c++)"non-virtual thunk to cnrun::CSynapseMap::preadvance()@Base" 2.0.0
+(c++)"non-virtual thunk to cnrun::CSynapseAB_dd::derivative(std::vector<double, std::allocator<double> >&, std::vector<double, std::allocator<double> >&)@Base" 2.0.0
+(c++)"non-virtual thunk to cnrun::CSynapseAB_rr::derivative(std::vector<double, std::allocator<double> >&, std::vector<double, std::allocator<double> >&)@Base" 2.0.0
+(c++)"non-virtual thunk to cnrun::CSynapseMxMap::preadvance()@Base" 2.0.0
+(c++)"non-virtual thunk to cnrun::CSynapseMxAB_dd::derivative(std::vector<double, std::allocator<double> >&, std::vector<double, std::allocator<double> >&)@Base" 2.0.0
+(c++)"non-virtual thunk to cnrun::CSynapseRall_dd::derivative(std::vector<double, std::allocator<double> >&, std::vector<double, std::allocator<double> >&)@Base" 2.0.0
+(c++)"non-virtual thunk to cnrun::C_HostedSynapse::reset_vars()@Base" 2.0.0
+(c++)"non-virtual thunk to cnrun::C_HostedSynapse::var_value(unsigned long)@Base" 2.0.0
+(c++)"non-virtual thunk to cnrun::CSynapseABMinus_dd::derivative(std::vector<double, std::allocator<double> >&, std::vector<double, std::allocator<double> >&)@Base" 2.0.0
+(c++)"non-virtual thunk to cnrun::CSynapseMxAB_dd::update_queue()@Base" 2.0.0
+(c++)"non-virtual thunk to cnrun::CNeuronMap::preadvance()@Base" 2.0.0
+(c++)"non-virtual thunk to cnrun::CNeuronEC_d::derivative(std::vector<double, std::allocator<double> >&, std::vector<double, std::allocator<double> >&)@Base" 2.0.0
+(c++)"non-virtual thunk to cnrun::CNeuronHH_d::derivative(std::vector<double, std::allocator<double> >&, std::vector<double, std::allocator<double> >&)@Base" 2.0.0
+(c++)"non-virtual thunk to cnrun::CNeuronHH_r::preadvance()@Base" 2.0.0
+(c++)"non-virtual thunk to cnrun::CNeuronECA_d::derivative(std::vector<double, std::allocator<double> >&, std::vector<double, std::allocator<double> >&)@Base" 2.0.0
+(c++)"non-virtual thunk to cnrun::CNeuronHH2_d::derivative(std::vector<double, std::allocator<double> >&, std::vector<double, std::allocator<double> >&)@Base" 2.0.0
+(c++)"non-virtual thunk to cnrun::CSynapseMxMap::update_queue()@Base" 2.0.0
+(c++)"non-virtual thunk to cnrun::C_HostedNeuron::reset_vars()@Base" 2.0.0
+(c++)"non-virtual thunk to cnrun::C_HostedNeuron::var_value(unsigned long)@Base" 2.0.0
+(c++)"non-virtual thunk to cnrun::COscillatorVdPol::derivative(std::vector<double, std::allocator<double> >&, std::vector<double, std::allocator<double> >&)@Base" 2.0.0
+(c++)"non-virtual thunk to cnrun::COscillatorColpitts::derivative(std::vector<double, std::allocator<double> >&, std::vector<double, std::allocator<double> >&)@Base" 2.0.0
diff --git a/debian/lua-cnrun.info b/debian/lua-cnrun.info
new file mode 100644
index 0000000..c137dc8
--- /dev/null
+++ b/debian/lua-cnrun.info
@@ -0,0 +1 @@
+doc/lua-api/cnrun-lua-api.info
diff --git a/debian/lua-cnrun.install b/debian/lua-cnrun.install
new file mode 100644
index 0000000..05e6ced
--- /dev/null
+++ b/debian/lua-cnrun.install
@@ -0,0 +1,2 @@
+usr/lib/lua/*/cnrun.so
+usr/share/doc/lua-cnrun/examples/example1.lua
diff --git a/debian/lua-cnrun.lintian-overrides b/debian/lua-cnrun.lintian-overrides
new file mode 100644
index 0000000..26d170c
--- /dev/null
+++ b/debian/lua-cnrun.lintian-overrides
@@ -0,0 +1,3 @@
+# lua-cnrun produces a .so library that we move (in install hook)
+# directly to /usr/lib/lua/5.x/cnrun.so, where it only belongs
+lua-cnrun binary: missing-dependency-on-libc
diff --git a/debian/rules b/debian/rules
index 649cc66..95f91ee 100755
--- a/debian/rules
+++ b/debian/rules
@@ -1,17 +1,37 @@
#!/usr/bin/make -f
# -*- makefile -*-
-# Sample debian/rules that uses debhelper.
-# This file was originally written by Joey Hess and Craig Small.
-# As a special exception, when this file is copied by dh-make into a
-# dh-make output file, you may use that output file without restriction.
-# This special exception was added by Craig Small in version 0.37 of dh-make.
DPKG_EXPORT_BUILDFLAGS = 1
include /usr/share/dpkg/buildflags.mk
+DEB_BUILD_OPTIONS = parallel=4
%:
- dh $@ --with autoreconf
+ dh $@ --with autoreconf --parallel
+# dh $@ -plua-cnrun --buildsystem=lua --with lua
+
+# Perhaps I didn't try hard enough, but there was a conflict between
+# upstream's own, independent way to install Lua module as
+# /usr/lib/lua/5.x/cnrun.so, and Debian's recommended, using
+# dh-lua.conf. I stuck with the former, simply because upstream has
+# the full right to handle lua module himself. Just let debian
+# maintainers pick up ready-made lua/cnrun.so already installed where
+# it belongs.
+#
+# And, not to mention the need to write %.lo: target in top Makefile.am.
override_dh_clean:
rm -f config.log
dh_clean
+
+override_dh_shlibdeps:
+ dh_shlibdeps -L libcnrun2-dev
+
+# Here, we want dependencies to be scanned including a package not yet
+# installed, which I believe gets fixed by making an explicit mention
+# of libcnrun2-dev here.
+
+override_dh_makeshlibs:
+ dh_makeshlibs -plibcnrun2 -V -- -t -c1 -q -v2.0.0
+
+# This is nasty; not sure supplying symbols in demangled form is of
+# any help; but -q and -c1 obviously is.
diff --git a/debian/unwanted-files b/debian/unwanted-files
index fe1cddd..8ddf06f 100644
--- a/debian/unwanted-files
+++ b/debian/unwanted-files
@@ -13,3 +13,11 @@ Makefile.in
src/Makefile.in
src/*/Makefile.in
doc/Makefile.in
+doc/lua-api/mdate-sh
+doc/lua-api/texinfo.tex
+doc/lua-api/Makefile.in
+doc/lua-api/mdate-sh
+doc/lua-api/texinfo.tex
+doc/lua-api/stamp-vti
+doc/lua-api/version.texi
+doc/lua-api/cnrun-lua-api.info
diff --git a/upstream/ChangeLog b/upstream/ChangeLog
index 801e7e9..33c67cf 100644
--- a/upstream/ChangeLog
+++ b/upstream/ChangeLog
@@ -1,5 +1,5 @@
-2014-10-26 andrei zavada <johnhommer at gmail.com>
- * cnrun executable gone, replaced by a Lua module.
+2014-11-01 andrei zavada <johnhommer at gmail.com>
+ * cnrun executable gone, replaced by a Lua module (cnrun.so).
* Sweeping refactoring effort, incomplete in places, towards
higher coding standards and discipline.
* Drop varfold (too specific to the ratiocoding experiment setup).
diff --git a/upstream/INSTALL b/upstream/INSTALL
index b223b14..239e074 100644
--- a/upstream/INSTALL
+++ b/upstream/INSTALL
@@ -7,10 +7,12 @@ With the --enable-tools option, configure will build a couple of
standalone tools, spike2sdf and hh-latency-estimator, which some may
find useful.
-In order to use the Lua package, you can e.g. symlink
-/usr/lib/cnrun/libcnrun-lua.so to /usr/lib/lua/$LUA_VERSION/cnrun.so.
-You should then be able to write 'require("cnrun")'; for further
-instructions by example, see doc/cnrun/examples/example1.lua.
+In order to use the Lua package, if you installed CNrun into a prefix
+other than /, you need to make sure LUA_CPATH contains the location of
+cnrun.so (e.g. export LUA_CPATH="/path/to/cnrun/?.so;$LUA_CPATH"). You
+should then be able to write 'require("cnrun")'.
+
+For further instructions, see doc/cnrun/examples/example1.lua.
For the standard GNU autotools install instructions, please consult
the original INSTALL file (commonly /usr/share/autoconf/INSTALL).
diff --git a/upstream/Makefile.am b/upstream/Makefile.am
index c9fb9c9..98fd85d 100644
--- a/upstream/Makefile.am
+++ b/upstream/Makefile.am
@@ -1,13 +1,18 @@
ACLOCAL_AMFLAGS = -I m4
+include src/Common.mk
SUBDIRS := src doc
EXTRA_DIST = \
ChangeLog \
- autogen.sh
+ autogen.sh \
+ libcnrun.pc.in
if DO_TOOLS
man_MANS = \
man/spike2sdf.1 \
man/hh-latency-estimator.1
endif
+
+pkgconfigdir = $(libdir)/pkgconfig
+pkgconfig_DATA = libcnrun.pc
diff --git a/upstream/configure.ac b/upstream/configure.ac
index 98a6a7a..60a80cc 100644
--- a/upstream/configure.ac
+++ b/upstream/configure.ac
@@ -78,11 +78,13 @@ fi
AC_OUTPUT([
Makefile
+ libcnrun.pc
src/Makefile
src/libstilton/Makefile
src/libcnrun/Makefile
- src/libcnrun-lua/Makefile
+ src/lua-cnrun/Makefile
doc/Makefile
+ doc/lua-api/Makefile
man/spike2sdf.1
man/hh-latency-estimator.1
src/tools/Makefile])
diff --git a/upstream/doc/Makefile.am b/upstream/doc/Makefile.am
index 5f080fa..d4ef37c 100644
--- a/upstream/doc/Makefile.am
+++ b/upstream/doc/Makefile.am
@@ -1,10 +1,15 @@
+SUBDIRS = lua-api
+
doc_DATA = \
README
+# override, else we will stomp over cnrun docdir from a 1.x
+# installation, which can and must exist in parallel
+docdir=${datarootdir}/doc/lua-cnrun
+
examples_DATA = \
examples/example1.lua \
- examples/ratiocoding/ORNa.in \
- examples/ratiocoding/m.nml
+ examples/m.nml
examplesdir = $(docdir)/examples
diff --git a/upstream/doc/examples/example1.lua b/upstream/doc/examples/example1.lua
index 258ddeb..2feca9f 100644
--- a/upstream/doc/examples/example1.lua
+++ b/upstream/doc/examples/example1.lua
@@ -1,11 +1,31 @@
--- with lu-5.2, replace do s/table.unpack/unpack/g.
+-- This is an example illustrating how to use cnrun package in Lua.
+--
+-- 1. After loading the cnrun module with 'require', the first step is
+-- to get or create an interpreter context. It is an opaque light
+-- user data object, which you will pass as the first argument to
+-- all subsequent calls to cnrun functions.
+--
+-- 2. You can create and keep multiple models in a context, modify and
+-- advance them independently. Models are identified by a label (a
+-- string).
+--
+-- 3. On error, all cnrun methods return two values: first a nil,
+-- second a string describing what went wrong. On success, the
+-- first value is 1 (an integer), and the rest are method-specific.
+--
+-- 4. Don't lose the context object. It will not be gabage-collected
+-- for you (it is a C++ thing).
+
+-- To execute this script with lua-5.1, do s/table.unpack/unpack/g.
local M = require("cnrun")
local res, ult, result
local C, model
-res, ult = M.cn_get_context ()
+M.dump_available_units ()
+
+res, ult = M.get_context ()
if res == nil then
print (ult)
return
@@ -13,7 +33,7 @@ end
C = ult
local mname = "FAFA"
-res, ult = M.cn_new_model (C, mname)
+res, ult = M.new_model (C, mname)
if res == nil then
print (ult)
return
@@ -22,9 +42,9 @@ model = ult
print ("Created model")
print ("Setting verbosely to 4")
-M.cn_set_model_parameter (C, mname, "verbosely", 4)
+M.set_model_parameter (C, mname, "verbosely", 4)
-result = {M.cn_list_models (C)}
+result = {M.list_models (C)}
res, ult = result[1], {table.unpack(result, 2)}
if res == nil then
print (ult)
@@ -38,7 +58,7 @@ print (table.concat(model_list))
print ()
-res, ult = M.cn_import_nml (C, mname, "ratiocoding/m.nml")
+res, ult = M.import_nml (C, mname, "m.nml")
if res == nil then
print (ult)
-- return
@@ -55,19 +75,19 @@ local parameters = {
}
local fmt = " %22s: %-q"
for i,p in ipairs(parameters) do
- res, ult = M.cn_get_model_parameter (C, mname, p)
+ res, ult = M.get_model_parameter (C, mname, p)
print (string.format (fmt, p, ult))
end
print ()
-res, ult = M.cn_delete_model (C, "fafa moo")
+res, ult = M.delete_model (C, "fafa moo")
if res == nil then
print (ult .. " (ignored)")
-- return
end
-result = {M.cn_get_units_matching(C, mname, "L.*")}
+result = {M.get_units_matching(C, mname, "L.*")}
res, ult = result[1], {table.unpack(result, 2)}
if res == nil then
print (ult)
@@ -82,7 +102,7 @@ print (string.format(
"label", "class", "family", "species", "has_sources", "is_altered"))
print (string.rep('-', 87))
for _, u in ipairs(unit_list) do
- result = {M.cn_get_unit_properties (C, mname, u)}
+ result = {M.get_unit_properties (C, mname, u)}
res, ult = result[1], {table.unpack(result, 2)}
local b = function (x) if x then return "yes" else return "no" end end
print (string.format(
@@ -93,36 +113,48 @@ print()
print ("Advancing 10 sec:")
-res, ult = M.cn_advance (C, mname, 10000)
+res, ult = M.advance (C, mname, 10000)
print ("Modify parameter:")
local u, p, v0, v9, vr = "LNz.0", "gNa"
-_, ult = M.cn_get_unit_parameter (C, mname, u, p)
+_, ult = M.get_unit_parameter (C, mname, u, p)
v0 = ult
-_, ult = M.cn_set_unit_parameter (C, mname, u, p, v0 * 2)
-_, ult = M.cn_get_unit_parameter (C, mname, u, p)
+_, ult = M.set_unit_parameter (C, mname, u, p, v0 * 2)
+_, ult = M.get_unit_parameter (C, mname, u, p)
v9 = ult
-- with a revert
-res, ult = M.cn_revert_matching_unit_parameters (C, mname, u)
+res, ult = M.revert_matching_unit_parameters (C, mname, u)
if res == nil then
print (ult)
return
end
local count_reset = ult
-_, ult = M.cn_get_unit_parameter (C, mname, u, p)
+_, ult = M.get_unit_parameter (C, mname, u, p)
vr = ult
print (string.format(
".. changed %s of %s from %g to %g, then reset (%d affected) to %g\n",
p, u, v0, v9, count_reset, vr))
-res, ult = M.cn_describe_model (C, mname)
+
+print ("Modify parameter in bulk:")
+local us, ut, gsyn = "LNz.0", "LN1.0"
+_, ult = M.set_matching_synapse_parameter (C, mname, us, ut, "gsyn", 4.2)
+if res == nil then
+ print (ult)
+ return
+end
+print (string.format(
+ ".. changed gsyn of synapse connecting %s to %s, to %g\n",
+ us, ut, 4.2))
+
+res, ult = M.describe_model (C, mname)
print ("State variables:")
for i = 1, 6, 1 do
- M.cn_advance (C, mname, 1000)
- result = {M.cn_get_unit_vars (C, mname, "LNz.0")}
+ M.advance (C, mname, 1000)
+ result = {M.get_unit_vars (C, mname, "LNz.0")}
res, ult = result[1], {table.unpack(result, 2)}
print (table.concat(ult, '; '))
end
@@ -135,7 +167,7 @@ print ("Putout:")
math.randomseed(os.time())
local deleting = unit_list[math.random(1, #unit_list)]
-- deleting, _ = string.gsub(deleting, ".", "\\.")
-res, ult = M.cn_putout (C, mname, deleting)
+res, ult = M.putout (C, mname, deleting)
if res == nil then
print (ult)
return
@@ -144,27 +176,27 @@ print (string.format(".. deleted unit %s", deleting))
print()
print ("Decimate:")
-res, ult = M.cn_decimate (C, mname, "L.*", 0.3)
+res, ult = M.decimate (C, mname, "L.*", 0.3)
if res == nil then
print (nil)
return
end
affected, remaining = ult
-remaining = #{M.cn_get_units_matching (C, mname, ".*")} - 1
+remaining = #{M.get_units_matching (C, mname, ".*")} - 1
print (string.format(
".. %d units gone, %d remaining",
affected, remaining))
print()
-res, ult = M.cn_delete_model (C, mname)
+res, ult = M.delete_model (C, mname)
if res == nil then
print ("Error: Failed to delete model: ", ult)
return
end
print ("Model ".. ult .. " deleted")
-res, ult = M.cn_drop_context (C)
+res, ult = M.drop_context (C)
if res == nil then
print ("Error: Failed to drop context: ", ult)
return
diff --git a/upstream/doc/examples/ratiocoding/m.nml b/upstream/doc/examples/m.nml
similarity index 100%
rename from upstream/doc/examples/ratiocoding/m.nml
rename to upstream/doc/examples/m.nml
diff --git a/upstream/doc/examples/ratiocoding/ORNa.in b/upstream/doc/examples/ratiocoding/ORNa.in
deleted file mode 100644
index b70eeaa..0000000
--- a/upstream/doc/examples/ratiocoding/ORNa.in
+++ /dev/null
@@ -1,112 +0,0 @@
-125
-0
-0 0 10 10
-0 0 10 10
-0 0 10 10
-0 0 10 10
-0 0 10 10
-0 0 10 10
-0 0 10 10
-0 0 10 10
-0 0 10 10
-0 0 10 10
-
-0 0 13 13
-0 0 13 13
-0 0 13 13
-0 0 13 13
-0 0 13 13
-0 0 13 13
-0 0 13 13
-0 0 13 13
-0 0 13 13
-0 0 13 13
-
-0 0 16.9 16.9
-0 0 16.9 16.9
-0 0 16.9 16.9
-0 0 16.9 16.9
-0 0 16.9 16.9
-0 0 16.9 16.9
-0 0 16.9 16.9
-0 0 16.9 16.9
-0 0 16.9 16.9
-0 0 16.9 16.9
-
-0 0 21.97 21.97
-0 0 21.97 21.97
-0 0 21.97 21.97
-0 0 21.97 21.97
-0 0 21.97 21.97
-0 0 21.97 21.97
-0 0 21.97 21.97
-0 0 21.97 21.97
-0 0 21.97 21.97
-0 0 21.97 21.97
-
-0 0 28.561 28.561
-0 0 28.561 28.561
-0 0 28.561 28.561
-0 0 28.561 28.561
-0 0 28.561 28.561
-0 0 28.561 28.561
-0 0 28.561 28.561
-0 0 28.561 28.561
-0 0 28.561 28.561
-0 0 28.561 28.561
-
-0 0 37.1293 37.1293
-0 0 37.1293 37.1293
-0 0 37.1293 37.1293
-0 0 37.1293 37.1293
-0 0 37.1293 37.1293
-0 0 37.1293 37.1293
-0 0 37.1293 37.1293
-0 0 37.1293 37.1293
-0 0 37.1293 37.1293
-0 0 37.1293 37.1293
-
-0 0 48.2681 48.2681
-0 0 48.2681 48.2681
-0 0 48.2681 48.2681
-0 0 48.2681 48.2681
-0 0 48.2681 48.2681
-0 0 48.2681 48.2681
-0 0 48.2681 48.2681
-0 0 48.2681 48.2681
-0 0 48.2681 48.2681
-0 0 48.2681 48.2681
-
-0 0 62.7485 62.7485
-0 0 62.7485 62.7485
-0 0 62.7485 62.7485
-0 0 62.7485 62.7485
-0 0 62.7485 62.7485
-0 0 62.7485 62.7485
-0 0 62.7485 62.7485
-0 0 62.7485 62.7485
-0 0 62.7485 62.7485
-0 0 62.7485 62.7485
-
-0 0 81.5731 81.5731
-0 0 81.5731 81.5731
-0 0 81.5731 81.5731
-0 0 81.5731 81.5731
-0 0 81.5731 81.5731
-0 0 81.5731 81.5731
-0 0 81.5731 81.5731
-0 0 81.5731 81.5731
-0 0 81.5731 81.5731
-0 0 81.5731 81.5731
-
-0 0 106.045 106.045
-0 0 106.045 106.045
-0 0 106.045 106.045
-0 0 106.045 106.045
-0 0 106.045 106.045
-0 0 106.045 106.045
-0 0 106.045 106.045
-0 0 106.045 106.045
-0 0 106.045 106.045
-0 0 106.045 106.045
-
diff --git a/upstream/doc/lua-api/.gitignore b/upstream/doc/lua-api/.gitignore
new file mode 100644
index 0000000..fa63357
--- /dev/null
+++ b/upstream/doc/lua-api/.gitignore
@@ -0,0 +1,6 @@
+cnrun-lua-api.info
+cnrun-lua-api.html/
+mdate-sh
+stamp-vti
+texinfo.tex
+version.texi
diff --git a/upstream/doc/lua-api/Makefile.am b/upstream/doc/lua-api/Makefile.am
new file mode 100644
index 0000000..0fbb8a5
--- /dev/null
+++ b/upstream/doc/lua-api/Makefile.am
@@ -0,0 +1,4 @@
+info_TEXINFOS = \
+ cnrun-lua-api.texi
+
+all-local: html info
diff --git a/upstream/doc/lua-api/cnrun-lua-api.texi b/upstream/doc/lua-api/cnrun-lua-api.texi
new file mode 100644
index 0000000..6e76736
--- /dev/null
+++ b/upstream/doc/lua-api/cnrun-lua-api.texi
@@ -0,0 +1,533 @@
+\input texinfo @c -*-texinfo-*-
+ at c %**start of header
+ at setfilename cnrun-lua-api.info
+ at settitle CNrun Lua API
+ at c %**end of header
+
+ at include version.texi
+
+ at dircategory Libraries
+ at direntry
+* CNrun Lua API: (cnrun-lua). CNrun API in Lua.
+ at end direntry
+
+ at copying
+
+Copyright @copyright{} 2014 Andrei Zavada @email{johnhommer@@gmail.com}.
+
+The files representing this documentation set are part of CNrun project,
+and covered by GPL-2+.
+ at end copying
+
+ at titlepage
+ at title CNrun Lua API
+ at subtitle version @value{VERSION}
+ at subtitle @value{UPDATED}
+ at author Andrei Zavada
+
+ at page
+ at vskip 0pt plus 1filll
+ at insertcopying
+ at end titlepage
+
+ at contents
+
+ at ifnottex
+ at node Top
+ at top CNrun Lua API
+ at comment node-name, next, previous, up
+ at insertcopying
+
+This file documents the CNrun functions exposed in Lua.
+ at end ifnottex
+
+ at c The master menu, created with texinfo-master-menu, goes here.
+
+ at menu
+* Introduction:: CNrun is a neuronal network model simulator, with
+ scripting done in Lua.
+* General notes:: Loading cnrun module in Lua; how errors are reported.
+* Interpreter context:: CNrun interpreter context needs to be created
+ first.
+* Models:: Operations on neuronal network models: create, populate,
+ simulate, etc.
+* Individual units:: View/modify individual units' parameters and
+ state variables.
+* External excitation sources:: External excitation sources.
+* Sampling state variables:: Ways to assess model state and behaviour.
+* Unit species:: A table of all available built-in units.
+* Planned features:: There are some, although only time permitting.
+* Index:: All functions listed alphabetically.
+ at end menu
+
+ at node Introduction
+ at chapter Introduction
+
+CNrun is a slow but precise neuronal network model simulator written in
+C++, for which functions are exposed in the Lua scripting language.
+These functions are described in this document.
+
+In the present version (2.x), CNrun core is made into a shared library,
+in contrast to CNrun 1.x which had it as a single executable
+interpreting its own, very simple scripts. In order to enable a more
+competent scripting, with interesting possibilities such as network
+plastic processes regulated by some model activity (excitation levels,
+spike patterns, etc), wrappers are provided to call core functions from
+Lua.
+
+In the simplest case where you have a NeuroML-defined topology, a
+simulation session could be as brief as this:
+
+ at example
+local M = require("cnrun")
+_, C = M.get_context()
+_, M = M.new_model (C, "fafa")
+M.import_nml (C, "fafa", "model.nml")
+M.advance (C, "fafa", 1000)
+ at end example
+
+ at noindent
+This snippet will create an interpreter context, create a model in it,
+load an NML file, and advance the model one second.
+
+To report a bug or request a wishlist item, go to @url{http://github.com/hmmr/cnrun}.
+
+ at node General notes
+ at chapter General notes
+
+ at section Preparations
+ All functions are made available in @code{cnrun} module namespace, by
+ means of standard @code{require}. Thus, @code{local N = require("cnrun"); M.some_function(args)}.
+
+ at section Returned arguments
+ On error, all functions return two arguments: first a @code{nil},
+ and second, an error message describing what went wrong (a string).
+
+ On success, the first returned argument will be 1 (integer), followed
+ by one or more values specifically described in the following sections.
+ Unless stated otherwise, functions which have nothing meaningful to
+ return, on success return @code{1, model_name}.
+
+ at node Interpreter context
+ at chapter Interpreter context
+
+In Lua, after loading the cnrun module with @code{require("cnrun")},
+the first step is to get an interpreter context. It is an opaque light
+user data object, which you should pass as the first argument to all
+subsequent calls to CNrun functions.
+
+You can create and keep multiple models in a context, modify and advance
+them independently.
+
+The function to create a CNrun context is @code{get_context()}:
+
+ at defun get_context ()
+ Create a CNrun interpreter context, in which all subsequent operations
+ will be performed.
+
+ On success, returns the newly created context object @var{C} as the
+ second argument.
+ at end defun
+
+ at defun drop_context (C)
+ Drop the interpreter context @var{C}, previously obtained with
+ @emph{get_context()}.
+ at end defun
+
+In the following sections, context is passed as the first (or only)
+argument to all functions. It is denoted as @var{C} and not described
+each time.
+
+ at node Models
+ at chapter Models
+
+Multiple models can be created, accessed, modified, advanced within a
+single interpreter context. Models are identified by a label (a string).
+
+ at section Creating and deleting models
+
+ at defun new_model (C, M)
+ Create a model named @var{M} (model label).
+ at end defun
+
+ at defun delete_model (C, M)
+ Delete model @var{M}.
+ at end defun
+
+ at defun list_models (C)
+ List models existing in context @var{C}, returned as strings.
+ at end defun
+
+ at section Populating models
+
+Models can be populated by constituent neurons and synapses in two ways:
+ at enumerate
+ at item importing topology from a file (@code{import_nml()});
+ at item adding individual units one by one (@code{new_neuron()}, @code{new_synapse()}).
+ at end enumerate
+
+ at defun import_nml (C, M, file_name)
+ Import network topology from a file (@var{file_name}) into a model
+ named @var{M}.
+ at end defun
+
+ at defun export_nml (C, M, file_name)
+ Export network topology of model @var{M} into file @var{file_name}.
+ at end defun
+
+ at defun new_neuron (C, M, type, label)
+ Create a neuron of type @var{type}, with this @var{label}, in model
+ @var{M}.
+ at end defun
+
+ at defun new_synapse (C, M, type, source, target)
+ Create a synapse of this @var{type} connecting neurons labelled
+ @var{source} and @var{target}.
+ at end defun
+
+ at section Other operations on models as a whole
+
+ at defun reset_model (C, M)
+ Reset the state of all units, rewind all periodic sources and flush
+ and close any logs in model @var{M}.
+ at end defun
+
+ at defun cull_deaf_synapses (C, M)
+ Remove all synapses with a zero @var{gsyn}, in model @var{M}. This
+ makes sense unless you are going to modify @var{gsyn} at a later time.
+ at end defun
+
+ at defun describe_model (C, M)
+ Describe model @var{M}. The output will be printed to stdout and look
+ like this:
+ at verbatim
+Model "FAFA":
+ 13 units total (7 Neurons, 6 Synapses):
+ 11 hosted,
+ 2 standalone
+ 0 discrete dt-bound
+ 0 Listening units
+ 0 Spikelogging neurons
+ 0 Units being tuned continuously
+ 0 Units being tuned periodically
+ 2 Spontaneously firing neurons
+ 2 Multiplexing synapses
+ 26 vars on integration vector
+ at end verbatim
+ at end defun
+
+ at defun advance (C, M, duration)
+ Run simulation in model @var{M} for @var{duration} milliseconds.
+ at end defun
+
+ at defun advance_until (C, M, time)
+ Run simulation in model @var{M} until point in time @var{time}.
+
+ Note that the real eventual model time after this function has
+ returned may be a little (less than the last @var{dt}) greater than
+ expected.
+ at end defun
+
+
+ at section Model parameters
+
+Each model has the following parameters that affect its behaviour:
+
+ at table @emph
+ at item verbosely
+Level of verbosity of printed messages (integer, 0 up to 6).
+
+ at item integration_dt_min
+Lower bound for @var{dt} (float).
+
+ at item integration_dt_max
+Upper bound for @var{dt} (float).
+
+ at item integration_dt_cap
+Maximal factor by which @var{dt} can be allowed to increase in
+consecutive iterations (float).
+
+ at item listen_dt
+A time increment between consecutive sampling and logging of state
+variables (float).
+
+ at item listen_mode
+A string of symbols defining unit `listening' mode, of the form
+ at emph{x}@{@emph{-}@}, where @emph{x} indicates the mode and @emph{-},
+whether to disable that mode (if given, else enable). There are three
+modes: @var{1}, whether to log the first state variable only, or all
+unit vars; @var{d}, whether to defer writing until end of simulation;
+and @var{b}, whether to write FP values in native machine representation
+instead of @code{"%g"}.
+
+ at item sxf_start_delay
+Length of time, before and after sampling point, limiting the extent of
+counting spikes for sdf/sxf evaluation (float). Leave at 0 to count
+all spikes from 0 until current model time; a couple of seconds should
+be good for reasonable accuracy.
+
+ at item sxf_period
+Sampling period for sdf and shf (spike density and spike heterogeneity)
+functions.
+
+ at item sdf_sigma
+Parameter @var{sigma} in sdf (float).
+ at end table
+
+ at defun get_model_parameter (C, M, P)
+ Get a model parameter @var{P}, one of those listed above.
+ at end defun
+
+ at defun set_model_parameter (C, M, P, V)
+ Set a model parameter @var{P} to value @var{V}.
+ at end defun
+
+
+ at node Individual units
+ at chapter Individulal unit identification, properties and parameters
+
+Units populating a model are uniquely identified by their label, set at
+creation time. Where a single unit needs to be selected for a function,
+the corresponding argument to that function is designated @var{L}. Or,
+if an operation is supposed to affect many units, selected by a regex
+pattern on their labels, that argument is designated @var{R}.
+
+Apart from the (arbitrary) label, units are classified as belonging to
+either Neuron or Synapse class, further belonging to a certain family
+and species. These categories are built-in, each species defining a
+set of parameters and state variables.
+
+All available unit species are listed in @ref{Unit species}.
+
+ at defun get_unit_properties (C, M, L)
+ Return the following attributes and properties of unit @var{L}, in
+ order: @emph{label}, @emph{class_name}, @emph{family}, @emph{species},
+ as strings, followed by flags @emph{has_sources} and
+ @emph{is_not_altered}.
+ at end defun
+
+ at defun get_unit_parameter (C, M, L, P)
+ Get the value of unit @var{L}'s parameter @var{P}.
+ at end defun
+
+ at defun set_unit_parameter (C, M, L, P, V)
+ Set unit @var{L}'s parameter @var{P} to a value of @var{V}.
+ at end defun
+
+ at defun get_unit_vars (C, M, L)
+ Get the values of all state variables of unit @var{L}, returned as
+ floats in the order they are listed in @ref{Unit species} table.
+ at end defun
+
+ at defun reset_unit (C, M, L)
+ Reset all state variables of unit @var{L}.
+ at end defun
+
+ at defun get_units_matching (C, M, R)
+ Return all units with labels matching regex @var{R}.
+ at end defun
+
+ at defun get_units_of_type (C, M, sp)
+ Return all units of a species @var{sp}.
+ at end defun
+
+ at defun set_matching_neuron_parameter (C, M, R, P, V)
+ Set the value of parameter @var{P} to @var{V} in all neurons labelled
+ matching regex @var{R}.
+ at end defun
+
+ at defun set_matching_synapse_parameter (C, M, Rs, Rt, P, V)
+ Set the value of parameter @var{P} to @var{V} in all synapses
+ connecting, resp., any neurons labelled matching regexes @var{Rs} and
+ @var{Rt}.
+ at end defun
+
+ at defun revert_matching_unit_parameters (C, M, R)
+ Revert to defaults all parameters of units labelled matching regex
+ @var{R}.
+ at end defun
+
+ at defun decimate (C, M, R, frac)
+ Delete a random @var{frac} of all units matching regex @var{R}.
+ at end defun
+
+ at defun putout (C, M, R)
+ Delete all units matching regex @var{R}.
+ at end defun
+
+
+ at node External excitation sources
+ at chapter External excitation sources
+
+CNrun provides for three types of external stimulation sources:
+
+ at itemize @bullet
+ at item @emph{Tape},
+ with all possible values defined in sequence, with timestamps, in a
+ file, optionally looping.
+ at item @emph{Periodic},
+ with a sequence of values defined to occur at regular intervals within
+ a specified period.
+ at item @emph{Noise},
+ a continuous sampling from a uniform or gaussian distribution.
+ at end itemize
+
+ at defun new_tape_source (C, M, source_name, file_name, looping)
+ Set up a new tape source named @var{source_name}, from data in file
+ @var{file_name}.
+ at end defun
+
+ at defun new_periodic_source (C, M, source_name, file_name, looping, period)
+ Set up a new periodic source named @var{source_name}, from data in file
+ @var{file_name}, optionally @var{looping} over a @var{period} (stuck
+ at the last value, if not).
+ at end defun
+
+ at defun new_noise_source (C, M, source_name, min, max, sigma, distribution)
+ Set up a new noise source named @var{source_name}, of a given
+ @var{distribution} (possible values are @emph{"uniform"} and
+ @emph{"gaussian"}), with given @var{min}, @var{max}, and (for the
+ gaussian) @var{sigma}.
+ at end defun
+
+ at defun get_sources (C, M)
+ Get all sources created in the model, returning labels as strings.
+ at end defun
+
+ at defun connect_source (C, M, L, P, source_name)
+ Connect source @var{source_name} to parameter @var{P} of unit @var{L}.
+ at end defun
+
+ at defun disconnect_source (C, M, L, P, source_name)
+ Disconnect a previously connected source @var{source_name} from
+ parameter @var{P} of unit @var{L}.
+ at end defun
+
+
+ at node Sampling state variables
+ at chapter Sampling state variables
+
+In addition to direct access to unit state variables in Lua (see
+ at code{get_unit_parameter()}), there are two ways to record unit state
+for offline assessment:
+
+ at itemize @bullet
+
+ at item Have units write their state variable(s) to logs (created in the
+current directory with unit labels with a suffix ``.vars'' as names);
+
+ at item Have neurons record the times of spikes (written to files
+similarly named except with suffix ``.spikes'').
+
+ at end itemize
+
+ at defun start_listen (C, M, R)
+ Enable logging of state variables (with options as defined in model
+ parameter @var{listen_mode} @ref{Models}) in all units
+ labelled matching regex @var{R}. Return the count of units affected.
+ at end defun
+
+ at defun stop_listen (C, M, R)
+ Disable logging of state variables in all units labelled matching
+ regex @var{R}. Units writing logs will flush and close. Return
+ the count of units affected.
+ at end defun
+
+ at defun start_log_spikes (C, M, R)
+ Enable logging of spike times in all neurons labelled matching regex
+ @var{R}. Return the count of units affected.
+ at end defun
+
+ at defun stop_log_spikes (C, M, R)
+ Disable logging spikes in all units labelled matching regex @var{R}.
+ Return the count of units affected.
+ at end defun
+
+
+ at node Unit species
+ at chapter Unit species
+
+Given below are some unit species available for your models. For a
+complete list, with parameter standard values and descriptions, see the
+output of @code{dump_available_units()}.
+
+ at section Neuron species
+ at multitable @columnfractions .1 .25 .15 .5
+ at headitem Species @tab Parameters @tab State vars @tab Description
+
+ at item HH
+ at tab gNa, ENa, gK, EK, gl, El, Cmem, Idc
+ at tab E
+ at tab A classical, conductance-based Hodgkin-Huxley neuron
+
+ at item HHRate
+ at tab a, I0, r, Idc
+ at tab F
+ at tab Rate-based model of the Hodgkin-Huxley neuron
+
+ at item DotPoisson
+ at tab lambda, Vrst, Vfir
+ at tab E
+ at tab Duration-less spike Poisson oscillator
+
+ at item Poisson
+ at tab lambda, trel, trel+trfr, Vrst, Vfir
+ at tab E
+ at tab Poisson oscillator
+
+ at item VdPol
+ at tab eta, omegasq
+ at tab A
+ at tab Van der Pol oscillator
+
+ at item DotPulse
+ at tab f, Vrst, Vfir
+ at tab E
+ at tab Dot Pulse generator
+
+ at item NMap
+ at tab Vspike, alpha, gamma, beta, Idc
+ at tab E
+ at tab Map neuron
+
+ at end multitable
+
+ at section Synapse species
+
+In addition to parameters listed in the table, each synapse has a
+conductance (parameter @var{gsyn}).
+
+ at multitable @columnfractions .1 .25 .15 .5
+ at headitem Synapse @tab Parameters @tab State vars @tab Description
+
+ at item AB
+ at tab Esyn, Epre, alpha, beta, trel
+ at tab S
+ at tab An alpha-beta synapse (Destexhe, Mainen, Sejnowsky, 1994)
+
+ at item Rall
+ at tab Esyn, Epre, tau
+ at tab S, R
+ at tab Rall synapse (Rall, 1967)
+
+ at item Map
+ at tab tau, delta, Vrev
+ at tab S
+ at tab Map synapse
+
+ at end multitable
+
+
+
+ at node Planned features
+ at chapter Planned features
+
+Interconnections, both control as well as direct, asynchronous stimuli
+transduction, between external peer CNrun nodes.
+
+ at node Index
+ at unnumbered @code{CNrun Lua API} Function index
+
+ at printindex fn
+
+ at bye
diff --git a/upstream/libcnrun.pc.in b/upstream/libcnrun.pc.in
new file mode 100644
index 0000000..e3e9654
--- /dev/null
+++ b/upstream/libcnrun.pc.in
@@ -0,0 +1,12 @@
+prefix=@prefix@
+exec_prefix=@exec_prefix@
+libdir=@libdir@
+includedir=@includedir@
+
+Name: cnrun
+Description: CNRun Library
+Version: @PACKAGE_VERSION@
+Requires: gsl xml2
+Cflags: -I${includedir}
+Libs: -L${libdir} -lcnrun
+Libs.private: -lxml2 -lgsl
diff --git a/upstream/src/Makefile.am b/upstream/src/Makefile.am
index 43b80d4..8f66064 100644
--- a/upstream/src/Makefile.am
+++ b/upstream/src/Makefile.am
@@ -1,6 +1,6 @@
include $(top_srcdir)/src/Common.mk
-SUBDIRS = libstilton libcnrun libcnrun-lua
+SUBDIRS = libstilton libcnrun lua-cnrun
if DO_TOOLS
SUBDIRS += tools
endif
diff --git a/upstream/src/libcnrun-lua/Makefile.am b/upstream/src/libcnrun-lua/Makefile.am
deleted file mode 100644
index ad671c4..0000000
--- a/upstream/src/libcnrun-lua/Makefile.am
+++ /dev/null
@@ -1,15 +0,0 @@
-include $(top_srcdir)/src/Common.mk
-AM_CXXFLAGS += $(LUA_INCLUDE)
-
-lib_LTLIBRARIES := \
- libcnrun-lua.la
-libcnrun_lua_la_SOURCES := \
- commands.cc cnhost.hh
-libcnrun_lua_la_LIBADD := \
- ../libcnrun/libcnrun.la \
- ../libstilton/libstilton.la \
- $(LIBCN_LIBS) \
- $(LUA_LIB)
-libcnrun_lua_la_LDFLAGS := \
- -module -shared -avoid-version \ # -version-info $(subst .,:,$(PACKAGE_VERSION))
- -rpath $(libdir)/$(PACKAGE)
diff --git a/upstream/src/libcnrun/Makefile.am b/upstream/src/libcnrun/Makefile.am
index fe05c9a..d4a01bb 100644
--- a/upstream/src/libcnrun/Makefile.am
+++ b/upstream/src/libcnrun/Makefile.am
@@ -1,6 +1,8 @@
include $(top_srcdir)/src/Common.mk
+AM_CXXFLAGS += -shared -fPIC
-pkglib_LTLIBRARIES = libcnrun.la
+lib_LTLIBRARIES = \
+ libcnrun.la
libcnrun_la_SOURCES = \
forward-decls.hh \
@@ -24,7 +26,21 @@ libcnrun_la_SOURCES = \
model.hh \
integrate-base.hh integrate-rk65.hh
+libcnrun_la_LIBADD = \
+ ../libstilton/liba.a
+
libcnrun_la_LDFLAGS = \
- -avoid-version \
- -rpath $(libdir)/$(PACKAGE) \
- -shared -module
+ -shared -version-info $(subst .,:,$(PACKAGE_VERSION))
+
+libcnrunincdir = $(includedir)/libcnrun
+
+libcnruninc_HEADERS = \
+ forward-decls.hh \
+ sources.hh \
+ types.hh \
+ mx-attr.hh \
+ base-unit.hh standalone-attr.hh hosted-attr.hh \
+ base-synapse.hh standalone-neurons.hh hosted-neurons.hh \
+ base-neuron.hh standalone-synapses.hh hosted-synapses.hh \
+ model.hh \
+ integrate-base.hh integrate-rk65.hh
diff --git a/upstream/src/libcnrun/base-neuron.hh b/upstream/src/libcnrun/base-neuron.hh
index a13c634..e1ff426 100644
--- a/upstream/src/libcnrun/base-neuron.hh
+++ b/upstream/src/libcnrun/base-neuron.hh
@@ -227,7 +227,8 @@ struct SSpikeloggerService {
size_t n_spikes_since( double since = 0.) const;
// spike density function
- double sdf( double at, double sample_length, double sigma, size_t* nspikes = nullptr) const;
+ double sdf( double at, double sample_length, double sigma,
+ size_t* nspikes = nullptr) const;
// spike homogeneity function
double shf( double at, double sample_length) const;
diff --git a/upstream/src/libcnrun/hosted-neurons.cc b/upstream/src/libcnrun/hosted-neurons.cc
index ed082d2..acb7540 100644
--- a/upstream/src/libcnrun/hosted-neurons.cc
+++ b/upstream/src/libcnrun/hosted-neurons.cc
@@ -72,22 +72,22 @@ do_detect_spike_or_whatever()
// ===== HH and variations
-const char* const cnrun::__CN_ParamNames_NeuronHH_d[] = {
- "Na conductance, " __CN_PU_CONDUCTANCE,
- "Na equi potential, " __CN_PU_POTENTIAL,
- "K conductance, " __CN_PU_CONDUCTANCE,
- "K equi potential, " __CN_PU_POTENTIAL,
- "Leak conductance, " __CN_PU_CONDUCTANCE,
- "Leak equi potential, " __CN_PU_POTENTIAL,
- "Membrane specific capacitance, " __CN_PU_CAPACITY_DENSITY,
+const char* const cnrun::CN_ParamNames_NeuronHH_d[] = {
+ "Na conductance, " CN_PU_CONDUCTANCE,
+ "Na equi potential, " CN_PU_POTENTIAL,
+ "K conductance, " CN_PU_CONDUCTANCE,
+ "K equi potential, " CN_PU_POTENTIAL,
+ "Leak conductance, " CN_PU_CONDUCTANCE,
+ "Leak equi potential, " CN_PU_POTENTIAL,
+ "Membrane specific capacitance, " CN_PU_CAPACITY_DENSITY,
".alpha_m_a", ".alpha_m_b", ".alpha_m_c", ".beta_m_a", ".beta_m_b", ".beta_m_c",
".alpha_h_a", ".alpha_h_b", ".alpha_h_c", ".beta_h_a", ".beta_h_b", ".beta_h_c",
".alpha_n_a", ".alpha_n_b", ".alpha_n_c", ".beta_n_a", ".beta_n_b", ".beta_n_c",
- "Externally applied DC, " __CN_PU_CURRENT,
+ "Externally applied DC, " CN_PU_CURRENT,
};
-const char* const cnrun::__CN_ParamSyms_NeuronHH_d[] = {
+const char* const cnrun::CN_ParamSyms_NeuronHH_d[] = {
"gNa",
"ENa",
"gK",
@@ -102,7 +102,7 @@ const char* const cnrun::__CN_ParamSyms_NeuronHH_d[] = {
"Idc",
};
-const double cnrun::__CN_Params_NeuronHH_d[] = {
+const double cnrun::CN_Params_NeuronHH_d[] = {
7.15, // gNa: Na conductance in 1/(mOhms * cm^2)
50.0, // ENa: Na equi potential in mV
1.430, // gK: K conductance in 1/(mOhms * cm^2)
@@ -124,20 +124,20 @@ const double cnrun::__CN_Params_NeuronHH_d[] = {
-const double cnrun::__CN_Vars_NeuronHH_d[] = {
+const double cnrun::CN_Vars_NeuronHH_d[] = {
-66.81, // 0 - membrane potential E
0.023, // 1 - prob. for Na channel activation m
0.800, // 2 - prob. for not Na channel blocking h
0.220, // 3 - prob. for K channel activation n
};
-const char* const cnrun::__CN_VarNames_NeuronHH_d[] = {
- "Membrane potential, " __CN_PU_POTENTIAL,
+const char* const cnrun::CN_VarNames_NeuronHH_d[] = {
+ "Membrane potential, " CN_PU_POTENTIAL,
"Prob. of Na channel activation",
"1-Prob. of Na channel blocking",
"Prob. of K channel activation",
};
-const char* const cnrun::__CN_VarSyms_NeuronHH_d[] = {
+const char* const cnrun::CN_VarSyms_NeuronHH_d[] = {
"E",
".m",
".h",
@@ -228,26 +228,26 @@ derivative( vector<double>& x, vector<double>& dx)
-const char* const cnrun::__CN_ParamNames_NeuronHH2_d[] = {
- "Na conductance, " __CN_PU_CONDUCTANCE,
- "Na equi potential, " __CN_PU_POTENTIAL,
- "K conductance, " __CN_PU_CONDUCTANCE,
- "K equi potential, " __CN_PU_POTENTIAL,
- "Leak conductance, " __CN_PU_CONDUCTANCE,
- "Leak equi potential, " __CN_PU_POTENTIAL,
- "Membrane specific capacitance, " __CN_PU_CAPACITY_DENSITY,
- "K leakage conductance, " __CN_PU_CONDUCTANCE,
- "K leakage equi potential, " __CN_PU_POTENTIAL,
+const char* const cnrun::CN_ParamNames_NeuronHH2_d[] = {
+ "Na conductance, " CN_PU_CONDUCTANCE,
+ "Na equi potential, " CN_PU_POTENTIAL,
+ "K conductance, " CN_PU_CONDUCTANCE,
+ "K equi potential, " CN_PU_POTENTIAL,
+ "Leak conductance, " CN_PU_CONDUCTANCE,
+ "Leak equi potential, " CN_PU_POTENTIAL,
+ "Membrane specific capacitance, " CN_PU_CAPACITY_DENSITY,
+ "K leakage conductance, " CN_PU_CONDUCTANCE,
+ "K leakage equi potential, " CN_PU_POTENTIAL,
".alpha_m_a", ".alpha_m_b", ".alpha_m_c", ".beta_m_a", ".beta_m_b", ".beta_m_c",
".alpha_h_a", ".alpha_h_b", ".alpha_h_c", ".beta_h_a", ".beta_h_b", ".beta_h_c",
".alpha_n_a", ".alpha_n_b", ".alpha_n_c", ".beta_n_a", ".beta_n_b", ".beta_n_c",
-// "Total equi potential (?), " __CN_PU_POTENTIAL,
+// "Total equi potential (?), " CN_PU_POTENTIAL,
- "Externally applied DC, " __CN_PU_CURRENT,
+ "Externally applied DC, " CN_PU_CURRENT,
};
-const char* const cnrun::__CN_ParamSyms_NeuronHH2_d[] = {
+const char* const cnrun::CN_ParamSyms_NeuronHH2_d[] = {
"gNa",
"ENa",
"gK",
@@ -266,7 +266,7 @@ const char* const cnrun::__CN_ParamSyms_NeuronHH2_d[] = {
"Idc",
};
-const double cnrun::__CN_Params_NeuronHH2_d[] = {
+const double cnrun::CN_Params_NeuronHH2_d[] = {
7.15, // gNa: Na conductance in 1/(mOhms * cm^2)
50.0, // ENa: Na equi potential in mV
1.43, // gK: K conductance in 1/(mOhms * cm^2)
@@ -290,7 +290,7 @@ const double cnrun::__CN_Params_NeuronHH2_d[] = {
};
-const double cnrun::__CN_Vars_NeuronHH2_d[] = {
+const double cnrun::CN_Vars_NeuronHH2_d[] = {
// as in a single-neuron run
-66.56, // 0 - membrane potential E
0.0217, // 1 - prob. for Na channel activation m
@@ -374,23 +374,23 @@ derivative( vector<double>& x, vector<double>& dx)
//#ifdef CN_WANT_MORE_NEURONS
-const char* const cnrun::__CN_ParamNames_NeuronEC_d[] = {
- "Na conductance, " __CN_PU_CONDUCTANCE,
- "Na equi potential, " __CN_PU_POTENTIAL,
- "K conductance, " __CN_PU_CONDUCTANCE,
- "K equi potential, " __CN_PU_POTENTIAL,
- "Leak conductance, " __CN_PU_CONDUCTANCE,
- "Leak equi potential, " __CN_PU_POTENTIAL,
- "Membrane capacity density, " __CN_PU_CAPACITY_DENSITY,
- "Externally applied DC, " __CN_PU_CURRENT,
- "K leakage conductance, " __CN_PU_CONDUCTANCE,
- "K leakage equi potential, " __CN_PU_POTENTIAL,
- "Total equi potential, " __CN_PU_POTENTIAL,
+const char* const cnrun::CN_ParamNames_NeuronEC_d[] = {
+ "Na conductance, " CN_PU_CONDUCTANCE,
+ "Na equi potential, " CN_PU_POTENTIAL,
+ "K conductance, " CN_PU_CONDUCTANCE,
+ "K equi potential, " CN_PU_POTENTIAL,
+ "Leak conductance, " CN_PU_CONDUCTANCE,
+ "Leak equi potential, " CN_PU_POTENTIAL,
+ "Membrane capacity density, " CN_PU_CAPACITY_DENSITY,
+ "Externally applied DC, " CN_PU_CURRENT,
+ "K leakage conductance, " CN_PU_CONDUCTANCE,
+ "K leakage equi potential, " CN_PU_POTENTIAL,
+ "Total equi potential, " CN_PU_POTENTIAL,
"gh1",
"gh2",
- "Vh, " __CN_PU_POTENTIAL
+ "Vh, " CN_PU_POTENTIAL
};
-const char* const cnrun::__CN_ParamSyms_NeuronEC_d[] = {
+const char* const cnrun::CN_ParamSyms_NeuronEC_d[] = {
"gNa",
"ENa",
"gK",
@@ -406,7 +406,7 @@ const char* const cnrun::__CN_ParamSyms_NeuronEC_d[] = {
"gh2",
"Vh"
};
-const double cnrun::__CN_Params_NeuronEC_d[] = {
+const double cnrun::CN_Params_NeuronEC_d[] = {
7.15, // 0 - gNa: Na conductance in 1/(mOhms * cm^2)
50.0, // 1 - ENa: Na equi potential in mV
1.43, // 2 - gK: K conductance in 1/(mOhms * cm^2)
@@ -423,7 +423,7 @@ const double cnrun::__CN_Params_NeuronEC_d[] = {
-20.0, // 13 - Vh
};
-const char* const cnrun::__CN_VarNames_NeuronEC_d[] = {
+const char* const cnrun::CN_VarNames_NeuronEC_d[] = {
"Membrane potential",
"Prob. of Na channel activation",
"Prob. of not Na channel blocking",
@@ -431,7 +431,7 @@ const char* const cnrun::__CN_VarNames_NeuronEC_d[] = {
"Ih1 activation",
"Ih2 activation"
};
-const char* const cnrun::__CN_VarSyms_NeuronEC_d[] = {
+const char* const cnrun::CN_VarSyms_NeuronEC_d[] = {
"E",
".m",
".h",
@@ -439,7 +439,7 @@ const char* const cnrun::__CN_VarSyms_NeuronEC_d[] = {
".Ih1",
".Ih2"
};
-const double cnrun::__CN_Vars_NeuronEC_d[] = {
+const double cnrun::CN_Vars_NeuronEC_d[] = {
-64.1251, // 0 - membrane potential E
0.0176331, // 1 - prob. for Na channel activation m
0.994931, // 2 - prob. for not Na channel blocking h
@@ -510,20 +510,20 @@ derivative( vector<double>& x, vector<double>& dx)
-const char* const cnrun::__CN_ParamNames_NeuronECA_d[] = {
- "Na conductance, " __CN_PU_CONDUCTANCE,
- "Na equi potential, " __CN_PU_POTENTIAL,
- "K conductance, " __CN_PU_CONDUCTANCE,
- "K equi potential, " __CN_PU_POTENTIAL,
- "Leak conductance, " __CN_PU_CONDUCTANCE,
- "Leak equi potential, " __CN_PU_POTENTIAL,
- "Membrane capacity density, " __CN_PU_CAPACITY_DENSITY,
- "Externally applied DC, " __CN_PU_CURRENT,
+const char* const cnrun::CN_ParamNames_NeuronECA_d[] = {
+ "Na conductance, " CN_PU_CONDUCTANCE,
+ "Na equi potential, " CN_PU_POTENTIAL,
+ "K conductance, " CN_PU_CONDUCTANCE,
+ "K equi potential, " CN_PU_POTENTIAL,
+ "Leak conductance, " CN_PU_CONDUCTANCE,
+ "Leak equi potential, " CN_PU_POTENTIAL,
+ "Membrane capacity density, " CN_PU_CAPACITY_DENSITY,
+ "Externally applied DC, " CN_PU_CURRENT,
"gNap",
"gh",
"Vh",
};
-const char* const cnrun::__CN_ParamSyms_NeuronECA_d[] = {
+const char* const cnrun::CN_ParamSyms_NeuronECA_d[] = {
"gNa",
"ENa",
"gK",
@@ -536,7 +536,7 @@ const char* const cnrun::__CN_ParamSyms_NeuronECA_d[] = {
"gh",
"Vh",
};
-const double cnrun::__CN_Params_NeuronECA_d[] = {
+const double cnrun::CN_Params_NeuronECA_d[] = {
52.0, // 0 - Na conductance in 1/(mOhms * cm^2)
55.0, // 1 - Na equi potential in mV
11.0, // 2 - K conductance in 1/(mOhms * cm^2)
@@ -550,7 +550,7 @@ const double cnrun::__CN_Params_NeuronECA_d[] = {
-20.0, // 10 - Vh
};
-const char* const cnrun::__CN_VarNames_NeuronECA_d[] = {
+const char* const cnrun::CN_VarNames_NeuronECA_d[] = {
"Membrane potential",
"Prob. of Na channel activation",
"Prob. of Na channel blocking",
@@ -559,7 +559,7 @@ const char* const cnrun::__CN_VarNames_NeuronECA_d[] = {
"Ih1 activation",
"Ih2 activation"
};
-const char* const cnrun::__CN_VarSyms_NeuronECA_d[] = {
+const char* const cnrun::CN_VarSyms_NeuronECA_d[] = {
"E",
".m",
".h",
@@ -568,7 +568,7 @@ const char* const cnrun::__CN_VarSyms_NeuronECA_d[] = {
".Ih1",
".Ih2"
};
-const double cnrun::__CN_Vars_NeuronECA_d[] = {
+const double cnrun::CN_Vars_NeuronECA_d[] = {
-53.77902178, // E
0.0262406368, // prob. for Na channel activation m
0.9461831106, // prob. for not Na channel blocking h
@@ -632,19 +632,19 @@ derivative( vector<double>& x, vector<double>& dx)
// =========== oscillators
-const char* const cnrun::__CN_ParamNames_OscillatorColpitts[] = {
+const char* const cnrun::CN_ParamNames_OscillatorColpitts[] = {
"a",
"g",
"q",
- "\316\267"
+ "η"
};
-const char* const cnrun::__CN_ParamSyms_OscillatorColpitts[] = {
+const char* const cnrun::CN_ParamSyms_OscillatorColpitts[] = {
"a",
"g",
"q",
"eta"
};
-const double cnrun::__CN_Params_OscillatorColpitts[] = {
+const double cnrun::CN_Params_OscillatorColpitts[] = {
1.0, // a
0.0797, // g
0.6898, // q
@@ -652,17 +652,17 @@ const double cnrun::__CN_Params_OscillatorColpitts[] = {
};
-const char* const cnrun::__CN_VarNames_OscillatorColpitts[] = {
+const char* const cnrun::CN_VarNames_OscillatorColpitts[] = {
"x0",
"x1",
"x2"
};
-const char* const cnrun::__CN_VarSyms_OscillatorColpitts[] = {
+const char* const cnrun::CN_VarSyms_OscillatorColpitts[] = {
"x0",
"x1",
"x2"
};
-const double cnrun::__CN_Vars_OscillatorColpitts[] = {
+const double cnrun::CN_Vars_OscillatorColpitts[] = {
0.02,
0.69,
-0.53
@@ -693,26 +693,26 @@ derivative( vector<double>& x, vector<double>& dx)
/*
-const char* const __CN_ParamNames_OscillatorLV[] = {
+const char* const CN_ParamNames_OscillatorLV[] = {
"Self inhibition",
};
-const char* const __CN_ParamSyms_OscillatorLV[] = {
+const char* const CN_ParamSyms_OscillatorLV[] = {
"rho_ii",
};
-const double __CN_Params_OscillatorLV[] = {
+const double CN_Params_OscillatorLV[] = {
1.0, // 0 - rho_ii: "self inhibition"
};
-const char* const __CN_VarNames_OscillatorLV[] = {
- "Membrane potential, " __CN_PU_POTENTIAL,
+const char* const CN_VarNames_OscillatorLV[] = {
+ "Membrane potential, " CN_PU_POTENTIAL,
"Firing rate"
};
-const char* const __CN_VarSyms_OscillatorLV[] = {
+const char* const CN_VarSyms_OscillatorLV[] = {
"E",
"fr"
};
-const double __CN_Vars_OscillatorLV[] = {
+const double CN_Vars_OscillatorLV[] = {
0., // 0 - added a place for E
0.1 // 1 - firing rate
};
@@ -726,31 +726,31 @@ const double __CN_Vars_OscillatorLV[] = {
-const char* const cnrun::__CN_ParamNames_OscillatorVdPol[] = {
- "\316\267",
- "\317\211\302\262",
+const char* const cnrun::CN_ParamNames_OscillatorVdPol[] = {
+ "η",
+ "ω²",
// "\317\203"
};
-const char* const cnrun::__CN_ParamSyms_OscillatorVdPol[] = {
+const char* const cnrun::CN_ParamSyms_OscillatorVdPol[] = {
"eta",
"omegasq", // omega^2
// "sigma"
};
-const double cnrun::__CN_Params_OscillatorVdPol[] = {
+const double cnrun::CN_Params_OscillatorVdPol[] = {
1.0, // eta
0.1, // omega^2
// 0.0 // noise level
};
-const char* const cnrun::__CN_VarNames_OscillatorVdPol[] = {
+const char* const cnrun::CN_VarNames_OscillatorVdPol[] = {
"Amplitude",
"v"
};
-const char* const cnrun::__CN_VarSyms_OscillatorVdPol[] = {
+const char* const cnrun::CN_VarSyms_OscillatorVdPol[] = {
"A",
"v"
};
-const double cnrun::__CN_Vars_OscillatorVdPol[] = {
+const double cnrun::CN_Vars_OscillatorVdPol[] = {
0.1, // amplitude
0.0 // internal var
};
diff --git a/upstream/src/libcnrun/hosted-synapses.cc b/upstream/src/libcnrun/hosted-synapses.cc
index 6aed7c8..8a57542 100644
--- a/upstream/src/libcnrun/hosted-synapses.cc
+++ b/upstream/src/libcnrun/hosted-synapses.cc
@@ -46,16 +46,16 @@ C_HostedSynapse (const TUnitType type_,
// -- parameters
-const char* const cnrun::__CN_ParamNames_SynapseAB_dd[] = {
-// "Synaptic strength g, " __CN_PU_CONDUCTANCE,
- "Reversal potential Esyn, " __CN_PU_POTENTIAL,
- "Presyn threshold potential Epre, " __CN_PU_POTENTIAL,
- "Rise rate \316\261, " __CN_PU_RATE,
- "Decay rate \316\262, " __CN_PU_RATE,
- "Time of transmitter release, " __CN_PU_TIME,
+const char* const cnrun::CN_ParamNames_SynapseAB_dd[] = {
+// "Synaptic strength g, " CN_PU_CONDUCTANCE,
+ "Reversal potential Esyn, " CN_PU_POTENTIAL,
+ "Presyn threshold potential Epre, " CN_PU_POTENTIAL,
+ "Rise rate α, " CN_PU_RATE,
+ "Decay rate β, " CN_PU_RATE,
+ "Time of transmitter release, " CN_PU_TIME,
// "Noise level \317\203",
};
-const char* const cnrun::__CN_ParamSyms_SynapseAB_dd[] = {
+const char* const cnrun::CN_ParamSyms_SynapseAB_dd[] = {
// "gsyn",
"Esyn",
"Epre",
@@ -65,7 +65,7 @@ const char* const cnrun::__CN_ParamSyms_SynapseAB_dd[] = {
// "sigma",
};
-const double cnrun::__CN_Params_SynapseAB_dd[] = {
+const double cnrun::CN_Params_SynapseAB_dd[] = {
// 0.12,
0,
-20,
@@ -75,7 +75,7 @@ const double cnrun::__CN_Params_SynapseAB_dd[] = {
// 0.
};
-const double cnrun::__CN_Params_SynapseABMinus_dd[] = {
+const double cnrun::CN_Params_SynapseABMinus_dd[] = {
// 0.12,
0,
-20,
@@ -85,7 +85,7 @@ const double cnrun::__CN_Params_SynapseABMinus_dd[] = {
// 0.
};
-const double cnrun::__CN_Params_SynapseMxAB_dd[] = {
+const double cnrun::CN_Params_SynapseMxAB_dd[] = {
// 0.12,
0,
-20,
@@ -97,16 +97,16 @@ const double cnrun::__CN_Params_SynapseMxAB_dd[] = {
};
-const char* const cnrun::__CN_ParamNames_SynapseAB_dr[] = {
-// "Synaptic strength g, " __CN_PU_CONDUCTANCE,
- "Assumed (target->E - Esyn), " __CN_PU_POTENTIAL,
- "Presyn threshold potential Epre, " __CN_PU_POTENTIAL,
- "Rise rate \316\261, " __CN_PU_RATE,
- "Decay rate \316\262, " __CN_PU_RATE,
- "Time of transmitter release, " __CN_PU_TIME,
+const char* const cnrun::CN_ParamNames_SynapseAB_dr[] = {
+// "Synaptic strength g, " CN_PU_CONDUCTANCE,
+ "Assumed (target->E - Esyn), " CN_PU_POTENTIAL,
+ "Presyn threshold potential Epre, " CN_PU_POTENTIAL,
+ "Rise rate α, " CN_PU_RATE,
+ "Decay rate β, " CN_PU_RATE,
+ "Time of transmitter release, " CN_PU_TIME,
// "Noise level \317\203",
};
-const char* const cnrun::__CN_ParamSyms_SynapseAB_dr[] = {
+const char* const cnrun::CN_ParamSyms_SynapseAB_dr[] = {
// "gsyn",
"Ediff",
"Epre",
@@ -117,7 +117,7 @@ const char* const cnrun::__CN_ParamSyms_SynapseAB_dr[] = {
};
-const double cnrun::__CN_Params_SynapseMxAB_dr[] = {
+const double cnrun::CN_Params_SynapseMxAB_dr[] = {
// 0.12,
-60 - 0, // Ediff: a reasonable Esyn - target->E, the latter being -60 mV at rest
-20,
@@ -133,15 +133,15 @@ const double cnrun::__CN_Params_SynapseMxAB_dr[] = {
-const char* const cnrun::__CN_ParamNames_SynapseAB_rr[] = {
-// "Synaptic strength g, " __CN_PU_CONDUCTANCE,
- "Assumed (target->E - Esyn), " __CN_PU_VOLTAGE,
- "Rise rate \316\261, " __CN_PU_RATE,
- "Decay rate \316\262, " __CN_PU_RATE,
- "Refractory period T, " __CN_PU_TIME,
+const char* const cnrun::CN_ParamNames_SynapseAB_rr[] = {
+// "Synaptic strength g, " CN_PU_CONDUCTANCE,
+ "Assumed (target->E - Esyn), " CN_PU_VOLTAGE,
+ "Rise rate α, " CN_PU_RATE,
+ "Decay rate β, " CN_PU_RATE,
+ "Refractory period T, " CN_PU_TIME,
// "Noise level \317\203",
};
-const char* const cnrun::__CN_ParamSyms_SynapseAB_rr[] = {
+const char* const cnrun::CN_ParamSyms_SynapseAB_rr[] = {
// "gsyn",
"Ediff",
"alpha",
@@ -149,7 +149,7 @@ const char* const cnrun::__CN_ParamSyms_SynapseAB_rr[] = {
"T",
// "sigma",
};
-const double cnrun::__CN_Params_SynapseAB_rr[] = {
+const double cnrun::CN_Params_SynapseAB_rr[] = {
// 0.12,
-60 - 0,
0.27785150819749,
@@ -160,21 +160,21 @@ const double cnrun::__CN_Params_SynapseAB_rr[] = {
-const char* const cnrun::__CN_ParamNames_SynapseRall_dd[] = {
-// "Synaptic strength g, " __CN_PU_CONDUCTANCE,
- "Reversal potential, " __CN_PU_POTENTIAL,
- "Presynaptic threshold potential, " __CN_PU_POTENTIAL,
- "\317\204, " __CN_PU_RATE,
+const char* const cnrun::CN_ParamNames_SynapseRall_dd[] = {
+// "Synaptic strength g, " CN_PU_CONDUCTANCE,
+ "Reversal potential, " CN_PU_POTENTIAL,
+ "Presynaptic threshold potential, " CN_PU_POTENTIAL,
+ "τ, " CN_PU_RATE,
// "Noise level \317\203",
};
-const char* const cnrun::__CN_ParamSyms_SynapseRall_dd[] = {
+const char* const cnrun::CN_ParamSyms_SynapseRall_dd[] = {
// "gsyn",
"Esyn",
"Epre",
"tau",
// "sigma",
};
-const double cnrun::__CN_Params_SynapseRall_dd[] = {
+const double cnrun::CN_Params_SynapseRall_dd[] = {
// 0.12,
0,
-20,
@@ -187,26 +187,26 @@ const double cnrun::__CN_Params_SynapseRall_dd[] = {
// -- variables
-const char* const cnrun::__CN_VarNames_SynapseAB[] = {
+const char* const cnrun::CN_VarNames_SynapseAB[] = {
"Amount of neurotransmitter released S"
};
-const char* const cnrun::__CN_VarSyms_SynapseAB[] = {
+const char* const cnrun::CN_VarSyms_SynapseAB[] = {
"S"
};
-const double cnrun::__CN_Vars_SynapseAB[] = {
+const double cnrun::CN_Vars_SynapseAB[] = {
0.
};
-const char* const cnrun::__CN_VarNames_SynapseRall[] = {
+const char* const cnrun::CN_VarNames_SynapseRall[] = {
"Amount of neurotransmitter released S",
"Amount of neurotransmitter absorbed R",
};
-const char* const cnrun::__CN_VarSyms_SynapseRall[] = {
+const char* const cnrun::CN_VarSyms_SynapseRall[] = {
"S",
"R",
};
-const double cnrun::__CN_Vars_SynapseRall[] = {
+const double cnrun::CN_Vars_SynapseRall[] = {
0.,
0.
};
@@ -274,7 +274,7 @@ derivative( vector<double>& x, vector<double>& dx)
// decrement q then, just for this while
while ( effective_q && M->model_time(x) - _kq[q()-effective_q] > P[_rtime_] )
--effective_q;
-#ifdef __CN_MORECODE__
+#ifdef CN_MORECODE__
if ( effective_q < q() )
M->vp( 6, "YMxAB %s smacks %zu spike(s) of %zu at %g(+%g)\n", label,
(size_t)q() - effective_q, (size_t)q(),
@@ -305,7 +305,6 @@ update_queue()
_kq.erase( _kq.begin());
else
break;
-// cout << "q--\n";
}
}
diff --git a/upstream/src/libcnrun/model-struct.cc b/upstream/src/libcnrun/model-struct.cc
index e74e8c2..e747583 100644
--- a/upstream/src/libcnrun/model-struct.cc
+++ b/upstream/src/libcnrun/model-struct.cc
@@ -996,15 +996,15 @@ dump_units( FILE *strm) const
U->species(), U->type_description());
for ( p = 0; p < U->p_no(); ++p )
if ( *U->param_sym(p) != '.' || options.verbosely > 5 )
- fprintf( strm, "%2d: %-5s\t= %s %s\n",
- p, U->param_sym(p),
+ fprintf( strm, " %-12s %s %s\n",
+ U->param_sym(p),
double_dot_aligned_s( U->param_value(p), 4, 6).c_str(),
U->param_name(p));
fprintf( strm, "Variables: ---\n");
for ( p = 0; p < U->v_no(); ++p )
if ( *U->var_sym(p) != '.' || options.verbosely > 5 )
- fprintf( strm, "%2d: %-5s\t= %s %s\n",
- p, U->var_sym(p),
+ fprintf( strm, "%-12s\t= %s %s\n",
+ U->var_sym(p),
double_dot_aligned_s( U->var_value(p), 4, 6).c_str(),
U->var_name(p));
}
@@ -1018,15 +1018,15 @@ dump_units( FILE *strm) const
fprintf( strm, " parameters:\n");
for ( p = 0; p < U->p_no(); ++p )
if ( *U->param_sym(p) != '.' || options.verbosely > 5 )
- fprintf( strm, "%2d: %-5s\t= %s %s\n",
- p, U->param_sym(p),
+ fprintf( strm, "%-12s\t= %s %s\n",
+ U->param_sym(p),
double_dot_aligned_s( U->param_value(p), 4, 6).c_str(),
U->param_name(p));
fprintf( strm, "Variables: ---\n");
for ( p = 0; p < U->v_no(); ++p )
if ( *U->var_sym(p) != '.' || options.verbosely > 5 )
- fprintf( strm, "%2d: %-5s\t= %s %s\n",
- p, U->var_sym(p),
+ fprintf( strm, "%-12s\t= %s %s\n",
+ U->var_sym(p),
double_dot_aligned_s( U->var_value(p), 4, 6).c_str(),
U->var_name(p));
diff --git a/upstream/src/libcnrun/standalone-neurons.cc b/upstream/src/libcnrun/standalone-neurons.cc
index 332419a..ef9ac54 100644
--- a/upstream/src/libcnrun/standalone-neurons.cc
+++ b/upstream/src/libcnrun/standalone-neurons.cc
@@ -42,33 +42,33 @@ C_StandaloneNeuron (TUnitType type_, const string& label_,
// --------- Rhythm'n'Blues
-const char* const cnrun::__CN_ParamNames_NeuronHH_r[] = {
- "a, " __CN_PU_FREQUENCY,
- "I\342\202\200, " __CN_PU_CURRENT,
- "r in F(I) = a (I-I\342\202\200)^r",
- "Externally applied DC, " __CN_PU_CURRENT,
+const char* const cnrun::CN_ParamNames_NeuronHH_r[] = {
+ "a, " CN_PU_FREQUENCY,
+ "I₀, " CN_PU_CURRENT,
+ "r in F(I) = a (I-I₀)^r",
+ "Externally applied DC, " CN_PU_CURRENT,
};
-const char* const cnrun::__CN_ParamSyms_NeuronHH_r[] = {
+const char* const cnrun::CN_ParamSyms_NeuronHH_r[] = {
"a",
"I0",
"r",
"Idc",
};
-const double cnrun::__CN_Params_NeuronHH_r[] = {
- 0.185, // a,
- 0.0439, // I0,
- 0.564, // r in F(I) = a * (I-I0)^r
+const double cnrun::CN_Params_NeuronHH_r[] = {
+ 0.185, // a,
+ 0.0439, // I0,
+ 0.564, // r in F(I) = a * (I-I0)^r
0. // Externally applied DC
};
-const char* const cnrun::__CN_VarNames_NeuronHH_r[] = {
- "Spiking rate, " __CN_PU_FREQUENCY,
+const char* const cnrun::CN_VarNames_NeuronHH_r[] = {
+ "Spiking rate, " CN_PU_FREQUENCY,
};
-const char* const cnrun::__CN_VarSyms_NeuronHH_r[] = {
+const char* const cnrun::CN_VarSyms_NeuronHH_r[] = {
"F",
};
-const double cnrun::__CN_Vars_NeuronHH_r[] = {
+const double cnrun::CN_Vars_NeuronHH_r[] = {
0. // frequency F
};
@@ -106,33 +106,33 @@ preadvance()
-const char* const cnrun::__CN_ParamNames_OscillatorPoissonDot[] = {
- "Rate \316\273, " __CN_PU_RATE,
- "Resting potential, " __CN_PU_POTENTIAL,
- "Potential when firing, " __CN_PU_POTENTIAL,
+const char* const cnrun::CN_ParamNames_OscillatorPoissonDot[] = {
+ "Rate λ, " CN_PU_RATE,
+ "Resting potential, " CN_PU_POTENTIAL,
+ "Potential when firing, " CN_PU_POTENTIAL,
};
-const char* const cnrun::__CN_ParamSyms_OscillatorPoissonDot[] = {
+const char* const cnrun::CN_ParamSyms_OscillatorPoissonDot[] = {
"lambda",
"Vrst",
"Vfir",
};
-const double cnrun::__CN_Params_OscillatorPoissonDot[] = {
+const double cnrun::CN_Params_OscillatorPoissonDot[] = {
0.02, // firing rate Lambda [1/ms]=[10^3 Hz]
-60.0, // input neuron resting potential
20.0, // input neuron potential when firing
};
-const char* const cnrun::__CN_VarNames_OscillatorPoissonDot[] = {
- "Membrane potential, " __CN_PU_POTENTIAL,
+const char* const cnrun::CN_VarNames_OscillatorPoissonDot[] = {
+ "Membrane potential, " CN_PU_POTENTIAL,
"Spikes recently fired",
// "Time"
};
-const char* const cnrun::__CN_VarSyms_OscillatorPoissonDot[] = {
+const char* const cnrun::CN_VarSyms_OscillatorPoissonDot[] = {
"E",
"nspk",
// "t"
};
-const double cnrun::__CN_Vars_OscillatorPoissonDot[] = {
+const double cnrun::CN_Vars_OscillatorPoissonDot[] = {
-60., // = Vrst, per initialization code found in ctor
0,
// 0.
@@ -214,21 +214,21 @@ do_detect_spike_or_whatever()
-const char* const cnrun::__CN_ParamNames_OscillatorPoisson[] = {
- "Rate \316\273, " __CN_PU_RATE,
- "Input neuron resting potential, " __CN_PU_POTENTIAL,
- "Input neuron potential when firing, " __CN_PU_POTENTIAL,
- "Spike time, " __CN_PU_TIME,
- "Spike time + refractory period, " __CN_PU_TIME,
+const char* const cnrun::CN_ParamNames_OscillatorPoisson[] = {
+ "Rate λ, " CN_PU_RATE,
+ "Input neuron resting potential, " CN_PU_POTENTIAL,
+ "Input neuron potential when firing, " CN_PU_POTENTIAL,
+ "Spike time, " CN_PU_TIME,
+ "Spike time + refractory period, " CN_PU_TIME,
};
-const char* const cnrun::__CN_ParamSyms_OscillatorPoisson[] = {
+const char* const cnrun::CN_ParamSyms_OscillatorPoisson[] = {
"lambda",
"trel",
"trel+trfr",
"Vrst",
"Vfir",
};
-const double cnrun::__CN_Params_OscillatorPoisson[] = {
+const double cnrun::CN_Params_OscillatorPoisson[] = {
0.02, // firing rate Lambda [1/ms]=[10^3 Hz]
0.0, // spike time
0.0, // refractory period + spike time
@@ -236,13 +236,13 @@ const double cnrun::__CN_Params_OscillatorPoisson[] = {
20.0, // input neuron potential when firing
};
-const char* const cnrun::__CN_VarNames_OscillatorPoisson[] = {
- "Membrane potential E, " __CN_PU_POTENTIAL,
+const char* const cnrun::CN_VarNames_OscillatorPoisson[] = {
+ "Membrane potential E, " CN_PU_POTENTIAL,
};
-const char* const cnrun::__CN_VarSyms_OscillatorPoisson[] = {
+const char* const cnrun::CN_VarSyms_OscillatorPoisson[] = {
"E",
};
-const double cnrun::__CN_Vars_OscillatorPoisson[] = {
+const double cnrun::CN_Vars_OscillatorPoisson[] = {
-60.,
};
@@ -299,7 +299,7 @@ do_detect_spike_or_whatever()
// Map neurons require descrete time
-const double cnrun::__CN_Params_NeuronMap[] = {
+const double cnrun::CN_Params_NeuronMap[] = {
60.0, // 0 - Vspike: spike Amplitude factor
3.0002440, // 1 - alpha: "steepness / size" parameter
-2.4663490, // 3 - gamma: "shift / excitation" parameter
@@ -307,14 +307,14 @@ const double cnrun::__CN_Params_NeuronMap[] = {
0.,
// Old comment by TN: beta chosen such that Isyn= 10 "nA" is the threshold for spiking
};
-const char* const cnrun::__CN_ParamNames_NeuronMap[] = {
- "Spike amplitude factor, " __CN_PU_POTENTIAL,
- "\"Steepness / size\" parameter \316\261",
- "\"Shift / excitation\" parameter \316\263",
- "Input sensitivity \316\262, " __CN_PU_RESISTANCE,
- "External DC, " __CN_PU_CURRENT,
+const char* const cnrun::CN_ParamNames_NeuronMap[] = {
+ "Spike amplitude factor, " CN_PU_POTENTIAL,
+ "\"Steepness / size\" parameter α",
+ "\"Shift / excitation\" parameter γ",
+ "Input sensitivity β, " CN_PU_RESISTANCE,
+ "External DC, " CN_PU_CURRENT,
};
-const char* const cnrun::__CN_ParamSyms_NeuronMap[] = {
+const char* const cnrun::CN_ParamSyms_NeuronMap[] = {
"Vspike",
"alpha",
"gamma",
@@ -322,13 +322,13 @@ const char* const cnrun::__CN_ParamSyms_NeuronMap[] = {
"Idc"
};
-const double cnrun::__CN_Vars_NeuronMap[] = {
+const double cnrun::CN_Vars_NeuronMap[] = {
-50, // E
};
-const char* const cnrun::__CN_VarNames_NeuronMap[] = {
- "Membrane potential E, " __CN_PU_POTENTIAL
+const char* const cnrun::CN_VarNames_NeuronMap[] = {
+ "Membrane potential E, " CN_PU_POTENTIAL
};
-const char* const cnrun::__CN_VarSyms_NeuronMap[] = {
+const char* const cnrun::CN_VarSyms_NeuronMap[] = {
"E",
};
@@ -371,31 +371,31 @@ preadvance()
// ----- Pulse
-const char* const cnrun::__CN_ParamNames_NeuronDotPulse[] = {
- "Frequency f, " __CN_PU_FREQUENCY,
- "Resting potential Vrst, " __CN_PU_VOLTAGE,
- "Firing potential Vfir, " __CN_PU_VOLTAGE,
+const char* const cnrun::CN_ParamNames_NeuronDotPulse[] = {
+ "Frequency f, " CN_PU_FREQUENCY,
+ "Resting potential Vrst, " CN_PU_VOLTAGE,
+ "Firing potential Vfir, " CN_PU_VOLTAGE,
};
-const char* const cnrun::__CN_ParamSyms_NeuronDotPulse[] = {
+const char* const cnrun::CN_ParamSyms_NeuronDotPulse[] = {
"f",
"Vrst",
"Vfir",
};
-const double cnrun::__CN_Params_NeuronDotPulse[] = {
+const double cnrun::CN_Params_NeuronDotPulse[] = {
10,
-60,
20
};
-const char* const cnrun::__CN_VarNames_NeuronDotPulse[] = {
- "Membrane potential E, " __CN_PU_VOLTAGE,
+const char* const cnrun::CN_VarNames_NeuronDotPulse[] = {
+ "Membrane potential E, " CN_PU_VOLTAGE,
"Spikes recently fired",
};
-const char* const cnrun::__CN_VarSyms_NeuronDotPulse[] = {
+const char* const cnrun::CN_VarSyms_NeuronDotPulse[] = {
"E",
"nspk",
};
-const double cnrun::__CN_Vars_NeuronDotPulse[] = {
+const double cnrun::CN_Vars_NeuronDotPulse[] = {
-60., // E
0
};
diff --git a/upstream/src/libcnrun/standalone-synapses.cc b/upstream/src/libcnrun/standalone-synapses.cc
index 6370805..f4f1e54 100644
--- a/upstream/src/libcnrun/standalone-synapses.cc
+++ b/upstream/src/libcnrun/standalone-synapses.cc
@@ -39,20 +39,20 @@ C_StandaloneSynapse (TUnitType type_,
-const double cnrun::__CN_Params_SynapseMap[] = {
+const double cnrun::CN_Params_SynapseMap[] = {
// 0.075,
18.94463, // Decay rate time constant
0.25,
0
};
-const char* const cnrun::__CN_ParamNames_SynapseMap[] = {
-// "Synaptic strength g, " __CN_PU_CONDUCTANCE,
- "Decay rate time constant \317\204, " __CN_PU_RATE,
- "Release quantile \316\264",
- "Reversal potential Vrev, " __CN_PU_POTENTIAL
+const char* const cnrun::CN_ParamNames_SynapseMap[] = {
+// "Synaptic strength g, " CN_PU_CONDUCTANCE,
+ "Decay rate time constant τ, " CN_PU_RATE,
+ "Release quantile δ",
+ "Reversal potential Vrev, " CN_PU_POTENTIAL
};
-const char* const cnrun::__CN_ParamSyms_SynapseMap[] = {
+const char* const cnrun::CN_ParamSyms_SynapseMap[] = {
// "gsyn",
"tau",
"delta",
diff --git a/upstream/src/libcnrun/types.cc b/upstream/src/libcnrun/types.cc
index 5e5372e..d815542 100644
--- a/upstream/src/libcnrun/types.cc
+++ b/upstream/src/libcnrun/types.cc
@@ -16,7 +16,6 @@
#include <cstdio>
#include <cstring>
-#include <iostream>
#include "libstilton/string.hh"
#include "types.hh"
@@ -30,12 +29,12 @@ cnrun::SCNDescriptor cnrun::__CNUDT[] = {
{ UT_HOSTED, // NT_HH_D
8+18, 4,
- __CN_Params_NeuronHH_d,
- __CN_ParamNames_NeuronHH_d,
- __CN_ParamSyms_NeuronHH_d,
- __CN_Vars_NeuronHH_d,
- __CN_VarNames_NeuronHH_d,
- __CN_VarSyms_NeuronHH_d,
+ CN_Params_NeuronHH_d,
+ CN_ParamNames_NeuronHH_d,
+ CN_ParamSyms_NeuronHH_d,
+ CN_Vars_NeuronHH_d,
+ CN_VarNames_NeuronHH_d,
+ CN_VarSyms_NeuronHH_d,
"HH",
"HH",
"Hodgkin-Huxley by Traub and Miles (1991)"
@@ -43,12 +42,12 @@ cnrun::SCNDescriptor cnrun::__CNUDT[] = {
{ UT_RATEBASED, // NT_HH_R
4, 1,
- __CN_Params_NeuronHH_r,
- __CN_ParamNames_NeuronHH_r,
- __CN_ParamSyms_NeuronHH_r,
- __CN_Vars_NeuronHH_r,
- __CN_VarNames_NeuronHH_r,
- __CN_VarSyms_NeuronHH_r,
+ CN_Params_NeuronHH_r,
+ CN_ParamNames_NeuronHH_r,
+ CN_ParamSyms_NeuronHH_r,
+ CN_Vars_NeuronHH_r,
+ CN_VarNames_NeuronHH_r,
+ CN_VarSyms_NeuronHH_r,
"HHRate",
"HHRate",
"Rate-based model of the Hodgkin-Huxley neuron"
@@ -56,12 +55,12 @@ cnrun::SCNDescriptor cnrun::__CNUDT[] = {
{ UT_HOSTED, // NT_HH2_D
11+18-1, 4,
- __CN_Params_NeuronHH2_d,
- __CN_ParamNames_NeuronHH2_d,
- __CN_ParamSyms_NeuronHH2_d,
- __CN_Vars_NeuronHH2_d,
- __CN_VarNames_NeuronHH_d,
- __CN_VarSyms_NeuronHH_d,
+ CN_Params_NeuronHH2_d,
+ CN_ParamNames_NeuronHH2_d,
+ CN_ParamSyms_NeuronHH2_d,
+ CN_Vars_NeuronHH2_d,
+ CN_VarNames_NeuronHH_d,
+ CN_VarSyms_NeuronHH_d,
"HH2",
"HH2",
"Hodgkin-Huxley by Traub & Miles w/ K leakage"
@@ -79,12 +78,12 @@ cnrun::SCNDescriptor cnrun::__CNUDT[] = {
//#ifdef CN_WANT_MORE_NEURONS
{ UT_HOSTED, // NT_EC_D
14, 6,
- __CN_Params_NeuronEC_d,
- __CN_ParamNames_NeuronEC_d,
- __CN_ParamSyms_NeuronEC_d,
- __CN_Vars_NeuronEC_d,
- __CN_VarNames_NeuronEC_d,
- __CN_VarSyms_NeuronEC_d,
+ CN_Params_NeuronEC_d,
+ CN_ParamNames_NeuronEC_d,
+ CN_ParamSyms_NeuronEC_d,
+ CN_Vars_NeuronEC_d,
+ CN_VarNames_NeuronEC_d,
+ CN_VarSyms_NeuronEC_d,
"EC",
"EC",
"Entorhinal Cortex neuron"
@@ -92,12 +91,12 @@ cnrun::SCNDescriptor cnrun::__CNUDT[] = {
{ UT_HOSTED, // NT_ECA_D
11, 7,
- __CN_Params_NeuronECA_d,
- __CN_ParamNames_NeuronECA_d,
- __CN_ParamSyms_NeuronECA_d,
- __CN_Vars_NeuronECA_d,
- __CN_VarNames_NeuronECA_d,
- __CN_VarSyms_NeuronECA_d,
+ CN_Params_NeuronECA_d,
+ CN_ParamNames_NeuronECA_d,
+ CN_ParamSyms_NeuronECA_d,
+ CN_Vars_NeuronECA_d,
+ CN_VarNames_NeuronECA_d,
+ CN_VarSyms_NeuronECA_d,
"ECA",
"ECA",
"Entorhinal Cortex (A) neuron"
@@ -106,12 +105,12 @@ cnrun::SCNDescriptor cnrun::__CNUDT[] = {
{ UT_OSCILLATOR | UT_DOT, // NT_POISSONDOT
3, 2,
- __CN_Params_OscillatorPoissonDot,
- __CN_ParamNames_OscillatorPoissonDot,
- __CN_ParamSyms_OscillatorPoissonDot,
- __CN_Vars_OscillatorPoissonDot,
- __CN_VarNames_OscillatorPoissonDot,
- __CN_VarSyms_OscillatorPoissonDot,
+ CN_Params_OscillatorPoissonDot,
+ CN_ParamNames_OscillatorPoissonDot,
+ CN_ParamSyms_OscillatorPoissonDot,
+ CN_Vars_OscillatorPoissonDot,
+ CN_VarNames_OscillatorPoissonDot,
+ CN_VarSyms_OscillatorPoissonDot,
"DotPoisson",
"DotPoisson",
"Duration-less spike Poisson oscillator"
@@ -119,12 +118,12 @@ cnrun::SCNDescriptor cnrun::__CNUDT[] = {
{ UT_OSCILLATOR, // NT_POISSON
5, 1,
- __CN_Params_OscillatorPoisson,
- __CN_ParamNames_OscillatorPoisson,
- __CN_ParamSyms_OscillatorPoisson,
- __CN_Vars_OscillatorPoisson,
- __CN_VarNames_OscillatorPoisson,
- __CN_VarSyms_OscillatorPoisson,
+ CN_Params_OscillatorPoisson,
+ CN_ParamNames_OscillatorPoisson,
+ CN_ParamSyms_OscillatorPoisson,
+ CN_Vars_OscillatorPoisson,
+ CN_VarNames_OscillatorPoisson,
+ CN_VarSyms_OscillatorPoisson,
"Poisson",
"Poisson",
"Poisson oscillator"
@@ -133,12 +132,12 @@ cnrun::SCNDescriptor cnrun::__CNUDT[] = {
/*
{ UT_HOSTED | UT_OSCILLATOR, // NT_LV
1, 2,
- __CN_Params_OscillatorLV,
- __CN_ParamNames_OscillatorLV,
- __CN_ParamSyms_OscillatorLV,
- __CN_Vars_OscillatorLV,
- __CN_VarNames_OscillatorLV,
- __CN_VarSyms_OscillatorLV,
+ CN_Params_OscillatorLV,
+ CN_ParamNames_OscillatorLV,
+ CN_ParamSyms_OscillatorLV,
+ CN_Vars_OscillatorLV,
+ CN_VarNames_OscillatorLV,
+ CN_VarSyms_OscillatorLV,
"LV",
"LV",
"Lotka-Volterra oscillator"
@@ -147,12 +146,12 @@ cnrun::SCNDescriptor cnrun::__CNUDT[] = {
{ UT_HOSTED | UT_OSCILLATOR, // NT_COLPITTS,
4, 3,
- __CN_Params_OscillatorColpitts,
- __CN_ParamNames_OscillatorColpitts,
- __CN_ParamSyms_OscillatorColpitts,
- __CN_Vars_OscillatorColpitts,
- __CN_VarNames_OscillatorColpitts,
- __CN_VarSyms_OscillatorColpitts,
+ CN_Params_OscillatorColpitts,
+ CN_ParamNames_OscillatorColpitts,
+ CN_ParamSyms_OscillatorColpitts,
+ CN_Vars_OscillatorColpitts,
+ CN_VarNames_OscillatorColpitts,
+ CN_VarSyms_OscillatorColpitts,
"Colpitts",
"Colpitts",
"Colpitts oscillator"
@@ -160,12 +159,12 @@ cnrun::SCNDescriptor cnrun::__CNUDT[] = {
{ UT_HOSTED | UT_OSCILLATOR, // NT_VDPOL,
2, 2,
- __CN_Params_OscillatorVdPol,
- __CN_ParamNames_OscillatorVdPol,
- __CN_ParamSyms_OscillatorVdPol,
- __CN_Vars_OscillatorVdPol,
- __CN_VarNames_OscillatorVdPol,
- __CN_VarSyms_OscillatorVdPol,
+ CN_Params_OscillatorVdPol,
+ CN_ParamNames_OscillatorVdPol,
+ CN_ParamSyms_OscillatorVdPol,
+ CN_Vars_OscillatorVdPol,
+ CN_VarNames_OscillatorVdPol,
+ CN_VarSyms_OscillatorVdPol,
"VdPol",
"VdPol",
"Van der Pol oscillator"
@@ -173,12 +172,12 @@ cnrun::SCNDescriptor cnrun::__CNUDT[] = {
{ UT_OSCILLATOR | UT_DOT, // NT_DOTPULSE
3, 2,
- __CN_Params_NeuronDotPulse,
- __CN_ParamNames_NeuronDotPulse,
- __CN_ParamSyms_NeuronDotPulse,
- __CN_Vars_NeuronDotPulse,
- __CN_VarNames_NeuronDotPulse,
- __CN_VarSyms_NeuronDotPulse,
+ CN_Params_NeuronDotPulse,
+ CN_ParamNames_NeuronDotPulse,
+ CN_ParamSyms_NeuronDotPulse,
+ CN_Vars_NeuronDotPulse,
+ CN_VarNames_NeuronDotPulse,
+ CN_VarSyms_NeuronDotPulse,
"DotPulse",
"DotPulse",
"Dot Pulse generator"
@@ -186,12 +185,12 @@ cnrun::SCNDescriptor cnrun::__CNUDT[] = {
{ UT_DDTSET, // NT_MAP
5, 1,
- __CN_Params_NeuronMap,
- __CN_ParamNames_NeuronMap,
- __CN_ParamSyms_NeuronMap,
- __CN_Vars_NeuronMap,
- __CN_VarNames_NeuronMap,
- __CN_VarSyms_NeuronMap,
+ CN_Params_NeuronMap,
+ CN_ParamNames_NeuronMap,
+ CN_ParamSyms_NeuronMap,
+ CN_Vars_NeuronMap,
+ CN_VarNames_NeuronMap,
+ CN_VarSyms_NeuronMap,
"NMap",
"NMap",
"Map neuron"
@@ -204,12 +203,12 @@ cnrun::SCNDescriptor cnrun::__CNUDT[] = {
{ UT_HOSTED, // YT_AB_DD
5, 1,
- __CN_Params_SynapseAB_dd,
- __CN_ParamNames_SynapseAB_dd,
- __CN_ParamSyms_SynapseAB_dd,
- __CN_Vars_SynapseAB,
- __CN_VarNames_SynapseAB,
- __CN_VarSyms_SynapseAB,
+ CN_Params_SynapseAB_dd,
+ CN_ParamNames_SynapseAB_dd,
+ CN_ParamSyms_SynapseAB_dd,
+ CN_Vars_SynapseAB,
+ CN_VarNames_SynapseAB,
+ CN_VarSyms_SynapseAB,
"AB",
"AB_pp",
"Alpha-Beta synapse (Destexhe, Mainen, Sejnowsky, 1994)"
@@ -235,12 +234,12 @@ cnrun::SCNDescriptor cnrun::__CNUDT[] = {
{ UT_HOSTED | UT_RATEBASED, // YT_AB_RR
4, 1,
- __CN_Params_SynapseAB_rr,
- __CN_ParamNames_SynapseAB_rr,
- __CN_ParamSyms_SynapseAB_rr,
- __CN_Vars_SynapseAB,
- __CN_VarNames_SynapseAB,
- __CN_VarSyms_SynapseAB,
+ CN_Params_SynapseAB_rr,
+ CN_ParamNames_SynapseAB_rr,
+ CN_ParamSyms_SynapseAB_rr,
+ CN_Vars_SynapseAB,
+ CN_VarNames_SynapseAB,
+ CN_VarSyms_SynapseAB,
"AB",
"AB_tt",
"Alpha-Beta synapse (tonic->tonic)"
@@ -248,12 +247,12 @@ cnrun::SCNDescriptor cnrun::__CNUDT[] = {
{ UT_HOSTED | UT_MULTIPLEXING, // YT_MXAB_DD, inheriting all parameters except alpha, and variables from YT_AB
5, 1,
- __CN_Params_SynapseMxAB_dd,
- __CN_ParamNames_SynapseAB_dd,
- __CN_ParamSyms_SynapseAB_dd,
- __CN_Vars_SynapseAB,
- __CN_VarNames_SynapseAB,
- __CN_VarSyms_SynapseAB,
+ CN_Params_SynapseMxAB_dd,
+ CN_ParamNames_SynapseAB_dd,
+ CN_ParamSyms_SynapseAB_dd,
+ CN_Vars_SynapseAB,
+ CN_VarNames_SynapseAB,
+ CN_VarSyms_SynapseAB,
"AB",
"AB_Mx_pp",
"Multiplexing Alpha-Beta synapse for use with durationless units as source (phasic->phasic)"
@@ -261,12 +260,12 @@ cnrun::SCNDescriptor cnrun::__CNUDT[] = {
{ UT_HOSTED | UT_TGTISRATE | UT_MULTIPLEXING, // YT_MXAB_DR
5, 1,
- __CN_Params_SynapseMxAB_dr,
- __CN_ParamNames_SynapseAB_dr,
- __CN_ParamSyms_SynapseAB_dr,
- __CN_Vars_SynapseAB,
- __CN_VarNames_SynapseAB,
- __CN_VarSyms_SynapseAB,
+ CN_Params_SynapseMxAB_dr,
+ CN_ParamNames_SynapseAB_dr,
+ CN_ParamSyms_SynapseAB_dr,
+ CN_Vars_SynapseAB,
+ CN_VarNames_SynapseAB,
+ CN_VarSyms_SynapseAB,
"AB",
"AB_Mx_pt",
"Multiplexing Alpha-Beta synapse for use with durationless units as source (phasic->tonic)"
@@ -275,12 +274,12 @@ cnrun::SCNDescriptor cnrun::__CNUDT[] = {
{ UT_HOSTED, // YT_ABMINS_DD
5, 1,
- __CN_Params_SynapseABMinus_dd,
- __CN_ParamNames_SynapseAB_dd,
- __CN_ParamSyms_SynapseAB_dd,
- __CN_Vars_SynapseAB,
- __CN_VarNames_SynapseAB,
- __CN_VarSyms_SynapseAB,
+ CN_Params_SynapseABMinus_dd,
+ CN_ParamNames_SynapseAB_dd,
+ CN_ParamSyms_SynapseAB_dd,
+ CN_Vars_SynapseAB,
+ CN_VarNames_SynapseAB,
+ CN_VarSyms_SynapseAB,
"ABMinus",
"ABMinus_pp",
"Alpha-Beta synapse w/out (1-S) term"
@@ -289,9 +288,9 @@ cnrun::SCNDescriptor cnrun::__CNUDT[] = {
{ UT_HOSTED | UT_TGTISRATE | UT__STUB, // YT_ABMINS_DR
5, 1,
NULL, NULL, NULL,
- __CN_Vars_SynapseAB,
- __CN_VarNames_SynapseAB,
- __CN_VarSyms_SynapseAB,
+ CN_Vars_SynapseAB,
+ CN_VarNames_SynapseAB,
+ CN_VarSyms_SynapseAB,
"ABMinus",
"ABMinus_pt",
"Alpha-Beta synapse w/out (1-S) term (phasic->tonic)"
@@ -300,9 +299,9 @@ cnrun::SCNDescriptor cnrun::__CNUDT[] = {
{ UT_HOSTED | UT_SRCISRATE | UT__STUB, // YT_ABMINS_RD
5, 1,
NULL, NULL, NULL,
- __CN_Vars_SynapseAB,
- __CN_VarNames_SynapseAB,
- __CN_VarSyms_SynapseAB,
+ CN_Vars_SynapseAB,
+ CN_VarNames_SynapseAB,
+ CN_VarSyms_SynapseAB,
"ABMinus",
"ABMinus_tp",
"Alpha-Beta synapse w/out (1-S) term (tonic->phasic)"
@@ -311,9 +310,9 @@ cnrun::SCNDescriptor cnrun::__CNUDT[] = {
{ UT_HOSTED | UT_SRCISRATE | UT_TGTISRATE | UT__STUB, // YT_ABMINS_RR
5, 1,
NULL, NULL, NULL,
- __CN_Vars_SynapseAB,
- __CN_VarNames_SynapseAB,
- __CN_VarSyms_SynapseAB,
+ CN_Vars_SynapseAB,
+ CN_VarNames_SynapseAB,
+ CN_VarSyms_SynapseAB,
"ABMinus",
"ABMinus_tt",
"Alpha-Beta synapse w/out (1-S) term (tonic->tonic)"
@@ -322,9 +321,9 @@ cnrun::SCNDescriptor cnrun::__CNUDT[] = {
{ UT_HOSTED | UT_MULTIPLEXING | UT__STUB, // YT_MXABMINUS_DD
5, 1,
NULL, NULL, NULL,
- __CN_Vars_SynapseAB,
- __CN_VarNames_SynapseAB,
- __CN_VarSyms_SynapseAB,
+ CN_Vars_SynapseAB,
+ CN_VarNames_SynapseAB,
+ CN_VarSyms_SynapseAB,
"ABMinus",
"ABMinus_Mx_pp",
"Multiplexing Alpha-Beta w/out (1-S) synapse for use with durationless units as source (phasic->phasic)"
@@ -333,9 +332,9 @@ cnrun::SCNDescriptor cnrun::__CNUDT[] = {
{ UT_HOSTED | UT_TGTISRATE | UT_MULTIPLEXING | UT__STUB, // YT_MXABMINUS_DR
5, 1,
NULL, NULL, NULL,
- __CN_Vars_SynapseAB,
- __CN_VarNames_SynapseAB,
- __CN_VarSyms_SynapseAB,
+ CN_Vars_SynapseAB,
+ CN_VarNames_SynapseAB,
+ CN_VarSyms_SynapseAB,
"ABMinus",
"ABMinus_Mx_pt",
"Multiplexing Alpha-Beta w/out (1-S) synapse for use with durationless units as source (phasic->tonic)"
@@ -344,12 +343,12 @@ cnrun::SCNDescriptor cnrun::__CNUDT[] = {
{ UT_HOSTED, // YT_RALL_DD
3, 2,
- __CN_Params_SynapseRall_dd,
- __CN_ParamNames_SynapseRall_dd,
- __CN_ParamSyms_SynapseRall_dd,
- __CN_Vars_SynapseRall,
- __CN_VarNames_SynapseRall,
- __CN_VarSyms_SynapseRall,
+ CN_Params_SynapseRall_dd,
+ CN_ParamNames_SynapseRall_dd,
+ CN_ParamSyms_SynapseRall_dd,
+ CN_Vars_SynapseRall,
+ CN_VarNames_SynapseRall,
+ CN_VarSyms_SynapseRall,
"Rall",
"Rall_pp",
"Rall synapse (Rall, 1967)"
@@ -358,9 +357,9 @@ cnrun::SCNDescriptor cnrun::__CNUDT[] = {
{ UT_HOSTED | UT_TGTISRATE | UT__STUB, // YT_RALL_DR
3, 2,
NULL, NULL, NULL,
- __CN_Vars_SynapseRall,
- __CN_VarNames_SynapseRall,
- __CN_VarSyms_SynapseRall,
+ CN_Vars_SynapseRall,
+ CN_VarNames_SynapseRall,
+ CN_VarSyms_SynapseRall,
"Rall",
"Rall_pt",
"Rall synapse (Rall, 1967) (phasic->tonic)"
@@ -369,9 +368,9 @@ cnrun::SCNDescriptor cnrun::__CNUDT[] = {
{ UT_HOSTED | UT_SRCISRATE | UT__STUB, // YT_RALL_RD
3, 2,
NULL, NULL, NULL,
- __CN_Vars_SynapseRall,
- __CN_VarNames_SynapseRall,
- __CN_VarSyms_SynapseRall,
+ CN_Vars_SynapseRall,
+ CN_VarNames_SynapseRall,
+ CN_VarSyms_SynapseRall,
"Rall",
"Rall_tp",
"Rall synapse (tonic->phasic)"
@@ -380,9 +379,9 @@ cnrun::SCNDescriptor cnrun::__CNUDT[] = {
{ UT_HOSTED | UT_SRCISRATE | UT_TGTISRATE | UT__STUB, // YT_RALL_RR
3, 2,
NULL, NULL, NULL,
- __CN_Vars_SynapseRall,
- __CN_VarNames_SynapseRall,
- __CN_VarSyms_SynapseRall,
+ CN_Vars_SynapseRall,
+ CN_VarNames_SynapseRall,
+ CN_VarSyms_SynapseRall,
"Rall",
"Rall_tt",
"Rall synapse (tonic->tonic)"
@@ -391,9 +390,9 @@ cnrun::SCNDescriptor cnrun::__CNUDT[] = {
{ UT_HOSTED | UT_MULTIPLEXING | UT__STUB, // YT_MXRALL_DD
3, 2,
NULL, NULL, NULL,
- __CN_Vars_SynapseRall,
- __CN_VarNames_SynapseRall,
- __CN_VarSyms_SynapseRall,
+ CN_Vars_SynapseRall,
+ CN_VarNames_SynapseRall,
+ CN_VarSyms_SynapseRall,
"Rall",
"Rall_Mx_pp",
"Rall synapse for use with durationless units as source (phasic->phasic)"
@@ -402,9 +401,9 @@ cnrun::SCNDescriptor cnrun::__CNUDT[] = {
{ UT_HOSTED | UT_TGTISRATE | UT_MULTIPLEXING | UT__STUB, // YT_MXRALL_DR
3, 2,
NULL, NULL, NULL,
- __CN_Vars_SynapseRall,
- __CN_VarNames_SynapseRall,
- __CN_VarSyms_SynapseRall,
+ CN_Vars_SynapseRall,
+ CN_VarNames_SynapseRall,
+ CN_VarSyms_SynapseRall,
"Rall",
"Rall_Mx_pt",
"Rall synapse for use with durationless units as source (phasic->tonic)"
@@ -413,12 +412,12 @@ cnrun::SCNDescriptor cnrun::__CNUDT[] = {
{ UT_DDTSET, // YT_MAP
3, 1,
- __CN_Params_SynapseMap,
- __CN_ParamNames_SynapseMap,
- __CN_ParamSyms_SynapseMap,
- __CN_Vars_SynapseAB,
- __CN_VarNames_SynapseAB,
- __CN_VarSyms_SynapseAB,
+ CN_Params_SynapseMap,
+ CN_ParamNames_SynapseMap,
+ CN_ParamSyms_SynapseMap,
+ CN_Vars_SynapseAB,
+ CN_VarNames_SynapseAB,
+ CN_VarSyms_SynapseAB,
"Map",
"Map",
"Map synapse"
@@ -426,12 +425,12 @@ cnrun::SCNDescriptor cnrun::__CNUDT[] = {
{ UT_DDTSET | UT_MULTIPLEXING, // YT_MXMAP
3, 1,
- __CN_Params_SynapseMap,
- __CN_ParamNames_SynapseMap,
- __CN_ParamSyms_SynapseMap,
- __CN_Vars_SynapseAB,
- __CN_VarNames_SynapseAB,
- __CN_VarSyms_SynapseAB,
+ CN_Params_SynapseMap,
+ CN_ParamNames_SynapseMap,
+ CN_ParamSyms_SynapseMap,
+ CN_Vars_SynapseAB,
+ CN_VarNames_SynapseAB,
+ CN_VarSyms_SynapseAB,
"Map",
"Map_Mx",
"Multiplexing Map synapse"
@@ -470,53 +469,51 @@ cnmodel_dump_available_units()
using cnrun::stilton::str::double_dot_aligned_s;
size_t u, p;
- cout << "\n===== Neurons:\n";
+ printf( "\n===== Neurons:\n");
for ( u = NT_FIRST; u <= NT_LAST; ++u ) {
- SCNDescriptor &U = __CNUDT[u];
+ const auto &U = __CNUDT[u];
if ( U.traits & UT__STUB )
continue;
- printf( "--- [%s]: %s\nParameters:\n",
+ printf( "* [%s] %s:\n",
U.species, U.description);
for ( p = 0; p < U.pno; ++p ) {
- printf( "%4zu: %-5s\t= %s %s\n",
- p, U.stock_param_syms[p],
+ printf( " %-12s %s %s\n",
+ U.stock_param_syms[p],
double_dot_aligned_s(
U.stock_param_values[p], 4, 8).c_str(),
U.stock_param_names[p]);
}
- printf( "Variables:\n");
for ( p = 0; p < U.vno; ++p ) {
- printf( "%4zu: %-5s\t= %s %s\n",
- p, U.stock_var_syms[p],
+ printf( "v: %-12s %s %s\n",
+ U.stock_var_syms[p],
double_dot_aligned_s( U.stock_var_values[p], 4, 8).c_str(),
U.stock_var_names[p]);
}
- cout << endl;
+ printf( "\n");
}
- cout << "\n===== Synapses:\n";
+ printf( "\n===== Synapses:\n");
for ( u = YT_FIRST; u <= YT_LAST; ++u ) {
SCNDescriptor &U = __CNUDT[u];
if ( U.traits & UT__STUB )
continue;
- printf( "--- [%s]: %s\nParameters:\n",
+ printf( "* [%s] %s:\n",
U.species, U.description);
for ( p = 0; p < U.pno; ++p ) {
- printf( "%4zu: %-5s\t= %s %s\n",
- p, U.stock_param_syms[p],
+ printf( " %-12s %s %s\n",
+ U.stock_param_syms[p],
double_dot_aligned_s(
U.stock_param_values[p], 4, 8).c_str(),
U.stock_param_names[p]);
}
- cout << "Variables:\n";
for ( p = 0; p < U.vno; ++p ) {
- printf( "%4zu: %-5s\t= %s %s\n",
- p, U.stock_var_syms[p],
+ printf( "v: %-12s %s %s\n",
+ U.stock_var_syms[p],
double_dot_aligned_s( U.stock_var_values[p], 4, 8).c_str(),
U.stock_var_names[p]);
}
- cout << endl;
+ printf( "\n");
}
- cout << endl;
+ printf( "\n");
}
// Local Variables:
diff --git a/upstream/src/libcnrun/types.hh b/upstream/src/libcnrun/types.hh
index 479d59e..084ce38 100644
--- a/upstream/src/libcnrun/types.hh
+++ b/upstream/src/libcnrun/types.hh
@@ -146,146 +146,146 @@ void cnmodel_dump_available_units();
-extern const double __CN_Params_NeuronHH_d[];
-extern const char* const __CN_ParamNames_NeuronHH_d[];
-extern const char* const __CN_ParamSyms_NeuronHH_d[];
-extern const double __CN_Vars_NeuronHH_d[];
-extern const char* const __CN_VarNames_NeuronHH_d[];
-extern const char* const __CN_VarSyms_NeuronHH_d[];
+extern const double CN_Params_NeuronHH_d[];
+extern const char* const CN_ParamNames_NeuronHH_d[];
+extern const char* const CN_ParamSyms_NeuronHH_d[];
+extern const double CN_Vars_NeuronHH_d[];
+extern const char* const CN_VarNames_NeuronHH_d[];
+extern const char* const CN_VarSyms_NeuronHH_d[];
-extern const double __CN_Params_NeuronHH2_d[];
-extern const char* const __CN_ParamNames_NeuronHH2_d[];
-extern const char* const __CN_ParamSyms_NeuronHH2_d[];
-extern const double __CN_Vars_NeuronHH2_d[];
+extern const double CN_Params_NeuronHH2_d[];
+extern const char* const CN_ParamNames_NeuronHH2_d[];
+extern const char* const CN_ParamSyms_NeuronHH2_d[];
+extern const double CN_Vars_NeuronHH2_d[];
-extern const double __CN_Params_NeuronHH_r[];
-extern const char* const __CN_ParamNames_NeuronHH_r[];
-extern const char* const __CN_ParamSyms_NeuronHH_r[];
-extern const double __CN_Vars_NeuronHH_r[];
-extern const char* const __CN_VarNames_NeuronHH_r[];
-extern const char* const __CN_VarSyms_NeuronHH_r[];
+extern const double CN_Params_NeuronHH_r[];
+extern const char* const CN_ParamNames_NeuronHH_r[];
+extern const char* const CN_ParamSyms_NeuronHH_r[];
+extern const double CN_Vars_NeuronHH_r[];
+extern const char* const CN_VarNames_NeuronHH_r[];
+extern const char* const CN_VarSyms_NeuronHH_r[];
-extern const double __CN_Params_NeuronDotPulse[];
-extern const char* const __CN_ParamNames_NeuronDotPulse[];
-extern const char* const __CN_ParamSyms_NeuronDotPulse[];
-extern const double __CN_Vars_NeuronDotPulse[];
-extern const char* const __CN_VarNames_NeuronDotPulse[];
-extern const char* const __CN_VarSyms_NeuronDotPulse[];
+extern const double CN_Params_NeuronDotPulse[];
+extern const char* const CN_ParamNames_NeuronDotPulse[];
+extern const char* const CN_ParamSyms_NeuronDotPulse[];
+extern const double CN_Vars_NeuronDotPulse[];
+extern const char* const CN_VarNames_NeuronDotPulse[];
+extern const char* const CN_VarSyms_NeuronDotPulse[];
//#ifdef CN_WANT_MORE_NEURONS
-extern const double __CN_Params_NeuronEC_d[];
-extern const char* const __CN_ParamNames_NeuronEC_d[];
-extern const char* const __CN_ParamSyms_NeuronEC_d[];
-extern const double __CN_Vars_NeuronEC_d[];
-extern const char* const __CN_VarNames_NeuronEC_d[];
-extern const char* const __CN_VarSyms_NeuronEC_d[];
-
-
-extern const double __CN_Params_NeuronECA_d[];
-extern const char* const __CN_ParamNames_NeuronECA_d[];
-extern const char* const __CN_ParamSyms_NeuronECA_d[];
-extern const double __CN_Vars_NeuronECA_d[];
-extern const char* const __CN_VarNames_NeuronECA_d[];
-extern const char* const __CN_VarSyms_NeuronECA_d[];
+extern const double CN_Params_NeuronEC_d[];
+extern const char* const CN_ParamNames_NeuronEC_d[];
+extern const char* const CN_ParamSyms_NeuronEC_d[];
+extern const double CN_Vars_NeuronEC_d[];
+extern const char* const CN_VarNames_NeuronEC_d[];
+extern const char* const CN_VarSyms_NeuronEC_d[];
+
+
+extern const double CN_Params_NeuronECA_d[];
+extern const char* const CN_ParamNames_NeuronECA_d[];
+extern const char* const CN_ParamSyms_NeuronECA_d[];
+extern const double CN_Vars_NeuronECA_d[];
+extern const char* const CN_VarNames_NeuronECA_d[];
+extern const char* const CN_VarSyms_NeuronECA_d[];
//#endif
-extern const double __CN_Params_NeuronMap[];
-extern const char* const __CN_ParamNames_NeuronMap[];
-extern const char* const __CN_ParamSyms_NeuronMap[];
-extern const double __CN_Vars_NeuronMap[];
-extern const char* const __CN_VarNames_NeuronMap[];
-extern const char* const __CN_VarSyms_NeuronMap[];
+extern const double CN_Params_NeuronMap[];
+extern const char* const CN_ParamNames_NeuronMap[];
+extern const char* const CN_ParamSyms_NeuronMap[];
+extern const double CN_Vars_NeuronMap[];
+extern const char* const CN_VarNames_NeuronMap[];
+extern const char* const CN_VarSyms_NeuronMap[];
-extern const double __CN_Params_OscillatorPoissonDot[];
-extern const char* const __CN_ParamNames_OscillatorPoissonDot[];
-extern const char* const __CN_ParamSyms_OscillatorPoissonDot[];
-extern const double __CN_Vars_OscillatorPoissonDot[];
-extern const char* const __CN_VarNames_OscillatorPoissonDot[];
-extern const char* const __CN_VarSyms_OscillatorPoissonDot[];
+extern const double CN_Params_OscillatorPoissonDot[];
+extern const char* const CN_ParamNames_OscillatorPoissonDot[];
+extern const char* const CN_ParamSyms_OscillatorPoissonDot[];
+extern const double CN_Vars_OscillatorPoissonDot[];
+extern const char* const CN_VarNames_OscillatorPoissonDot[];
+extern const char* const CN_VarSyms_OscillatorPoissonDot[];
-extern const double __CN_Params_OscillatorPoisson[];
-extern const char* const __CN_ParamNames_OscillatorPoisson[];
-extern const char* const __CN_ParamSyms_OscillatorPoisson[];
-extern const double __CN_Vars_OscillatorPoisson[];
-extern const char* const __CN_VarNames_OscillatorPoisson[];
-extern const char* const __CN_VarSyms_OscillatorPoisson[];
+extern const double CN_Params_OscillatorPoisson[];
+extern const char* const CN_ParamNames_OscillatorPoisson[];
+extern const char* const CN_ParamSyms_OscillatorPoisson[];
+extern const double CN_Vars_OscillatorPoisson[];
+extern const char* const CN_VarNames_OscillatorPoisson[];
+extern const char* const CN_VarSyms_OscillatorPoisson[];
/*
-extern const double __CN_Params_OscillatorLV[];
-extern const char* const __CN_ParamNames_OscillatorLV[];
-extern const char* const __CN_ParamSyms_OscillatorLV[];
-extern const double __CN_Vars_OscillatorLV[];
-extern const char* const __CN_VarNames_OscillatorLV[];
-extern const char* const __CN_VarSyms_OscillatorLV[];
+extern const double CN_Params_OscillatorLV[];
+extern const char* const CN_ParamNames_OscillatorLV[];
+extern const char* const CN_ParamSyms_OscillatorLV[];
+extern const double CN_Vars_OscillatorLV[];
+extern const char* const CN_VarNames_OscillatorLV[];
+extern const char* const CN_VarSyms_OscillatorLV[];
*/
-extern const double __CN_Params_OscillatorColpitts[];
-extern const char* const __CN_ParamNames_OscillatorColpitts[];
-extern const char* const __CN_ParamSyms_OscillatorColpitts[];
-extern const double __CN_Vars_OscillatorColpitts[];
-extern const char* const __CN_VarNames_OscillatorColpitts[];
-extern const char* const __CN_VarSyms_OscillatorColpitts[];
+extern const double CN_Params_OscillatorColpitts[];
+extern const char* const CN_ParamNames_OscillatorColpitts[];
+extern const char* const CN_ParamSyms_OscillatorColpitts[];
+extern const double CN_Vars_OscillatorColpitts[];
+extern const char* const CN_VarNames_OscillatorColpitts[];
+extern const char* const CN_VarSyms_OscillatorColpitts[];
-extern const double __CN_Params_OscillatorVdPol[];
-extern const char* const __CN_ParamNames_OscillatorVdPol[];
-extern const char* const __CN_ParamSyms_OscillatorVdPol[];
-extern const double __CN_Vars_OscillatorVdPol[];
-extern const char* const __CN_VarNames_OscillatorVdPol[];
-extern const char* const __CN_VarSyms_OscillatorVdPol[];
+extern const double CN_Params_OscillatorVdPol[];
+extern const char* const CN_ParamNames_OscillatorVdPol[];
+extern const char* const CN_ParamSyms_OscillatorVdPol[];
+extern const double CN_Vars_OscillatorVdPol[];
+extern const char* const CN_VarNames_OscillatorVdPol[];
+extern const char* const CN_VarSyms_OscillatorVdPol[];
//#endif
-extern const double __CN_Params_SynapseAB_dd[];
-extern const char* const __CN_ParamNames_SynapseAB_dd[];
-extern const char* const __CN_ParamSyms_SynapseAB_dd[];
-extern const double __CN_Vars_SynapseAB[];
-extern const char* const __CN_VarNames_SynapseAB[];
-extern const char* const __CN_VarSyms_SynapseAB[];
+extern const double CN_Params_SynapseAB_dd[];
+extern const char* const CN_ParamNames_SynapseAB_dd[];
+extern const char* const CN_ParamSyms_SynapseAB_dd[];
+extern const double CN_Vars_SynapseAB[];
+extern const char* const CN_VarNames_SynapseAB[];
+extern const char* const CN_VarSyms_SynapseAB[];
-extern const double __CN_Params_SynapseABMinus_dd[];
+extern const double CN_Params_SynapseABMinus_dd[];
-extern const double __CN_Params_SynapseMxAB_dd[];
+extern const double CN_Params_SynapseMxAB_dd[];
-extern const char* const __CN_ParamNames_SynapseAB_dr[];
-extern const char* const __CN_ParamSyms_SynapseAB_dr[];
+extern const char* const CN_ParamNames_SynapseAB_dr[];
+extern const char* const CN_ParamSyms_SynapseAB_dr[];
-extern const double __CN_Params_SynapseMxAB_dr[];
+extern const double CN_Params_SynapseMxAB_dr[];
-extern const double __CN_Params_SynapseAB_rr[];
-extern const char* const __CN_ParamNames_SynapseAB_rr[];
-extern const char* const __CN_ParamSyms_SynapseAB_rr[];
+extern const double CN_Params_SynapseAB_rr[];
+extern const char* const CN_ParamNames_SynapseAB_rr[];
+extern const char* const CN_ParamSyms_SynapseAB_rr[];
-extern const double __CN_Params_SynapseRall_dd[];
-extern const char* const __CN_ParamNames_SynapseRall_dd[];
-extern const char* const __CN_ParamSyms_SynapseRall_dd[];
-extern const double __CN_Vars_SynapseRall[];
-extern const char* const __CN_VarNames_SynapseRall[];
-extern const char* const __CN_VarSyms_SynapseRall[];
+extern const double CN_Params_SynapseRall_dd[];
+extern const char* const CN_ParamNames_SynapseRall_dd[];
+extern const char* const CN_ParamSyms_SynapseRall_dd[];
+extern const double CN_Vars_SynapseRall[];
+extern const char* const CN_VarNames_SynapseRall[];
+extern const char* const CN_VarSyms_SynapseRall[];
-extern const double __CN_Params_SynapseMap[];
-extern const char* const __CN_ParamNames_SynapseMap[];
-extern const char* const __CN_ParamSyms_SynapseMap[];
+extern const double CN_Params_SynapseMap[];
+extern const char* const CN_ParamNames_SynapseMap[];
+extern const char* const CN_ParamSyms_SynapseMap[];
-#define __CN_PU_CONDUCTANCE "\316\274S/cm\302\262"
-#define __CN_PU_RESISTANCE "M\316\251"
-#define __CN_PU_POTENTIAL "mV"
-#define __CN_PU_VOLTAGE "mV"
-#define __CN_PU_CURRENT "nA"
-#define __CN_PU_CAPACITY_DENSITY "\316\274F/cm\302\262"
-#define __CN_PU_TIME "msec"
-#define __CN_PU_TIME_MSEC "msec"
-#define __CN_PU_RATE "1/msec"
-#define __CN_PU_FREQUENCY "Hz"
-#define __CN_PU_TIME_SEC "sec"
+#define CN_PU_CONDUCTANCE "μS/cm²"
+#define CN_PU_RESISTANCE "MΩ"
+#define CN_PU_POTENTIAL "mV"
+#define CN_PU_VOLTAGE "mV"
+#define CN_PU_CURRENT "nA"
+#define CN_PU_CAPACITY_DENSITY "μF/cm²"
+#define CN_PU_TIME "msec"
+#define CN_PU_TIME_MSEC "msec"
+#define CN_PU_RATE "1/msec"
+#define CN_PU_FREQUENCY "Hz"
+#define CN_PU_TIME_SEC "sec"
}
#endif
diff --git a/upstream/src/libstilton/Makefile.am b/upstream/src/libstilton/Makefile.am
index 5fa22b1..c8c9aad 100644
--- a/upstream/src/libstilton/Makefile.am
+++ b/upstream/src/libstilton/Makefile.am
@@ -1,9 +1,10 @@
include $(top_srcdir)/src/Common.mk
+AM_CXXFLAGS += -shared -fPIC
-pkglib_LTLIBRARIES = \
- libstilton.la
+noinst_LIBRARIES = \
+ liba.a
-libstilton_la_SOURCES = \
+liba_a_SOURCES = \
alg.hh \
containers.hh \
lang.hh \
@@ -11,7 +12,11 @@ libstilton_la_SOURCES = \
string.hh \
libstilton.cc
-libstilton_la_LDFLAGS = \
- -avoid-version \
- -rpath $(libdir)/$(PACKAGE) \
- -shared -module
+stiltonincdir = $(includedir)/libstilton
+
+stiltoninc_HEADERS = \
+ alg.hh \
+ containers.hh \
+ lang.hh \
+ misc.hh \
+ string.hh
diff --git a/upstream/src/libstilton/libstilton.cc b/upstream/src/libstilton/libstilton.cc
index 6dba1ef..06b7e60 100644
--- a/upstream/src/libstilton/libstilton.cc
+++ b/upstream/src/libstilton/libstilton.cc
@@ -265,7 +265,7 @@ dhms_colon( double seconds, int dd)
-inline namespace {
+namespace {
int
n_frac_digits( double v)
{
@@ -281,43 +281,46 @@ n_frac_digits( double v)
string
cnrun::stilton::str::
-double_dot_aligned_s( double val, int int_width, int frac_width)
+double_dot_aligned_s( double val, const size_t int_width, const size_t frac_width)
{
- char buf[40];
+ string ret;
- if ( int_width + frac_width > 39 )
- int_width = 8, frac_width = 8;
-
- val = round(val * pow(10.,frac_width)) / pow(10.,frac_width);
+ val = round(val * pow(10., frac_width)) / pow(10., frac_width);
double intval;
double fracval = modf( val, &intval);
int frac_digits = n_frac_digits( val);
int frac_pad = frac_width - frac_digits;
- if ( frac_pad < 1 )
- frac_pad = 1;
+ if ( frac_pad < 1 ) {
+ frac_digits = frac_width;
+ frac_pad = 0;
+ }
if ( frac_digits )
if ( (int)intval )
- snprintf( buf, 40, "% *d.%0*ld%*s",
- int_width, int(intval),
- frac_digits, (long)round(pow(10., frac_digits) * fabs( fracval)),
- frac_pad, " ");
+ ret = sasprintf(
+ "% *d.%0*ld%*s",
+ int(int_width), int(intval),
+ frac_digits, (long)round(pow(10., frac_digits) * fabs( fracval)),
+ frac_pad, " ");
else
- snprintf( buf, 40, "%*s.%0*ld%*s",
- int_width, " ",
- frac_digits, (long)round(pow(10., frac_digits) * fabs( fracval)),
- frac_pad, " ");
+ ret = sasprintf(
+ "%*s.%0*ld%*s",
+ int(int_width), " ",
+ frac_digits, (long)round(pow(10., frac_digits) * fabs( fracval)),
+ frac_pad, " ");
else
if ( (int)intval )
- snprintf( buf, 40, "%*d.%-*s",
- int_width, int(intval), frac_width, " ");
+ ret = sasprintf(
+ "%*d.%-*s",
+ int(int_width), int(intval), int(frac_width), " ");
else
- snprintf( buf, 40, "%-*s0%-*s",
- int_width, " ", frac_width, " ");
+ ret = sasprintf(
+ "%-*s0%-*s",
+ int(int_width), " ", int(frac_width), " ");
- return {buf};
+ return move(ret);
}
// Local Variables:
diff --git a/upstream/src/libstilton/string.hh b/upstream/src/libstilton/string.hh
index 82f3171..95032a8 100644
--- a/upstream/src/libstilton/string.hh
+++ b/upstream/src/libstilton/string.hh
@@ -103,7 +103,7 @@ string dhms_colon( double seconds, int decimal_digits = 0) __attribute__ ((pure)
string
-double_dot_aligned_s( double val, int int_width = 8, int frac_width = 8);
+double_dot_aligned_s( double val, size_t int_width = 8, size_t frac_width = 8);
}
diff --git a/upstream/src/libcnrun-lua/.gitignore b/upstream/src/lua-cnrun/.gitignore
similarity index 100%
rename from upstream/src/libcnrun-lua/.gitignore
rename to upstream/src/lua-cnrun/.gitignore
diff --git a/upstream/src/lua-cnrun/Makefile.am b/upstream/src/lua-cnrun/Makefile.am
new file mode 100644
index 0000000..eca1f01
--- /dev/null
+++ b/upstream/src/lua-cnrun/Makefile.am
@@ -0,0 +1,25 @@
+include $(top_srcdir)/src/Common.mk
+AM_CXXFLAGS += $(LUA_INCLUDE)
+
+pkglib_LTLIBRARIES = \
+ libcnrun-lua.la
+libcnrun_lua_la_SOURCES = \
+ commands.cc cnhost.hh
+libcnrun_lua_la_LIBADD = \
+ ../libcnrun/libcnrun.la \
+ $(LIBCN_LIBS) \
+ $(LUA_LIB)
+libcnrun_lua_la_LDFLAGS = \
+ -shared -avoid-version \
+ -module
+
+# and move it to where lua can find it via reqiure("cnrun");
+# no, link is better, so that lintian finds libcnrun-lua.so in its
+# usual location in /usr/lib
+install-exec-hook:
+ $(MKDIR_P) $(DESTDIR)/$(luaexecdir)
+ mv $(DESTDIR)/$(libdir)/$(PACKAGE)/libcnrun-lua.so \
+ $(DESTDIR)/$(luaexecdir)/cnrun.so
+ rm -rf $(DESTDIR)/$(libdir)/$(PACKAGE)
+uninstall-hook:
+ rm -f $(DESTDIR)/$(luaexecdir)/cnrun.so
diff --git a/upstream/src/libcnrun-lua/cnhost.hh b/upstream/src/lua-cnrun/cnhost.hh
similarity index 100%
rename from upstream/src/libcnrun-lua/cnhost.hh
rename to upstream/src/lua-cnrun/cnhost.hh
diff --git a/upstream/src/libcnrun-lua/commands.cc b/upstream/src/lua-cnrun/commands.cc
similarity index 90%
rename from upstream/src/libcnrun-lua/commands.cc
rename to upstream/src/lua-cnrun/commands.cc
index a03f5fa..c29edac 100644
--- a/upstream/src/libcnrun-lua/commands.cc
+++ b/upstream/src/lua-cnrun/commands.cc
@@ -91,11 +91,22 @@ int check_signature( lua_State* L, const char* fun, const char* sig)
// here be the commands:
namespace {
-#define INTRO_CHECK_SIG(sig) \
+#define INTRO_CHECK_SIG(sig) \
if ( check_signature( L, __FUNCTION__, sig) ) \
return TWO_ARGS_FOR_ERROR;
-int cn_get_context( lua_State *L)
+// the only command not requiring or dealing with context:
+int dump_available_units( lua_State *L)
+{
+ INTRO_CHECK_SIG("");
+ cnmodel_dump_available_units();
+ return lua_pushinteger( L, 1),
+ lua_pushstring( L, "fafa"),
+ 2;
+}
+
+
+int get_context( lua_State *L)
{
INTRO_CHECK_SIG("");
@@ -110,7 +121,7 @@ int cn_get_context( lua_State *L)
INTRO_CHECK_SIG(sig) \
auto& C = *(CHost*)lua_topointer( L, 1);
-int cn_drop_context( lua_State *L)
+int drop_context( lua_State *L)
{
INTRO_WITH_CONTEXT("p");
@@ -136,7 +147,7 @@ int cn_drop_context( lua_State *L)
lua_pushnumber( L, v), \
2;
-int cn_new_model( lua_State *L)
+int new_model( lua_State *L)
{
INTRO_WITH_MODEL_NAME("ps");
@@ -165,7 +176,7 @@ int cn_new_model( lua_State *L)
}
-int cn_delete_model( lua_State *L)
+int delete_model( lua_State *L)
{
INTRO_WITH_MODEL_NAME("ps");
@@ -175,7 +186,7 @@ int cn_delete_model( lua_State *L)
}
-int cn_list_models( lua_State *L)
+int list_models( lua_State *L)
{
INTRO_WITH_CONTEXT("p");
@@ -196,7 +207,7 @@ int cn_list_models( lua_State *L)
__FUNCTION__, model_name); \
auto& M = *C.get_model(model_name);
-int cn_import_nml( lua_State *L)
+int import_nml( lua_State *L)
{
INTRO_WITH_MODEL("pss");
@@ -215,7 +226,7 @@ int cn_import_nml( lua_State *L)
}
-int cn_export_nml( lua_State *L)
+int export_nml( lua_State *L)
{
INTRO_WITH_MODEL("pss");
@@ -231,7 +242,7 @@ int cn_export_nml( lua_State *L)
}
-int cn_reset_model( lua_State *L)
+int reset_model( lua_State *L)
{
INTRO_WITH_MODEL("ps");
@@ -242,7 +253,7 @@ int cn_reset_model( lua_State *L)
}
-int cn_cull_deaf_synapses( lua_State *L)
+int cull_deaf_synapses( lua_State *L)
{
INTRO_WITH_MODEL("ps");
@@ -252,7 +263,7 @@ int cn_cull_deaf_synapses( lua_State *L)
}
-int cn_describe_model( lua_State *L)
+int describe_model( lua_State *L)
{
INTRO_WITH_MODEL("ps");
@@ -264,7 +275,7 @@ int cn_describe_model( lua_State *L)
}
-int cn_get_model_parameter( lua_State *L)
+int get_model_parameter( lua_State *L)
{
INTRO_WITH_MODEL("pss");
@@ -307,7 +318,7 @@ int cn_get_model_parameter( lua_State *L)
}
-int cn_set_model_parameter( lua_State *L)
+int set_model_parameter( lua_State *L)
{
INTRO_WITH_MODEL("psss");
@@ -384,7 +395,7 @@ int cn_set_model_parameter( lua_State *L)
}
-int cn_advance( lua_State *L)
+int advance( lua_State *L)
{
INTRO_WITH_MODEL("psg");
@@ -403,7 +414,7 @@ int cn_advance( lua_State *L)
}
-int cn_advance_until( lua_State *L)
+int advance_until( lua_State *L)
{
INTRO_WITH_MODEL("pss");
@@ -423,7 +434,7 @@ int cn_advance_until( lua_State *L)
// ----------------------------------------
-int cn_new_neuron( lua_State *L)
+int new_neuron( lua_State *L)
{
INTRO_WITH_MODEL("psss");
@@ -441,7 +452,7 @@ int cn_new_neuron( lua_State *L)
}
-int cn_new_synapse( lua_State *L)
+int new_synapse( lua_State *L)
{
INTRO_WITH_MODEL("pssssg");
@@ -463,7 +474,7 @@ int cn_new_synapse( lua_State *L)
}
-int cn_get_unit_properties( lua_State *L)
+int get_unit_properties( lua_State *L)
{
INTRO_WITH_MODEL("pss");
@@ -486,7 +497,7 @@ int cn_get_unit_properties( lua_State *L)
}
-int cn_get_unit_parameter( lua_State *L)
+int get_unit_parameter( lua_State *L)
{
INTRO_WITH_MODEL("psss");
@@ -510,7 +521,7 @@ int cn_get_unit_parameter( lua_State *L)
}
-int cn_set_unit_parameter( lua_State *L)
+int set_unit_parameter( lua_State *L)
{
INTRO_WITH_MODEL("psssg");
@@ -536,7 +547,7 @@ int cn_set_unit_parameter( lua_State *L)
}
-int cn_get_unit_vars( lua_State *L)
+int get_unit_vars( lua_State *L)
{
INTRO_WITH_MODEL("pss");
@@ -555,7 +566,7 @@ int cn_get_unit_vars( lua_State *L)
}
-int cn_reset_unit( lua_State *L)
+int reset_unit( lua_State *L)
{
INTRO_WITH_MODEL("pss");
@@ -575,7 +586,7 @@ int cn_reset_unit( lua_State *L)
// ----------------------------------------
-int cn_get_units_matching( lua_State *L)
+int get_units_matching( lua_State *L)
{
INTRO_WITH_MODEL("pss");
@@ -589,7 +600,7 @@ int cn_get_units_matching( lua_State *L)
}
-int cn_get_units_of_type( lua_State *L)
+int get_units_of_type( lua_State *L)
{
INTRO_WITH_MODEL("pss");
@@ -604,7 +615,7 @@ int cn_get_units_of_type( lua_State *L)
}
-int cn_set_matching_neuron_parameter( lua_State *L)
+int set_matching_neuron_parameter( lua_State *L)
{
INTRO_WITH_MODEL("psssg");
@@ -623,7 +634,7 @@ int cn_set_matching_neuron_parameter( lua_State *L)
}
-int cn_set_matching_synapse_parameter( lua_State *L)
+int set_matching_synapse_parameter( lua_State *L)
{
INTRO_WITH_MODEL("pssssg");
@@ -644,7 +655,7 @@ int cn_set_matching_synapse_parameter( lua_State *L)
}
-int cn_revert_matching_unit_parameters( lua_State *L)
+int revert_matching_unit_parameters( lua_State *L)
{
INTRO_WITH_MODEL("pss");
@@ -661,7 +672,7 @@ int cn_revert_matching_unit_parameters( lua_State *L)
}
-int cn_decimate( lua_State *L)
+int decimate( lua_State *L)
{
INTRO_WITH_MODEL("pssg");
@@ -683,7 +694,7 @@ int cn_decimate( lua_State *L)
}
-int cn_putout( lua_State *L)
+int putout( lua_State *L)
{
INTRO_WITH_MODEL("pss");
@@ -701,7 +712,7 @@ int cn_putout( lua_State *L)
// ----------------------------------------
-int cn_new_tape_source( lua_State *L)
+int new_tape_source( lua_State *L)
{
INTRO_WITH_MODEL("psssb");
@@ -736,7 +747,7 @@ int cn_new_tape_source( lua_State *L)
}
-int cn_new_periodic_source( lua_State *L)
+int new_periodic_source( lua_State *L)
{
INTRO_WITH_MODEL("psssbg");
@@ -774,7 +785,7 @@ int cn_new_periodic_source( lua_State *L)
}
-int cn_new_noise_source( lua_State *L)
+int new_noise_source( lua_State *L)
{
INTRO_WITH_MODEL("pssgggs");
@@ -811,7 +822,7 @@ int cn_new_noise_source( lua_State *L)
}
-int cn_get_sources( lua_State *L)
+int get_sources( lua_State *L)
{
INTRO_WITH_MODEL("ps");
@@ -822,7 +833,7 @@ int cn_get_sources( lua_State *L)
}
-int cn_connect_source( lua_State *L)
+int connect_source( lua_State *L)
{
INTRO_WITH_MODEL("pssss");
@@ -846,7 +857,7 @@ int cn_connect_source( lua_State *L)
}
-int cn_disconnect_source( lua_State *L)
+int disconnect_source( lua_State *L)
{
INTRO_WITH_MODEL("pssss");
@@ -872,7 +883,7 @@ int cn_disconnect_source( lua_State *L)
// ----------------------------------------
-int cn_start_listen( lua_State *L)
+int start_listen( lua_State *L)
{
INTRO_WITH_MODEL("pss");
@@ -893,7 +904,7 @@ int cn_start_listen( lua_State *L)
}
-int cn_stop_listen( lua_State *L)
+int stop_listen( lua_State *L)
{
INTRO_WITH_MODEL("pss");
@@ -914,7 +925,7 @@ int cn_stop_listen( lua_State *L)
}
-int cn_start_log_spikes( lua_State *L)
+int start_log_spikes( lua_State *L)
{
INTRO_WITH_MODEL("pss");
@@ -932,7 +943,7 @@ int cn_start_log_spikes( lua_State *L)
}
-int cn_stop_log_spikes( lua_State *L)
+int stop_log_spikes( lua_State *L)
{
INTRO_WITH_MODEL("pss");
@@ -953,48 +964,49 @@ int cn_stop_log_spikes( lua_State *L)
// all together now:
const struct luaL_Reg cnlib [] = {
#define BLOOP(X) {#X, X}
- BLOOP(cn_get_context),
- BLOOP(cn_drop_context),
- BLOOP(cn_new_model),
- BLOOP(cn_delete_model),
- BLOOP(cn_list_models),
- BLOOP(cn_import_nml),
- BLOOP(cn_export_nml),
- BLOOP(cn_reset_model),
- BLOOP(cn_cull_deaf_synapses),
- BLOOP(cn_describe_model),
- BLOOP(cn_get_model_parameter),
- BLOOP(cn_set_model_parameter),
- BLOOP(cn_advance),
- BLOOP(cn_advance_until),
-
- BLOOP(cn_new_neuron),
- BLOOP(cn_new_synapse),
- BLOOP(cn_get_unit_properties),
- BLOOP(cn_get_unit_parameter),
- BLOOP(cn_set_unit_parameter),
- BLOOP(cn_get_unit_vars),
- BLOOP(cn_reset_unit),
-
- BLOOP(cn_get_units_matching),
- BLOOP(cn_get_units_of_type),
- BLOOP(cn_set_matching_neuron_parameter),
- BLOOP(cn_set_matching_synapse_parameter),
- BLOOP(cn_revert_matching_unit_parameters),
- BLOOP(cn_decimate),
- BLOOP(cn_putout),
-
- BLOOP(cn_new_tape_source),
- BLOOP(cn_new_periodic_source),
- BLOOP(cn_new_noise_source),
- BLOOP(cn_get_sources),
- BLOOP(cn_connect_source),
- BLOOP(cn_disconnect_source),
-
- BLOOP(cn_start_listen),
- BLOOP(cn_stop_listen),
- BLOOP(cn_start_log_spikes),
- BLOOP(cn_stop_log_spikes),
+ BLOOP(dump_available_units),
+ BLOOP(get_context),
+ BLOOP(drop_context),
+ BLOOP(new_model),
+ BLOOP(delete_model),
+ BLOOP(list_models),
+ BLOOP(import_nml),
+ BLOOP(export_nml),
+ BLOOP(reset_model),
+ BLOOP(cull_deaf_synapses),
+ BLOOP(describe_model),
+ BLOOP(get_model_parameter),
+ BLOOP(set_model_parameter),
+ BLOOP(advance),
+ BLOOP(advance_until),
+
+ BLOOP(new_neuron),
+ BLOOP(new_synapse),
+ BLOOP(get_unit_properties),
+ BLOOP(get_unit_parameter),
+ BLOOP(set_unit_parameter),
+ BLOOP(get_unit_vars),
+ BLOOP(reset_unit),
+
+ BLOOP(get_units_matching),
+ BLOOP(get_units_of_type),
+ BLOOP(set_matching_neuron_parameter),
+ BLOOP(set_matching_synapse_parameter),
+ BLOOP(revert_matching_unit_parameters),
+ BLOOP(decimate),
+ BLOOP(putout),
+
+ BLOOP(new_tape_source),
+ BLOOP(new_periodic_source),
+ BLOOP(new_noise_source),
+ BLOOP(get_sources),
+ BLOOP(connect_source),
+ BLOOP(disconnect_source),
+
+ BLOOP(start_listen),
+ BLOOP(stop_listen),
+ BLOOP(start_log_spikes),
+ BLOOP(stop_log_spikes),
#undef BLOOP
{NULL, NULL}
};
@@ -1004,13 +1016,13 @@ const struct luaL_Reg cnlib [] = {
extern "C" {
-int luaopen_libcn( lua_State *L)
+int luaopen_cnrun( lua_State *L)
{
#ifdef HAVE_LUA_51
- printf( "register cnlib\n");
+ printf( "register cnrun\n");
luaL_register(L, "cnlib", cnlib);
#else // this must be 5.2
- printf( "newlib cnlib\n");
+ printf( "newlib cnrun\n");
luaL_newlib(L, cnlib);
#endif
return 1;
diff --git a/upstream/src/tools/Makefile.am b/upstream/src/tools/Makefile.am
index c95da44..6fbad79 100644
--- a/upstream/src/tools/Makefile.am
+++ b/upstream/src/tools/Makefile.am
@@ -13,7 +13,6 @@ hh_latency_estimator_SOURCES = \
hh-latency-estimator.cc
hh_latency_estimator_LDADD = \
../libcnrun/libcnrun.la \
- ../libstilton/libstilton.la \
$(LIBCN_LIBS)
hh_latency_estimator_LDFLAAGS = \
-shared
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-med/cnrun.git
More information about the debian-med-commit
mailing list