remove const ref push_back
parent
c7e1c60224
commit
3dbb16a114
|
@ -111,28 +111,10 @@ class GTSAM_EXPORT HybridBayesNet : public BayesNet<HybridConditional> {
|
|||
* @return IsSharedPtr<CONDITIONAL>
|
||||
*/
|
||||
template <class CONDITIONAL>
|
||||
IsSharedPtr<CONDITIONAL> push_back(const CONDITIONAL &conditional) {
|
||||
void push_back(std::shared_ptr<CONDITIONAL> conditional) {
|
||||
factors_.push_back(std::make_shared<HybridConditional>(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<CONDITIONAL>
|
||||
*/
|
||||
template <class CONDITIONAL>
|
||||
IsNotSharedPtr<CONDITIONAL> push_back(const CONDITIONAL &conditional) {
|
||||
auto cond_shared_ptr = std::make_shared<CONDITIONAL>(conditional);
|
||||
push_back(cond_shared_ptr);
|
||||
}
|
||||
|
||||
/**
|
||||
* Preferred: add a conditional directly using a pointer.
|
||||
*
|
||||
|
|
|
@ -228,12 +228,17 @@ static HybridBayesNet GetGaussianMixtureModel(double mu0, double mu1,
|
|||
auto c0 = make_shared<GaussianConditional>(z, Vector1(mu0), I_1x1, model0),
|
||||
c1 = make_shared<GaussianConditional>(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<GaussianConditional::shared_ptr> conditionals = {c0, c1};
|
||||
auto gm = make_shared<GaussianMixture>(frontalKeys, continuousParents,
|
||||
discreteParents, conditionals);
|
||||
|
||||
HybridBayesNet hbn;
|
||||
hbn.push_back(gm);
|
||||
hbn.push_back(mixing);
|
||||
|
||||
auto mixing = make_shared<DiscreteConditional>(m, "0.5/0.5");
|
||||
hbn.emplace_shared<HybridConditional>(mixing);
|
||||
|
||||
return hbn;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue