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

@ -1,7 +1,8 @@
// Copyright (C) 2009, 2011 Laboratoire de Recherche et Developpement
// de l'Epita (LRDE).
// -*- coding: utf-8 -*-
// Copyright (C) 2009, 2011, 2012 Laboratoire de Recherche et
// Développement de l'Epita (LRDE).
// Copyright (C) 2004 Laboratoire d'Informatique de Paris 6 (LIP6),
// département Systèmes Répartis Coopératifs (SRC), Université Pierre
// département Systèmes Répartis Coopératifs (SRC), Université Pierre
// et Marie Curie.
//
// This file is part of Spot, a model checking library.
@ -90,7 +91,7 @@ namespace spot
if (low == bddfalse)
{
const ltl::formula* v =
aut_->get_dict()->var_formula_map[bdd_var(one)];
aut_->get_dict()->bdd_map[bdd_var(one)].f;
res->add_transition(name_[in],
to_string(v),
ss,
@ -125,7 +126,7 @@ namespace spot
if (low == bddfalse)
{
const ltl::formula* v =
aut_->get_dict()->acc_formula_map[bdd_var(one)];
aut_->get_dict()->bdd_map[bdd_var(one)].f;
ss.insert(rsymbol(to_string(v)));
break;
}