Partitioned trnasition relation with reordering

This commit is contained in:
Artur Meski
2018-07-22 18:25:19 +01:00
parent 482828a04e
commit 18e840ce17
4 changed files with 60 additions and 20 deletions

14
mc.cc
View File

@@ -73,8 +73,8 @@ inline BDD ModelChecker::getSucc(const BDD &states)
VERB_L2("Computing successors");
if (opts->part_tr_rel) {
for (unsigned int i = 0; i < trp_size; ++i) {
q *= states * (*trp)[i];
for (const auto &trans : *trp) {
q *= states * trans;
}
}
else {
@@ -99,8 +99,8 @@ inline BDD ModelChecker::getPreE(const BDD &states)
BDD x = states.SwapVariables(*pv, *pv_succ);
if (opts->part_tr_rel) {
for (unsigned int i = 0; i < trp_size; ++i) {
q *= x * (*trp)[i];
for (const auto &trans : *trp) {
q *= x * trans;
}
}
else {
@@ -110,6 +110,7 @@ inline BDD ModelChecker::getPreE(const BDD &states)
q = q.ExistAbstract(*pv_succ_E);
q = q.ExistAbstract(*pv_ctx_E);
q = q.ExistAbstract(*pv_proc_enab_E);
return q;
}
@@ -120,9 +121,10 @@ inline BDD ModelChecker::getPreEctx(const BDD &states, const BDD *contexts)
BDD x = states.SwapVariables(*pv, *pv_succ);
if (opts->part_tr_rel) {
for (unsigned int i = 0; i < trp_size; ++i) {
q *= x * (*trp)[i] * *contexts;
for (const auto &trans : *trp) {
q *= x * trans;
}
q *= *contexts;
}
else {
q *= x * *trm * *contexts;