* 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:
Alexandre Duret-Lutz 2003-08-29 15:54:31 +00:00
parent 6da1f35641
commit f0de38680a
16 changed files with 201 additions and 26 deletions

View file

@ -1,8 +1,8 @@
#ifndef SPOT_TGBA_TGBAEXPLICIT_HH
# define SPOT_TGBA_TGBAEXPLICIT_HH
#include "misc/hash.hh"
#include <list>
#include <map>
#include "tgba.hh"
#include "ltlast/formula.hh"
@ -62,8 +62,10 @@ namespace spot
bdd get_condition(ltl::formula* f);
bdd get_accepting_condition(ltl::formula* f);
typedef std::map<const std::string, tgba_explicit::state*> ns_map;
typedef std::map<const tgba_explicit::state*, std::string> sn_map;
typedef Sgi::hash_map<const std::string, tgba_explicit::state*,
string_hash> ns_map;
typedef Sgi::hash_map<const tgba_explicit::state*, std::string,
ptr_hash<tgba_explicit::state> > sn_map;
ns_map name_state_map_;
sn_map state_name_map_;
bdd_dict* dict_;
@ -89,7 +91,7 @@ namespace spot
}
virtual int compare(const spot::state* other) const;
virtual size_t hash() const;
virtual state_explicit* clone() const;
virtual ~state_explicit()