ELIFE-ASU / Inform

A cross platform C library for information analysis of dynamical systems

Home Page:https://elife-asu.github.io/Inform

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Integrated Spatiotemporal Patterns

dglmoore opened this issue · comments

Implement algorithms for computing time series integration based on the work of Biehl, Ikgami and Polani

One of the problems with measures of integration such as integrated spatiotemporal patterns (ISTP) is that their computational complexity is super-exponential in the number of sources. This is a result of the fact that one has to consider every possible partitioning scheme for the sources. As an approximation, we will have to take a "level" argument which specifies how many different partitions we wish to consider.

For example, a level = 0 will mean that we wish to consider every possible partitioning, level = 1 will mean only consider the finest partition, level = 2 will mean consider the two finest levels of partitioning. We will also allow negative level, e.g. level = -1 will consider the coarsest (non-trivial) partitioning.

Proposed API

EXPORT double *inform_istp(int const *series, size_t l, size_t n, size_t m,
    int const *b, int level, double *istp, inform_error *err);

Example Usage

int series[18] = {0,0,1,0,1,0,0,1,0,  1,0,0,1,0,1,1,0,1};
double istp[9];
inform_error err = INFORM_SUCCESS;
inform_istp(series, 2, 1, 9, (int[]){2,2}, 1, istp, &err);
// istp == { 0.58,-1.41, 1.17, 0.58, 1.17, 0.58, 0.58, 1.17, 0.58}