26 template<
class BAYESTREE>
31 const KeySet newFactorKeys = newFactors.keys();
33 KeyVector keyVector(newFactorKeys.begin(), newFactorKeys.end());
34 this->removeTop(keyVector, &bn, orphans);
40 factors += newFactors;
44 factors += boost::make_shared<BayesTreeOrphanWrapper<Clique> >(orphan);
49 KeyVector(newFactorKeys.begin(), newFactorKeys.end()));
52 auto bayesTree = factors.eliminateMultifrontal(ordering,
function, index);
55 this->roots_.insert(this->roots_.end(), bayesTree->roots().begin(),
56 bayesTree->roots().end());
57 this->nodes_.insert(bayesTree->nodes().begin(), bayesTree->nodes().end());
61 template<
class BAYESTREE>
65 this->updateInternal(newFactors, &orphans,
function);
void update(const FactorGraphType &newFactors, const Eliminate &function=EliminationTraitsType::DefaultEliminate)
static enum @843 ordering
Base::sharedClique sharedClique
GaussianFactorGraph factors(list_of(factor1)(factor2)(factor3))
Base::FactorGraphType FactorGraphType
FastVector< Key > KeyVector
Define collection type once and for all - also used in wrappers.
Base::Eliminate Eliminate
Incremental update functionality (iSAM) for BayesTree.
void updateInternal(const FactorGraphType &newFactors, Cliques *orphans, const Eliminate &function=EliminationTraitsType::DefaultEliminate)
Base::BayesNetType BayesNetType
static Ordering ColamdConstrainedLast(const FACTOR_GRAPH &graph, const KeyVector &constrainLast, bool forceOrder=false)