NodeValuePair(EncodingNode *n, uint64_t val) : node(n), value(val) {}
EncodingNode *node;
uint64_t value;
+ CMEMALLOC;
};
class EncodingValue;
HashsetEncodingNode nodes;
HashsetEncodingValue larger;
HashsetEncodingValue notequals;
+ CMEMALLOC;
};
uint hashNodeValuePair(NodeValuePair *nvp);
class EncodingSubGraph {
public:
EncodingSubGraph();
+ ~EncodingSubGraph();
void addNode(EncodingNode *n);
SetIteratorEncodingNode *nodeIterator();
void encode();
uint getEncoding(EncodingNode *n, uint64_t val);
- uint getEncodingSize(EncodingNode *n) { return maxEncodingVal;}
-
+ uint getEncodingMaxVal(EncodingNode *n) { return maxEncodingVal;}
+ double measureSimilarity(EncodingNode *n);
+ double measureSimilarity(EncodingSubGraph *sg);
+ uint numValues();
CMEMALLOC;
private:
uint estimateNewSize(EncodingNode *n);
HashsetEncodingValue values;
HashsetEncodingNode nodes;
NVPMap map;
- uint encodingSize;
- uint numElements;
uint maxEncodingVal;
-
+ Hashset64Int allValues;
friend class EncodingGraph;
};