GithubHelp home page GithubHelp logo

numenta / nupic-legacy Goto Github PK

View Code? Open in Web Editor NEW
6.3K 624.0 1.6K 149.49 MB

Numenta Platform for Intelligent Computing is an implementation of Hierarchical Temporal Memory (HTM), a theory of intelligence based strictly on the neuroscience of the neocortex.

Home Page: http://numenta.org/

License: GNU Affero General Public License v3.0

Shell 0.67% Python 97.59% Ruby 0.04% Smarty 0.94% Cap'n Proto 0.44% PowerShell 0.08% Jupyter Notebook 0.18% Dockerfile 0.06%
neocortex artificial-intelligence machine-intelligence hierarchical-temporal-memory

nupic-legacy's People

Contributors

akamlani avatar akhilaananthram avatar andrewmalta13 avatar baroobob avatar boltzmannbrain avatar breznak avatar chetan51 avatar cogmission avatar csimons avatar hernan-erasmo avatar iandanforth avatar keithcom avatar lscheinkman avatar marionleborgne avatar mihail911 avatar mrcslws avatar natoromano avatar numenta-ci avatar oxtopus avatar passiweinberger avatar rcrowder avatar rhyolight avatar saganbolliger avatar scottpurdy avatar subutai avatar tomsilver avatar utensil avatar vitaly-krugl avatar ywcui1990 avatar zuhaagha avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

nupic-legacy's Issues

Bugs in bin/run_tests.py main()

From @vitaly-krugl:

I came across something confusing in https://github.com/rhyolight/nupic/blob/318c0bf2acbfcbd39670412a1e7a419a0b783f57/bin/run_tests.py:

if options.testlist_file:
  testlist = options.testlist_file.pop()
  if testlist.endswith(".testlist"):
    testlist = [test.strip() for test in open(testlist).readlines()]

  else:
    testlist = options.testlist_file
    testlist.add(testlist)

Two potential issues:
Regarding the if testlist.endswith(".testlist"): what if there is more than one .testlist file in options.testlist_file collected by collect_set?
In the "else" block, what will testlist look like after testlist = options.testlist_file; testlist.add(testlist) ?

10K line limit on stdout reached on Travis

If you have a look at our latest builds, you'll see that we've pushed past the 10K line limit for Travis-CI standard out logging. We need to update our build to suppress some of this stuff. Likely candidates are the test output (other than reports).

deprecate strstream, move to sstring

just removing the Wno-deprecated flag and noticed we use strstream in one place, it's deprecated by stringstream #include <sstream>).

Please grep for the code and replace the logic to use stringstream.
Thanks

provide classes with default simple constructor

It would be nice for newcomers experimenting with the code to have a parameter-less (or very simple) constructor. So we can quickly create instances and see what the code does.

Candidates would be: encoders, SP, TP, ..

Example: for ScalarEncoder add class SimpleScalar()
these classes would not definitely aim at being universal, but provide a quick "just works" feeling.

specify inference prediction mode

this is the inference from a CLA model:

inferences={'multiStepPredictions': {1: {' ': 0.10752303817523941, 'd': 0.052458887607816695, 'k': 0.011330232099974023, 'o': 0.50756692995144603, 'n': 0.0089989879948891606, 'u': 0.01053316578453067, 't': 0.24157061973598074, 'w': 0.034561507940040169}, 2: {' ': 0.27624662890789442, 'e': 0.015969342441362618, 'd': 0.49626997727976069, 'h': 0.073529901224115832, 'k': 0.013109036719167027, 's': 0.021600564170711989, 'u': 0.051783078882733299, 't': 0.027674769881624189}, 3: {'a': 0.022746357405186386, ' ': 0.52732619582292772, 'b': 0.022237612510335167, 'e': 0.088318765204760799, 'g': 0.051783078882733292, 'h': 0.12037265126127021, 't': 0.062972212201150152, 'w': 0.032535038521023914}, 4: {'a': 0.052400548396025926, ' ': 0.038977356930468526, 'e': 0.11445168826292369, 'i': 0.07186521687786665, 'l': 0.058300716877000849, 'r': 0.08314663138355996, 'u': 0.01959976499973181, 't': 0.49193652310871461}, 5: {' ': 0.14666125810681566, 'e': 0.04414014445895658, 'i': 0.50030481794623838, 'm': 0.057771768008402224, 'l': 0.028333601452746288, 'n': 0.029836747626371164, 'v': 0.023560858681181018, 'y': 0.051783078882733306}}, 'multiStepBestPredictions': {1: 'o', 2: 'd', 3: ' ', 4: 't', 5: 'i'}, 'prediction': ['o'], 'encodings': [array([ 0., 0., 1., 0., 0., 1., 0., 0., 0., 0., 0., 0., 0.,

I'm working with the 'prediction' field. Currently, it's the field with the highest probability in 1st step. (=1-best), I'd like to add functionality (to model.py? and to the OPF parser of description.py?) to be able to specify prediction type: 1-best, PDF.

With PDF, we'd sample with probability distribution function, so "randomized" with weighted probabilities.

This feature would be useful for me and I believe in general.

Resolution on unsigned >= 0 checks

enabled in -Wextra, for GCC:
comparison of unsigned expression >= 0 is always true [-Wtype-limits]

or on Clang: tautological compare warning.

We have NTA_CHECK( 0 <= var && var <= MAX) << "var is out of range! " serving as a gate. However the var is set to dattype unsigned int hence the warning. My question is: remove the var >= 0 condition and assume (IFF) someone decides to change var's type to signed to take care of the checking? Or we want to keep this, and place surpress #pragma to each relevant occurence? Or we just keep ignoring and mute Wtype-limits?

Remove LPF Tests/Code

We are still running/maintaining a lot of tests that use the LPF to run experiments. The LPF should be considered deprecated.

  1. Remove all the tests that rely on the LPF (ex. opflpfcomparisontest). If it seems like these tests are testing functionality that isn't covered by other tests, we should write new tests to cover this functionality
  2. Remove the corresponding LPF code as the tests are removed

JIRA

Filter PRs by dest branch (GH interface)

would it be possible to filter the list of shown PRs by destiation branch (gh-pages, master)? Sometimes I want to review closed PRs to see what's new in the source...

TestSPFrequency.testCategory test failure in Vagrant VM

Environment:

Lubuntu 13.10 64bit
Virtualbox 4.3.2
Vagrant 1.3.5

Test failure:

=================================== FAILURES ===================================
_________________________ TestSPFrequency.testCategory _________________________
self = <tests.unit.py2.nupic.algorithms.sp_overlap_test.TestSPFrequency testMethod=testCategory>

See this thread for context.

Duplicate build artifacts uploaded to S3

At the end of a Travis-CI build, the results are tarred, gzipped, and uploaded to S3. The filename is derived from the travis commit sha, which is shared for all four of the builds, accounting for python 2.6, python 2.7, gcc, and clang. We should derive the filename, or S3 key from the matrix of parameters that result in multiple builds.

For example:

nupic-linux64-$TRAVIS_COMMIT-$TRAVIS_PYTHON_VERSION-$CC.tar.gz

Establish a release process and versioning strategy for nupic

NuPIC needs to start a release process, even if we begin with "alpha", "beta", etc. We need to get a process going to we can start to think about proper releasing. The first step is to prepare a release road map so everyone can see and discuss what issues should go in what release candidates.

First, we'll attempt to version the nupic repository, ignoring the details of nupic.core's separate versioning. The nupic.core version numbers will be independent of nupic, and will come later.


Evaluate options for a language-independent checkpoint/serialization format for the CLA

The current CLA model checkpoint uses the pickle module. As we move towards multiple language support and more external model sharing, we should define a language-independent format for serializing the CLA.

The major objectives for this would be cross-language implementation (i.e. we don't have to create serialize functions separately for each language), speed, checkpoint size, and ease of development and versioning.

Status

  • Protocol Buffers - The most mature. Has implementations in many languages.
  • Cap'n Proto - Has C++11 and Python implementations. Has speed advantages and potentially future ability for mmap. Much less mature than Protocol Buffers but seems better designed and has active development.
  • Rejected Flat Buffers - From Google, similar in spirit to Capn Proto but less mature. Probably not as good as Capn Proto as it has a pretty specific use case driving the implementation details. Also has no Python implementation.
  • Rejected Some form of binary JSON (MessagePack, BJSON) - Rejected because these options don't have easy backwards compatibility.
  • Rejected Thrift - Rejected. Inferior to Protocol Buffers, more difficult to use.

missing deactivate from virtualenv - nupic-linux64

@oxtopus I need to run virtualenv to get proper version of python, to quit from there it provides deactivate (shell function? it's not a file). Yet, if I run source nupic-linux64/bin/activate in there to get to use this repo, the deactivate works only once (get's me out of nupic-linux64 env..probably?), and I'm stuck in the python env w/o any means to exit. I need to close whole shell session.

Should nupic-linux64 provide it's own version of deactivate, so these stack up and i have 1 for nupic-linux64 and 1 for python env?

Thanks!

should not change $NTA when set

I have $NTA set to ~/nta/eng in all shells from .bashrc,
sourcing nupic-linux64/bin/activate however changes it to nupic-linux64/nta/eng . I think that should be avoided if set (and used only as a fallback default)

Establish a community-managed VM solution

We need a community-managed VM that contains NuPIC already installed with all dependencies, ready to run. All tests should run and pass, including swarming. This should include documentation about how to run the VM from scratch, as well as the latest commit SHA of NuPIC it has been tested with.

Ideally, a newbie from any environment should be able to get NuPIC up-and-running, with all tests passing and sample apps running, within an hour in a VM (hopefully less!). Organized documentation and a drop-dead simple installation is extremely important.

Build fails on MacOS: ERROR collect2: ld returned 1 exit status

@oxtopus?

I am using python 2.7.2. I just synced up to the latest (at b978877) and attempted to build nupic several times, but get this build error almost immediately:

Last login: Mon Oct 21 18:28:33 on ttys001
vkruglikov@vkruglikovs-MacBook-Pro:~$ cd nta
vkruglikov@vkruglikovs-MacBook-Pro:~/nta$ source nupic-darwin64/bin/activate
NuPIC environment
=================
BUILDDIR=/tmp/ntabuild
DYLD_LIBRARY_PATH=/Users/vkruglikov/nta/nupic-darwin64/nta/eng/lib:/Users/vkruglikov/nta/nupic-darwin64/lib64:/Users/vkruglikov/nta/nupic-darwin64/lib:/Users/vkruglikov/nta/nupic-darwin64/lib64:/Users/vkruglikov/nta/nupic-darwin64/lib:/Users/vkruglikov/nta/nupic-darwin64/nta/eng/lib:/Users/vkruglikov/nta/nupic-darwin64/lib64:/Users/vkruglikov/nta/nupic-darwin64/lib:
LD_LIBRARY_PATH=/Users/vkruglikov/nta/nupic-darwin64/nta/eng/lib:/Users/vkruglikov/nta/nupic-darwin64/lib64:/Users/vkruglikov/nta/nupic-darwin64/lib:/Users/vkruglikov/nta/nupic-darwin64/nta/eng/lib:/Users/vkruglikov/nta/nupic-darwin64/lib64:/Users/vkruglikov/nta/nupic-darwin64/lib:
MK_JOBS=
NUPIC=/Users/vkruglikov/nta/nupic
NTA=/Users/vkruglikov/nta/nupic-darwin64/nta/eng
PATH=/Users/vkruglikov/nta/nupic-darwin64/nta/eng/bin:/Users/vkruglikov/nta/nupic-darwin64/bin:/System/Library/Frameworks/Python.framework/Versions/Current/bin:/Users/vkruglikov/Library/Python/2.7/bin:/bin:/usr/local/bin:/usr/bin:/usr/sbin:/sbin:/usr/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin
PYTHONPATH=/Users/vkruglikov/nta/nupic-darwin64/nta/eng/lib/python2.7/site-packages:/Users/vkruglikov/nta/nupic-darwin64/lib64/python2.7/site-packages:/Users/vkruglikov/nta/nupic-darwin64/lib/python2.7/site-packages:/Users/vkruglikov/Packages/Cython-0.15.1:/Users/vkruglikov/nta/nupic-darwin64/nta/eng/lib/python2.7/site-packages:/Users/vkruglikov/nta/nupic-darwin64/lib64/python2.7/site-packages:/Users/vkruglikov/nta/nupic-darwin64/lib/python2.7/site-packages:

vkruglikov@vkruglikovs-MacBook-Pro:~/nta$ $NUPIC/build.sh
Undefined symbols for architecture x86_64:
  "std::basic_string<char, std::char_traits<char>, std::allocator<char> >::find_last_of(char const*, unsigned long, unsigned long) const", referenced from:
      nta::Path::getBasename(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)in libos.a(libos_a-Path.o)
      nta::Path::makeAbsolute(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)in libos.a(libos_a-Path.o)
  "std::basic_string<char, std::char_traits<char>, std::allocator<char> >::find_first_of(char const*, unsigned long, unsigned long) const", referenced from:
      nta::Path::makeAbsolute(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)in libos.a(libos_a-Path.o)
  "std::basic_string<char, std::char_traits<char>, std::allocator<char> >::find_last_not_of(char, unsigned long) const", referenced from:
      YAML::ScanScalar(YAML::Stream&, YAML::ScanScalarParams&)  in libyaml.a(scanscalar.o)
  "std::basic_string<char, std::char_traits<char>, std::allocator<char> >::end() const", referenced from:
      YAML::Utils::WriteComment(YAML::ostream&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int)in libyaml.a(emitterutils.o)
      YAML::Utils::WriteLiteralString(YAML::ostream&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int)in libyaml.a(emitterutils.o)
      YAML::Utils::WriteDoubleQuotedString(YAML::ostream&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool)in libyaml.a(emitterutils.o)
      YAML::Utils::WriteSingleQuotedString(YAML::ostream&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)in libyaml.a(emitterutils.o)
      YAML::Utils::(anonymous namespace)::WriteAliasName(YAML::ostream&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)in libyaml.a(emitterutils.o)
  "std::basic_string<char, std::char_traits<char>, std::allocator<char> >::find(char const*, unsigned long, unsigned long) const", referenced from:
      nta::StringUtils::startsWith(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, 

...

  "std::basic_filebuf<char, std::char_traits<char> >::~basic_filebuf()", referenced from:
      nta::Path::copy(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)in libos.a(libos_a-Path.o)
      nta::IFStream::~IFStream()in libos.a(libos_a-Path.o)
      nta::IFStream::~IFStream()in libntypes.a(libntypes_a-BundleIO.o)
  "std::runtime_error::runtime_error(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)", referenced from:
      _main in htmtest-htmtest.o
      nta::StringUtils::toIntList(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::vector<int, std::allocator<int> >&, bool, bool)in libutils.a(libutils_a-StringUtils.o)
      YAML::Node::Clone() constin libyaml.a(node.o)
      nta::YAMLUtils::toValueMap(char const*, nta::Collection<nta::ParameterSpec>&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)in libengine.a(libengine_a-YAMLUtils.o)
      nta::VectorFile::appendFloat32File(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned long, bool)in libregions.a(libregions_a-VectorFile.o)
      nta::VectorFile::appendIDXFile(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int, bool)in libregions.a(libregions_a-VectorFile.o)
      nta::VectorFile::saveVectors(std::basic_ostream<char, std::char_traits<char> >&, unsigned long, unsigned int, long, long, char const*)in libregions.a(libregions_a-VectorFile.o)
      ...
  "std::runtime_error::runtime_error(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)", referenced from:
      nta::LoggingException::LoggingException(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned int)in htmtest-htmtest.o
      nta::LoggingException::LoggingException(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned int)in libntypes.a(libntypes_a-Dimensions.o)
      nta::LoggingException::LoggingException(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned int)in libos.a(libos_a-OS.o)
      nta::LoggingException::LoggingException(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned int)in libengine.a(libengine_a-NuPIC.o)
      nta::LoggingException::LoggingException(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned int)in libengine.a(libengine_a-Region_io.o)
      nta::LoggingException::LoggingException(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned int)in libengine.a(libengine_a-Region.o)
      nta::LoggingException::LoggingException(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned int)in libengine.a(libengine_a-Region_parameters.o)
      ...
  "std::runtime_error::~runtime_error()", referenced from:
      _main in htmtest-htmtest.o
      nta::StringUtils::toIntList(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::vector<int, std::allocator<int> >&, bool, bool)in libutils.a(libutils_a-StringUtils.o)
      YAML::Node::Clone() constin libyaml.a(node.o)
      nta::YAMLUtils::toValueMap(char const*, nta::Collection<nta::ParameterSpec>&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)in libengine.a(libengine_a-YAMLUtils.o)
      nta::VectorFile::appendFloat32File(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned long, bool)in libregions.a(libregions_a-VectorFile.o)
      nta::VectorFile::appendIDXFile(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int, bool)in libregions.a(libregions_a-VectorFile.o)
      nta::VectorFile::saveVectors(std::basic_ostream<char, std::char_traits<char> >&, unsigned long, unsigned int, long, long, char const*)in libregions.a(libregions_a-VectorFile.o)
      ...
  "std::runtime_error::~runtime_error()", referenced from:
      nta::Exception::~Exception()in htmtest-htmtest.o
      nta::LoggingException::LoggingException(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned int)in htmtest-htmtest.o
      nta::Exception::~Exception()in htmtest-htmtest.o
      nta::LoggingException::LoggingException(nta::LoggingException const&)in htmtest-htmtest.o
      nta::Dimensions::promote(unsigned long)in libntypes.a(libntypes_a-Dimensions.o)
      nta::Dimensions::getIndex(std::vector<unsigned long, std::allocator<unsigned long> > const&) constin libntypes.a(libntypes_a-Dimensions.o)
      nta::Dimensions::getDimension(unsigned long) constin libntypes.a(libntypes_a-Dimensions.o)
      ...
  "std::basic_ifstream<char, std::char_traits<char> >::~basic_ifstream()", referenced from:
      construction vtable for std::basic_ifstream<char, std::char_traits<char> >-in-nta::IFStreamin libos.a(libos_a-Path.o)
      construction vtable for std::basic_ifstream<char, std::char_traits<char> >-in-nta::IFStreamin libntypes.a(libntypes_a-BundleIO.o)
      construction vtable for std::basic_ifstream<char, std::char_traits<char> >-in-nta::IFStreamin libregions.a(libregions_a-VectorFile.o)
  "std::basic_ifstream<char, std::char_traits<char> >::~basic_ifstream()", referenced from:
      construction vtable for std::basic_ifstream<char, std::char_traits<char> >-in-nta::IFStreamin libos.a(libos_a-Path.o)
      construction vtable for std::basic_ifstream<char, std::char_traits<char> >-in-nta::IFStreamin libntypes.a(libntypes_a-BundleIO.o)
      construction vtable for std::basic_ifstream<char, std::char_traits<char> >-in-nta::IFStreamin libregions.a(libregions_a-VectorFile.o)
  "std::basic_ofstream<char, std::char_traits<char> >::~basic_ofstream()", referenced from:
      construction vtable for std::basic_ofstream<char, std::char_traits<char> >-in-nta::OFStreamin libengine.a(libengine_a-Network.o)
      construction vtable for std::basic_ofstream<char, std::char_traits<char> >-in-nta::OFStreamin libos.a(libos_a-Path.o)
      construction vtable for std::basic_ofstream<char, std::char_traits<char> >-in-nta::OFStreamin libntypes.a(libntypes_a-BundleIO.o)
      construction vtable for std::basic_ofstream<char, std::char_traits<char> >-in-nta::OFStreamin libregions.a(libregions_a-VectorFileSensor.o)
      construction vtable for std::basic_ofstream<char, std::char_traits<char> >-in-nta::OFStreamin libregions.a(libregions_a-VectorFileEffector.o)
  "std::basic_ofstream<char, std::char_traits<char> >::~basic_ofstream()", referenced from:
      construction vtable for std::basic_ofstream<char, std::char_traits<char> >-in-nta::OFStreamin libengine.a(libengine_a-Network.o)
      construction vtable for std::basic_ofstream<char, std::char_traits<char> >-in-nta::OFStreamin libos.a(libos_a-Path.o)
      construction vtable for std::basic_ofstream<char, std::char_traits<char> >-in-nta::OFStreamin libntypes.a(libntypes_a-BundleIO.o)
      construction vtable for std::basic_ofstream<char, std::char_traits<char> >-in-nta::OFStreamin libregions.a(libregions_a-VectorFileSensor.o)
      construction vtable for std::basic_ofstream<char, std::char_traits<char> >-in-nta::OFStreamin libregions.a(libregions_a-VectorFileEffector.o)
  "std::basic_streambuf<char, std::char_traits<char> >::sync()", referenced from:
      vtable for nta::BasicOMemStreamBuf<char, std::char_traits<char>, std::allocator<char> >in libregions.a(libregions_a-SpatialPoolerNode.o)
      vtable for nta::BasicOMemStreamBuf<char, std::char_traits<char>, std::allocator<char> >in libengine.a(libengine_a-RegionImpl.o)
      vtable for nta::BasicIMemStreamBuf<char, std::char_traits<char>, std::allocator<char> >in libengine.a(libengine_a-RegionImpl.o)
      vtable for nta::BasicOMemStreamBuf<char, std::char_traits<char>, std::allocator<char> >in libalgorithms.a(libalgorithms_a-SparsePooler.o)
      vtable for nta::BasicIMemStreamBuf<char, std::char_traits<char>, std::allocator<char> >in libntypes.a(libntypes_a-Buffer.o)
      vtable for nta::BasicOMemStreamBuf<char, std::char_traits<char>, std::allocator<char> >in libntypes.a(libntypes_a-Buffer.o)
  "std::basic_streambuf<char, std::char_traits<char> >::imbue(std::locale const&)", referenced from:
      vtable for nta::BasicOMemStreamBuf<char, std::char_traits<char>, std::allocator<char> >in libregions.a(libregions_a-SpatialPoolerNode.o)
      vtable for nta::BasicOMemStreamBuf<char, std::char_traits<char>, std::allocator<char> >in libengine.a(libengine_a-RegionImpl.o)
      vtable for nta::BasicIMemStreamBuf<char, std::char_traits<char>, std::allocator<char> >in libengine.a(libengine_a-RegionImpl.o)
      vtable for nta::BasicOMemStreamBuf<char, std::char_traits<char>, std::allocator<char> >in libalgorithms.a(libalgorithms_a-SparsePooler.o)
      vtable for nta::BasicIMemStreamBuf<char, std::char_traits<char>, std::allocator<char> >in libntypes.a(libntypes_a-Buffer.o)
      vtable for nta::BasicOMemStreamBuf<char, std::char_traits<char>, std::allocator<char> >in libntypes.a(libntypes_a-Buffer.o)
  "std::basic_streambuf<char, std::char_traits<char> >::sgetn(char*, long)", referenced from:
      YAML::Stream::GetNextByte() constin libyaml.a(stream.o)
  "std::basic_streambuf<char, std::char_traits<char> >::uflow()", referenced from:
      vtable for nta::BasicOMemStreamBuf<char, std::char_traits<char>, std::allocator<char> >in libregions.a(libregions_a-SpatialPoolerNode.o)
      vtable for nta::BasicOMemStreamBuf<char, std::char_traits<char>, std::allocator<char> >in libengine.a(libengine_a-RegionImpl.o)
      vtable for nta::BasicIMemStreamBuf<char, std::char_traits<char>, std::allocator<char> >in libengine.a(libengine_a-RegionImpl.o)
      vtable for nta::BasicOMemStreamBuf<char, std::char_traits<char>, std::allocator<char> >in libalgorithms.a(libalgorithms_a-SparsePooler.o)
      vtable for nta::BasicIMemStreamBuf<char, std::char_traits<char>, std::allocator<char> >in libntypes.a(libntypes_a-Buffer.o)
      vtable for nta::BasicOMemStreamBuf<char, std::char_traits<char>, std::allocator<char> >in libntypes.a(libntypes_a-Buffer.o)
  "std::basic_streambuf<char, std::char_traits<char> >::setbuf(char*, long)", referenced from:
      vtable for nta::BasicOMemStreamBuf<char, std::char_traits<char>, std::allocator<char> >in libregions.a(libregions_a-SpatialPoolerNode.o)
      vtable for nta::BasicOMemStreamBuf<char, std::char_traits<char>, std::allocator<char> >in libengine.a(libengine_a-RegionImpl.o)
      vtable for nta::BasicIMemStreamBuf<char, std::char_traits<char>, std::allocator<char> >in libengine.a(libengine_a-RegionImpl.o)
      vtable for nta::BasicOMemStreamBuf<char, std::char_traits<char>, std::allocator<char> >in libalgorithms.a(libalgorithms_a-SparsePooler.o)
      vtable for nta::BasicIMemStreamBuf<char, std::char_traits<char>, std::allocator<char> >in libntypes.a(libntypes_a-Buffer.o)
      vtable for nta::BasicOMemStreamBuf<char, std::char_traits<char>, std::allocator<char> >in libntypes.a(libntypes_a-Buffer.o)
  "std::basic_streambuf<char, std::char_traits<char> >::xsgetn(char*, long)", referenced from:
      vtable for nta::BasicOMemStreamBuf<char, std::char_traits<char>, std::allocator<char> >in libregions.a(libregions_a-SpatialPoolerNode.o)
      vtable for nta::BasicOMemStreamBuf<char, std::char_traits<char>, std::allocator<char> >in libengine.a(libengine_a-RegionImpl.o)
      vtable for nta::BasicIMemStreamBuf<char, std::char_traits<char>, std::allocator<char> >in libengine.a(libengine_a-RegionImpl.o)
      vtable for nta::BasicOMemStreamBuf<char, std::char_traits<char>, std::allocator<char> >in libalgorithms.a(libalgorithms_a-SparsePooler.o)
      vtable for nta::BasicIMemStreamBuf<char, std::char_traits<char>, std::allocator<char> >in libntypes.a(libntypes_a-Buffer.o)
      vtable for nta::BasicOMemStreamBuf<char, std::char_traits<char>, std::allocator<char> >in libntypes.a(libntypes_a-Buffer.o)
  "std::basic_streambuf<char, std::char_traits<char> >::xsputn(char const*, long)", referenced from:
      vtable for nta::BasicOMemStreamBuf<char, std::char_traits<char>, std::allocator<char> >in libregions.a(libregions_a-SpatialPoolerNode.o)
      vtable for nta::BasicOMemStreamBuf<char, std::char_traits<char>, std::allocator<char> >in libengine.a(libengine_a-RegionImpl.o)
      vtable for nta::BasicIMemStreamBuf<char, std::char_traits<char>, std::allocator<char> >in libengine.a(libengine_a-RegionImpl.o)
      vtable for nta::BasicOMemStreamBuf<char, std::char_traits<char>, std::allocator<char> >in libalgorithms.a(libalgorithms_a-SparsePooler.o)
      vtable for nta::BasicIMemStreamBuf<char, std::char_traits<char>, std::allocator<char> >in libntypes.a(libntypes_a-Buffer.o)
      vtable for nta::BasicOMemStreamBuf<char, std::char_traits<char>, std::allocator<char> >in libntypes.a(libntypes_a-Buffer.o)
  "std::basic_streambuf<char, std::char_traits<char> >::seekoff(long long, std::_Ios_Seekdir, std::_Ios_Openmode)", referenced from:
      vtable for nta::BasicOMemStreamBuf<char, std::char_traits<char>, std::allocator<char> >in libregions.a(libregions_a-SpatialPoolerNode.o)
      vtable for nta::BasicOMemStreamBuf<char, std::char_traits<char>, std::allocator<char> >in libengine.a(libengine_a-RegionImpl.o)
      vtable for nta::BasicIMemStreamBuf<char, std::char_traits<char>, std::allocator<char> >in libengine.a(libengine_a-RegionImpl.o)
      vtable for nta::BasicOMemStreamBuf<char, std::char_traits<char>, std::allocator<char> >in libalgorithms.a(libalgorithms_a-SparsePooler.o)
      vtable for nta::BasicIMemStreamBuf<char, std::char_traits<char>, std::allocator<char> >in libntypes.a(libntypes_a-Buffer.o)
      vtable for nta::BasicOMemStreamBuf<char, std::char_traits<char>, std::allocator<char> >in libntypes.a(libntypes_a-Buffer.o)
  "std::basic_streambuf<char, std::char_traits<char> >::seekpos(std::fpos<__mbstate_t>, std::_Ios_Openmode)", referenced from:
      vtable for nta::BasicOMemStreamBuf<char, std::char_traits<char>, std::allocator<char> >in libregions.a(libregions_a-SpatialPoolerNode.o)
      vtable for nta::BasicOMemStreamBuf<char, std::char_traits<char>, std::allocator<char> >in libengine.a(libengine_a-RegionImpl.o)
      vtable for nta::BasicIMemStreamBuf<char, std::char_traits<char>, std::allocator<char> >in libengine.a(libengine_a-RegionImpl.o)
      vtable for nta::BasicOMemStreamBuf<char, std::char_traits<char>, std::allocator<char> >in libalgorithms.a(libalgorithms_a-SparsePooler.o)
      vtable for nta::BasicIMemStreamBuf<char, std::char_traits<char>, std::allocator<char> >in libntypes.a(libntypes_a-Buffer.o)
      vtable for nta::BasicOMemStreamBuf<char, std::char_traits<char>, std::allocator<char> >in libntypes.a(libntypes_a-Buffer.o)
  "std::basic_streambuf<char, std::char_traits<char> >::overflow(int)", referenced from:
      vtable for nta::BasicIMemStreamBuf<char, std::char_traits<char>, std::allocator<char> >in libengine.a(libengine_a-RegionImpl.o)
      vtable for nta::BasicIMemStreamBuf<char, std::char_traits<char>, std::allocator<char> >in libntypes.a(libntypes_a-Buffer.o)
  "std::basic_streambuf<char, std::char_traits<char> >::pbackfail(int)", referenced from:
      vtable for nta::BasicOMemStreamBuf<char, std::char_traits<char>, std::allocator<char> >in libregions.a(libregions_a-SpatialPoolerNode.o)
      vtable for nta::BasicOMemStreamBuf<char, std::char_traits<char>, std::allocator<char> >in libengine.a(libengine_a-RegionImpl.o)
      vtable for nta::BasicIMemStreamBuf<char, std::char_traits<char>, std::allocator<char> >in libengine.a(libengine_a-RegionImpl.o)
      vtable for nta::BasicOMemStreamBuf<char, std::char_traits<char>, std::allocator<char> >in libalgorithms.a(libalgorithms_a-SparsePooler.o)
      vtable for nta::BasicIMemStreamBuf<char, std::char_traits<char>, std::allocator<char> >in libntypes.a(libntypes_a-Buffer.o)
      vtable for nta::BasicOMemStreamBuf<char, std::char_traits<char>, std::allocator<char> >in libntypes.a(libntypes_a-Buffer.o)
  "std::basic_streambuf<char, std::char_traits<char> >::showmanyc()", referenced from:
      vtable for nta::BasicOMemStreamBuf<char, std::char_traits<char>, std::allocator<char> >in libregions.a(libregions_a-SpatialPoolerNode.o)
      vtable for nta::BasicOMemStreamBuf<char, std::char_traits<char>, std::allocator<char> >in libengine.a(libengine_a-RegionImpl.o)
      vtable for nta::BasicIMemStreamBuf<char, std::char_traits<char>, std::allocator<char> >in libengine.a(libengine_a-RegionImpl.o)
      vtable for nta::BasicOMemStreamBuf<char, std::char_traits<char>, std::allocator<char> >in libalgorithms.a(libalgorithms_a-SparsePooler.o)
      vtable for nta::BasicIMemStreamBuf<char, std::char_traits<char>, std::allocator<char> >in libntypes.a(libntypes_a-Buffer.o)
      vtable for nta::BasicOMemStreamBuf<char, std::char_traits<char>, std::allocator<char> >in libntypes.a(libntypes_a-Buffer.o)
  "std::basic_streambuf<char, std::char_traits<char> >::underflow()", referenced from:
      vtable for nta::BasicOMemStreamBuf<char, std::char_traits<char>, std::allocator<char> >in libregions.a(libregions_a-SpatialPoolerNode.o)
      vtable for nta::BasicOMemStreamBuf<char, std::char_traits<char>, std::allocator<char> >in libengine.a(libengine_a-RegionImpl.o)
      vtable for nta::BasicIMemStreamBuf<char, std::char_traits<char>, std::allocator<char> >in libengine.a(libengine_a-RegionImpl.o)
      vtable for nta::BasicOMemStreamBuf<char, std::char_traits<char>, std::allocator<char> >in libalgorithms.a(libalgorithms_a-SparsePooler.o)
      vtable for nta::BasicIMemStreamBuf<char, std::char_traits<char>, std::allocator<char> >in libntypes.a(libntypes_a-Buffer.o)
      vtable for nta::BasicOMemStreamBuf<char, std::char_traits<char>, std::allocator<char> >in libntypes.a(libntypes_a-Buffer.o)
  "std::basic_stringbuf<char, std::char_traits<char>, std::allocator<char> >::_M_sync(char*, unsigned long, unsigned long)", referenced from:
      nta::VectorFile::appendFile(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned long, unsigned int)in libregions.a(libregions_a-VectorFile.o)
  "std::invalid_argument::invalid_argument(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)", referenced from:
      nta::ZLib::fopen(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> >*)in libos.a(libos_a-FStream.o)
  "std::basic_stringstream<char, std::char_traits<char>, std::allocator<char> >::basic_stringstream(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::_Ios_Openmode)", referenced from:
      _main in htmtest-htmtest.o
      nta::LoggingException::LoggingException(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned int)in htmtest-htmtest.o
      nta::LoggingException::LoggingException(nta::LoggingException const&)in htmtest-htmtest.o
      nta::Dimensions::promote(unsigned long)in libntypes.a(libntypes_a-Dimensions.o)
      nta::Dimensions::getIndex(std::vector<unsigned long, std::allocator<unsigned long> > const&) constin libntypes.a(libntypes_a-Dimensions.o)
      nta::Dimensions::getDimension(unsigned long) constin libntypes.a(libntypes_a-Dimensions.o)
      nta::Dimensions::getCount() constin libntypes.a(libntypes_a-Dimensions.o)
      ...
  "std::basic_stringstream<char, std::char_traits<char>, std::allocator<char> >::basic_stringstream(std::_Ios_Openmode)", referenced from:
      nta::Network::saveToBundle(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)in libengine.a(libengine_a-Network.o)
      nta::Network::initialize()     in libengine.a(libengine_a-Network.o)
      nta::Network::loadFromBundle(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)in libengine.a(libengine_a-Network.o)
      void YAML::operator>><std::basic_string<char, std::char_traits<char>, std::allocator<char> > >(YAML::Node const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> >&)in libengine.a(libengine_a-Network.o)
      YAML::Exception::Exception(YAML::Mark const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)in libyaml.a(node.o)
      YAML::Exception::Exception(YAML::Mark const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)in libyaml.a(parser.o)
      YAML::Exception::Exception(YAML::Mark const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)in libyaml.a(iterator.o)
      ...
  "std::basic_stringstream<char, std::char_traits<char>, std::allocator<char> >::~basic_stringstream()", referenced from:
      nta::Dimensions::getIndex(std::vector<unsigned long, std::allocator<unsigned long> > const&) constin libntypes.a(libntypes_a-Dimensions.o)
      nta::Dimensions::getDimension(unsigned long) constin libntypes.a(libntypes_a-Dimensions.o)
      nta::Dimensions::getCount() constin libntypes.a(libntypes_a-Dimensions.o)
      nta::LoggingException::~LoggingException()in libutils.a(libutils_a-LoggingException.o)
      nta::LoggingException::~LoggingException()in libutils.a(libutils_a-LoggingException.o)
      nta::Region::getInputCount(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) constin libengine.a(libengine_a-Region_io.o)
      nta::Network::saveToBundle(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)in libengine.a(libengine_a-Network.o)
      ...
  "std::basic_istringstream<char, std::char_traits<char>, std::allocator<char> >::basic_istringstream(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::_Ios_Openmode)", referenced from:
      nta::StringUtils::toInt32(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool, bool*)in libutils.a(libutils_a-StringUtils.o)
      nta::StringUtils::toUInt64(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool, bool*)in libutils.a(libutils_a-StringUtils.o)
      nta::StringUtils::toUInt32(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool, bool*)in libutils.a(libutils_a-StringUtils.o)
      nta::StringUtils::toSizeT(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool, bool*)in libutils.a(libutils_a-StringUtils.o)
      nta::StringUtils::toReal32(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool, bool*)in libutils.a(libutils_a-StringUtils.o)
  "std::basic_istringstream<char, std::char_traits<char>, std::allocator<char> >::~basic_istringstream()", referenced from:
      nta::StringUtils::toInt32(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool, bool*)in libutils.a(libutils_a-StringUtils.o)
      nta::StringUtils::toUInt64(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool, bool*)in libutils.a(libutils_a-StringUtils.o)
      nta::StringUtils::toUInt32(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool, bool*)in libutils.a(libutils_a-StringUtils.o)
      nta::StringUtils::toReal32(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool, bool*)in libutils.a(libutils_a-StringUtils.o)
  "std::basic_ostringstream<char, std::char_traits<char>, std::allocator<char> >::basic_ostringstream(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::_Ios_Openmode)", referenced from:
      nta::LogItem::LogItem(char const*, int, nta::LogItem::LogLevel)in libutils.a(libutils_a-LogItem.o)
  "std::locale::locale()", referenced from:
      vecToString(std::vector<unsigned long, std::allocator<unsigned long> >)in libntypes.a(libntypes_a-Dimensions.o)
      nta::Region::getLinkErrors() constin libengine.a(libengine_a-Region.o)
      nta::Spec::toString() constin libengine.a(libengine_a-Spec.o)
      nta::Input::evaluateLinks()     in libengine.a(libengine_a-Input.o)
      nta::StringUtils::fromInt(long long)in libutils.a(libutils_a-StringUtils.o)
      nta::Link::toString() constin libengine.a(libengine_a-Link.o)
      nta::Timer::toString() constin libos.a(libos_a-Timer.o)
      ...
  "std::locale::~locale()", referenced from:
      _main in htmtest-htmtest.o
      nta::LoggingException::LoggingException(nta::LoggingException const&)in htmtest-htmtest.o
      vecToString(std::vector<unsigned long, std::allocator<unsigned long> >)in libntypes.a(libntypes_a-Dimensions.o)
      nta::Dimensions::promote(unsigned long)in libntypes.a(libntypes_a-Dimensions.o)
      nta::Dimensions::getCount() constin libntypes.a(libntypes_a-Dimensions.o)
      nta::OS::getProcessMemoryUsage(unsigned long&, unsigned long&)in libos.a(libos_a-OS.o)
      nta::NuPIC::unregisterNetwork(nta::Network*)    in libengine.a(libengine_a-NuPIC.o)
      ...
  "std::ios_base::Init::Init()", referenced from:
      __static_initialization_and_destruction_0(int, int)in htmtest-htmtest.o
      __static_initialization_and_destruction_0(int, int)in libntypes.a(libntypes_a-Dimensions.o)
      __static_initialization_and_destruction_0(int, int)in libutils.a(libutils_a-LoggingException.o)
      __static_initialization_and_destruction_0(int, int)in libos.a(libos_a-OS.o)
      __static_initialization_and_destruction_0(int, int)in libengine.a(libengine_a-NuPIC.o)
      __static_initialization_and_destruction_0(int, int)in libengine.a(libengine_a-Region_io.o)
      __static_initialization_and_destruction_0(int, int)in libengine.a(libengine_a-Region.o)
      ...
  "std::ios_base::Init::~Init()", referenced from:
      ___tcf_0 in htmtest-htmtest.o
      ___tcf_0 in libntypes.a(libntypes_a-Dimensions.o)
      ___tcf_0 in libutils.a(libutils_a-LoggingException.o)
      ___tcf_0 in libos.a(libos_a-OS.o)
      ___tcf_0 in libengine.a(libengine_a-NuPIC.o)
      ___tcf_0 in libengine.a(libengine_a-Region_io.o)
      ___tcf_0 in libengine.a(libengine_a-Region.o)
      ...
  "std::ios_base::ios_base()", referenced from:
      vecToString(std::vector<unsigned long, std::allocator<unsigned long> >)in libntypes.a(libntypes_a-Dimensions.o)
      nta::Region::getLinkErrors() constin libengine.a(libengine_a-Region.o)
      nta::Network::saveToBundle(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)in libengine.a(libengine_a-Network.o)
      nta::Network::loadFromBundle(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)in libengine.a(libengine_a-Network.o)
      nta::Spec::toString() constin libengine.a(libengine_a-Spec.o)
      nta::Input::evaluateLinks()     in libengine.a(libengine_a-Input.o)
      nta::StringUtils::fromInt(long long)in libutils.a(libutils_a-StringUtils.o)
      ...
  "std::ios_base::~ios_base()", referenced from:
      _main in htmtest-htmtest.o
      nta::LoggingException::LoggingException(nta::LoggingException const&)in htmtest-htmtest.o
      vecToString(std::vector<unsigned long, std::allocator<unsigned long> >)in libntypes.a(libntypes_a-Dimensions.o)
      nta::Dimensions::promote(unsigned long)in libntypes.a(libntypes_a-Dimensions.o)
      nta::Dimensions::getCount() constin libntypes.a(libntypes_a-Dimensions.o)
      nta::OS::getProcessMemoryUsage(unsigned long&, unsigned long&)in libos.a(libos_a-OS.o)
      nta::NuPIC::unregisterNetwork(nta::Network*)    in libengine.a(libengine_a-NuPIC.o)
      ...
  "std::basic_ios<char, std::char_traits<char> >::init(std::basic_streambuf<char, std::char_traits<char> >*)", referenced from:
      vecToString(std::vector<unsigned long, std::allocator<unsigned long> >)in libntypes.a(libntypes_a-Dimensions.o)
      nta::Region::getLinkErrors() constin libengine.a(libengine_a-Region.o)
      nta::Network::saveToBundle(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)in libengine.a(libengine_a-Network.o)
      nta::Network::loadFromBundle(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)in libengine.a(libengine_a-Network.o)
      nta::Spec::toString() constin libengine.a(libengine_a-Spec.o)
      nta::Input::evaluateLinks()     in libengine.a(libengine_a-Input.o)
      nta::StringUtils::fromInt(long long)in libutils.a(libutils_a-StringUtils.o)
      ...
  "std::basic_ios<char, std::char_traits<char> >::clear(std::_Ios_Iostate)", referenced from:
      testExceptionBug()     in htmtest-htmtest.o
      nta::LoggingException::~LoggingException()in libutils.a(libutils_a-LoggingException.o)
      nta::LoggingException::~LoggingException()in libutils.a(libutils_a-LoggingException.o)
      nta::Region::getNodeOutputElementCount(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)in libengine.a(libengine_a-Region.o)
      nta::Region::initOutputs()     in libengine.a(libengine_a-Region.o)
      nta::LogItem::~LogItem()in libutils.a(libutils_a-LogItem.o)
      nta::LogItem::~LogItem()in libutils.a(libutils_a-LogItem.o)
      ...
  "std::basic_ios<char, std::char_traits<char> >::rdbuf(std::basic_streambuf<char, std::char_traits<char> >*)", referenced from:
      nta::BasicOMemStream<char, std::char_traits<char>, std::allocator<char> >::BasicOMemStream()in libregions.a(libregions_a-SpatialPoolerNode.o)
      nta::SparseMatrix<unsigned int, float, int, double, nta::DistanceToZero<float> >::toCSR(std::basic_ostream<char, std::char_traits<char> >&) constin libalgorithms.a(libalgorithms_a-SparsePooler.o)
      nta::ReadBuffer::ReadBuffer(nta::ReadBuffer const&)in libntypes.a(libntypes_a-Buffer.o)
      nta::ReadBuffer::ReadBuffer(char const*, unsigned long, bool)in libntypes.a(libntypes_a-Buffer.o)
      nta::WriteBuffer::WriteBuffer()in libntypes.a(libntypes_a-Buffer.o)
      nta::WriteBuffer::WriteBuffer()in libntypes.a(libntypes_a-Buffer.o)
  "std::basic_ios<char, std::char_traits<char> >::setstate(std::_Ios_Iostate)", referenced from:
      YAML::Stream::GetNextByte() constin libyaml.a(stream.o)
  "std::basic_ios<char, std::char_traits<char> >::~basic_ios()", referenced from:
      nta::RegionImpl::getParameterInt64(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, long)in libengine.a(libengine_a-RegionImpl.o)
      nta::BasicOMemStreamBuf<char, std::char_traits<char>, std::allocator<char> >::overflow(int)in libengine.a(libengine_a-RegionImpl.o)

...

      realmain(bool)in htmtest-htmtest.o
      _main in htmtest-htmtest.o
      ...
  "___cxa_free_exception", referenced from:
      _main in htmtest-htmtest.o
      nta::Network::loadFromBundle(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)in libengine.a(libengine_a-Network.o)
      void YAML::operator>><std::basic_string<char, std::char_traits<char>, std::allocator<char> > >(YAML::Node const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> >&)in libengine.a(libengine_a-Network.o)
      nta::StringUtils::toIntList(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::vector<int, std::allocator<int> >&, bool, bool)in libutils.a(libutils_a-StringUtils.o)
      nta::deserializePyNode(nta::DynamicPythonLibrary*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, nta::BundleIO&, nta::Region*)in libengine.a(libengine_a-RegionImplFactory.o)
      nta::createPyNode(nta::DynamicPythonLibrary*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, nta::ValueMap*, nta::Region*)in libengine.a(libengine_a-RegionImplFactory.o)
      nta::ZLib::fopen(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> >*)in libos.a(libos_a-FStream.o)
      ...
  "___cxa_guard_abort", referenced from:
      YAML::Emitter::Write(bool)in libyaml.a(emitter.o)
      YAML::Exp::Space()    in libyaml.a(emitterutils.o)
      YAML::Exp::Tab()    in libyaml.a(emitterutils.o)
      YAML::Exp::Blank()    in libyaml.a(emitterutils.o)
      YAML::Exp::Utf8_ByteOrderMark()     in libyaml.a(emitterutils.o)
      YAML::Exp::Digit()    in libyaml.a(emitterutils.o)
      YAML::Exp::Hex()    in libyaml.a(emitterutils.o)
      ...
  "___cxa_guard_acquire", referenced from:
      nta::RegionImplFactory::getInstance()      in libengine.a(libengine_a-RegionImplFactory.o)
      YAML::Emitter::Write(bool)in libyaml.a(emitter.o)
      YAML::Exp::Space()    in libyaml.a(emitterutils.o)
      YAML::Exp::Tab()    in libyaml.a(emitterutils.o)
      YAML::Exp::Blank()    in libyaml.a(emitterutils.o)
      YAML::Exp::Utf8_ByteOrderMark()     in libyaml.a(emitterutils.o)
      YAML::Exp::Digit()    in libyaml.a(emitterutils.o)
      ...
  "___cxa_guard_release", referenced from:
      nta::RegionImplFactory::getInstance()      in libengine.a(libengine_a-RegionImplFactory.o)
      YAML::Emitter::Write(bool)in libyaml.a(emitter.o)
      YAML::Exp::Space()    in libyaml.a(emitterutils.o)
      YAML::Exp::Tab()    in libyaml.a(emitterutils.o)
      YAML::Exp::Blank()    in libyaml.a(emitterutils.o)
      YAML::Exp::Utf8_ByteOrderMark()     in libyaml.a(emitterutils.o)
      YAML::Exp::Digit()    in libyaml.a(emitterutils.o)
      ...
  "___cxa_pure_virtual", referenced from:
      vtable for boost::detail::sp_counted_basein libutils.a(libutils_a-StringUtils.o)
      vtable for boost::detail::sp_counted_basein libengine.a(libengine_a-RegionImplFactory.o)
      vtable for boost::detail::sp_counted_basein libengine.a(libengine_a-YAMLUtils.o)
      vtable for YAML::Contentin libyaml.a(aliascontent.o)
      vtable for YAML::SettingChangeBasein libyaml.a(emitterstate.o)
      vtable for YAML::Contentin libyaml.a(map.o)
      vtable for YAML::Contentin libyaml.a(scalar.o)
      ...
  "___cxa_rethrow", referenced from:
      std::_Rb_tree<unsigned int, unsigned int, std::_Identity<unsigned int>, std::less<unsigned int>, std::allocator<unsigned int> >::_M_copy(std::_Rb_tree_node<unsigned int> const*, std::_Rb_tree_node<unsigned int>*)in libengine.a(libengine_a-Region.o)
      std::_Rb_tree<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, nta::Input*>, std::_Select1st<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, nta::Input*> >, std::less<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const>, std::allocator<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, nta::Input*> > >::_M_insert(std::_Rb_tree_node_base*, std::_Rb_tree_node_base*, std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, nta::Input*> const&)in libengine.a(libengine_a-Region.o)
      std::_Rb_tree<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, nta::Output*>, std::_Select1st<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, nta::Output*> >, std::less<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const>, std::allocator<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, nta::Output*> > >::_M_insert(std::_Rb_tree_node_base*, std::_Rb_tree_node_base*, std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, nta::Output*> const&)in libengine.a(libengine_a-Region.o)
      std::_Rb_tree<unsigned int, unsigned int, std::_Identity<unsigned int>, std::less<unsigned int>, std::allocator<unsigned int> >::_M_copy(std::_Rb_tree_node<unsigned int> const*, std::_Rb_tree_node<unsigned int>*)in libengine.a(libengine_a-Network.o)
      std::_Rb_tree<nta::Region*, nta::Region*, std::_Identity<nta::Region*>, std::less<nta::Region*>, std::allocator<nta::Region*> >::_M_copy(std::_Rb_tree_node<nta::Region*> const*, std::_Rb_tree_node<nta::Region*>*)in libengine.a(libengine_a-Network.o)
      void std::__uninitialized_fill_n_aux<std::set<nta::Region*, std::less<nta::Region*>, std::allocator<nta::Region*> >*, unsigned long, std::set<nta::Region*, std::less<nta::Region*>, std::allocator<nta::Region*> > >(std::set<nta::Region*, std::less<nta::Region*>, std::allocator<nta::Region*> >*, unsigned long, std::set<nta::Region*, std::less<nta::Region*>, std::allocator<nta::Region*> > const&, std::__false_type)in libengine.a(libengine_a-Network.o)
      std::vector<std::set<nta::Region*, std::less<nta::Region*>, std::allocator<nta::Region*> >, std::allocator<std::set<nta::Region*, std::less<nta::Region*>, std::allocator<nta::Region*> > > >::_M_fill_insert(__gnu_cxx::__normal_iterator<std::set<nta::Region*, std::less<nta::Region*>, std::allocator<nta::Region*> >*, std::vector<std::set<nta::Region*, std::less<nta::Region*>, std::allocator<nta::Region*> >, std::allocator<std::set<nta::Region*, std::less<nta::Region*>, std::allocator<nta::Region*> > > > >, unsigned long, std::set<nta::Region*, std::less<nta::Region*>, std::allocator<nta::Region*> > const&)in libengine.a(libengine_a-Network.o)
      ...
  "___cxa_throw", referenced from:
      testCppInputOutputAccess(nta::Region*)      in htmtest-htmtest.o
      testExceptionBug()     in htmtest-htmtest.o
      testPynodeInputOutputAccess(nta::Region*)      in htmtest-htmtest.o
      testYAML()    in htmtest-htmtest.o
      testPynodeLinking()     in htmtest-htmtest.o
      testCppLinking(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> >)in htmtest-htmtest.o
      realmain(bool)in htmtest-htmtest.o
      ...
  "___gxx_personality_v0", referenced from:
      Dwarf Exception Unwind Info (__eh_frame) in htmtest-htmtest.o
      Dwarf Exception Unwind Info (__eh_frame) in libntypes.a(libntypes_a-Dimensions.o)
      Dwarf Exception Unwind Info (__eh_frame) in libutils.a(libutils_a-LoggingException.o)
      Dwarf Exception Unwind Info (__eh_frame) in libos.a(libos_a-OS.o)
      Dwarf Exception Unwind Info (__eh_frame) in libengine.a(libengine_a-NuPIC.o)
      Dwarf Exception Unwind Info (__eh_frame) in libengine.a(libengine_a-Region_io.o)
      Dwarf Exception Unwind Info (__eh_frame) in libengine.a(libengine_a-Region.o)
      ...
ld: symbol(s) not found for architecture x86_64
collect2: ld returned 1 exit status
make[3]: *** [htmtest] Error 1
make[2]: *** [install-recursive] Error 1
make[1]: *** [install-recursive] Error 1
make: *** [install-recursive] Error 1

STDOUT redirected to: /tmp/ntabuild/stdout.txt
Build failed!!!

vkruglikov@vkruglikovs-MacBook-Pro:~/nta$ 


accumulating nupic status from tooling server

Not sure how this happened:

NuPIC Status: NuPIC Status: NuPIC Status: NuPIC Status: NuPIC Status: NuPIC Status: The Travis CI build could not complete due to an error

This should say:

NuPIC Status: The Travis CI build could not complete due to an error

You can see all the statuses here.

RFC: MultiEncoder add padding param separating various encoders' outputs

I'm currently experimenting with multiencoders, would it be useful to add a padding(=0) pattern which separates outputs of various sub-encoders in the final array?

Example: MultiEncoder.__init__(self, encoderDescriptions=None, padding=0)
Now: {EncoderOutput1 | EncoderOutput2 | ...}
After (padding=3): {EncoderOutput1 | 000 | EncoderOutput2 | 000 |...}

motivation is that the edges of neighboring encoders would make connected segment's synapses confused (the stable separation pattern should suppress that).

If you find it useful, can someone hack it up please? Im a bit lost in the MultiEnc code..

Thanks, breznak

opfhelpers leaks module imports

From original JIRA @vitaly-krugl:

each call to loadExperiment() or getExperimentDescriptionInterfaceFromModule(loadExperimentDescriptionScriptFromDir(experimentDir)) results in multiple module import leaks that accumulate within the calling process. For example, this combination of calls is used by the swarming implementation, and the imports are executed many times during the lifetime of the process. In such processes, the number of leaks may be very large or unlimited.

Someone suggested taking a look at execfile() as a possible alternative to importing via imp.load_source().

Below is a snippet from sys.modules after just 4 such invocations, showing 8 leaked modules:

 'pf_base_description0': <module 'pf_base_description0' (built-in)>,
 'pf_base_description1': <module 'pf_base_description1' (built-in)>,
 'pf_base_description2': <module 'pf_base_description2' (built-in)>,
 'pf_base_description3': <module 'pf_base_description3' (built-in)>,
 'pf_description0': <module 'pf_base_description0' from '/var/folders/my/whcrb5rn1rqc3g8klvk_vk580000gn/T/tmpPnwYZK/description.py'>,
 'pf_description1': <module 'pf_base_description1' from '/var/folders/my/whcrb5rn1rqc3g8klvk_vk580000gn/T/tmpzBMF1u/description.py'>,
 'pf_description2': <module 'pf_base_description2' from '/var/folders/my/whcrb5rn1rqc3g8klvk_vk580000gn/T/tmpxp9vnC/description.py'>,
 'pf_description3': <module 'pf_base_description3' from '/var/folders/my/whcrb5rn1rqc3g8klvk_vk580000gn/T/tmpyoHUJF/description.py'>,

@oxtopus commented:

+1 for execfile()

Add Prediction to SP & Per-Cell Feedforward Dendrites

Jeff's theory reflects the fact that predictive cells are partially depolarised by distal inputs, and so will have enhanced activations when provided with feedforward inputs. This is missing in the SP. In addition, the SP uses a common dendrite for all the cells, whereas they have their own dendrites in the theory. This can be remedied with just a few lines of code and a small memory/CPU cost. The benefits can be established by swarming on this enhancement for different types of data.
More on this (with pseudocode) here: http://inbits.com/2013/11/adding-prediction-to-the-nupic-spatial-pooler/

Update Pylint

Add things like:

  • 3 newlines before top level classes and functions, 2 before methods
  • Check for copyright notice?
  • Add string functions like string.join to the disallowed functions list.
  • spaces after commas
  • Files must end with exactly one newline character.
  • No tabs should be used anywhere.
  • prefer double quotes (not sure exact implementation for that)
  • Wrapping arguments. If some are left on first line then match the indentation of the first one on subsequent lines. If none are left on the first line then add one or two levels of indentation (two levels are required when necessary to differentiate between a new scope on the following line, like arguments in a function definition).

Find a static analyzer that finds circular dependencies

@breznak commented:

cppcheck full scan of nupic (09/12/2013), called with these settings:

./cppcheck --inconclusive --quiet -j4 -DHAVE_CONFIG_H -I. -I/home/marek/devel/nupic/lang/py/support -I../../../build_system/unix -I/home/marek/devel/nupic -I/home/marek/devel/nupic/external/common/include -I/home/marek/devel/nupic/external/linux64/include -DNTA_INTERNAL -DNTA_ASSERTIONS_ON -DPIC -DNTA_PLATFORM_linux64 -DBOOST_NO_WREGEX -DNTA_PYTHON_SUPPORT=2.7 -I/home/marek/nta/eng/lib/python2.7/site-packages/numpy/core/include -I/home/marek/devel/nupic/py27/include/python2.7 -DNUPIC2 -i external/ --enable=all . 2>cpppppp.txt

not really circular deps, but yesterday I was experimenting with cppcheck : http://sourceforge.net/apps/mediawiki/cppcheck/index.php?title=Main_Page#Clients_and_plugins - a static C++ code analyzer

Cppcheck is an analysis tool for C/C++ code. Unlike C/C++ compilers and many other analysis tools, we don't detect syntax errors. Cppcheck only detects the types of bugs that the compilers normally fail to detect. The goal is no false positives.

I just pushed a PR with some minor issues found with it, here;s some summary:
+integrates to Jenkins,easy to set up and run
-full blown check takes quite some time, the "issues" found are discutable and not really a big deal in our codebase
Attaching a report from full scan of NuPIC codebase, so others can judge or maybe fix issues I didn't know how to tackle.

cpppp.txt

[cbuild/CMakeFiles/2.8.11.2/CompilerIdCXX/CMakeCXXCompilerId.cpp:5]: (error) "A C compiler has been selected for C++."
[cbuild/CMakeFiles/2.8.11.2/CompilerIdCXX/CMakeCXXCompilerId.cpp:5]: (error) #error "A C compiler has been selected for C++."
[/home/marek/devel/nupic/py27/include/python2.7/Python.h:22]: (error) "Something's broken.  UCHAR_MAX should be defined in limits.h."
[/home/marek/devel/nupic/py27/include/python2.7/Python.h:35]: (error) "Python.h requires that stdio.h define NULL."
[/home/marek/devel/nupic/py27/include/python2.7/Python.h:22]: (error) #error "Something's broken.  UCHAR_MAX should be defined in limits.h."
[/home/marek/nta/eng/lib/python2.7/site-packages/numpy/core/include/numpy/npy_cpu.h:72]: (error) Unknown CPU, please report this to numpy maintainers with information about your platform (OS, CPU and compiler)
[/home/marek/devel/nupic/external/common/include/boost/cstdint.hpp:215]: (error) defaults not correct; you must hand modify boost/cstdint.hpp
[/home/marek/devel/nupic/external/common/include/boost/cstdint.hpp:254]: (error) defaults not correct; you must hand modify boost/cstdint.hpp
[/home/marek/devel/nupic/external/common/include/boost/cstdint.hpp:289]: (error) defaults not correct; you must hand modify boost/cstdint.hpp
[/home/marek/devel/nupic/external/common/include/boost/cstdint.hpp:491]: (error) defaults not correct; you must hand modify boost/cstdint.hpp
[/home/marek/devel/nupic/external/common/include/boost/type_traits/detail/cv_traits_impl.hpp:27]: (error) Invalid number of character ({) when these macros are defined: 'HAVE_CONFIG_H=1;NTA_INTERNAL=1;NTA_ASSERTIONS_ON=1;PIC=1;NTA_PLATFORM_linux64=1;BOOST_NO_WREGEX=1;NTA_PYTHON_SUPPORT=2.7;NUPIC2=1;HAVE_CONFIG_H=1;NTA_INTERNAL=1;NTA_ASSERTIONS_ON=1;PIC=1;NTA_PLATFORM_linux64=1;BOOST_NO_WREGEX=1;NTA_PYTHON_SUPPORT=2.7;NUPIC2=1'.
[/home/marek/devel/nupic/external/common/include/boost/cstdint.hpp:215]: (error) #error defaults not correct; you must hand modify boost/cstdint.hpp
[nta/algorithms/bit_history.hpp:61]: (warning, inconclusive) Member variable 'BitHistory::lastTotalUpdate_' is not initialized in the constructor.
[nta/algorithms/bit_history.hpp:61]: (warning, inconclusive) Member variable 'BitHistory::learnIteration_' is not initialized in the constructor.
[nta/algorithms/bit_history.hpp:61]: (warning, inconclusive) Member variable 'BitHistory::alpha_' is not initialized in the constructor.
[nta/algorithms/bit_history.hpp:61]: (warning, inconclusive) Member variable 'BitHistory::verbosity_' is not initialized in the constructor.
[nta/algorithms/bit_history.cpp:50]: (performance) Variable 'id_' is assigned in constructor body. Consider performing initialization in initialization list.
[nta/algorithms/fast_cla_classifier.cpp:321]: (style) The scope of the variable 'pattern' can be reduced.
[nta/algorithms/fast_cla_classifier.cpp:385]: (style) The scope of the variable 'numIterationHistory' can be reduced.
[nta/algorithms/fast_cla_classifier.cpp:386]: (style) The scope of the variable 'curIterationNum' can be reduced.
[nta/algorithms/fast_cla_classifier.cpp:436]: (style) The scope of the variable 'bitHistoryMap' can be reduced.
[nta/algorithms/fast_cla_classifier.cpp:373]: (style) Unsigned variable 'version' can't be negative so it is unnecessary to test it.
[nta/algorithms/fast_cla_classifier.hpp:73]: (warning, inconclusive) Member variable 'FastCLAClassifier::alpha_' is not initialized in the constructor.
[nta/algorithms/fast_cla_classifier.hpp:73]: (warning, inconclusive) Member variable 'FastCLAClassifier::actValueAlpha_' is not initialized in the constructor.
[nta/algorithms/fast_cla_classifier.hpp:73]: (warning, inconclusive) Member variable 'FastCLAClassifier::learnIteration_' is not initialized in the constructor.
[nta/algorithms/fast_cla_classifier.hpp:73]: (warning, inconclusive) Member variable 'FastCLAClassifier::recordNumMinusLearnIteration_' is not initialized in the constructor.
[nta/algorithms/fast_cla_classifier.hpp:73]: (warning, inconclusive) Member variable 'FastCLAClassifier::recordNumMinusLearnIterationSet_' is not initialized in the constructor.
[nta/algorithms/fast_cla_classifier.hpp:73]: (warning, inconclusive) Member variable 'FastCLAClassifier::maxSteps_' is not initialized in the constructor.
[nta/algorithms/fast_cla_classifier.hpp:73]: (warning, inconclusive) Member variable 'FastCLAClassifier::maxBucketIdx_' is not initialized in the constructor.
[nta/algorithms/fast_cla_classifier.hpp:73]: (warning, inconclusive) Member variable 'FastCLAClassifier::version_' is not initialized in the constructor.
[nta/algorithms/fast_cla_classifier.hpp:73]: (warning, inconclusive) Member variable 'FastCLAClassifier::verbosity_' is not initialized in the constructor.
[nta/algorithms/gaborNode.cpp:1967]: (style) The scope of the variable 'nNumLutBins' can be reduced.
[nta/algorithms/gaborNode.cpp:2728]: (style) The scope of the variable 'anStatPosGrand' can be reduced.
[nta/algorithms/gaborNode.cpp:2729]: (style) The scope of the variable 'anStatNegGrand' can be reduced.
[nta/algorithms/linear.cpp:864]: (style) C-style pointer casting
[nta/algorithms/linear.cpp:1022]: (style) C-style pointer casting
[nta/algorithms/linear.cpp:95]: (style) The scope of the variable 'ix' can be reduced.
[nta/algorithms/linear.cpp:96]: (style) The scope of the variable 'scale' can be reduced.
[nta/algorithms/linear.cpp:96]: (style) The scope of the variable 'absxi' can be reduced.
[nta/algorithms/linear.cpp:96]: (style) The scope of the variable 'ssq' can be reduced.
[nta/algorithms/linear.cpp:96]: (style) The scope of the variable 'temp' can be reduced.
[nta/algorithms/linear.cpp:139]: (style) The scope of the variable 'i' can be reduced.
[nta/algorithms/linear.cpp:139]: (style) The scope of the variable 'm' can be reduced.
[nta/algorithms/linear.cpp:141]: (style) The scope of the variable 'ix' can be reduced.
[nta/algorithms/linear.cpp:141]: (style) The scope of the variable 'iy' can be reduced.
[nta/algorithms/linear.cpp:178]: (style) The scope of the variable 'i' can be reduced.
[nta/algorithms/linear.cpp:178]: (style) The scope of the variable 'm' can be reduced.
[nta/algorithms/linear.cpp:178]: (style) The scope of the variable 'ix' can be reduced.
[nta/algorithms/linear.cpp:178]: (style) The scope of the variable 'iy' can be reduced.
[nta/algorithms/linear.cpp:214]: (style) The scope of the variable 'i' can be reduced.
[nta/algorithms/linear.cpp:214]: (style) The scope of the variable 'm' can be reduced.
[nta/algorithms/linear.cpp:214]: (style) The scope of the variable 'nincx' can be reduced.
[nta/algorithms/linear.cpp:265]: (style) The scope of the variable 'cg_iter' can be reduced.
[nta/algorithms/linear.cpp:266]: (style) The scope of the variable 'snorm' can be reduced.
[nta/algorithms/linear.cpp:267]: (style) The scope of the variable 'fnew' can be reduced.
[nta/algorithms/linear.cpp:267]: (style) The scope of the variable 'prered' can be reduced.
[nta/algorithms/linear.cpp:267]: (style) The scope of the variable 'actred' can be reduced.
[nta/algorithms/linear.cpp:267]: (style) The scope of the variable 'gs' can be reduced.
[nta/algorithms/linear.cpp:363]: (style) The scope of the variable 'rnewTrnew' can be reduced.
[nta/algorithms/linear.cpp:290]: (style) Variable 'cg_iter' is assigned a value that is never used.
[nta/algorithms/linear.hpp:202]: (style) Unused private function: 'TRON::norm_inf'
[nta/algorithms/linear.cpp:418] -> [nta/algorithms/linear.hpp:202]: (performance, inconclusive) Technically the member function 'nta::algorithms::linear::TRON::norm_inf' can be static.
[nta/algorithms/linear.cpp:1125] -> [nta/algorithms/linear.hpp:281]: (performance, inconclusive) Technically the member function 'nta::algorithms::linear::linear::predict_values' can be static.
[nta/algorithms/linear.cpp:957] -> [nta/algorithms/linear.hpp:286]: (performance, inconclusive) Technically the member function 'nta::algorithms::linear::linear::save_model' can be static.
[nta/algorithms/linear.cpp:731] -> [nta/algorithms/linear.hpp:288]: (performance, inconclusive) Technically the member function 'nta::algorithms::linear::linear::group_classes' can be static.
[nta/algorithms/linear.cpp:791] -> [nta/algorithms/linear.hpp:290]: (performance, inconclusive) Technically the member function 'nta::algorithms::linear::linear::train_one' can be static.
[nta/algorithms/linear.cpp:528]: (style, inconclusive) Technically the member function 'nta::algorithms::linear::l2loss_svm_fun::Xv' can be const.
[nta/algorithms/linear.cpp:546]: (style, inconclusive) Technically the member function 'nta::algorithms::linear::l2loss_svm_fun::subXv' can be const.
[nta/algorithms/linear.cpp:563]: (style, inconclusive) Technically the member function 'nta::algorithms::linear::l2loss_svm_fun::subXTv' can be const.
[nta/algorithms/linear.cpp:683]: (style, inconclusive) Technically the member function 'nta::algorithms::linear::l2_lr_fun::Xv' can be const.
[nta/algorithms/linear.cpp:701]: (style, inconclusive) Technically the member function 'nta::algorithms::linear::l2_lr_fun::XTv' can be const.
[nta/algorithms/linear.hpp:75]: (style) 'struct sparse_feature_vector' does not have a copy constructor which is recommended since the class contains a pointer to allocated memory.
[nta/algorithms/linear.hpp:98]: (style) 'struct problem' does not have a copy constructor which is recommended since the class contains a pointer to allocated memory.
[nta/algorithms/linear.hpp:210]: (style) 'class linear' does not have a copy constructor which is recommended since the class contains a pointer to allocated memory.
[nta/algorithms/linear.cpp:1056]: (portability) scanf without field width limits can crash with huge input data on some versions of libc.
[nta/algorithms/linear.cpp:1062]: (portability) scanf without field width limits can crash with huge input data on some versions of libc.
[nta/algorithms/linear.cpp:1068]: (portability) scanf without field width limits can crash with huge input data on some versions of libc.
[nta/algorithms/linear.cpp:1081]: (portability) scanf without field width limits can crash with huge input data on some versions of libc.
[nta/algorithms/linear.cpp:1111]: (portability) scanf without field width limits can crash with huge input data on some versions of libc.
[nta/algorithms/linear.cpp:761]: (error) Common realloc mistake: 'label' nulled but not freed upon failure
[nta/algorithms/linear.cpp:762]: (error) Common realloc mistake: 'count' nulled but not freed upon failure
[nta/apps/htmtest/htmtest.cpp:664] -> [nta/apps/htmtest/htmtest.cpp:665]: (performance) Variable 'val' is reassigned a value before the old one has been used.
[nta/apps/htmtest/htmtest.cpp:670] -> [nta/apps/htmtest/htmtest.cpp:671]: (performance) Variable 'rval' is reassigned a value before the old one has been used.
[nta/apps/htmtest/htmtest.cpp:562]: (style) The scope of the variable 'badparams' can be reduced.
[nta/apps/htmtest/htmtest.cpp:798]: (style) The scope of the variable 'initial_vmem' can be reduced.
[nta/apps/htmtest/htmtest.cpp:799]: (style) The scope of the variable 'initial_rmem' can be reduced.
[nta/apps/htmtest/htmtest.cpp:800]: (style) The scope of the variable 'current_vmem' can be reduced.
[nta/apps/htmtest/htmtest.cpp:801]: (style) The scope of the variable 'current_rmem' can be reduced.
[nta/engine/Spec.hpp:41]: (warning, inconclusive) Member variable 'InputSpec::dataType' is not initialized in the constructor.
[nta/engine/Spec.hpp:41]: (warning, inconclusive) Member variable 'InputSpec::count' is not initialized in the constructor.
[nta/engine/Spec.hpp:41]: (warning, inconclusive) Member variable 'InputSpec::required' is not initialized in the constructor.
[nta/engine/Spec.hpp:41]: (warning, inconclusive) Member variable 'InputSpec::regionLevel' is not initialized in the constructor.
[nta/engine/Spec.hpp:41]: (warning, inconclusive) Member variable 'InputSpec::isDefaultInput' is not initialized in the constructor.
[nta/engine/Spec.hpp:41]: (warning, inconclusive) Member variable 'InputSpec::requireSplitterMap' is not initialized in the constructor.
[nta/engine/Spec.hpp:66]: (warning, inconclusive) Member variable 'OutputSpec::dataType' is not initialized in the constructor.
[nta/engine/Spec.hpp:66]: (warning, inconclusive) Member variable 'OutputSpec::count' is not initialized in the constructor.
[nta/engine/Spec.hpp:66]: (warning, inconclusive) Member variable 'OutputSpec::regionLevel' is not initialized in the constructor.
[nta/engine/Spec.hpp:66]: (warning, inconclusive) Member variable 'OutputSpec::isDefaultOutput' is not initialized in the constructor.
[nta/engine/Spec.hpp:94]: (warning, inconclusive) Member variable 'ParameterSpec::dataType' is not initialized in the constructor.
[nta/engine/Spec.hpp:94]: (warning, inconclusive) Member variable 'ParameterSpec::count' is not initialized in the constructor.
[nta/engine/Spec.hpp:94]: (warning, inconclusive) Member variable 'ParameterSpec::accessMode' is not initialized in the constructor.
[nta/apps/htmtest/htmtest.cpp:72]: (warning) Member variable 'MemoryMonitor::current_vmem' is not initialized in the constructor.
[nta/apps/htmtest/htmtest.cpp:72]: (warning) Member variable 'MemoryMonitor::current_rmem' is not initialized in the constructor.
[nta/apps/htmtest/htmtest.cpp:72]: (warning) Member variable 'MemoryMonitor::diff_rmem' is not initialized in the constructor.
[nta/apps/htmtest/htmtest.cpp:72]: (warning) Member variable 'MemoryMonitor::diff_vmem' is not initialized in the constructor.
[nta/ntypes/Array.hpp:56]: (style, inconclusive) Technically the member function 'nta::Array::invariant' can be const.
[nta/ntypes/ArrayRef.hpp:56]: (style, inconclusive) Technically the member function 'nta::ArrayRef::invariant' can be const.
[nta/apps/htmtest/htmtest.cpp:567]: (warning) Redundant code: Found a statement that begins with string constant.
[nta/engine/Input.cpp:448]: (style) The scope of the variable 'inconsistentDimensions' can be reduced.
[nta/engine/Input.cpp:41]: (warning) Member variable 'Input::size_' is not initialized in the constructor.
[nta/engine/Input.cpp:161] -> [nta/engine/Input.hpp:114]: (style, inconclusive) Technically the member function 'nta::Input::getLinks' can be const.
[nta/engine/Input.cpp:167] -> [nta/engine/Input.hpp:117]: (style, inconclusive) Technically the member function 'nta::Input::isRegionLevel' can be const.
[nta/engine/Input.cpp:598] -> [nta/engine/Input.hpp:143]: (style, inconclusive) Technically the member function 'nta::Input::isInitialized' can be const.
[nta/engine/Input.cpp:55]: (performance) Prefer prefix ++/-- operators for non-primitive types.
[nta/engine/Input.cpp:71]: (performance) Prefer prefix ++/-- operators for non-primitive types.
[nta/engine/Input.cpp:97]: (performance) Prefer prefix ++/-- operators for non-primitive types.
[nta/engine/Input.cpp:123]: (performance) Prefer prefix ++/-- operators for non-primitive types.
[nta/engine/Input.cpp:141]: (performance) Prefer prefix ++/-- operators for non-primitive types.
[nta/engine/Input.cpp:189]: (performance) Prefer prefix ++/-- operators for non-primitive types.
[nta/engine/Input.cpp:540]: (performance) Prefer prefix ++/-- operators for non-primitive types.
[nta/engine/Input.cpp:577]: (performance) Prefer prefix ++/-- operators for non-primitive types.
[nta/engine/Link.cpp:317] -> [nta/engine/Link.hpp:121]: (style, inconclusive) Technically the member function 'nta::Link::compute' can be const.
[nta/engine/LinkPolicyFactory.hpp:50]: (performance) Function parameter 'policyType' should be passed by reference.
[nta/engine/LinkPolicyFactory.hpp:51]: (performance) Function parameter 'policyParams' should be passed by reference.
[/home/marek/devel/nupic/external/linux64/include/apr-1/apr.h:597]: (error) no decision has been made on APR_PATH_MAX for your platform
[/home/marek/devel/nupic/external/common/include/boost/smart_ptr/shared_ptr.hpp:309]: (warning) Member variable 'shared_ptr::px' is not assigned a value in 'shared_ptr::operator='.
[/home/marek/devel/nupic/external/common/include/boost/smart_ptr/shared_ptr.hpp:309]: (warning) Member variable 'shared_ptr::pn' is not assigned a value in 'shared_ptr::operator='.
[/home/marek/devel/nupic/external/common/include/boost/smart_ptr/shared_ptr.hpp:318]: (warning) Member variable 'shared_ptr::px' is not assigned a value in 'shared_ptr::operator='.
[/home/marek/devel/nupic/external/common/include/boost/smart_ptr/shared_ptr.hpp:318]: (warning) Member variable 'shared_ptr::pn' is not assigned a value in 'shared_ptr::operator='.
[/home/marek/devel/nupic/external/common/include/boost/smart_ptr/shared_ptr.hpp:375]: (warning) Member variable 'shared_ptr::px' is not assigned a value in 'shared_ptr::operator='.
[/home/marek/devel/nupic/external/common/include/boost/smart_ptr/shared_ptr.hpp:375]: (warning) Member variable 'shared_ptr::pn' is not assigned a value in 'shared_ptr::operator='.
[/home/marek/devel/nupic/external/common/include/boost/smart_ptr/shared_ptr.hpp:382]: (warning) Member variable 'shared_ptr::px' is not assigned a value in 'shared_ptr::operator='.
[/home/marek/devel/nupic/external/common/include/boost/smart_ptr/shared_ptr.hpp:382]: (warning) Member variable 'shared_ptr::pn' is not assigned a value in 'shared_ptr::operator='.
[/home/marek/devel/nupic/external/common/include/boost/smart_ptr/detail/shared_count.hpp:311]: (style) Value of pointer 'pi_', which points to allocated memory, is copied in copy constructor instead of allocating new memory.
[nta/engine/TestFanIn2LinkPolicy.hpp:40]: (performance) Function parameter 'params' should be passed by reference.
[nta/engine/UniformLinkPolicy.hpp:74]: (performance) Function parameter 'params' should be passed by reference.
[nta/engine/LinkPolicyFactory.cpp:35]: (performance) Function parameter 'policyType' should be passed by reference.
[nta/engine/LinkPolicyFactory.cpp:36]: (performance) Function parameter 'policyParams' should be passed by reference.
[/home/marek/devel/nupic/external/linux64/include/apr-1/apr.h:597]: (error) #error no decision has been made on APR_PATH_MAX for your platform
[nta/engine/Output.cpp:144] -> [nta/engine/Output.hpp:70]: (style, inconclusive) Technically the member function 'nta::Output::hasOutgoingLinks' can be const.
[nta/engine/Output.hpp:42]: (style) 'class Output' does not have a copy constructor which is recommended since the class contains a pointer to allocated memory.
[nta/engine/Output.cpp:52]: (error) Exception thrown in destructor.
[nta/engine/Output.cpp:146]: (performance) Possible inefficient checking for 'links_' emptiness.
[nta/engine/RegionImpl.cpp:215]: (style) Variable 'rc' is assigned a value that is never used.
[nta/engine/RegionImplFactory.hpp:59]: (performance) Function parameter 'nodeType' should be passed by reference.
[nta/engine/RegionImplFactory.hpp:60]: (performance) Function parameter 'nodeParams' should be passed by reference.
[nta/engine/RegionImplFactory.hpp:64]: (performance) Function parameter 'nodeType' should be passed by reference.
[nta/engine/RegionImplFactory.hpp:71]: (performance) Function parameter 'nodeType' should be passed by reference.
[nta/engine/Region.cpp:150]: (performance) Prefer prefix ++/-- operators for non-primitive types.
[nta/engine/Region.cpp:166]: (performance) Prefer prefix ++/-- operators for non-primitive types.
[nta/engine/Region.cpp:172]: (performance) Prefer prefix ++/-- operators for non-primitive types.
[nta/engine/Region.cpp:297]: (performance) Prefer prefix ++/-- operators for non-primitive types.
[nta/engine/Region.cpp:310]: (performance) Prefer prefix ++/-- operators for non-primitive types.
[nta/engine/Region.cpp:314]: (performance) Prefer prefix ++/-- operators for non-primitive types.
[nta/engine/Region.cpp:354]: (performance) Prefer prefix ++/-- operators for non-primitive types.
[nta/engine/Region.cpp:373]: (performance) Prefer prefix ++/-- operators for non-primitive types.
[nta/engine/Region.cpp:457]: (performance) Prefer prefix ++/-- operators for non-primitive types.
[nta/engine/Region.cpp:461]: (performance) Prefer prefix ++/-- operators for non-primitive types.
[/home/marek/devel/nupic/external/common/include/boost/smart_ptr/shared_array.hpp:86]: (warning) Member variable 'shared_array::px' is not assigned a value in 'shared_array::operator='.
[/home/marek/devel/nupic/external/common/include/boost/smart_ptr/shared_array.hpp:86]: (warning) Member variable 'shared_array::pn' is not assigned a value in 'shared_array::operator='.
[nta/engine/RegionImpl.cpp:291] -> [nta/engine/RegionImpl.hpp:212]: (style, inconclusive) Technically the member function 'nta::RegionImpl::getInput' can be const.
[nta/engine/RegionImpl.cpp:296] -> [nta/engine/RegionImpl.hpp:213]: (style, inconclusive) Technically the member function 'nta::RegionImpl::getOutput' can be const.
[nta/engine/RegionImpl.cpp:301] -> [nta/engine/RegionImpl.hpp:215]: (style, inconclusive) Technically the member function 'nta::RegionImpl::getDimensions' can be const.
[nta/engine/Region_io.cpp:127]: (performance) Prefer prefix ++/-- operators for non-primitive types.
[nta/engine/TestFanIn2LinkPolicy.cpp:34]: (warning) Member variable 'TestFanIn2LinkPolicy::elementCount_' is not initialized in the constructor.
[nta/engine/TestFanIn2LinkPolicy.cpp:34]: (performance) Function parameter 'params' should be passed by reference.
[nta/engine/TestNode.cpp:118]: (style) The scope of the variable 'nodeOutputBuffer' can be reduced.
[nta/engine/TestNode.cpp:46]: (warning) Member variable 'TestNode::bottomUpIn_' is not initialized in the constructor.
[nta/engine/TestNode.cpp:46]: (warning) Member variable 'TestNode::bottomUpOut_' is not initialized in the constructor.
[nta/engine/TestNode.cpp:92]: (warning) Member variable 'TestNode::computeCallback_' is not initialized in the constructor.
[nta/engine/TestNode.cpp:92]: (warning) Member variable 'TestNode::bottomUpIn_' is not initialized in the constructor.
[nta/engine/TestNode.cpp:92]: (warning) Member variable 'TestNode::bottomUpOut_' is not initialized in the constructor.
[nta/engine/TestNode.cpp:59]: (performance) Variable 'stringParam_' is assigned in constructor body. Consider performing initialization in initialization list.
[nta/engine/TestNode.hpp:73]: (performance, inconclusive) Technically the member function 'nta::TestNode::getNodeType' can be static.
[nta/engine/UniformLinkPolicy.cpp:279]: (style) C-style pointer casting
[nta/engine/UniformLinkPolicy.cpp:780]: (style, inconclusive) Consecutive return, break, continue, goto or throw statements are unnecessary.
[nta/engine/UniformLinkPolicy.cpp:1015]: (style, inconclusive) Consecutive return, break, continue, goto or throw statements are unnecessary.
[nta/engine/UniformLinkPolicy.cpp:1201]: (style, inconclusive) Consecutive return, break, continue, goto or throw statements are unnecessary.
[nta/engine/UniformLinkPolicy.cpp:288] -> [nta/engine/UniformLinkPolicy.hpp:150]: (performance, inconclusive) Technically the member function 'nta::UniformLinkPolicy::copyRealVecToFractionVec' can be static.
[nta/engine/UniformLinkPolicy.cpp:270] -> [nta/engine/UniformLinkPolicy.hpp:153]: (performance, inconclusive) Technically the member function 'nta::UniformLinkPolicy::populateArrayParamVector' can be static.
[nta/engine/UniformLinkPolicy.cpp:45]: (performance) Function parameter 'params' should be passed by reference.
[nta/engine/UniformLinkPolicy.cpp:163]: (performance) Prefer prefix ++/-- operators for non-primitive types.
[/home/marek/devel/nupic/external/common/include/yaml-cpp/exceptions.h:95]: (performance) Variable 'what_' is assigned in constructor body. Consider performing initialization in initialization list.
[/home/marek/devel/nupic/external/common/include/yaml-cpp/emittermanip.h:71]: (performance) Function parameter 'content' should be passed by reference.
[/home/marek/devel/nupic/external/common/include/yaml-cpp/emittermanip.h:80]: (performance) Function parameter 'content' should be passed by reference.
[/home/marek/devel/nupic/external/common/include/yaml-cpp/emittermanip.h:99]: (performance) Function parameter 'content' should be passed by reference.
[nta/engine/YAMLUtils.cpp:261]: (performance) Prefer prefix ++/-- operators for non-primitive types.
[nta/engine/unittests/InputTest.cpp:47]: (style) The scope of the variable 'rn' can be reduced.
[nta/test/Tester.hpp:84]: (style, inconclusive) Technically the member function 'nta::Tester::testCount' can be const.
[nta/test/Tester.hpp:87]: (style, inconclusive) Technically the member function 'nta::Tester::hardFailCount' can be const.
[nta/test/Tester.hpp:89]: (style, inconclusive) Technically the member function 'nta::Tester::disabledCount' can be const.
[nta/test/Tester.hpp:92]: (style, inconclusive) Technically the member function 'nta::Tester::passCount' can be const.
[nta/test/Tester.hpp:95]: (style, inconclusive) Technically the member function 'nta::Tester::getName' can be const.
[nta/test/Tester.hpp:98]: (style, inconclusive) Technically the member function 'nta::Tester::criticalFailureOccurred' can be const.
[nta/test/Tester.hpp:100]: (style, inconclusive) Technically the member function 'nta::Tester::getCriticalFailureMsg' can be const.
[nta/engine/unittests/RegionTest.cpp:61]: (style) The scope of the variable 'rP' can be reduced.
[nta/engine/unittests/RegionTest.cpp:63]: (style) Variable 'rP' is assigned a value that is never used.
[nta/ntypes/Buffer.cpp:391]: (style) The scope of the variable 'dummy' can be reduced.
[nta/ntypes/Buffer.cpp:392]: (style) The scope of the variable 'result' can be reduced.
[nta/ntypes/Buffer.cpp:409]: (style) The scope of the variable 'result' can be reduced.
[nta/ntypes/Buffer.cpp:112]: (style) Checking if unsigned variable 'size' is less than zero.
[nta/ntypes/Buffer.cpp:130]: (style) Checking if unsigned variable 'size' is less than zero.
[nta/ntypes/Buffer.cpp:148]: (style) Checking if unsigned variable 'size' is less than zero.
[nta/ntypes/Buffer.cpp:166]: (style) Checking if unsigned variable 'size' is less than zero.
[nta/ntypes/Buffer.cpp:184]: (style) Checking if unsigned variable 'size' is less than zero.
[nta/ntypes/Buffer.cpp:202]: (style) Checking if unsigned variable 'size' is less than zero.
[nta/ntypes/Buffer.cpp:247]: (warning) Member variable 'ReadBuffer::bytes_' is not initialized in the constructor.
[nta/ntypes/Buffer.cpp:487]: (warning) Member variable 'ReadBufferIterator::owner_' is not initialized in the constructor.
[nta/ntypes/MemParser.hpp:57]: (style) 'class MemParser' does not have a copy constructor which is recommended since the class contains a pointer to allocated memory.
[nta/ntypes/Value.cpp:189]: (performance) Prefer prefix ++/-- operators for non-primitive types.
[nta/ntypes/Value.cpp:199]: (performance) Prefer prefix ++/-- operators for non-primitive types.
[nta/ntypes/Value.cpp:206]: (performance) Prefer prefix ++/-- operators for non-primitive types.
[nta/ntypes/Value.cpp:217]: (performance) Prefer prefix ++/-- operators for non-primitive types.
[nta/ntypes/unittests/ArrayTest.cpp:213]: (style) The scope of the variable 'caughtException' can be reduced.
[nta/ntypes/unittests/ArrayTest.cpp:149]: (performance) Prefer prefix ++/-- operators for non-primitive types.
[nta/ntypes/unittests/ArrayTest.cpp:217]: (performance) Prefer prefix ++/-- operators for non-primitive types.
[nta/ntypes/unittests/ArrayTest.cpp:279]: (performance) Prefer prefix ++/-- operators for non-primitive types.
[nta/ntypes/unittests/ArrayTest.cpp:319]: (performance) Prefer prefix ++/-- operators for non-primitive types.
[nta/ntypes/unittests/ArrayTest.cpp:340]: (performance) Prefer prefix ++/-- operators for non-primitive types.
[nta/ntypes/unittests/MemParserTest.cpp:186]: (style) The scope of the variable 'v' can be reduced.
[/home/marek/devel/nupic/external/common/include/zconf.h:261] -> [nta/types/types.hpp:38]: (style, inconclusive) The typedef 'Byte' hides a typedef with the same name.
[nta/regions/VectorFile.cpp:353]: (portability, inconclusive) Casting from float* to char* is not portable due to different binary data representations on different platforms.
[nta/regions/VectorFile.cpp:649]: (warning) Casting between integer* and float* which have an incompatible binary data representation.
[nta/regions/VectorFile.cpp:660]: (warning) Casting between integer* and double* which have an incompatible binary data representation.
[nta/regions/VectorFile.cpp:441]: (style) Variable 'cur' is assigned a value that is never used.
[nta/regions/VectorFile.cpp:683]: (style) Variable 'cur' is assigned a value that is never used.
[nta/regions/VectorFile.hpp:83]: (style, inconclusive) Technically the member function 'nta::VectorFile::vectorCount' can be const.
[nta/regions/VectorFileSensor.cpp:292] -> [nta/regions/VectorFileSensor.cpp:290]: (style) Found duplicate branches for 'if' and 'else'.
[nta/regions/VectorFileSensor.cpp:381]: (style) The scope of the variable 'where' can be reduced.
[nta/regions/VectorFileSensor.cpp:331]: (style) Unsigned variable 'int_param' can't be negative so it is unnecessary to test it.
[nta/regions/VectorFileSensor.cpp:465]: (style) Checking if unsigned variable 'curVector_' is less than zero.
[nta/types/Fraction.cpp:329]: (style) The scope of the variable 'component' can be reduced.
[nta/types/Fraction.cpp:76] -> [nta/types/Fraction.hpp:43]: (style, inconclusive) Technically the member function 'nta::Fraction::isNaturalNumber' can be const.
[nta/types/Fraction.cpp:81] -> [nta/types/Fraction.hpp:45]: (style, inconclusive) Technically the member function 'nta::Fraction::getNumerator' can be const.
[nta/types/Fraction.cpp:86] -> [nta/types/Fraction.hpp:46]: (style, inconclusive) Technically the member function 'nta::Fraction::getDenominator' can be const.
[nta/types/Fraction.cpp:383] -> [nta/types/Fraction.hpp:71]: (style, inconclusive) Technically the member function 'nta::Fraction::toDouble' can be const.
[nta/types/unittests/FractionTest.cpp:38]: (error) Instance of 'Fraction' object is destroyed immediately.
[nta/types/unittests/FractionTest.cpp:39]: (error) Instance of 'Fraction' object is destroyed immediately.
[nta/types/unittests/FractionTest.cpp:40]: (error) Instance of 'Fraction' object is destroyed immediately.
[nta/types/unittests/FractionTest.cpp:41]: (error) Instance of 'Fraction' object is destroyed immediately.
[nta/types/unittests/FractionTest.cpp:42]: (error) Instance of 'Fraction' object is destroyed immediately.
[nta/types/unittests/FractionTest.cpp:43]: (error) Instance of 'Fraction' object is destroyed immediately.
[nta/types/unittests/FractionTest.cpp:44]: (error) Instance of 'Fraction' object is destroyed immediately.
[nta/types/unittests/FractionTest.cpp:45]: (error) Instance of 'Fraction' object is destroyed immediately.
[nta/types/unittests/FractionTest.cpp:46]: (error) Instance of 'Fraction' object is destroyed immediately.
[nta/types/unittests/FractionTest.cpp:50]: (error) Instance of 'Fraction' object is destroyed immediately.
[nta/types/unittests/FractionTest.cpp:51]: (error) Instance of 'Fraction' object is destroyed immediately.
[nta/types/unittests/FractionTest.cpp:52]: (error) Instance of 'Fraction' object is destroyed immediately.
[nta/types/unittests/FractionTest.cpp:53]: (error) Instance of 'Fraction' object is destroyed immediately.
[nta/types/unittests/FractionTest.cpp:54]: (error) Instance of 'Fraction' object is destroyed immediately.
[nta/types/unittests/FractionTest.cpp:55]: (error) Instance of 'Fraction' object is destroyed immediately.
[nta/types/unittests/FractionTest.cpp:60]: (error) Instance of 'Fraction' object is destroyed immediately.
[nta/types/unittests/FractionTest.cpp:61]: (error) Instance of 'Fraction' object is destroyed immediately.
[nta/types/unittests/FractionTest.cpp:62]: (error) Instance of 'Fraction' object is destroyed immediately.
[nta/types/unittests/FractionTest.cpp:63]: (error) Instance of 'Fraction' object is destroyed immediately.
[nta/types/unittests/FractionTest.cpp:64]: (error) Instance of 'Fraction' object is destroyed immediately.
[nta/utils/Random.cpp:190]: (style) The scope of the variable 'lo' can be reduced.
[nta/utils/Random.cpp:190]: (style) The scope of the variable 'hi' can be reduced.
[nta/utils/Random.hpp:105]: (style, inconclusive) Technically the member function 'nta::Random::getSeed' can be const.
[nta/utils/Random.hpp:110]: (performance, inconclusive) Technically the member function 'nta::Random::max' can be static.
[nta/utils/Random.hpp:111]: (performance, inconclusive) Technically the member function 'nta::Random::min' can be static.
[nta/utils/Watcher.hpp:56] -> [nta/utils/Watcher.hpp:46]: (style) Variable 'output' hides enumerator with same name
[nta/utils/Watcher.cpp:267] -> [nta/utils/Watcher.cpp:260]: (style) Found duplicate branches for 'if' and 'else'.
[nta/utils/Watcher.cpp:539] -> [nta/utils/Watcher.hpp:129]: (style, inconclusive) Technically the member function 'nta::Watcher::detachFromNetwork' can be const.
[nta/utils/Watcher.hpp:100]: (performance) Function parameter 'fileName' should be passed by reference.
[nta/utils/Watcher.cpp:526]: (error) Invalid iterator: it
[nta/utils/unittests/random_private_orig.c:238]: (style) The scope of the variable 'test' can be reduced.
[nta/utils/unittests/random_private_orig.c:239]: (style) The scope of the variable 'i' can be reduced.
[nta/utils/unittests/RandomTest.cpp:252]: (style) The scope of the variable 'r1' can be reduced.

local master fails: run_tests.sh --all compare TPs

I get run_tests.sh --all fail 3 tests on master at the local machine. With machine restart (if the toolchain got weird), in py27/py26 virtualenv, gcc, ./cleanbuild.sh

I've first spotted that on PR #313 where tests/integration/py2/nupic/algorithms/tp10x2_test.py:242: TP10X2Test.testTPs FAILED fails both upstream and locally. Later I realized that even master fails locally here, for the --all option, same errors, the ./run_tests.sh do fine.

I tested upstream with PR #316 and it seems to pass everything ok, I'm attaching the local error below. Suggesting PR #317 so we get better coverage (and possibly check if this is local, or more common problem).

Thank you for helping out!

Test error output:

Stdout redirected to: /tmp/ntabuild/stdout.txt
Build successful.
(py27)[marek@beruska nupic]$ ./run_tests.sh --all
============================================================================= test session starts ==============================================================================
platform linux2 -- Python 2.7.5 -- pytest-2.4.0.dev8 -- /home/marek/devel/nupic/py27/bin/python
plugins: cov, xdist
collected 692 items / 3 skipped

tests/external/py2/asteval_test.py:32: TestCase.testImportAndVersions PASSED
tests/external/py2/testfixture_test.py:48: TestPytest.testSetUpModuleCalled PASSED
tests/integration/py2/nupic/algorithms/tp10x2_test.py:242: TP10X2Test.testTPs FAILED^C

=================================================================================== FAILURES ===================================================================================
______________________________________________________________________________ TP10X2Test.testTPs ______________________________________________________________________________
self = <tests.integration.py2.nupic.algorithms.tp10x2_test.TP10X2Test testMethod=testTPs>, short = True

def testTPs(self, short=True):
  """Call basicTest2 with multiple parameter settings and ensure the C++ and
    PY versions are identical throughout."""

  if short == True:
    print "Testing short version"
  else:
    print "Testing long version"

  if short:
    print "\nTesting with fixed resource CLA - test max segment and synapses"
    tp = TP10X2(numberOfCols=30, cellsPerColumn=5,
           initialPerm=.5, connectedPerm= 0.5, permanenceMax=1,
           minThreshold=8, newSynapseCount=10,
           permanenceInc=0.1, permanenceDec=0.01,
           globalDecay=.0, activationThreshold=8,
           doPooling=False, segUpdateValidDuration=5,
           seed=SEED, verbosity=VERBOSITY,
           maxAge=0,
           maxSegmentsPerCell=2, maxSynapsesPerSegment=10,
           checkSynapseConsistency=True)
    tp.cells4.setCellSegmentOrder(1)
  self.basicTest2(tp, numPatterns=15, numRepetitions=1)

tests/integration/py2/nupic/algorithms/tp10x2_test.py:264:


self = <tests.integration.py2.nupic.algorithms.tp10x2_test.TP10X2Test testMethod=testTPs>, tp = <nupic.research.TP10X2.TP10X2 object at 0x40dd950>, numPatterns = 15
numRepetitions = 1, activity = 15, testTrimming = False, testRebuild = False

def basicTest2(self, tp, numPatterns=100, numRepetitions=3, activity=15,
               testTrimming=False, testRebuild=False):
  """Basic test (basic run of learning and inference)"""
  # Create PY TP object that mirrors the one sent in.
  tpPy = TP(numberOfCols=tp.numberOfCols, cellsPerColumn=tp.cellsPerColumn,
            initialPerm=tp.initialPerm, connectedPerm=tp.connectedPerm,
            minThreshold=tp.minThreshold, newSynapseCount=tp.newSynapseCount,
            permanenceInc=tp.permanenceInc, permanenceDec=tp.permanenceDec,
            permanenceMax=tp.permanenceMax, globalDecay=tp.globalDecay,
            activationThreshold=tp.activationThreshold,
            doPooling=tp.doPooling,
            segUpdateValidDuration=tp.segUpdateValidDuration,
            pamLength=tp.pamLength, maxAge=tp.maxAge,
            maxSeqLength=tp.maxSeqLength,
            maxSegmentsPerCell=tp.maxSegmentsPerCell,
            maxSynapsesPerSegment=tp.maxSynapsesPerSegment,
            seed=tp.seed, verbosity=tp.verbosity)

  # Ensure we are copying over learning states for TPDiff
  tp.retrieveLearningStates = True

  verbosity = VERBOSITY

  # Learn

  # Build up sequences
  sequence = fdrutils.generateCoincMatrix(nCoinc=numPatterns,
                                          length=tp.numberOfCols,
                                          activity=activity)
  for r in xrange(numRepetitions):
    for i in xrange(sequence.nRows()):

      #if i > 11:
      #  setVerbosity(6, tp, tpPy)

      if i % 10 == 0:
        tp.reset()
        tpPy.reset()

      if verbosity >= 2:
        print "\n\n    ===================================\nPattern:",
        print i, "Round:", r, "input:", sequence.getRow(i)

      y1 = tp.learn(sequence.getRow(i))
      y2 = tpPy.learn(sequence.getRow(i))

      # Ensure everything continues to work well even if we continuously
      # rebuild outSynapses structure
      if testRebuild:
        tp.cells4.rebuildOutSynapses()

      if testTrimming:
        tp.trimSegments()
        tpPy.trimSegments()

      if verbosity > 2:
        print "\n   ------  CPP states  ------ ",
        tp.printStates()
        print "\n   ------  PY states  ------ ",
        tpPy.printStates()
        if verbosity > 6:
          print "C++ cells: "
          tp.printCells()
          print "PY cells: "
          tpPy.printCells()

      if verbosity >= 3:
        print "Num segments in PY and C++", tpPy.getNumSegments(), \
            tp.getNumSegments()

      # Check if the two TP's are identical or not. This check is slow so
      # we do it every other iteration. Make it every iteration for debugging
      # as needed.
      self.assertTrue(fdrutils.tpDiff2(tp, tpPy, verbosity, False))

      # Check that outputs are identical
      self.assertLess(abs((y1 - y2).sum()), 3)

  print "Learning completed"

  self.assertTrue(fdrutils.tpDiff2(tp, tpPy, verbosity))

  # TODO: Need to check - currently failing this
  #checkCell0(tpPy)

  # Remove unconnected synapses and check TP's again

  # Test rebuild out synapses
  print "Rebuilding outSynapses"
  tp.cells4.rebuildOutSynapses()
  self.assertTrue(fdrutils.tpDiff2(tp, tpPy, VERBOSITY))

  print "Trimming segments"
  tp.trimSegments()
  tpPy.trimSegments()
  self.assertTrue(fdrutils.tpDiff2(tp, tpPy, VERBOSITY))

  # Save and reload after learning
  print "Pickling and unpickling"
  tp.makeCells4Ephemeral = False
  pickle.dump(tp, open("test_tp10x.pkl", "wb"))
  tp2 = pickle.load(open("test_tp10x.pkl"))
  self.assertTrue(fdrutils.tpDiff2(tp, tp2, VERBOSITY, checkStates=False))

  # Infer
  print "Testing inference"

  # Setup for inference
  tp.reset()
  tpPy.reset()
  setVerbosity(INFERENCE_VERBOSITY, tp, tpPy)

  patterns = numpy.zeros((40, tp.numberOfCols), dtype='uint32')
  for i in xrange(4):
    _RGEN.initializeUInt32Array(patterns[i], 2)

  for i, x in enumerate(patterns):

    x = numpy.zeros(tp.numberOfCols, dtype='uint32')
    _RGEN.initializeUInt32Array(x, 2)
    y = tp.infer(x)
    yPy = tpPy.infer(x)
  self.assertTrue(fdrutils.tpDiff2(tp, tpPy, VERBOSITY, checkLearn=False))

E AssertionError: False is not True

tests/integration/py2/nupic/algorithms/tp10x2_test.py:226: AssertionError
------------------------------------------------------------------------------- Captured stdout --------------------------------------------------------------------------------
Testing short version

Testing with fixed resource CLA - test max segment and synapses
Learning completed
Rebuilding outSynapses
Trimming segments
Pickling and unpickling
Testing inference
Active states diverged (array([ 1, 2, 8, 9, 10, 13, 14, 16, 17, 18, 20, 21, 22, 23, 25, 27]), array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]))
Predicted states diverged (array([18]), array([1]))
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! KeyboardInterrupt !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
/home/marek/nta/eng/lib/python2.7/site-packages/py/_process/forkedfunc.py:70: KeyboardInterrupt
================================================================ 1 failed, 2 passed, 3 skipped in 5.34 seconds ====

what's the /path/to/repo ?

i have no idea what's the /path/to/repo . i try install nupic on Ubuntu 13.04 .

i git clone nupic in /opt/nupic .

how to change .bashrc ?

Unused parameters

With the PR #364 the unused parameter warnings appear. And as we use Werror, there are now muted with Wno-error=unused-parameter and Wno-unused-parameter.

Ideally we'd like to have these warnings enabled, so we need to go through the code (remove the -Wno-unused-parameter to spot them) and work through it and remove them from methods.

Generated Code documentation info on cla model parameter configuration

There are a lot of possible parameter values for a corresponding field label of the model parameters configuration. It is unclear what these are other than looking at examples and grepping through the code base.

  • MODEL_PARAMS in model_params.py, or config in description.py depending if using the custom OPF Client or OpfRunExperiment.
  • Best if this would be generated by the code itself and placed in the top level directory, e.g. pydoc or doxygen since new possible parameter values are bound to change.
  • Example fields of modelParams: 'inferenceType', 'encoders'->'type'
  • Example fields of numeric based values. What is the range (min, max) and acceptable values, and default values. For example if you changed the 'minThreshold' or 'activationThreshold' in 'tpParams'.

This would be a helpful guide for moving beyond the APIs and concentrating more on the configuration and metadata used by the APIs.

Proposal: Dropping Python 2.6

Would it be possible to move to python 2.7 as the default (and even break feature parity with python2.6 to take advantage of 2.7)?

For the linux/mac landscape this shouldnt be a problem, as python 2.7 is available there (and sometimes even default).

Many projects still use python 2 (havent shifted to Python 3.x), so it's good to stict there. Also, python 2.7 is the last stage of python2 series [1], so there won't be any puthon2.8. Also it's actively used, so there will be 2.7.y bugfix releases. That makes it ideal target.

Pros:
+drop hacks for py2.6
+reduce Travis build matrix
+python 2.7 is final stage of py2

Cons:
-Grok uses Jython, Jython depends on python 2.5(?)
But now there seems to be a release using python 2.7 (albeit beta!) [2], would it be possible for grok to shift over to using it?

[1] https://mail.python.org/pipermail/python-dev/2010-October/105016.html
[2] http://www.jython.org/

Investigate why swarms pick up constant fields

Investigate constant field contribution in swarms. Why are they selected, and what can be done for them not to be selected.

Check whether 0.2% improvement is sufficient to include a field.

This issue was plucked from the backlog of Grok issues after the swarming process was open-sourced. It included some propriety data sets from previous customers that could not be included publicly. To reproduce this but, the assignee will likely need to test different data sets by swarming over them and find one where swarming selects a constant field.

Remove external dependencies from NuPIC repo

Once we have virtualenv repos with dependencies and have updated Jenkins and Travis to use them, we can completely remove external dependencies from the NuPIC repo.

Comments from JIRA

From @breznak:

What are these external deps? Appart from python modules, but those are installed by pip. Then there's swig, but that one is really tricky and old version, so imho should be bundeled.
Boost - but we provide headers only, no need to use whole lib.

From @scottpurdy

Marek, we plan to create pre-built virtualenvs with the deps so that we can get them out of the NuPIC repo. This solves licensing issues and allows them to be pre-built, as opposed to pip cache that requires a build. More details to come later as we are still nailing down the final details and will send an email to the list when we have a better idea.

Associated commits:

https://github.com/numenta/nupic-linux64/commit/42e76f8c31de70cbe92362f8f81dab8a71d2fa31

Travis artifact upload is broken

Example output from build 902.1:

$ travis-artifacts upload --path build-$TRAVIS_COMMIT.tar.gz --target-path $TRAVIS_REPO_SLUG
/home/travis/.rvm/rubies/ruby-1.9.3-p448/lib/ruby/1.9.1/find.rb:38:in `block in find': No such file or directory (Errno::ENOENT)
    from /home/travis/.rvm/rubies/ruby-1.9.3-p448/lib/ruby/1.9.1/find.rb:38:in `collect!'
    from /home/travis/.rvm/rubies/ruby-1.9.3-p448/lib/ruby/1.9.1/find.rb:38:in `find'
    from /home/travis/.rvm/gems/ruby-1.9.3-p448/gems/travis-artifacts-0.2.0/lib/travis/artifacts/uploader.rb:38:in `block in files'
    from /home/travis/.rvm/gems/ruby-1.9.3-p448/gems/travis-artifacts-0.2.0/lib/travis/artifacts/uploader.rb:28:in `each'
    from /home/travis/.rvm/gems/ruby-1.9.3-p448/gems/travis-artifacts-0.2.0/lib/travis/artifacts/uploader.rb:28:in `files'
    from /home/travis/.rvm/gems/ruby-1.9.3-p448/gems/travis-artifacts-0.2.0/lib/travis/artifacts/uploader.rb:20:in `upload'
    from /home/travis/.rvm/gems/ruby-1.9.3-p448/gems/travis-artifacts-0.2.0/lib/travis/artifacts/cli.rb:32:in `upload'
    from /home/travis/.rvm/gems/ruby-1.9.3-p448/gems/travis-artifacts-0.2.0/lib/travis/artifacts/cli.rb:39:in `execute_command'
    from /home/travis/.rvm/gems/ruby-1.9.3-p448/gems/travis-artifacts-0.2.0/lib/travis/artifacts/cli.rb:24:in `start'
    from /home/travis/.rvm/gems/ruby-1.9.3-p448/gems/travis-artifacts-0.2.0/bin/travis-artifacts:4:in `<top (required)>'
    from /home/travis/.rvm/gems/ruby-1.9.3-p448/bin/travis-artifacts:23:in `load'
    from /home/travis/.rvm/gems/ruby-1.9.3-p448/bin/travis-artifacts:23:in `<main>'
    from /home/travis/.rvm/gems/ruby-1.9.3-p448/bin/ruby_noexec_wrapper:14:in `eval'
    from /home/travis/.rvm/gems/ruby-1.9.3-p448/bin/ruby_noexec_wrapper:14:in `<main>'

ARMv7 Architecture support for NuPIC

Moving up to a recent codebase for ARMv7 Architecture support to get mainlined.
Platform: Samsung Chromebook Ubuntu (Crouton).

Few Open Issues for Discussion:

  • Currently we are combining platform os and architecture specifics in ../external//. Based on the current model, adding armv7 support would mean I would have to add something like "linux32armv7" and have the architecture and configuration files change to use this folder and that add the preprocessor macros in the code where we are currently using for "NTA_platform_linux32arm". Is this acceptable? Technically this should be combined in "linux32arm" and have a separate armv6 and armv7 folders within for the proper cpu architecture. But this should probably be handled as a separate issue.
  • I am using the following sources to compile for ARMv7 platform, are there additional dependencies on top of these? As I came across the below mentioned pull requests, which seem to dictate NuPIC has additional changes on top of these downloads.
    (1) http://code.google.com/p/yaml-cpp/ (version 0.3.0)
    Came across the following: #301
    (2) http://www.zlib.net/ (version 1.2.8)
    (3) http://apr.apache.org (apr: version 1.4.8, apr-util: 1.5.2)
    Came across the following: #253
    (4) http://www.swig.org/ (2.0.10)
    Came across the following: #344

However still facing build errors. Thought I would check first on dependencies before pasting build error logs. Comments?

Provide anomaly detection guidance for NLP

Migrated from NPC-386.

  • anomaly detection guidance could be a good idea, it should be easier to do this than prediction
    • after training on sentences from a known corpus of words, feed in nonsense sentences and we should see high anomaly scores (re: syntactic anomalies)
    • several sentences like: "Tom drove a X", where X is a reasonable word, train on lots of values for X, then send unreasonable values to confirm high anomaly scores (re: semantic anomalies)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.