for (int z = 0; z < variables.length; z++, value >>= 1) { BDD v;
Iterator i = variables.iterator(); int z = 0; while (i.hasNext()) { BDD var = (BDD) i.next();
    public BDD buildCube(int value, int[] variables) {        BDD result = one();        for (int z = 0; z < variables.length; z++, value >>= 1) {            BDD v;            if ((value & 0x1) != 0)                v = ithVar(variables[variables.length - z - 1]);            else                v = nithVar(variables[variables.length - z - 1]);            result.andWith(v);        }        return result;    }