private void flip(Graph g, Edge e, BitSet dbAtoms) { int u = e.either(); int v = e.other(u); if (ordering[u] < ordering[v]) { Edge first = firstDirectionalLabel(g, u); if (first != null) { flip(first, u, dbAtoms); } else { first = firstDirectionalLabel(g, v); flip(first, v, dbAtoms); } } else { Edge first = firstDirectionalLabel(g, v); if (first != null) { flip(first, v, dbAtoms); } else { first = firstDirectionalLabel(g, u); flip(first, u, dbAtoms); } } }