Removed cached factors from BayesTree - these were a hack from making iSAM2 work and were causing a lot of memory to be accumulated for big problems

release/4.3a0
Chris Beall 2010-11-02 21:37:48 +00:00
parent c9b57ccd74
commit 2b9193e12a
3 changed files with 0 additions and 7 deletions

View File

@ -133,7 +133,6 @@ namespace gtsam {
void BayesTree<CONDITIONAL>::Clique::permuteWithInverse(const Permutation& inversePermutation) { void BayesTree<CONDITIONAL>::Clique::permuteWithInverse(const Permutation& inversePermutation) {
BayesNet<CONDITIONAL>::permuteWithInverse(inversePermutation); BayesNet<CONDITIONAL>::permuteWithInverse(inversePermutation);
BOOST_FOREACH(Index& separatorKey, separator_) { separatorKey = inversePermutation[separatorKey]; } BOOST_FOREACH(Index& separatorKey, separator_) { separatorKey = inversePermutation[separatorKey]; }
if(cachedFactor_) cachedFactor_->permuteWithInverse(inversePermutation);
BOOST_FOREACH(const shared_ptr& child, children_) { BOOST_FOREACH(const shared_ptr& child, children_) {
child->permuteWithInverse(inversePermutation); child->permuteWithInverse(inversePermutation);
} }
@ -153,7 +152,6 @@ namespace gtsam {
#endif #endif
if(changed) { if(changed) {
BOOST_FOREACH(Index& separatorKey, separator_) { separatorKey = inversePermutation[separatorKey]; } BOOST_FOREACH(Index& separatorKey, separator_) { separatorKey = inversePermutation[separatorKey]; }
if(cachedFactor_) cachedFactor_->permuteWithInverse(inversePermutation);
BOOST_FOREACH(const shared_ptr& child, children_) { BOOST_FOREACH(const shared_ptr& child, children_) {
(void)child->permuteSeparatorWithInverse(inversePermutation); (void)child->permuteSeparatorWithInverse(inversePermutation);
} }

View File

@ -58,7 +58,6 @@ namespace gtsam {
weak_ptr parent_; weak_ptr parent_;
std::list<shared_ptr> children_; std::list<shared_ptr> children_;
std::list<Index> separator_; /** separator keys */ std::list<Index> separator_; /** separator keys */
typename CONDITIONAL::Factor::shared_ptr cachedFactor_;
friend class BayesTree<CONDITIONAL>; friend class BayesTree<CONDITIONAL>;
@ -87,9 +86,6 @@ namespace gtsam {
std::list<shared_ptr>& children() { return children_; } std::list<shared_ptr>& children() { return children_; }
const std::list<shared_ptr>& children() const { return children_; } const std::list<shared_ptr>& children() const { return children_; }
/** Reference the cached factor */
typename CONDITIONAL::Factor::shared_ptr& cachedFactor() { return cachedFactor_; }
/** The size of subtree rooted at this clique, i.e., nr of Cliques */ /** The size of subtree rooted at this clique, i.e., nr of Cliques */
size_t treeSize() const; size_t treeSize() const;

View File

@ -188,7 +188,6 @@ namespace gtsam {
BOOST_FOREACH(typename BayesTree::sharedClique& childRoot, children) BOOST_FOREACH(typename BayesTree::sharedClique& childRoot, children)
childRoot->parent_ = new_clique; childRoot->parent_ = new_clique;
new_clique->cachedFactor() = jointFactor;
toc("JT 2.4 Update tree"); toc("JT 2.4 Update tree");
return make_pair(new_clique, jointFactor); return make_pair(new_clique, jointFactor);
} }