return false;
}
+size_t RoseSuffixInfo::hash() const {
+ return hash_all(top, graph, castle, rdfa, haig, tamarama);
+}
void RoseSuffixInfo::reset(void) {
top = 0;
}
size_t suffix_id::hash() const {
- return hash_all(g, c, d, h);
+ return hash_all(g, c, d, h, t);
}
bool isAnchored(const left_id &r) {
return maxOffset;
}
+size_t LeftEngInfo::hash() const {
+ return hash_all(graph, castle, dfa, haig, tamarama, lag, leftfix_report);
+}
+
void LeftEngInfo::reset(void) {
graph.reset();
castle.reset();
vector<vector<RoseVertex>> &buckets) {
// Split by report set and suffix info.
auto make_split_key = [&g](RoseVertex v) {
- return hash_all(g[v].reports, suffix_id(g[v].suffix));
+ return hash_all(g[v].reports, g[v].suffix);
};
splitAndFilterBuckets(buckets, make_split_key);
}
ORDER_CHECK(leftfix_report);
return false;
}
+ size_t hash() const;
void reset(void);
operator bool() const;
bool tracksSom() const { return !!haig; }
bool operator==(const RoseSuffixInfo &b) const;
bool operator!=(const RoseSuffixInfo &b) const { return !(*this == b); }
bool operator<(const RoseSuffixInfo &b) const;
+ size_t hash() const;
void reset(void);
operator bool() const { return graph || castle || haig || rdfa || tamarama; }
};