powerset: tiny speedup
* src/tgbaalgos/powerset.cc: Replace std::deque by vector, and take the return of aut->out(s) by reference.
This commit is contained in:
parent
2377523c02
commit
0d1c08e6e1
1 changed files with 4 additions and 5 deletions
|
|
@ -21,7 +21,6 @@
|
||||||
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
#include <set>
|
#include <set>
|
||||||
#include <deque>
|
|
||||||
#include <iterator>
|
#include <iterator>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
#include "powerset.hh"
|
#include "powerset.hh"
|
||||||
|
|
@ -46,7 +45,7 @@ namespace spot
|
||||||
{
|
{
|
||||||
typedef power_map::power_state power_state;
|
typedef power_map::power_state power_state;
|
||||||
typedef std::map<power_map::power_state, int> power_set;
|
typedef std::map<power_map::power_state, int> power_set;
|
||||||
typedef std::deque<power_map::power_state> todo_list;
|
typedef std::vector<power_map::power_state> todo_list;
|
||||||
|
|
||||||
power_set seen;
|
power_set seen;
|
||||||
todo_list todo;
|
todo_list todo;
|
||||||
|
|
@ -63,12 +62,12 @@ namespace spot
|
||||||
|
|
||||||
while (!todo.empty())
|
while (!todo.empty())
|
||||||
{
|
{
|
||||||
power_state src = todo.front();
|
power_state src = todo.back();
|
||||||
todo.pop_front();
|
todo.pop_back();
|
||||||
// Compute all variables occurring on outgoing arcs.
|
// Compute all variables occurring on outgoing arcs.
|
||||||
bdd all_vars = bddtrue;
|
bdd all_vars = bddtrue;
|
||||||
for (auto s: src)
|
for (auto s: src)
|
||||||
for (auto i: aut->out(s))
|
for (auto& i: aut->out(s))
|
||||||
all_vars &= bdd_support(i.cond);
|
all_vars &= bdd_support(i.cond);
|
||||||
|
|
||||||
bdd all_conds = bddtrue;
|
bdd all_conds = bddtrue;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue