row=constraintAND(This->cnf, inputNum, carray);
break;
case FLAGFORCEUNDEFINED:{
- Edge undefConst = ((BooleanVar*)constraint->undefStatus)->var;
+ Edge undefConst = encodeConstraintSATEncoder(This, constraint->undefStatus);
row=constraintIMPLIES(This->cnf,constraintAND(This->cnf, inputNum, carray), constraintNegate(undefConst));
break;
}
vals[i]=getSetElement(set, indices[i]);
}
- Edge undefConstraint = ((BooleanVar*) constraint->undefStatus)->var;
+ Edge undefConstraint = encodeConstraintSATEncoder (This, constraint->undefStatus);
bool notfinished=true;
while(notfinished) {
break;
}
case FLAGFORCEUNDEFINED: {
- Edge undefConst = ((BooleanVar*)func->overflowstatus)->var;
+ Edge undefConst = encodeConstraintSATEncoder(This, func->overflowstatus);
row=constraintIMPLIES(This->cnf,constraintAND(This->cnf, inputNum, carray), constraintAND2(This->cnf, output, constraintNegate(undefConst)));
break;
}
}
FunctionTable* function =(FunctionTable*)elemFunc->function;
- model_print("undefBehavior: %d\n", function->undefBehavior);
switch(function->undefBehavior){
case IGNOREBEHAVIOR:
case FLAGFORCEUNDEFINED:
vals[i]=getSetElement(set, indices[i]);
}
- Edge undefConstraint = ((BooleanVar*) elemFunc->overflowstatus)->var;
-
+ Edge undefConstraint = encodeConstraintSATEncoder(This, elemFunc->overflowstatus);
bool notfinished=true;
while(notfinished) {
Edge carray[numDomains+1];