Adding API for AtMostOneConstraint + bugfix for turning off the optimizations
[satune.git] / src / ccsolver.h
index 2051cc91b9126e2e8b8ccfbdd61c6cb9eca46df0..638527c54f0d3370233bf6d556441c97357d94da 100644 (file)
@@ -8,6 +8,7 @@ extern "C" {
 #endif
 void *createCCSolver();
 void deleteCCSolver(void *solver);
+void resetCCSolver(void *solver);
 void *createSet(void *solver,unsigned int type, long *elements, unsigned int num);
 void *createRangeSet(void *solver,unsigned int type, long lowrange, long highrange);
 void *createRangeVar(void *solver,unsigned int type, long lowrange, long highrange);
@@ -18,6 +19,8 @@ void *getElementVar(void *solver,void *set);
 void *getElementConst(void *solver,unsigned int type, long value);
 void *getElementRange (void *solver,void *element);
 void *getBooleanVar(void *solver,unsigned int type);
+void *getBooleanTrue(void *solver);
+void *getBooleanFalse(void *solver);
 void *createFunctionOperator(void *solver,unsigned int op, void *range,unsigned int overflowbehavior);
 void *createPredicateOperator(void *solver,unsigned int op);
 void *createPredicateTable(void *solver,void *table, unsigned int behavior);
@@ -28,20 +31,26 @@ void *completeTable(void *solver,void *table, unsigned int behavior);
 void *applyFunction(void *solver,void *function, void **array, unsigned int numArrays, void *overflowstatus);
 void *applyPredicateTable(void *solver,void *predicate, void **inputs, unsigned int numInputs, void *undefinedStatus);
 void *applyPredicate(void *solver,void *predicate, void **inputs, unsigned int numInputs);
-void *applyLogicalOperation(void *solver,unsigned int op, void *array, unsigned int asize);
+void *applyLogicalOperation(void *solver,unsigned int op, void **array, unsigned int asize);
+void *applyExactlyOneConstraint(void *solver,void **array, unsigned int asize);
+void *applyAtMostOneConstraint(void *solver,void **array, unsigned int asize);
 void *applyLogicalOperationTwo(void *solver,unsigned int op, void *arg1, void *arg2);
 void *applyLogicalOperationOne(void *solver,unsigned int op, void *arg);
 void addConstraint(void *solver,void *constraint);
+void printConstraint(void *solver,void *constraint);
 void *createOrder(void *solver,unsigned int type, void *set);
 void *orderConstraint(void *solver,void *order, long first, long second);
 int solve(void *solver);
+int solveIncremental(void *solver);
 long getElementValue(void *solver,void *element);
+void freezeElement(void *solver,void *element);
 int getBooleanValue(void *solver,void *boolean);
 int getOrderConstraintValue(void *solver,void *order, long first, long second);
 void printConstraints(void *solver);
+void turnoffOptimizations(void *solver);
 void serialize(void *solver);
 void mustHaveValue(void *solver, void *element);
-void setAlloyEncoder(void *solver);
+void setInterpreter(void *solver, unsigned int type);
 void *clone(void *solver);
 #ifdef __cplusplus
 }