CSolver * solver;
HashtableEncoding encodingMap;
HashtableEdge edgeMap;
+ HashsetElement discovered;
void processElement(Element *e);
void processFunction(ElementFunction *f);
void processPredicate(BooleanPredicate *b);
EncodingNode * createNode(Element *e);
-
+ EncodingEdge * getEdge(EncodingNode *left, EncodingNode *right, EncodingNode *dst);
};
class EncodingNode {
private:
Set *s;
HashsetElement elements;
+ uint numElements;
+ friend class EncodingGraph;
};
class EncodingEdge {
EncodingNode *left;
EncodingNode *right;
EncodingNode *dst;
+ uint numArithOps;
+ uint numEquals;
+ uint numComparisons;
friend uint hashEncodingEdge(EncodingEdge *edge);
friend bool equalsEncodingEdge(EncodingEdge *e1, EncodingEdge *e2);
-
};
-
-
#endif