* src/tgba/tgbabddcoredata.hh (tgba_bdd_core_data::translate): New
function. * src/tgba/tgbabddcoredata.cc (tgba_bdd_core_data::translate): Likewise. * src/tgba/tgbabddtranslatefactory.cc (tgba_bdd_translate_factory::tgba_bdd_translate_factory): Use tgba_bdd_core_data::translate.
This commit is contained in:
parent
2ea7cbe0f5
commit
0fe98c6d18
4 changed files with 34 additions and 19 deletions
|
|
@ -1,5 +1,13 @@
|
||||||
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::translate): New
|
||||||
|
function.
|
||||||
|
* src/tgba/tgbabddcoredata.cc (tgba_bdd_core_data::translate):
|
||||||
|
Likewise.
|
||||||
|
* src/tgba/tgbabddtranslatefactory.cc
|
||||||
|
(tgba_bdd_translate_factory::tgba_bdd_translate_factory): Use
|
||||||
|
tgba_bdd_core_data::translate.
|
||||||
|
|
||||||
* src/tgba/tgbabddcoredata.hh (tgba_bdd_core_data::nownext_set):
|
* src/tgba/tgbabddcoredata.hh (tgba_bdd_core_data::nownext_set):
|
||||||
New attribute.
|
New attribute.
|
||||||
* tgba/tgbabddcoredata.cc, tgba/tgbabddtranslatefactory.cc:
|
* tgba/tgbabddcoredata.cc, tgba/tgbabddtranslatefactory.cc:
|
||||||
|
|
|
||||||
|
|
@ -108,4 +108,22 @@ namespace spot
|
||||||
acc_set &= acc;
|
acc_set &= acc;
|
||||||
negacc_set &= !acc;
|
negacc_set &= !acc;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
tgba_bdd_core_data::translate(bddPair* rewrite)
|
||||||
|
{
|
||||||
|
relation = bdd_replace(relation, rewrite);
|
||||||
|
accepting_conditions = bdd_replace(accepting_conditions, rewrite);
|
||||||
|
now_set = bdd_replace(now_set, rewrite);
|
||||||
|
next_set = bdd_replace(next_set, rewrite);
|
||||||
|
nownext_set = bdd_replace(nownext_set, rewrite);
|
||||||
|
notnow_set = bdd_replace(notnow_set, rewrite);
|
||||||
|
notnext_set = bdd_replace(notnext_set, rewrite);
|
||||||
|
notvar_set = bdd_replace(notvar_set, rewrite);
|
||||||
|
var_set = bdd_replace(var_set, rewrite);
|
||||||
|
varandnext_set = bdd_replace(varandnext_set, rewrite);
|
||||||
|
acc_set = bdd_replace(acc_set, rewrite);
|
||||||
|
notacc_set = bdd_replace(notacc_set, rewrite);
|
||||||
|
negacc_set = bdd_replace(negacc_set, rewrite);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -122,6 +122,12 @@ namespace spot
|
||||||
/// \brief Update the variable sets to take a new accepting condition
|
/// \brief Update the variable sets to take a new accepting condition
|
||||||
/// into account.
|
/// into account.
|
||||||
void declare_accepting_condition(bdd prom);
|
void declare_accepting_condition(bdd prom);
|
||||||
|
|
||||||
|
/// \brief Translate BDD variables.
|
||||||
|
///
|
||||||
|
/// Rewrite the variables according to \a rewrite.
|
||||||
|
/// This used by spot::tgba_bdd_translate_factory.
|
||||||
|
void translate(bddPair* rewrite);
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -6,28 +6,11 @@ namespace spot
|
||||||
{
|
{
|
||||||
tgba_bdd_translate_factory::tgba_bdd_translate_factory
|
tgba_bdd_translate_factory::tgba_bdd_translate_factory
|
||||||
(const tgba_bdd_concrete& from, const tgba_bdd_dict& to)
|
(const tgba_bdd_concrete& from, const tgba_bdd_dict& to)
|
||||||
: dict_(to)
|
: data_(from.get_core_data()), dict_(to)
|
||||||
{
|
{
|
||||||
bddPair* rewrite = compute_pairs(from.get_dict());
|
bddPair* rewrite = compute_pairs(from.get_dict());
|
||||||
|
data_.translate(rewrite);
|
||||||
const tgba_bdd_core_data& in = from.get_core_data();
|
|
||||||
|
|
||||||
data_.relation = bdd_replace(in.relation, rewrite);
|
|
||||||
data_.accepting_conditions = bdd_replace(in.accepting_conditions, rewrite);
|
|
||||||
data_.now_set = bdd_replace(in.now_set, rewrite);
|
|
||||||
data_.next_set = bdd_replace(in.next_set, rewrite);
|
|
||||||
data_.nownext_set = bdd_replace(in.nownext_set, rewrite);
|
|
||||||
data_.notnow_set = bdd_replace(in.notnow_set, rewrite);
|
|
||||||
data_.notnext_set = bdd_replace(in.notnext_set, rewrite);
|
|
||||||
data_.notvar_set = bdd_replace(in.notvar_set, rewrite);
|
|
||||||
data_.var_set = bdd_replace(in.var_set, rewrite);
|
|
||||||
data_.varandnext_set = bdd_replace(in.varandnext_set, rewrite);
|
|
||||||
data_.acc_set = bdd_replace(in.acc_set, rewrite);
|
|
||||||
data_.notacc_set = bdd_replace(in.notacc_set, rewrite);
|
|
||||||
data_.negacc_set = bdd_replace(in.negacc_set, rewrite);
|
|
||||||
|
|
||||||
init_ = bdd_replace(from.get_init_bdd(), rewrite);
|
init_ = bdd_replace(from.get_init_bdd(), rewrite);
|
||||||
|
|
||||||
bdd_freepair(rewrite);
|
bdd_freepair(rewrite);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue