Boolean Variable Ordering optimizations
[satune.git] / src / ccsolver.h
1 #ifndef __CCSOLVER_H
2 #define __CCSOLVER_H
3
4
5 typedef void *CCSolver;
6 #ifdef __cplusplus
7 extern "C" {
8 #endif
9 void *createCCSolver();
10 void deleteCCSolver(void *solver);
11 void *createSet(void *solver,unsigned int type, long *elements, unsigned int num);
12 void *createRangeSet(void *solver,unsigned int type, long lowrange, long highrange);
13 void *createRangeVar(void *solver,unsigned int type, long lowrange, long highrange);
14 void *createMutableSet(void *solver,unsigned int type);
15 void addItem(void *solver,void *set, long element);
16 void finalizeMutableSet(void *solver,void *set);
17 void *getElementVar(void *solver,void *set);
18 void *getElementConst(void *solver,unsigned int type, long value);
19 void *getElementRange (void *solver,void *element);
20 void *getBooleanVar(void *solver,unsigned int type);
21 void *createFunctionOperator(void *solver,unsigned int op, void *range,unsigned int overflowbehavior);
22 void *createPredicateOperator(void *solver,unsigned int op);
23 void *createPredicateTable(void *solver,void *table, unsigned int behavior);
24 void *createTable(void *solver, void *range);
25 void *createTableForPredicate(void *solver);
26 void addTableEntry(void *solver,void *table, void *inputs, unsigned int inputSize, long result);
27 void *completeTable(void *solver,void *table, unsigned int behavior);
28 void *applyFunction(void *solver,void *function, void **array, unsigned int numArrays, void *overflowstatus);
29 void *applyPredicateTable(void *solver,void *predicate, void **inputs, unsigned int numInputs, void *undefinedStatus);
30 void *applyPredicate(void *solver,void *predicate, void **inputs, unsigned int numInputs);
31 void *applyLogicalOperation(void *solver,unsigned int op, void *array, unsigned int asize);
32 void *applyLogicalOperationTwo(void *solver,unsigned int op, void *arg1, void *arg2);
33 void *applyLogicalOperationOne(void *solver,unsigned int op, void *arg);
34 void addConstraint(void *solver,void *constraint);
35 void *createOrder(void *solver,unsigned int type, void *set);
36 void *orderConstraint(void *solver,void *order, long first, long second);
37 int solve(void *solver);
38 long getElementValue(void *solver,void *element);
39 int getBooleanValue(void *solver,void *boolean);
40 int getOrderConstraintValue(void *solver,void *order, long first, long second);
41 void printConstraints(void *solver);
42 void serialize(void *solver);
43 void mustHaveValue(void *solver, void *element);
44 void *clone(void *solver);
45 #ifdef __cplusplus
46 }
47 #endif
48
49 #endif