Inform is a C libary designed to provide "easy" information analysis of complex systems. The primary use case for Inform is to wrap it in a higher-level language such as Python or R. That said, Inform is definitely useful.
If you are interested in wrapping or using Inform itself, you’ll definitely be interested in the documentation - https://elife-asu.github.io/Inform.
To build Inform, you will need to have CMake. Most of you can use your
package manager, e.g. apt-get
, pacman
or yum
on Linux or homebrew
, macports
or
fink
on OS X.
Once CMake is installed, building, testing and installing the library is a snap
λ cmake . -DCMAKE_BUILD_TYPE=Release -DEXAMPLES=Yes
λ make all tests
λ sudo make install
Building with MSVC is a bit more involved. Open the Visual C++ MSBuild command prompt (should be in your start menu). You can then run cmake build and test from the prompt:
λ cmake -DCMAKE_BUILD_TYPE=Release -DEXAMPLES=Yes -G"Visual Studio 14 2015"
λ msbuild /p:Configuration=Release ALL_BUILD.vcxproj
λ test\Release\inform_unittest.exe
Installation requires the user to manually copy the headers and libraries to wherever the user would like. This project-by-project approach is standard for Windows development, as you probably know.
Precompiled binaries can be found at https://github.com/elife-asu/inform/releases.
Inform is developed to help anyone interested in applying information-theoretic techniques get things done quickly and painlessly. We cannot do that without your feedback. We host the project’s source code and issue tracker on Github. Please create an issue if you find a bug, an error in this documentation, or have a feature you’d like to request. Your contribution will make Inform a better tool for everyone.
If you are interested in contributing to Inform, please contact the developers, and we’ll get you up and running!
- Inform Source Repository
- Issue Tracker
While Inform is a great tool to use directly in C or C+\+, significant effort has gone into making it easy to wrap higher level languages. Here are a few of the wrappers that are under active developed:
Package Name | Language | Repository | Website |
---|---|---|---|
PyInform |
Python |
||
rinform |
R |
||
Inform.jl |
Julia |
forthcoming |
|
InformWolfram |
Mathematica/Wolfram Language |
forthcoming |
Inform was not created in an intellectual vacuum. Many similar projects have preceded it and are under active development. All of those projects have advantages and disadvantages compared to Inform. If Inform doesn’t meet your needs, I hope you will let us know, and try one of these:
-
JIDT: Java Information Dynamics Toolkit (Java)
-
TRENTOOL: TRansfer ENtropy TOOLbox (Matlab)
-
dit: discrete information theory (Python)
-
MuTE: MuTE Toolbox- The Dynamic DIrected Links Detector (Matlab)
-
MVGC: Multivariate Granger Causality Toolbox (Matlab)
-
ACSS: Algorithmic Complexity for Short Strings ®
-
OACC: Online Algorithmic Complexity Calculator (web-based, R)
Copyright © 2016-2018 ELIFE, Arizona State University. Free use of this software is granted under the terms of the MIT License.
See the LICENSE file for details.
-
Moore, D.G., Valentini, G., Walker, S.I. and Levin, M. (2018) "Inform: Efficient Information-Theoretic Analysis of Collective Behaviors" Frontiers in Robotics & AI. (under review).
-
Moore, D.G., Valentini, G., Walker, S.I. and Levin, M. (2018) "Inform: A Toolkit for Information-Theoretic Analysis of Complex Systems". In: Proceedings of the 2017 IEEE Symposium on Computational Intelligence, Symposium on Artificial Life, IEEE Press. (in press).
This project was supported in part by a grant provided by the Templeton World Charity Foundation as part of the Power of Information Inititive.