return set;
}
+VarType CSolver::getSetVarType(Set *set){
+ return set->getType();
+}
+
Element *CSolver::createRangeVar(VarType type, uint64_t lowrange, uint64_t highrange) {
Set *s = createRangeSet(type, lowrange, highrange);
return getElementVar(s);
return element;
}
+Set* CSolver::getElementRange (Element* element){
+ return element->getRange();
+}
+
+
Element *CSolver::getElementConst(VarType type, uint64_t value) {
uint64_t array[] = {value};
Set *set = new Set(type, array, 1);
long long startTime = getTimeNano();
computePolarities(this);
- Preprocess pp(this);
- pp.doTransform();
+// Preprocess pp(this);
+// pp.doTransform();
DecomposeOrderTransform dot(this);
dot.doTransform();
IntegerEncodingTransform iet(this);
iet.doTransform();
- EncodingGraph eg(this);
- eg.buildGraph();
- eg.encode();
+// EncodingGraph eg(this);
+// eg.buildGraph();
+// eg.encode();
naiveEncodingDecision(this);
satEncoder->encodeAllSATEncoder(this);
Set *createRangeSet(VarType type, uint64_t lowrange, uint64_t highrange);
+ VarType getSetVarType(Set *set);
+
Element *createRangeVar(VarType type, uint64_t lowrange, uint64_t highrange);
/** This function creates a mutable set. */
/** This function creates an element constrant. */
Element *getElementConst(VarType type, uint64_t value);
+
+ Set* getElementRange (Element* element);
BooleanEdge getBooleanTrue();
void * ourrealloc(void *ptr, size_t size);
*/
-#if 0
+#if 1
void * model_malloc(size_t size);
void model_free(void *ptr);
void * model_calloc(size_t count, size_t size);