* src/tgbaalgos/gv04.cc, src/tgbaalgos/gv04.hh: New files, partly

based on Thomas Martinez's src/tgbaalgos/tarjan_on_fly.cc and
src/tgbaalgos/tarjan_on_fly.hh former implementation.
* src/tgbaalgos/Makefile.am (libtgbaalgos_la_SOURCES,
tgbaalgos_HEADERS): Add them.
* src/tgbatest/ltl2tgba.cc, src/tgbatest/randtgba.cc: Bind the
new algorithm.
* src/tgbatest/emptchk.test: Test it.
This commit is contained in:
Alexandre Duret-Lutz 2004-11-22 16:57:31 +00:00
parent 0f15d28fe8
commit 6cce60bed7
7 changed files with 332 additions and 1 deletions

View file

@ -35,6 +35,7 @@
#include "tgbaalgos/dotty.hh"
#include "tgbaalgos/lbtt.hh"
#include "tgba/tgbatba.hh"
#include "tgbaalgos/gv04.hh"
#include "tgbaalgos/magic.hh"
#include "tgbaalgos/se05.hh"
#include "tgbaalgos/tau03.hh"
@ -150,7 +151,7 @@ main(int argc, char** argv)
int formula_index = 0;
std::string echeck_algo;
enum { None, Couvreur, Couvreur2, MagicSearch, Se05Search,
Tau03Search, Tau03OptSearch } echeck = None;
Tau03Search, Tau03OptSearch, Gv04 } echeck = None;
enum { NoneDup, BFS, DFS } dupexp = NoneDup;
bool search_many = false;
bool bit_state_hashing = false;
@ -421,6 +422,11 @@ main(int argc, char** argv)
{
echeck = Tau03OptSearch;
}
else if (echeck_algo == "gv04")
{
echeck = Gv04;
degeneralize_maybe = true;
}
else
{
std::cerr << "unknown emptiness-check: " << echeck_algo << std::endl;
@ -679,6 +685,9 @@ main(int argc, char** argv)
case Tau03OptSearch:
ec = spot::explicit_tau03_opt_search(a);
break;
case Gv04:
ec = spot::explicit_gv04_check(a);
break;
}
if (ec)