use only solveQuery

This commit is contained in:
Tiago Gomes
2012-05-31 23:06:53 +01:00
parent f91e543d9d
commit b5369db214
9 changed files with 50 additions and 99 deletions

View File

@@ -59,29 +59,17 @@ Params
CbpSolver::solveQuery (VarIds queryVids)
{
assert (queryVids.empty() == false);
return queryVids.size() == 1
? getPosterioriOf (queryVids[0])
: getJointDistributionOf (queryVids);
}
Params
CbpSolver::getPosterioriOf (VarId vid)
{
return solver_->getPosterioriOf (getRepresentative (vid));
}
Params
CbpSolver::getJointDistributionOf (const VarIds& jointVids)
{
VarIds representatives;
for (size_t i = 0; i < jointVids.size(); i++) {
representatives.push_back (getRepresentative (jointVids[i]));
Params res;
if (queryVids.size() == 1) {
res = solver_->getPosterioriOf (getRepresentative (queryVids[0]));
} else {
VarIds representatives;
for (size_t i = 0; i < queryVids.size(); i++) {
representatives.push_back (getRepresentative (queryVids[i]));
}
res = solver_->getJointDistributionOf (representatives);
}
return solver_->getJointDistributionOf (representatives);
return res;
}