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.push_back(newFactors);
44 factors.template emplace_shared<BayesTreeOrphanWrapper<Clique> >(orphan);
49 KeyVector(newFactorKeys.begin(), newFactorKeys.end()));
52 auto bayesTree = factors.eliminateMultifrontal(ordering,
function, std::cref(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)
FactorGraphType::Eliminate Eliminate
IsDerived< DERIVEDFACTOR > push_back(std::shared_ptr< DERIVEDFACTOR > factor)
Add a factor directly using a shared_ptr.
const GaussianFactorGraph factors
static enum @1107 ordering
std::shared_ptr< Clique > sharedClique
Shared pointer to a clique.
HybridBayesTreeClique ::FactorGraphType FactorGraphType
Incremental update functionality (iSAM) for BayesTree.
void updateInternal(const FactorGraphType &newFactors, Cliques *orphans, const Eliminate &function=EliminationTraitsType::DefaultEliminate)
HybridBayesTreeClique ::BayesNetType BayesNetType
FastVector< Key > KeyVector
Define collection type once and for all - also used in wrappers.
static Ordering ColamdConstrainedLast(const FACTOR_GRAPH &graph, const KeyVector &constrainLast, bool forceOrder=false)