Browse Source

Fix: no updates with probability 0 in update list simulator

git-svn-id: https://www.prismmodelchecker.org/svn/prism/prism/trunk@553 bbc10eb1-c90d-0410-af57-cb519fbb1720
master
Mark Kattenbelt 18 years ago
parent
commit
b96f9ba1fa
  1. 17
      prism/src/simulator/simreasoning.cc

17
prism/src/simulator/simreasoning.cc

@ -471,8 +471,12 @@ void Calculate_Updates(int* variables)
//cout << "should be actually adding it" << endl;
upd = comm->updates[k];
Get_Update(no_updates++)->Set
(upd->probability->EvaluateDouble(variables),(count_distributions-1),-1,i,upd);
// Added test for positive probability
if (upd->probability->EvaluateDouble(variables) > 0)
{
Get_Update(no_updates++)->Set
(upd->probability->EvaluateDouble(variables),(count_distributions-1),-1,i,upd);
}
}
}
}
@ -488,8 +492,12 @@ void Calculate_Updates(int* variables)
{
//cout << "should be adding a synchronous update" << endl;
upd = comm->updates[k];
Get_Update(no_updates++)->Set
(upd->probability->EvaluateDouble(variables),(count_distributions-1),i,-1,upd);
if (upd->probability->EvaluateDouble(variables) > 0)
{
Get_Update(no_updates++)->Set
(upd->probability->EvaluateDouble(variables),(count_distributions-1),i,-1,upd);
}
}
}
}
@ -506,7 +514,6 @@ void Calculate_Updates(int* variables)
Get_Update(i)->Normalise(no_distributions);
}
no_distributions = 1;
}
}

Loading…
Cancel
Save