Set *getElementRange (Element *element);
+ void mustHaveValue(Element *element);
+
BooleanEdge getBooleanTrue();
BooleanEdge getBooleanFalse();
void replaceBooleanWithFalse(BooleanEdge bexpr);
void replaceBooleanWithBoolean(BooleanEdge oldb, BooleanEdge newb);
CSolver *clone();
+// Set* addItemsToRange(Element* element, uint num, ...);
void serialize();
static CSolver *deserialize(const char *file);
void autoTune(uint budget);
private:
void handleIFFTrue(BooleanLogic *bexpr, BooleanEdge child);
void handleANDTrue(BooleanLogic *bexpr, BooleanEdge child);
-
+ void handleFunction(ElementFunction * ef, 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);