From 3dbb16a114c56be87cf06c3a6c6603a9abce357e Mon Sep 17 00:00:00 2001 From: Varun Agrawal Date: Thu, 5 Sep 2024 15:51:37 -0400 Subject: [PATCH] remove const ref push_back --- gtsam/hybrid/HybridBayesNet.h | 20 +------------------ .../tests/testGaussianMixtureFactor.cpp | 11 +++++++--- 2 files changed, 9 insertions(+), 22 deletions(-) diff --git a/gtsam/hybrid/HybridBayesNet.h b/gtsam/hybrid/HybridBayesNet.h index 891be75da..f745b94c9 100644 --- a/gtsam/hybrid/HybridBayesNet.h +++ b/gtsam/hybrid/HybridBayesNet.h @@ -111,28 +111,10 @@ class GTSAM_EXPORT HybridBayesNet : public BayesNet { * @return IsSharedPtr */ template - IsSharedPtr push_back(const CONDITIONAL &conditional) { + void push_back(std::shared_ptr conditional) { factors_.push_back(std::make_shared(conditional)); } - /** - * @brief Add a conditional to the Bayes net. - * Implicitly convert to a HybridConditional. - * - * E.g. - * hbn.push_back(DiscreteConditional(m, "1/1")); - * hbn.push_back(GaussianConditional(X(0), Vector1(0.0), I_1x1)); - * - * @tparam CONDITIONAL Type of conditional. This is const ref version. - * @param conditional The conditional as a const reference. - * @return IsSharedPtr - */ - template - IsNotSharedPtr push_back(const CONDITIONAL &conditional) { - auto cond_shared_ptr = std::make_shared(conditional); - push_back(cond_shared_ptr); - } - /** * Preferred: add a conditional directly using a pointer. * diff --git a/gtsam/hybrid/tests/testGaussianMixtureFactor.cpp b/gtsam/hybrid/tests/testGaussianMixtureFactor.cpp index 99814229e..20fb3266e 100644 --- a/gtsam/hybrid/tests/testGaussianMixtureFactor.cpp +++ b/gtsam/hybrid/tests/testGaussianMixtureFactor.cpp @@ -228,12 +228,17 @@ static HybridBayesNet GetGaussianMixtureModel(double mu0, double mu1, auto c0 = make_shared(z, Vector1(mu0), I_1x1, model0), c1 = make_shared(z, Vector1(mu1), I_1x1, model1); - GaussianMixture gm({z}, {}, {m}, {c0, c1}); - DiscreteConditional mixing(m, "0.5/0.5"); + KeyVector frontalKeys{z}, continuousParents; + DiscreteKeys discreteParents{m}; + std::vector conditionals = {c0, c1}; + auto gm = make_shared(frontalKeys, continuousParents, + discreteParents, conditionals); HybridBayesNet hbn; hbn.push_back(gm); - hbn.push_back(mixing); + + auto mixing = make_shared(m, "0.5/0.5"); + hbn.emplace_shared(mixing); return hbn; }