* src/tgba/tgbabddcoredata.hh (tgba_bdd_core_data::nownext_set):
New attribute. * tgba/tgbabddcoredata.cc, tgba/tgbabddtranslatefactory.cc: Handle nownext_set. * src/tgba/succiterconcrete.cc (tgba_succ_iterator_concrete::next): Use nownext_set to simplify.
This commit is contained in:
parent
2ed074750d
commit
2ea7cbe0f5
5 changed files with 18 additions and 11 deletions
|
|
@ -1,5 +1,12 @@
|
||||||
2003-07-02 Alexandre Duret-Lutz <aduret@src.lip6.fr>
|
2003-07-02 Alexandre Duret-Lutz <aduret@src.lip6.fr>
|
||||||
|
|
||||||
|
* src/tgba/tgbabddcoredata.hh (tgba_bdd_core_data::nownext_set):
|
||||||
|
New attribute.
|
||||||
|
* tgba/tgbabddcoredata.cc, tgba/tgbabddtranslatefactory.cc:
|
||||||
|
Handle nownext_set.
|
||||||
|
* src/tgba/succiterconcrete.cc
|
||||||
|
(tgba_succ_iterator_concrete::next): Use nownext_set to simplify.
|
||||||
|
|
||||||
Rewrite tgba_succ_iterator_concrete::next for the fourth time
|
Rewrite tgba_succ_iterator_concrete::next for the fourth time
|
||||||
(or is it the fifth?).
|
(or is it the fifth?).
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -111,7 +111,7 @@ namespace spot
|
||||||
{
|
{
|
||||||
// AS is false when no transition from ST belongs to
|
// AS is false when no transition from ST belongs to
|
||||||
// an accepting set. Iterate over ST directly.
|
// an accepting set. Iterate over ST directly.
|
||||||
trans_set_ = bdd_exist(st, data_.now_set & data_.next_set);
|
trans_set_ = bdd_exist(st, data_.nownext_set);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
@ -119,7 +119,7 @@ namespace spot
|
||||||
// only work over a set of transitions sharing the
|
// only work over a set of transitions sharing the
|
||||||
// same accepting set.
|
// same accepting set.
|
||||||
|
|
||||||
as = bdd_exist(as, data_.now_set & data_.next_set);
|
as = bdd_exist(as, data_.nownext_set);
|
||||||
// as = (a | (!a)&b) & (Acc[a] | Acc[b]) + (!a & Acc[b])
|
// as = (a | (!a)&b) & (Acc[a] | Acc[b]) + (!a & Acc[b])
|
||||||
bdd cube = bdd_satone(as);
|
bdd cube = bdd_satone(as);
|
||||||
// cube = (!ab & Acc[a])
|
// cube = (!ab & Acc[a])
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,7 @@ namespace spot
|
||||||
accepting_conditions(bddfalse),
|
accepting_conditions(bddfalse),
|
||||||
now_set(bddtrue),
|
now_set(bddtrue),
|
||||||
next_set(bddtrue),
|
next_set(bddtrue),
|
||||||
negnow_set(bddtrue),
|
nownext_set(bddtrue),
|
||||||
notnow_set(bddtrue),
|
notnow_set(bddtrue),
|
||||||
notnext_set(bddtrue),
|
notnext_set(bddtrue),
|
||||||
var_set(bddtrue),
|
var_set(bddtrue),
|
||||||
|
|
@ -25,7 +25,7 @@ namespace spot
|
||||||
accepting_conditions(copy.accepting_conditions),
|
accepting_conditions(copy.accepting_conditions),
|
||||||
now_set(copy.now_set),
|
now_set(copy.now_set),
|
||||||
next_set(copy.next_set),
|
next_set(copy.next_set),
|
||||||
negnow_set(copy.negnow_set),
|
nownext_set(copy.nownext_set),
|
||||||
notnow_set(copy.notnow_set),
|
notnow_set(copy.notnow_set),
|
||||||
notnext_set(copy.notnext_set),
|
notnext_set(copy.notnext_set),
|
||||||
var_set(copy.var_set),
|
var_set(copy.var_set),
|
||||||
|
|
@ -46,7 +46,7 @@ namespace spot
|
||||||
| right.accepting_conditions),
|
| right.accepting_conditions),
|
||||||
now_set(left.now_set & right.now_set),
|
now_set(left.now_set & right.now_set),
|
||||||
next_set(left.next_set & right.next_set),
|
next_set(left.next_set & right.next_set),
|
||||||
negnow_set(left.negnow_set & right.negnow_set),
|
nownext_set(left.nownext_set & right.nownext_set),
|
||||||
notnow_set(left.notnow_set & right.notnow_set),
|
notnow_set(left.notnow_set & right.notnow_set),
|
||||||
notnext_set(left.notnext_set & right.notnext_set),
|
notnext_set(left.notnext_set & right.notnext_set),
|
||||||
var_set(left.var_set & right.var_set),
|
var_set(left.var_set & right.var_set),
|
||||||
|
|
@ -80,10 +80,10 @@ namespace spot
|
||||||
{
|
{
|
||||||
now_set &= now;
|
now_set &= now;
|
||||||
next_set &= next;
|
next_set &= next;
|
||||||
negnow_set &= !now;
|
|
||||||
notnext_set &= now;
|
notnext_set &= now;
|
||||||
notnow_set &= next;
|
notnow_set &= next;
|
||||||
bdd both = now & next;
|
bdd both = now & next;
|
||||||
|
nownext_set &= both;
|
||||||
notvar_set &= both;
|
notvar_set &= both;
|
||||||
notacc_set &= both;
|
notacc_set &= both;
|
||||||
varandnext_set &= next;
|
varandnext_set &= next;
|
||||||
|
|
|
||||||
|
|
@ -65,8 +65,8 @@ namespace spot
|
||||||
bdd now_set;
|
bdd now_set;
|
||||||
/// The conjunction of all Next variables, in their positive form.
|
/// The conjunction of all Next variables, in their positive form.
|
||||||
bdd next_set;
|
bdd next_set;
|
||||||
/// The conjunction of all Now variables, in their negated form.
|
/// The conjunction of all Now and Next variables, in their positive form.
|
||||||
bdd negnow_set;
|
bdd nownext_set;
|
||||||
/// \brief The (positive) conjunction of all variables which are
|
/// \brief The (positive) conjunction of all variables which are
|
||||||
/// not Now variables.
|
/// not Now variables.
|
||||||
bdd notnow_set;
|
bdd notnow_set;
|
||||||
|
|
|
||||||
|
|
@ -16,7 +16,7 @@ namespace spot
|
||||||
data_.accepting_conditions = bdd_replace(in.accepting_conditions, rewrite);
|
data_.accepting_conditions = bdd_replace(in.accepting_conditions, rewrite);
|
||||||
data_.now_set = bdd_replace(in.now_set, rewrite);
|
data_.now_set = bdd_replace(in.now_set, rewrite);
|
||||||
data_.next_set = bdd_replace(in.next_set, rewrite);
|
data_.next_set = bdd_replace(in.next_set, rewrite);
|
||||||
data_.negnow_set = bdd_replace(in.negnow_set, rewrite);
|
data_.nownext_set = bdd_replace(in.nownext_set, rewrite);
|
||||||
data_.notnow_set = bdd_replace(in.notnow_set, rewrite);
|
data_.notnow_set = bdd_replace(in.notnow_set, rewrite);
|
||||||
data_.notnext_set = bdd_replace(in.notnext_set, rewrite);
|
data_.notnext_set = bdd_replace(in.notnext_set, rewrite);
|
||||||
data_.notvar_set = bdd_replace(in.notvar_set, rewrite);
|
data_.notvar_set = bdd_replace(in.notvar_set, rewrite);
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue