X-Git-Url: http://plrg.eecs.uci.edu/git/?p=satune.git;a=blobdiff_plain;f=src%2Fcsolver.h;h=63ba766206e5d125fbc074babcf84eb22271e866;hp=7b2d65924c917aff764afb476d5ca3c49799dd43;hb=84245f9abf88882d83e3b9ddfed43ab3abf8638f;hpb=f146fe3406e020856ef3e0eccdb31e57e7be9895 diff --git a/src/csolver.h b/src/csolver.h index 7b2d659..63ba766 100644 --- a/src/csolver.h +++ b/src/csolver.h @@ -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