* src/tgbaalgos/se05.hh, src/tgbaalgos/tau03.hh: Typo.
* src/tgbaalgos/tau03.cc: Suppress optimisations, the algorithm is now the original one. * src/tgbaalgos/tau03opt.hh, src/tgbaalgos/tau03opt.cc: New files implementing most of all the optimisations of tau03. * src/tgbaalgos/Makefile.am: Add them. * src/tgbatest/ltl2tgba.cc, src/tgbatest/randtgba.cc: Make them public. * src/tgbatest/tba_samples_from_spin.test: Test them.
This commit is contained in:
parent
321177331d
commit
121d582480
10 changed files with 635 additions and 77 deletions
|
|
@ -38,6 +38,7 @@
|
|||
#include "tgbaalgos/magic.hh"
|
||||
#include "tgbaalgos/se05.hh"
|
||||
#include "tgbaalgos/tau03.hh"
|
||||
#include "tgbaalgos/tau03opt.hh"
|
||||
#include "tgbaalgos/gtec/gtec.hh"
|
||||
#include "tgbaalgos/gtec/ce.hh"
|
||||
#include "tgbaparse/public.hh"
|
||||
|
|
@ -128,7 +129,8 @@ syntax(char* prog)
|
|||
<< std::endl
|
||||
<< " bsh_se05_search_repeated[(heap size in MB - 10MB"
|
||||
<< " by default)]" << std::endl
|
||||
<< " tau03_search" << std::endl;
|
||||
<< " tau03_search" << std::endl
|
||||
<< " tau03_opt_search" << std::endl;
|
||||
exit(2);
|
||||
}
|
||||
|
||||
|
|
@ -147,8 +149,8 @@ main(int argc, char** argv)
|
|||
int output = 0;
|
||||
int formula_index = 0;
|
||||
std::string echeck_algo;
|
||||
enum { None, Couvreur, Couvreur2, MagicSearch, Se05Search, Tau03Search }
|
||||
echeck = None;
|
||||
enum { None, Couvreur, Couvreur2, MagicSearch, Se05Search,
|
||||
Tau03Search, Tau03OptSearch } echeck = None;
|
||||
enum { NoneDup, BFS, DFS } dupexp = NoneDup;
|
||||
bool search_many = false;
|
||||
bool bit_state_hashing = false;
|
||||
|
|
@ -415,6 +417,10 @@ main(int argc, char** argv)
|
|||
{
|
||||
echeck = Tau03Search;
|
||||
}
|
||||
else if (echeck_algo == "tau03_opt_search")
|
||||
{
|
||||
echeck = Tau03OptSearch;
|
||||
}
|
||||
else
|
||||
{
|
||||
std::cerr << "unknown emptiness-check: " << echeck_algo << std::endl;
|
||||
|
|
@ -669,6 +675,18 @@ main(int argc, char** argv)
|
|||
{
|
||||
ec = spot::explicit_tau03_search(a);
|
||||
}
|
||||
|
||||
case Tau03OptSearch:
|
||||
if (a->number_of_acceptance_conditions() == 0)
|
||||
{
|
||||
std::cout << "To apply tau03_opt_search, the automaton must "
|
||||
<< "have at least on accepting condition. "
|
||||
<< "Try with another algorithm." << std::endl;
|
||||
}
|
||||
else
|
||||
{
|
||||
ec = spot::explicit_tau03_opt_search(a);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue