ELIFE-ASU / Inform

A cross platform C library for information analysis of dynamical systems
https://elife-asu.github.io/Inform
MIT License
23 stars 3 forks source link

Separable Information #16

Closed dglmoore closed 7 years ago

dglmoore commented 8 years ago

Implement separable information as presented by Lizier, Prokopenko and Zomaya.

Separable information for node x in a system with causal sources ys is the sum of the active information storage of x and the transfer entropy from each source in ys to x.

Proposed API

EXPORT double inform_separable_info(int const *srcs, int const *dst, size_t l, size_t n, size_t m,
    int b, size_t k, inform_error *err);
EXPORT double *inform_separable_info(int const *srcs, int const *dst, size_t l, size_t n, size_t m,
    int b, size_t k, double *sep, inform_error *err);

Example Usage

#define L 1
#define N 9
#define M 2

int xs[L * N] = {0,1,0,1,0,1,0,0,1};
int ys[L * N * M] = {
    0,0,1,0,1,1,1,0,1,
    1,0,1,1,0,1,1,1,0
};

inform_error err = INFORM_SUCCESS;
inform_separable_info(ys, xs, L, N, M, 2, 2, &err) // 0.699514