From a375972f5c34fbe92e79b64f860b2b88fe0c1938 Mon Sep 17 00:00:00 2001 From: Alexandre Duret-Lutz Date: Thu, 28 May 2009 16:22:41 +0200 Subject: [PATCH] * src/tgbaalgos/scc.cc (dump_scc_dot): Use a bit vector instead of a map to track visited SCC since they are sequentially numbered. --- ChangeLog | 5 +++++ src/tgbaalgos/scc.cc | 10 ++++------ 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/ChangeLog b/ChangeLog index f90fc2c77..e7b57da20 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2009-05-28 Alexandre Duret-Lutz + + * src/tgbaalgos/scc.cc (dump_scc_dot): Use a bit vector instead of + a map to track visited SCC since they are sequentially numbered. + 2009-05-28 Alexandre Duret-Lutz Number states using negative values and SCCs using nonnegative diff --git a/src/tgbaalgos/scc.cc b/src/tgbaalgos/scc.cc index c05c1409e..e527310f9 100644 --- a/src/tgbaalgos/scc.cc +++ b/src/tgbaalgos/scc.cc @@ -360,9 +360,8 @@ namespace spot int start = m.initial(); out << " i -> " << start << std::endl; - typedef std::set seen_map; - seen_map seen; - seen.insert(start); + std::vector seen(m.scc_count()); + seen[start] = true; std::queue q; q.push(start); @@ -412,11 +411,10 @@ namespace spot bdd_print_formula(out, m.get_aut()->get_dict(), label); out << "\"]" << std::endl; - seen_map::const_iterator it = seen.find(dest); - if (it != seen.end()) + if (seen[dest]) continue; - seen.insert(dest); + seen[dest] = true; q.push(dest); } }