mirror of
https://github.com/VectorCamp/vectorscan.git
synced 2025-06-28 16:41:01 +03:00
rose: more hash member funcs for rose types
This commit is contained in:
parent
09938d532f
commit
4889a492e4
@ -576,6 +576,9 @@ bool RoseSuffixInfo::operator<(const RoseSuffixInfo &b) const {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
size_t RoseSuffixInfo::hash() const {
|
||||||
|
return hash_all(top, graph, castle, rdfa, haig, tamarama);
|
||||||
|
}
|
||||||
|
|
||||||
void RoseSuffixInfo::reset(void) {
|
void RoseSuffixInfo::reset(void) {
|
||||||
top = 0;
|
top = 0;
|
||||||
@ -691,7 +694,7 @@ set<u32> all_tops(const suffix_id &s) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
size_t suffix_id::hash() const {
|
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) {
|
bool isAnchored(const left_id &r) {
|
||||||
@ -769,6 +772,10 @@ u64a findMaxOffset(const set<ReportID> &reports, const ReportManager &rm) {
|
|||||||
return maxOffset;
|
return maxOffset;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
size_t LeftEngInfo::hash() const {
|
||||||
|
return hash_all(graph, castle, dfa, haig, tamarama, lag, leftfix_report);
|
||||||
|
}
|
||||||
|
|
||||||
void LeftEngInfo::reset(void) {
|
void LeftEngInfo::reset(void) {
|
||||||
graph.reset();
|
graph.reset();
|
||||||
castle.reset();
|
castle.reset();
|
||||||
|
@ -1468,7 +1468,7 @@ void splitByReportSuffixBehaviour(const RoseGraph &g,
|
|||||||
vector<vector<RoseVertex>> &buckets) {
|
vector<vector<RoseVertex>> &buckets) {
|
||||||
// Split by report set and suffix info.
|
// Split by report set and suffix info.
|
||||||
auto make_split_key = [&g](RoseVertex v) {
|
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);
|
splitAndFilterBuckets(buckets, make_split_key);
|
||||||
}
|
}
|
||||||
|
@ -111,6 +111,7 @@ struct LeftEngInfo {
|
|||||||
ORDER_CHECK(leftfix_report);
|
ORDER_CHECK(leftfix_report);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
size_t hash() const;
|
||||||
void reset(void);
|
void reset(void);
|
||||||
operator bool() const;
|
operator bool() const;
|
||||||
bool tracksSom() const { return !!haig; }
|
bool tracksSom() const { return !!haig; }
|
||||||
@ -131,6 +132,7 @@ struct RoseSuffixInfo {
|
|||||||
bool operator==(const RoseSuffixInfo &b) const;
|
bool operator==(const RoseSuffixInfo &b) const;
|
||||||
bool operator!=(const RoseSuffixInfo &b) const { return !(*this == b); }
|
bool operator!=(const RoseSuffixInfo &b) const { return !(*this == b); }
|
||||||
bool operator<(const RoseSuffixInfo &b) const;
|
bool operator<(const RoseSuffixInfo &b) const;
|
||||||
|
size_t hash() const;
|
||||||
void reset(void);
|
void reset(void);
|
||||||
operator bool() const { return graph || castle || haig || rdfa || tamarama; }
|
operator bool() const { return graph || castle || haig || rdfa || tamarama; }
|
||||||
};
|
};
|
||||||
|
Loading…
x
Reference in New Issue
Block a user