minor improvements

This commit is contained in:
Tiago Gomes 2012-05-28 18:26:15 +01:00
parent 0cee50496e
commit 004e6c0c5f
3 changed files with 17 additions and 21 deletions

View File

@ -39,11 +39,9 @@ Params
BpSolver::solveQuery (VarIds queryVids)
{
assert (queryVids.empty() == false);
if (queryVids.size() == 1) {
return getPosterioriOf (queryVids[0]);
} else {
return getJointDistributionOf (queryVids);
}
return queryVids.size() == 1
? getPosterioriOf (queryVids[0])
: getJointDistributionOf (queryVids);
}

View File

@ -178,7 +178,7 @@ runSolver (const FactorGraph& fg, const VarIds& queryIds)
solver->printSolverFlags();
cout << endl;
}
if (queryIds.size() == 0) {
if (queryIds.empty()) {
solver->printAllPosterioris();
} else {
solver->printAnswer (queryIds);

View File

@ -14,6 +14,7 @@ Solver::printAnswer (const VarIds& vids)
unobservedVids.push_back (vids[i]);
}
}
if (unobservedVids.empty() == false) {
Params res = solveQuery (unobservedVids);
vector<string> stateLines = Util::getStateLines (unobservedVars);
for (size_t i = 0; i < res.size(); i++) {
@ -23,20 +24,17 @@ Solver::printAnswer (const VarIds& vids)
}
cout << endl;
}
}
void
Solver::printAllPosterioris (void)
{
VarIds vids;
const VarNodes& vars = fg.varNodes();
VarNodes vars = fg.varNodes();
std::sort (vars.begin(), vars.end(), sortByVarId());
for (size_t i = 0; i < vars.size(); i++) {
vids.push_back (vars[i]->varId());
}
std::sort (vids.begin(), vids.end());
for (size_t i = 0; i < vids.size(); i++) {
printAnswer ({vids[i]});
printAnswer ({vars[i]->varId()});
}
}