diff --git a/gtsam/nonlinear/Marginals.cpp b/gtsam/nonlinear/Marginals.cpp index 41212ed767..c89a98a50c 100644 --- a/gtsam/nonlinear/Marginals.cpp +++ b/gtsam/nonlinear/Marginals.cpp @@ -193,6 +193,11 @@ VectorValues Marginals::optimize() const { return bayesTree_.optimize(); } +/* ************************************************************************* */ +void Marginals::deleteCachedShortcuts() { + bayesTree_.deleteCachedShortcuts(); +} + /* ************************************************************************* */ void JointMarginal::print(const std::string& s, const KeyFormatter& formatter) const { cout << s << "Joint marginal on keys "; diff --git a/gtsam/nonlinear/Marginals.h b/gtsam/nonlinear/Marginals.h index 41707ea82d..d133edb2c9 100644 --- a/gtsam/nonlinear/Marginals.h +++ b/gtsam/nonlinear/Marginals.h @@ -119,6 +119,9 @@ class GTSAM_EXPORT Marginals { /** Compute the joint marginal information of several variables */ JointMarginal jointMarginalInformation(const KeyVector& variables) const; + /** Delete cached Bayes tree shortcuts created while computing marginals */ + void deleteCachedShortcuts(); + /** Optimize the bayes tree */ VectorValues optimize() const; diff --git a/gtsam/nonlinear/nonlinear.i b/gtsam/nonlinear/nonlinear.i index c39a161609..bc8149ba45 100644 --- a/gtsam/nonlinear/nonlinear.i +++ b/gtsam/nonlinear/nonlinear.i @@ -169,6 +169,7 @@ class Marginals { const gtsam::KeyVector& variables) const; gtsam::JointMarginal jointMarginalInformation( const gtsam::KeyVector& variables) const; + void deleteCachedShortcuts(); }; class JointMarginal {