edits
[satune.git] / src / csolver.h
index 2875a9c78365e708912ddcd5ef2620837212af66..e49278116f5a00119ee9f8091b3aaa21b2ee80e9 100644 (file)
@@ -26,6 +26,7 @@ public:
 
        /** This function adds a new item to a set. */
 
+       //Deprecating this unless we need it...
        void addItem(MutableSet *set, uint64_t element);
 
        /** This function adds a new unique item to the set and returns it.
@@ -33,6 +34,11 @@ public:
            items to the set. */
 
        uint64_t createUniqueItem(MutableSet *set);
+       
+       /**
+        * Freeze and finalize the mutableSet ...
+        */
+       void finalizeMutableSet(MutableSet* set);
 
        /** This function creates an element variable over a set. */
 
@@ -134,9 +140,11 @@ public:
        SATEncoder *getSATEncoder() {return satEncoder;}
 
        void replaceBooleanWithTrue(BooleanEdge bexpr);
+       void replaceBooleanWithTrueNoRemove(BooleanEdge bexpr);
        void replaceBooleanWithFalse(BooleanEdge bexpr);
        void replaceBooleanWithBoolean(BooleanEdge oldb, BooleanEdge newb);
        CSolver *clone();
+       void serialize();
        void autoTune(uint budget);
 
        void setTuner(Tuner *_tuner) { tuner = _tuner; }
@@ -150,6 +158,10 @@ private:
        void handleIFFTrue(BooleanLogic *bexpr, BooleanEdge child);
        void handleANDTrue(BooleanLogic *bexpr, BooleanEdge child);
 
+       //These two functions are helpers if the client has a pointer to a
+       //Boolean object that we have since replaced
+       BooleanEdge rewriteLogicalOperation(LogicOp op, BooleanEdge *array, uint asize);
+       BooleanEdge doRewrite(BooleanEdge b);
        /** This is a vector of constraints that must be satisfied. */
        HashsetBooleanEdge constraints;