if (satPolarity == BDDONE) {
if (satPolarity) {
    int satoneset_rec(int r, int var) {        if (ISCONST(r) && ISCONST(var)) return r;        int LEVEL_r = LEVEL(r);        int LEVEL_var = LEVEL(var);        if (LEVEL_r < LEVEL_var) {            int LOW_r = LOW(r);            if (ISZERO(LOW_r)) {                int res = satoneset_rec(HIGH(r), var);                int m = bdd_makenode(LEVEL_r, BDDZERO, res);                PUSHREF(m);                return m;            } else {                int res = satoneset_rec(LOW_r, var);                int m = bdd_makenode(LEVEL_r, res, BDDZERO);                PUSHREF(m);                return m;            }        } else if (LEVEL_var < LEVEL_r) {            int res = satoneset_rec(r, HIGH(var));            if (satPolarity == BDDONE) {                int m = bdd_makenode(LEVEL_var, BDDZERO, res);                PUSHREF(m);                return m;            } else {                int m = bdd_makenode(LEVEL_var, res, BDDZERO);                PUSHREF(m);                return m;            }        } else /* LEVEL_r == LEVEL_var */ {            int LOW_r = LOW(r);            int HIGH_var = HIGH(var);            if (ISZERO(LOW_r)) {                int res = satoneset_rec(HIGH(r), HIGH_var);                int m = bdd_makenode(LEVEL_r, BDDZERO, res);                PUSHREF(m);                return m;            } else {                int res = satoneset_rec(LOW_r, HIGH_var);                int m = bdd_makenode(LEVEL_r, res, BDDZERO);                PUSHREF(m);                return m;            }        }    }