Removed obsolete code for avoiding partial elimination in BayesTreeCliqueBase::shortcut and GenericSequentialSolver::conditionalBayesNet

release/4.3a0
Richard Roberts 2012-10-09 00:18:22 +00:00
parent df9a86d340
commit 90ca1d46f5
2 changed files with 0 additions and 29 deletions

View File

@ -196,15 +196,6 @@ namespace gtsam {
gttic(BayesTreeCliqueBase_shortcut_cachemiss);
p_Cp_B.push_back(parent->conditional()->toFactor()); // P(Fp|Sp)
// Add the root conditional
// TODO: this is needed because otherwise we will be solving singular
// systems and exceptions are thrown. However, we should be able to omit
// this if we can get ATTEMPT_AT_NOT_ELIMINATING_ALL in
// GenericSequentialSolver.* working...
#ifndef ATTEMPT_AT_NOT_ELIMINATING_ALL
p_Cp_B.push_back(B->conditional()->toFactor()); // P(B)
#endif
// Determine the variables we want to keepSet, S union B
std::vector<Index> keep = shortcut_indices(B, p_Cp_B);

View File

@ -138,12 +138,6 @@ namespace gtsam {
Permutation::shared_ptr permutation(
inference::PermutationCOLAMD(*structure_, js, true));
#ifdef ATTEMPT_AT_NOT_ELIMINATING_ALL
// TODO Frank says: this was my attempt at eliminating exactly
// as many variables as we need. Unfortunately, in some cases
// (see testSymbolicSequentialSolver::problematicConditional)
// my trick below (passing nrToEliminate to eliminate) sometimes leads
// to a disconnected graph.
// Eliminate only variables J \cup F from P(J,F,S) to get P(F|S)
size_t nrVariables = structure_->size();
size_t nrMarginalized = nrVariables - js.size();
@ -152,20 +146,6 @@ namespace gtsam {
// Get rid of conditionals on variables that we want to marginalize out
for (int i = 0; i < nrMarginalized; i++)
bayesNet->pop_front();
#else
// Eliminate all variables
sharedBayesNet fullBayesNet = eliminate(*permutation, function);
// Get rid of conditionals we do not need (front and back)
size_t nrMarginalized = fullBayesNet->size() - js.size();
sharedBayesNet bayesNet(new BayesNet<Conditional>());
size_t i = 1;
BOOST_FOREACH(sharedConditional c, *fullBayesNet) {
if (i > nrMarginalized && i - nrMarginalized <= nrFrontals)
bayesNet->push_back(c);
i += 1;
}
#endif
return bayesNet;
}