Replace most uses of scc_map by scc_info.
This involves reimplementing some algorithms using tgba_digraph, and implementing an explicit product that takes two tgba_digraphs and produces a tgba_digraph. * src/tgbaalgos/product.cc, src/tgbaalgos/product.hh: New files. * src/tgbaalgos/Makefile.am: Adjust. * src/bin/ltlcross.cc, src/tgba/tgba.cc, src/tgba/tgba.hh, src/tgba/tgbasafracomplement.cc, src/tgba/tgbasafracomplement.hh, src/tgbaalgos/cycles.cc, src/tgbaalgos/cycles.hh, src/tgbaalgos/degen.cc, src/tgbaalgos/degen.hh, src/tgbaalgos/isweakscc.cc, src/tgbaalgos/isweakscc.hh, src/tgbaalgos/minimize.cc, src/tgbaalgos/minimize.hh, src/tgbaalgos/powerset.cc, src/tgbaalgos/powerset.hh, src/tgbaalgos/safety.cc, src/tgbaalgos/safety.hh, src/tgbaalgos/sccinfo.cc, src/tgbaalgos/sccinfo.hh, src/tgbatest/complementation.cc, src/tgbatest/emptchk.cc, src/tgbatest/ltl2ta.test, src/tgbatest/ltl2tgba.cc, src/tgbatest/randtgba.cc: Update to use scc_info and/or tgba_digraph.
This commit is contained in:
parent
b6745482af
commit
2fb436a174
27 changed files with 497 additions and 394 deletions
|
|
@ -22,7 +22,7 @@
|
|||
|
||||
namespace spot
|
||||
{
|
||||
enumerate_cycles::enumerate_cycles(const scc_map& map)
|
||||
enumerate_cycles::enumerate_cycles(const scc_info& map)
|
||||
: aut_(map.get_aut()), sm_(map)
|
||||
{
|
||||
}
|
||||
|
|
@ -84,12 +84,13 @@ namespace spot
|
|||
dfs_.push_back(e);
|
||||
}
|
||||
|
||||
// FIXME: Recode this algorithm using unsigned states.
|
||||
void
|
||||
enumerate_cycles::run(unsigned scc)
|
||||
{
|
||||
bool keep_going = true;
|
||||
|
||||
push_state(tag_state(sm_.one_state_of(scc)->clone()));
|
||||
push_state(tag_state(aut_->state_from_number(sm_.one_state_of(scc))));
|
||||
|
||||
while (keep_going && !dfs_.empty())
|
||||
{
|
||||
|
|
@ -109,7 +110,7 @@ namespace spot
|
|||
// Ignore those that are not on the SCC, or destination
|
||||
// that have been "virtually" deleted from A(v).
|
||||
state* s = cur.succ->current_state();
|
||||
if ((sm_.scc_of_state(s) != scc)
|
||||
if ((sm_.scc_of(aut_->state_number(s)) != scc)
|
||||
|| (cur.ts->second.del.find(s) != cur.ts->second.del.end()))
|
||||
{
|
||||
s->destroy();
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue