public void setVarOrder(int[] neworder) { bdd_setvarorder(neworder);
public void setVarOrder(List domains) { BddTree[] my_vartree = new BddTree[fdvarnum]; boolean[] interleaved = new boolean[fdvarnum]; int k = 0; for (Iterator i = domains.iterator(); i.hasNext(); ) { Object o = i.next(); Collection c; if (o instanceof BDDDomain) c = Collections.singleton(o); else c = (Collection) o; for (Iterator j = c.iterator(); j.hasNext(); ) { BDDDomain d = (BDDDomain) j.next(); int low = d.ivar[0]; int high = d.ivar[d.ivar.length-1]; addVarBlock(low, high, false); BddTree b = getBlock(vartree, low, high); my_vartree[k] = b; interleaved[k] = j.hasNext(); k++; } } BddTree prev = null; boolean prev_interleaved = false; for (int i = 0; i < k; ++i) { BddTree t = my_vartree[i]; while (t.prev != prev) { blockdown(t.prev); } if (prev_interleaved) { blockinterleave(t.prev); } prev = t; prev_interleaved = interleaved[k]; }
    public void setVarOrder(int[] neworder) {        bdd_setvarorder(neworder);    }