Browse Source

hopefully fixing cudd's min/maxAbstractRepresentative

Former-commit-id: 06564ba2c2
tempestpy_adaptions
dehnert 8 years ago
parent
commit
142eb96736
  1. 71
      resources/3rdparty/cudd-3.0.0/cudd/cuddAddAbs.c

71
resources/3rdparty/cudd-3.0.0/cudd/cuddAddAbs.c

@ -1003,27 +1003,25 @@ cuddAddMinAbstractRepresentativeRecur(
logicalZero = Cudd_Not(one);
/* Cube is guaranteed to be a cube at this point. */
if (cuddIsConstant(cube)) {
return one;
}
if (cuddIsConstant(f)) {
if (cuddIsConstant(cube)) {
return one;
} else {
res = cuddBddExistAbstractRepresentativeRecur(manager, f, cuddT(cube));
if (res == NULL) {
return(NULL);
}
cuddRef(res);
res = cuddBddExistAbstractRepresentativeRecur(manager, f, cuddT(cube));
if (res == NULL) {
return(NULL);
}
cuddRef(res);
// We build in the negation ourselves.
res1 = cuddUniqueInter(manager, (int) cube->index, one, Cudd_Not(res));
if (res1 == NULL) {
Cudd_IterDerefBdd(manager,res);
return(NULL);
}
res1 = Cudd_Not(res1);
cuddDeref(res);
return(res1);
// We build in the negation ourselves.
res1 = cuddUniqueInter(manager, (int) cube->index, one, Cudd_Not(res));
if (res1 == NULL) {
Cudd_IterDerefBdd(manager,res);
return(NULL);
}
res1 = Cudd_Not(res1);
cuddDeref(res);
return(res1);
}
/* Abstract a variable that does not appear in f. */
@ -1191,27 +1189,26 @@ cuddAddMaxAbstractRepresentativeRecur(
logicalZero = Cudd_Not(one);
/* Cube is guaranteed to be a cube at this point. */
if (cuddIsConstant(cube)) {
return one;
}
if (cuddIsConstant(f)) {
if (cuddIsConstant(cube)) {
return one;
} else {
res = cuddBddExistAbstractRepresentativeRecur(manager, f, cuddT(cube));
if (res == NULL) {
return(NULL);
}
cuddRef(res);
// We build in the negation ourselves.
res1 = cuddUniqueInter(manager, (int) cube->index, one, Cudd_Not(res));
if (res1 == NULL) {
Cudd_IterDerefBdd(manager,res);
return(NULL);
}
res1 = Cudd_Not(res1);
cuddDeref(res);
return(res1);
res = cuddBddExistAbstractRepresentativeRecur(manager, f, cuddT(cube));
if (res == NULL) {
return(NULL);
}
cuddRef(res);
// We build in the negation ourselves.
res1 = cuddUniqueInter(manager, (int) cube->index, one, Cudd_Not(res));
if (res1 == NULL) {
Cudd_IterDerefBdd(manager,res);
return(NULL);
}
res1 = Cudd_Not(res1);
cuddDeref(res);
return(res1);
}
/* Abstract a variable that does not appear in f. */
Loading…
Cancel
Save