Browse Source

ported fix for CUDD existsAbstractRepresentative from Philip's branch to game-branch

Former-commit-id: 5841f78c33
tempestpy_adaptions
dehnert 8 years ago
parent
commit
93010f3731
  1. 23
      resources/3rdparty/cudd-3.0.0/cudd/cuddBddAbs.c

23
resources/3rdparty/cudd-3.0.0/cudd/cuddBddAbs.c

@ -535,19 +535,34 @@ cuddBddExistAbstractRepresentativeRecur(
/* Cube is guaranteed to be a cube at this point. */ /* Cube is guaranteed to be a cube at this point. */
if (F == one) { if (F == one) {
if (fIsNegated) { if (fIsNegated) {
// printf("return in preprocessing...\n");
// printf("return in preprocessing...\n");
return f; return f;
} }
if (cube == one) { if (cube == one) {
// printf("return in preprocessing...\n");
// printf("return in preprocessing...\n");
return one; return one;
} else {
res = cuddBddExistAbstractRepresentativeRecur(manager, f, cuddT(cube));
if (res == NULL) {
return(NULL);
}
cuddRef(res);
res1 = cuddBddIteRecur(manager, manager->vars[cube->index], zero, res);
if (res1 == NULL) {
Cudd_IterDerefBdd(manager,res);
Cudd_IterDerefBdd(manager,zero);
return(NULL);
}
cuddDeref(res);
return(res1);
} }
} else if (cube == one) { } else if (cube == one) {
// printf("return in preprocessing...\n");
// printf("return in preprocessing...\n");
return f; return f;
} }
/* From now on, cube is non-constant, but f might be constant. */
/* From now on, cube and f are non-constant. */
// printf("F perm %i and cube perm %i\n", manager->perm[F->index], manager->perm[cube->index]); // printf("F perm %i and cube perm %i\n", manager->perm[F->index], manager->perm[cube->index]);

Loading…
Cancel
Save