* iface/gspn/ltlgspn.cc, src/tgbaalgos/gtec/gtec.cc,
src/tgbaalgos/gtec/gtec.hh: New option (-e6) to disable inclusion check in the stack.
This commit is contained in:
parent
bb47e31b1e
commit
afd4ea0eb4
4 changed files with 24 additions and 8 deletions
|
|
@ -1,5 +1,9 @@
|
||||||
2006-02-15 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
2006-02-15 Alexandre Duret-Lutz <adl@src.lip6.fr>
|
||||||
|
|
||||||
|
* iface/gspn/ltlgspn.cc, src/tgbaalgos/gtec/gtec.cc,
|
||||||
|
src/tgbaalgos/gtec/gtec.hh: New option (-e6) to disable
|
||||||
|
inclusion check in the stack.
|
||||||
|
|
||||||
* src/tgbaalgos/gtec/gtec.cc, src/tgbaalgos/gtec/gtec.hh:
|
* src/tgbaalgos/gtec/gtec.cc, src/tgbaalgos/gtec/gtec.hh:
|
||||||
Count the number of removed components.
|
Count the number of removed components.
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -73,6 +73,8 @@ syntax(char* prog)
|
||||||
<< std::endl
|
<< std::endl
|
||||||
<< " -e5 use d. incl. Couvreur's emptiness-check's shy variant"
|
<< " -e5 use d. incl. Couvreur's emptiness-check's shy variant"
|
||||||
<< std::endl
|
<< std::endl
|
||||||
|
<< " -e6 like -e5, but without inclusion checks in the "
|
||||||
|
<< "search stack" << std::endl
|
||||||
#endif
|
#endif
|
||||||
<< " -m degeneralize and perform a magic-search" << std::endl
|
<< " -m degeneralize and perform a magic-search" << std::endl
|
||||||
<< std::endl
|
<< std::endl
|
||||||
|
|
@ -105,6 +107,7 @@ main(int argc, char **argv)
|
||||||
bool proj = true;
|
bool proj = true;
|
||||||
#ifdef SSP
|
#ifdef SSP
|
||||||
bool doublehash = true;
|
bool doublehash = true;
|
||||||
|
bool stack_inclusion = true;
|
||||||
#endif
|
#endif
|
||||||
std::string dead = "true";
|
std::string dead = "true";
|
||||||
|
|
||||||
|
|
@ -155,6 +158,11 @@ main(int argc, char **argv)
|
||||||
{
|
{
|
||||||
check = Couvreur5;
|
check = Couvreur5;
|
||||||
}
|
}
|
||||||
|
else if (!strcmp(argv[formula_index], "-e6"))
|
||||||
|
{
|
||||||
|
check = Couvreur5;
|
||||||
|
stack_inclusion = false;
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
else if (!strcmp(argv[formula_index], "-m"))
|
else if (!strcmp(argv[formula_index], "-m"))
|
||||||
{
|
{
|
||||||
|
|
@ -260,7 +268,7 @@ main(int argc, char **argv)
|
||||||
ec = spot::couvreur99_check_ssp_shy_semi(prod);
|
ec = spot::couvreur99_check_ssp_shy_semi(prod);
|
||||||
break;
|
break;
|
||||||
case Couvreur5:
|
case Couvreur5:
|
||||||
ec = spot::couvreur99_check_ssp_shy(prod);
|
ec = spot::couvreur99_check_ssp_shy(prod, stack_inclusion);
|
||||||
break;
|
break;
|
||||||
#endif
|
#endif
|
||||||
default:
|
default:
|
||||||
|
|
|
||||||
|
|
@ -973,12 +973,13 @@ namespace spot
|
||||||
class couvreur99_check_shy_ssp : public couvreur99_check_shy
|
class couvreur99_check_shy_ssp : public couvreur99_check_shy
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
couvreur99_check_shy_ssp(const tgba* a)
|
couvreur99_check_shy_ssp(const tgba* a, bool stack_inclusion)
|
||||||
: couvreur99_check_shy(a,
|
: couvreur99_check_shy(a,
|
||||||
option_map(),
|
option_map(),
|
||||||
numbered_state_heap_ssp_factory_semi::instance()),
|
numbered_state_heap_ssp_factory_semi::instance()),
|
||||||
inclusion_count_heap(0),
|
inclusion_count_heap(0),
|
||||||
inclusion_count_stack(0)
|
inclusion_count_stack(0),
|
||||||
|
stack_inclusion(stack_inclusion)
|
||||||
{
|
{
|
||||||
stats["inclusion count heap"] =
|
stats["inclusion count heap"] =
|
||||||
static_cast<spot::unsigned_statistics::unsigned_fun>
|
static_cast<spot::unsigned_statistics::unsigned_fun>
|
||||||
|
|
@ -994,6 +995,7 @@ namespace spot
|
||||||
private:
|
private:
|
||||||
unsigned inclusion_count_heap;
|
unsigned inclusion_count_heap;
|
||||||
unsigned inclusion_count_stack;
|
unsigned inclusion_count_stack;
|
||||||
|
bool stack_inclusion;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
unsigned
|
unsigned
|
||||||
|
|
@ -1064,7 +1066,8 @@ namespace spot
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (spot_inclusion(old_state->left(),
|
if (stack_inclusion
|
||||||
|
&& spot_inclusion(old_state->left(),
|
||||||
new_state->left()))
|
new_state->left()))
|
||||||
{
|
{
|
||||||
++inclusion_count_stack;
|
++inclusion_count_stack;
|
||||||
|
|
@ -1197,10 +1200,10 @@ namespace spot
|
||||||
}
|
}
|
||||||
|
|
||||||
couvreur99_check*
|
couvreur99_check*
|
||||||
couvreur99_check_ssp_shy(const tgba* ssp_automata)
|
couvreur99_check_ssp_shy(const tgba* ssp_automata, bool stack_inclusion)
|
||||||
{
|
{
|
||||||
assert(dynamic_cast<const tgba_gspn_ssp*>(ssp_automata));
|
assert(dynamic_cast<const tgba_gspn_ssp*>(ssp_automata));
|
||||||
return new couvreur99_check_shy_ssp(ssp_automata);
|
return new couvreur99_check_shy_ssp(ssp_automata, stack_inclusion);
|
||||||
}
|
}
|
||||||
|
|
||||||
#if 0
|
#if 0
|
||||||
|
|
|
||||||
|
|
@ -54,7 +54,8 @@ namespace spot
|
||||||
/// @{
|
/// @{
|
||||||
couvreur99_check* couvreur99_check_ssp_semi(const tgba* ssp_automata);
|
couvreur99_check* couvreur99_check_ssp_semi(const tgba* ssp_automata);
|
||||||
couvreur99_check* couvreur99_check_ssp_shy_semi(const tgba* ssp_automata);
|
couvreur99_check* couvreur99_check_ssp_shy_semi(const tgba* ssp_automata);
|
||||||
couvreur99_check* couvreur99_check_ssp_shy(const tgba* ssp_automata);
|
couvreur99_check* couvreur99_check_ssp_shy(const tgba* ssp_automata,
|
||||||
|
bool stack_inclusion = true);
|
||||||
|
|
||||||
/// @}
|
/// @}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue