role aliasing: simplify hashRightRoleProperties

Using the full report set for a suffix as an input to this hash was very
slow at scale.
This commit is contained in:
Justin Viiret 2015-12-02 09:47:59 +11:00 committed by Matthew Barr
parent b87590ce9d
commit 1267922ca7

View File

@ -439,12 +439,16 @@ size_t hashRightRoleProperties(RoseVertex v, const RoseGraph &g) {
hash_combine(val, hash_range(begin(props.reports), end(props.reports)));
if (props.suffix) {
hash_combine(val, all_reports(props.suffix));
if (props.suffix.graph) {
hash_combine(val, num_vertices(*props.suffix.graph));
const auto &suffix = props.suffix;
if (suffix.castle) {
hash_combine(val, suffix.castle->reach());
hash_combine(val, suffix.castle->repeats.size());
}
if (props.suffix.haig) {
hash_combine(val, hash_dfa(*props.suffix.haig));
if (suffix.graph) {
hash_combine(val, num_vertices(*suffix.graph));
}
if (suffix.haig) {
hash_combine(val, hash_dfa(*suffix.haig));
}
}