c668fbccbb1249c6de87c1a2411a9dc85f5eaded
[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 resetCCSolver(void *solver);
12 void *createSet(void *solver,unsigned int type, long *elements, unsigned int num);
13 void *createRangeSet(void *solver,unsigned int type, long lowrange, long highrange);
14 void *createRangeVar(void *solver,unsigned int type, long lowrange, long highrange);
15 void *createMutableSet(void *solver,unsigned int type);
16 void addItem(void *solver,void *set, long element);
17 void finalizeMutableSet(void *solver,void *set);
18 void *getElementVar(void *solver,void *set);
19 void *getElementConst(void *solver,unsigned int type, long value);
20 void *getElementRange (void *solver,void *element);
21 void *getBooleanVar(void *solver,unsigned int type);
22 void *getBooleanTrue(void *solver);
23 void *getBooleanFalse(void *solver);
24 void *createFunctionOperator(void *solver,unsigned int op, void *range,unsigned int overflowbehavior);
25 void *createPredicateOperator(void *solver,unsigned int op);
26 void *createPredicateTable(void *solver,void *table, unsigned int behavior);
27 void *createTable(void *solver, void *range);
28 void *createTableForPredicate(void *solver);
29 void addTableEntry(void *solver,void *table, void *inputs, unsigned int inputSize, long result);
30 void *completeTable(void *solver,void *table, unsigned int behavior);
31 void *applyFunction(void *solver,void *function, void **array, unsigned int numArrays, void *overflowstatus);
32 void *applyPredicateTable(void *solver,void *predicate, void **inputs, unsigned int numInputs, void *undefinedStatus);
33 void *applyPredicate(void *solver,void *predicate, void **inputs, unsigned int numInputs);
34 void *applyLogicalOperation(void *solver,unsigned int op, void *array, unsigned int asize);
35 void *applyLogicalOperationTwo(void *solver,unsigned int op, void *arg1, void *arg2);
36 void *applyLogicalOperationOne(void *solver,unsigned int op, void *arg);
37 void addConstraint(void *solver,void *constraint);
38 void printConstraint(void *solver,void *constraint);
39 void *createOrder(void *solver,unsigned int type, void *set);
40 void *orderConstraint(void *solver,void *order, long first, long second);
41 int solve(void *solver);
42 long getElementValue(void *solver,void *element);
43 int getBooleanValue(void *solver,void *boolean);
44 int getOrderConstraintValue(void *solver,void *order, long first, long second);
45 void printConstraints(void *solver);
46 void serialize(void *solver);
47 void mustHaveValue(void *solver, void *element);
48 void setInterpreter(void *solver, unsigned int type);
49 void *clone(void *solver);
50 #ifdef __cplusplus
51 }
52 #endif
53
54 #endif