Reorg code
[satune.git] / src / csolver.h
index 7b2d65924c917aff764afb476d5ca3c49799dd43..63ba766206e5d125fbc074babcf84eb22271e866 100644 (file)
@@ -5,19 +5,21 @@
 #include "structs.h"
 
 struct CSolver {
-       VectorBoolean * constraint;
+       VectorBoolean * constraints;
+       VectorSet * sets;
+       VectorElement * elements;
 };
-       
+
 CSolver * allocCSolver();
-Set * createSet(CSolver *, VarType type, uint64_t ** elements);
+Set * createSet(CSolver *, VarType type, uint64_t * elements, uint num);
 Set * createRangeSet(CSolver *, VarType type, uint64_t lowrange, uint64_t highrange);
 MutableSet * createMutableSet(CSolver *, VarType type);
 
 void addItem(CSolver *, MutableSet * set, uint64_t element);
-int64_t createUniqueItem(CSolver *, MutableSet * set);
+uint64_t createUniqueItem(CSolver *, MutableSet * set);
 
 Element * getElementVar(CSolver *, Set * set);
-Boolean * getBooleanVar(CSolver *);
+Boolean * getBooleanVar(CSolver *, VarType type);
 
 Function * createFunctionOperator(CSolver *, enum ArithOp op, Set ** domain, Set * range, enum OverFlowBehavior overflowbehavior, Boolean * overflowstatus);
 //Does Not Overflow