throw new BDDException();
throw new UnsupportedOperationException();
    public void setVarOrder(int[] neworder) {        // todo: setting var order corrupts all existing BDD's!        if (var2level != null)            throw new BDDException();                if (bdd.numberOfVariables() != neworder.length)            throw new BDDException();                int[] newvars = new int[vars.length];        var2level = new int[vars.length];        level2var = new int[vars.length];        for (int i = 0; i < bdd.numberOfVariables(); ++i) {            int k = neworder[i];            //System.out.println("Var "+k+" (node "+vars[k]+") in original order -> var "+i+" (node "+vars[i]+") in new order");            newvars[k] = vars[i];            var2level[k] = i;            level2var[i] = k;        }        vars = newvars;                //System.out.println("Number of domains: "+numberOfDomains());        for (int i = 0; i < numberOfDomains(); ++i) {            BDDDomain d = getDomain(i);            d.var = makeSet(d.ivar);            //System.out.println("Set for domain "+d+": "+d.var.toStringWithDomains());        }    }