Fix pruning in iSAM
parent
28f5ed0a6e
commit
38ed609614
|
@ -26,6 +26,10 @@
|
||||||
#include <gtsam/inference/BayesTreeCliqueBase-inst.h>
|
#include <gtsam/inference/BayesTreeCliqueBase-inst.h>
|
||||||
#include <gtsam/linear/GaussianJunctionTree.h>
|
#include <gtsam/linear/GaussianJunctionTree.h>
|
||||||
|
|
||||||
|
#include <memory>
|
||||||
|
|
||||||
|
#include "gtsam/hybrid/HybridConditional.h"
|
||||||
|
|
||||||
namespace gtsam {
|
namespace gtsam {
|
||||||
|
|
||||||
// Instantiate base class
|
// Instantiate base class
|
||||||
|
@ -207,7 +211,9 @@ void HybridBayesTree::prune(const size_t maxNrLeaves) {
|
||||||
if (conditional->isHybrid()) {
|
if (conditional->isHybrid()) {
|
||||||
auto hybridGaussianCond = conditional->asHybrid();
|
auto hybridGaussianCond = conditional->asHybrid();
|
||||||
|
|
||||||
hybridGaussianCond->prune(parentData.prunedDiscreteProbs);
|
// Imperative
|
||||||
|
clique->conditional() = std::make_shared<HybridConditional>(
|
||||||
|
hybridGaussianCond->prune(parentData.prunedDiscreteProbs));
|
||||||
}
|
}
|
||||||
return parentData;
|
return parentData;
|
||||||
}
|
}
|
||||||
|
|
|
@ -140,6 +140,9 @@ namespace gtsam {
|
||||||
/** Access the conditional */
|
/** Access the conditional */
|
||||||
const sharedConditional& conditional() const { return conditional_; }
|
const sharedConditional& conditional() const { return conditional_; }
|
||||||
|
|
||||||
|
/** Write access to the conditional */
|
||||||
|
sharedConditional& conditional() { return conditional_; }
|
||||||
|
|
||||||
/// Return true if this clique is the root of a Bayes tree.
|
/// Return true if this clique is the root of a Bayes tree.
|
||||||
inline bool isRoot() const { return parent_.expired(); }
|
inline bool isRoot() const { return parent_.expired(); }
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue