X-Git-Url: http://plrg.eecs.uci.edu/git/?a=blobdiff_plain;f=src%2Fccsolver.cc;fp=src%2Fccsolver.cc;h=fa2e3426211b50e34f786e506e865307d3aa2d04;hb=081e954fa3566ad9a2522ca45bef8e29472d2a72;hp=d77352288e709f45aaed97f217891dfbeabad31a;hpb=0097f3d8e023e8ac1158436fe9aac33f93681f8d;p=satune.git diff --git a/src/ccsolver.cc b/src/ccsolver.cc index d773522..fa2e342 100644 --- a/src/ccsolver.cc +++ b/src/ccsolver.cc @@ -102,8 +102,20 @@ void *applyPredicate(void *solver,void *predicate, void **inputs, unsigned int n 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) {