void bdd_mark_upto(int i, int level) { BddNode *node = &bddnodes[i]; if (i < 2) return; if (LEVELp(node) & MARKON || LOWp(node) == -1) return; if (LEVELp(node) > level) return; LEVELp(node) |= MARKON; bdd_mark_upto(LOWp(node), level); bdd_mark_upto(HIGHp(node), level); }
void bdd_mark_upto(int i, int level) { BddNode *node = &bddnodes[i]; if (i < 2) return; if (MARKEDp(node) || LOWp(node) == INVALID_BDD) return; if (LEVELp(node) > level) return; SETMARKp(node); bdd_mark_upto(LOWp(node), level); bdd_mark_upto(HIGHp(node), level); }