docs: def infer_cm(tpm):
      """Infer the connectivity matrix associated with a state-by-node TPM in
      multidimensional form.
      """
      network_size = tpm.shape[-1]
      all_contexts = tuple(all_states(network_size - 1))
      cm = np.empty((network_size, network_size), dtype=int)
      for a, b in np.ndindex(cm.shape):
          cm[a][b] = infer_edge(tpm, a, b, all_contexts)
      return cm