Quantification BDDs for each process; example

This commit is contained in:
Artur Meski
2018-04-15 18:47:52 +01:00
parent d34e3954c4
commit 8a9ba95fed
3 changed files with 72 additions and 0 deletions

View File

@@ -118,6 +118,8 @@ void SymRS::initBDDvars(void)
pv_drs_flat = new BDDvec(totalRctSysStateVars);
pv_drs_flat_succ = new BDDvec(totalRctSysStateVars);
pv_drs_E = new BDDvec(numberOfProc);
pv_drs_flat_E = new BDD(BDD_TRUE);
pv_drs_flat_succ_E = new BDD(BDD_TRUE);
@@ -151,6 +153,8 @@ void SymRS::initBDDvars(void)
(*pv_drs)[proc_id].resize(entities_count);
(*pv_drs_succ)[proc_id].resize(entities_count);
(*pv_drs_E)[proc_id] = BDD_TRUE;
for (unsigned int i = 0; i < entities_count; ++i) {
assert(drs_flat_index < totalRctSysStateVars);
@@ -162,6 +166,8 @@ void SymRS::initBDDvars(void)
(*pv_drs)[proc_id][i] = cuddMgr->bddVar(bdd_var_idx++);
(*pv_drs_succ)[proc_id][i] = cuddMgr->bddVar(bdd_var_idx++);
(*pv_drs_E)[proc_id] *= (*pv_drs)[proc_id][i];
// The DRS part of the system (flattened): these vars do not include CA
(*pv_drs_flat)[drs_flat_index] = (*pv_drs)[proc_id][i];
(*pv_drs_flat_succ)[drs_flat_index] = (*pv_drs_succ)[proc_id][i];