bdd_printset_rec(f, r.high(), set);
BDD rh = r.high(); bdd_printset_rec(f, rh, set); rh.free();
        static void bdd_printset_rec(BDDFactory f, BDD r, int[] set) {            int n;            boolean first;            if (r.isZero())                return;            else if (r.isOne()) {                System.out.print('<');                first = true;                for (n = 0; n < set.length; n++) {                    if (set[n] > 0) {                        if (!first)                            System.out.print(", ");                        first = false;                        System.out.print(f.level2Var(n));                        System.out.print(':');                        System.out.print((set[n] == 2 ? 1 : 0));                    }                }                System.out.print('>');            } else {                set[f.var2Level(r.var())] = 1;                bdd_printset_rec(f, r.low(), set);                set[f.var2Level(r.var())] = 2;                bdd_printset_rec(f, r.high(), set);                set[f.var2Level(r.var())] = 0;            }        }