* src/tgba/state.hh (state::hash): New method.
(state_ptr_equal, state_ptr_hash): New functors. * src/tgba/statebdd.hh, src/tgba/statebdd.cc (state_bdd::hash): New method. * src/tgba/tgbaexplicit.hh, src/tgba/tgbaexplicit.cc (state_explicit::hash): New method. (ns_map, sn_map): Use Sgi::hash_map instead of std::map. * src/tgba/tgbaproduct.hh, src/tgba/tgbaproduct.cc (state_product::hash): New method. * src/tgba/tgbatba.cc (state_tba_proxy::hash): New method. * src/tgbaalgos/lbtt.cc (acp_seen, todo_set, seen_map): Redefine using Sgi::hash_map or Sgi::hash_set. (lbtt_reachable): Don't erase a key that is pointed to by an iterator. * src/tgbaalgos/reachiter.cc (tgba_reachable_iterator::~tgba_reachable_iterator): Likewise. * src/tgbaalgos/magic.cc (magic_search::~magic_search()): Likewise. * src/tgbaalgos/magic.hh (hash_type): Redefine using Sgi::hash_map. * src/tgbaalgos/reachiter.hh (seen_map): Redefine using Sgi::hash_map. * iface/gspn/gspn.cc (state_gspn::hash): New method. * src/misc/hash.hh (string_hash): New functor.
This commit is contained in:
parent
6da1f35641
commit
f0de38680a
16 changed files with 201 additions and 26 deletions
|
|
@ -32,6 +32,13 @@ namespace spot
|
|||
return right_->compare(o->right());
|
||||
}
|
||||
|
||||
size_t
|
||||
state_product::hash() const
|
||||
{
|
||||
// We assume that size_t has at least 32bits.
|
||||
return (left_->hash() << 16) + (right_->hash() & 0xFFFF);
|
||||
}
|
||||
|
||||
state_product*
|
||||
state_product::clone() const
|
||||
{
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue