Overhaul bdddict to speedup bdd->formula lookups.

* src/tgba/bdddict.hh, src/tgba/bdddict.cc: Store variable types and
associated formula in a vector indexed by BDD variable numbers,
instead of using several maps.
* src/evtgbaalgos/tgba2evtgba.cc, src/tgba/bddprint.cc,
src/tgba/formula2bdd.cc, src/tgbaalgos/ltl2tgba_fm.cc,
src/tgbaalgos/save.cc: Adjust usage.
This commit is contained in:
Alexandre Duret-Lutz 2012-05-13 14:25:59 +02:00
parent c5b294c786
commit 191fa370e2
7 changed files with 218 additions and 211 deletions

View file

@ -193,9 +193,9 @@ namespace spot
while (b != bddtrue)
{
int var = bdd_var(b);
bdd_dict::vf_map::const_iterator isi = d->var_formula_map.find(var);
assert(isi != d->var_formula_map.end());
const formula* res = isi->second->clone();
const bdd_dict::bdd_info& i = d->bdd_map[var];
assert(i.type == bdd_dict::var);
const formula* res = i.f->clone();
bdd high = bdd_high(b);
if (high == bddfalse)