From 0d1c08e6e1fdbd342a2f1abec466d6356af30302 Mon Sep 17 00:00:00 2001 From: Alexandre Duret-Lutz Date: Mon, 12 Jan 2015 23:23:47 +0100 Subject: [PATCH] powerset: tiny speedup * src/tgbaalgos/powerset.cc: Replace std::deque by vector, and take the return of aut->out(s) by reference. --- src/tgbaalgos/powerset.cc | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/src/tgbaalgos/powerset.cc b/src/tgbaalgos/powerset.cc index ca257cf00..50ca8bbad 100644 --- a/src/tgbaalgos/powerset.cc +++ b/src/tgbaalgos/powerset.cc @@ -21,7 +21,6 @@ // along with this program. If not, see . #include -#include #include #include #include "powerset.hh" @@ -46,7 +45,7 @@ namespace spot { typedef power_map::power_state power_state; typedef std::map power_set; - typedef std::deque todo_list; + typedef std::vector todo_list; power_set seen; todo_list todo; @@ -63,12 +62,12 @@ namespace spot while (!todo.empty()) { - power_state src = todo.front(); - todo.pop_front(); + power_state src = todo.back(); + todo.pop_back(); // Compute all variables occurring on outgoing arcs. bdd all_vars = bddtrue; for (auto s: src) - for (auto i: aut->out(s)) + for (auto& i: aut->out(s)) all_vars &= bdd_support(i.cond); bdd all_conds = bddtrue;