Git Product home page Git Product logo

inform's Introduction

Inform: A cross-platform C library for information analysis of dynamical systems

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.

Build Status (Travis CI) Build Status (Appveyor)

Installation from Source

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.

Linux, OS X, and Windows (Bash, MinGW and Cygwin)

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

Windows with MSVC

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.

Binary Installation

Precompiled binaries can be found at https://github.com/elife-asu/inform/releases.

Getting Help

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 Community

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:

Table 1. Inform Wrappers
Package Name Language Repository Website

PyInform

Python

elife-asu/pyinform

https://elife-asu.github.io/PyInform

rinform

R

elife-asu/rinform

https://elife-asu.github.io/rinform

Inform.jl

Julia

elife-asu/inform.jl

forthcoming

InformWolfram

Mathematica/Wolfram Language

elife-asu/informwolfram

forthcoming

Intellectual Relatives

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.

Relevant Publications

  • 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).

Support

This project was supported in part by a grant provided by the Templeton World Charity Foundation as part of the Power of Information Inititive.

inform's People

Contributors

dglmoore avatar gvalentini85 avatar jakehanson avatar

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.