Adding clone API in pycsolver ...
[satune.git] / src / ccsolver.cc
index 2535c7f935b3c4f2c92a8a9c634c597dda278706..1c4548038f37cc1e814d06757c01c3ff4889cc5e 100644 (file)
@@ -18,11 +18,11 @@ void *createRangeSet(void* solver,unsigned int type, long lowrange, long highran
        return CCSOLVER(solver)->createRangeSet((VarType) type, (uint64_t) lowrange, (uint64_t) highrange);
 }
 
-void *createRangeVar(void* solver,unsigned type, long lowrange, long highrange){
+void *createRangeVar(void* solver,unsigned int type, long lowrange, long highrange){
        return CCSOLVER(solver)->createRangeVar((VarType) type, (uint64_t) lowrange, (uint64_t) highrange);
 }
 
-void *createMutableSet(void* solver,unsigned type){
+void *createMutableSet(void* solver,unsigned int type){
        return CCSOLVER(solver)->createMutableSet((VarType) type);
 }
 
@@ -38,7 +38,7 @@ void *getElementVar(void* solver,void *set){
        return CCSOLVER(solver)->getElementVar((Set*) set);
 }
 
-void *getElementConst(void* solver,unsigned type, long value){
+void *getElementConst(void* solver,unsigned int type, long value){
        return CCSOLVER(solver)->getElementConst((VarType) type, (uint64_t) value);
 }
 
@@ -50,24 +50,24 @@ void* getBooleanVar(void* solver,unsigned int type){
        return CCSOLVER(solver)->getBooleanVar((VarType) type).getRaw();
 }
 
-void *createFunctionOperator(void* solver,unsigned int op, void *domain, unsigned int numDomain, void *range,unsigned int overflowbehavior){
-       return CCSOLVER(solver)->createFunctionOperator((ArithOp) op, (Set **)domain, (uint) numDomain, (Set *)range, (OverFlowBehavior) overflowbehavior);
+void *createFunctionOperator(void* solver,unsigned int op, void *range,unsigned int overflowbehavior){
+       return CCSOLVER(solver)->createFunctionOperator((ArithOp) op, (Set *)range, (OverFlowBehavior) overflowbehavior);
 }
 
-void *createPredicateOperator(void* solver,unsigned int op, void **domain, unsigned int numDomain){
-       return CCSOLVER(solver)->createPredicateOperator((CompOp) op, (Set **)domain, (uint) numDomain);
+void *createPredicateOperator(void* solver,unsigned int op{
+       return CCSOLVER(solver)->createPredicateOperator((CompOp) op);
 }
 
 void *createPredicateTable(void* solver,void *table, unsigned int behavior){
        return CCSOLVER(solver)->createPredicateTable((Table *)table, (UndefinedBehavior) behavior);
 }
 
-void *createTable(void* solver,void*domains, unsigned int numDomain, void *range){
-       return CCSOLVER(solver)->createTable((Set **)domains, (uint) numDomain, (Set *)range);
+void *createTable(void* solver, void *range){
+       return CCSOLVER(solver)->createTable((Set *)range);
 }
 
-void *createTableForPredicate(void* solver,void*domains, unsigned int numDomain){
-       return CCSOLVER(solver)->createTableForPredicate((Set **)domains, (uint) numDomain);
+void *createTableForPredicate(void* solver{
+       return CCSOLVER(solver)->createTableForPredicate();
 }
 
 void addTableEntry(void* solver,void *table, void *inputs, unsigned int inputSize, long result){
@@ -78,15 +78,15 @@ void *completeTable(void* solver,void *table, unsigned int behavior){
        return CCSOLVER(solver)->completeTable((Table *) table, (UndefinedBehavior) behavior);
 }
 
-void *applyFunction(void* solver,void *function, void*array, unsigned int numArrays, void* overflowstatus){
+void *applyFunction(void* solver,void *function, void**array, unsigned int numArrays, void* overflowstatus){
        return CCSOLVER(solver)->applyFunction((Function *)function, (Element **)array, (uint) numArrays, BooleanEdge ((Boolean*)overflowstatus));
 }
 
-void* applyPredicateTable(void* solver,void *predicate, void *inputs, unsigned int numInputs, void* undefinedStatus){
+void* applyPredicateTable(void* solver,void *predicate, void **inputs, unsigned int numInputs, void* undefinedStatus){
        return CCSOLVER(solver)->applyPredicateTable((Predicate *)predicate, (Element **)inputs, (uint) numInputs, BooleanEdge((Boolean*) undefinedStatus)).getRaw();
 }
 
-void* applyPredicate(void* solver,void *predicate, void *inputs, unsigned int numInputs){
+void* applyPredicate(void* solver,void *predicate, void **inputs, unsigned int numInputs){
        return CCSOLVER(solver)->applyPredicate((Predicate *)predicate, (Element **)inputs, (uint) numInputs).getRaw();
 }
 
@@ -136,4 +136,15 @@ void printConstraints(void* solver){
 
 
 
+void serialize(void* solver){
+       CCSOLVER(solver)->serialize();
+}
+
+
+void mustHaveValue(void *solver, void *element){
+       CCSOLVER(solver)->mustHaveValue( (Element*) element);
+}
 
+void* clone(void * solver){
+       return CCSOLVER(solver)->clone();
+}
\ No newline at end of file