anchor.diff:          size_t n, int const *b, double *evidence, inform_error *err);
   ----
   [horizontal]
  -Header:: `inform/information_flow.h`
  +Header:: `inform/integration.h`
   ****
   
   ****
  
positive.code:         double *evidence, inform_error *err);
  ----
  [horizontal]
  Header:: `inform/information_flow.h`
  ****
  
  [[mutual-information]]
  
negative.code: 
  [[information-flow]]
  == Information Flow
  Information flow (IF) was introduced by Ay and Polani as a measure of the "strength of a
  causal effect" (<<Ay2008>>). Unlike many of the other measures in *Inform*, information flow
  was designed around interventions: rather than allowing dynamics to progress naturally, some
  subset of the random variables are forced into a particular state. If no interventions are
  performed, then IF reduces to
  https://en.wikipedia.org/wiki/Conditional_mutual_information[conditional mutual
  information].
  
  Practially, there is no way for *Inform* to know from time series whether or not any
  interventions have actually been performed upon the system. As such, the onous is on the
  user to determine whether this function is in-fact computing Ay and Polani's information
  flow.
  
  In accordance with <<Ay2008>>, information flow is defined as
  
  [stem]
  ++++
  I_p(X \rightarrow Y | Z) = \sum_{x,y,z} p(z)p(x|\hat{z})p(y|\hat{x},\hat{z})
      \log{
          \frac{p(y|\hat{x},\hat{z})}
          {\sum_{x^\prime} p(x^\prime|\hat{z})p(y|\hat{x}^\prime,\hat{z})}
      }
  ++++
  
  All probabilities are estimated from sequences of observations — the order of those
  sequences is irrelevant. A https://github.com/elife-asu/inform/issues/76[subsequent version]
  will allow the user to specify intervention distributions.
  
  ****
  [[inform_information_flow]]
  