Add a configuration for disabling the optimizations
[satune.git] / src / ccsolver.h
index b10fa71681fc2bad67fd63fe6c6fce9e146b1398..8e708b833e407aa2a4aed5205fd501cfd0919fb7 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,17 +31,22 @@ 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 *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 setInterpreter(void *solver, unsigned int type);