return CCSOLVER(solver)->applyPredicate((Predicate *)predicate, (Element **)inputs, (uint) numInputs).getRaw();
}
-void *applyLogicalOperation(void *solver,unsigned int op, void *array, unsigned int asize) {
- return CCSOLVER(solver)->applyLogicalOperation((LogicOp) op, (BooleanEdge *)array, (uint) asize).getRaw();
+void *applyLogicalOperation(void *solver,unsigned int op, void **array, unsigned int asize) {
+ BooleanEdge constr [asize];
+ for(uint i=0; i< asize; i++){
+ constr[i] = BooleanEdge((Boolean*)array[i]);
+ }
+ return CCSOLVER(solver)->applyLogicalOperation((LogicOp) op, constr, (uint) asize).getRaw();
+}
+
+void *applyExactlyOneConstraint(void *solver, void **array, unsigned int asize) {
+ BooleanEdge constr [asize];
+ for(uint i=0; i< asize; i++){
+ constr[i] = BooleanEdge((Boolean*)array[i]);
+ }
+ return CCSOLVER(solver)->applyExactlyOneConstraint( constr, (uint) asize).getRaw();
}
void *applyLogicalOperationTwo(void *solver,unsigned int op, void *arg1, void *arg2) {
return CCSOLVER(solver)->solve();
}
+int solveIncremental(void *solver) {
+ return CCSOLVER(solver)->solveIncremental();
+}
+
long getElementValue(void *solver,void *element) {
return (long) CCSOLVER(solver)->getElementValue((Element *)element);
}
+void freezeElement(void *solver,void *element) {
+ CCSOLVER(solver)->freezeElement((Element *)element);
+}
+
int getBooleanValue(void *solver, void *boolean) {
return CCSOLVER(solver)->getBooleanValue(BooleanEdge((Boolean *) boolean));
}