static void ref_singleton(int k) { if (digraph) { data_mark(aout, eout, k); do_ref_singleton(); data_unmark(aout, eout, k); data_mark(ain, ein, k); do_ref_singleton(); data_unmark(ain, ein, k); } else { data_mark(adj, edg, k); do_ref_singleton(); data_unmark(adj, edg, k); } }
static int ref_singleton(struct saucy *s, struct coloring *c, const int *adj, const int *edg, int cf) { int i, k = c->lab[cf]; /* Find the cells we're connected to, and mark our neighbors */ for (i = adj[k]; i != adj[k+1]; ++i) { data_mark(s, c, edg[i]); } /* Refine the cells we're connected to */ return refine_cell(s, c, ref_single_cell); }