Skip to content

Commit 6929d62

Browse files
committed
rename asMixture to asHybrid
1 parent 4016de7 commit 6929d62

11 files changed

+39
-39
lines changed

gtsam/hybrid/HybridBayesNet.cpp

+5-5
Original file line numberDiff line numberDiff line change
@@ -180,7 +180,7 @@ HybridBayesNet HybridBayesNet::prune(size_t maxNrLeaves) {
180180
// Go through all the conditionals in the
181181
// Bayes Net and prune them as per prunedDiscreteProbs.
182182
for (auto &&conditional : *this) {
183-
if (auto gm = conditional->asMixture()) {
183+
if (auto gm = conditional->asHybrid()) {
184184
// Make a copy of the hybrid Gaussian conditional and prune it!
185185
auto prunedHybridGaussianConditional =
186186
std::make_shared<HybridGaussianConditional>(*gm);
@@ -204,7 +204,7 @@ GaussianBayesNet HybridBayesNet::choose(
204204
const DiscreteValues &assignment) const {
205205
GaussianBayesNet gbn;
206206
for (auto &&conditional : *this) {
207-
if (auto gm = conditional->asMixture()) {
207+
if (auto gm = conditional->asHybrid()) {
208208
// If conditional is hybrid, select based on assignment.
209209
gbn.push_back((*gm)(assignment));
210210
} else if (auto gc = conditional->asGaussian()) {
@@ -291,7 +291,7 @@ AlgebraicDecisionTree<Key> HybridBayesNet::errorTree(
291291

292292
// Iterate over each conditional.
293293
for (auto &&conditional : *this) {
294-
if (auto gm = conditional->asMixture()) {
294+
if (auto gm = conditional->asHybrid()) {
295295
// If conditional is hybrid, compute error for all assignments.
296296
result = result + gm->errorTree(continuousValues);
297297

@@ -321,7 +321,7 @@ AlgebraicDecisionTree<Key> HybridBayesNet::logProbability(
321321

322322
// Iterate over each conditional.
323323
for (auto &&conditional : *this) {
324-
if (auto gm = conditional->asMixture()) {
324+
if (auto gm = conditional->asHybrid()) {
325325
// If conditional is hybrid, select based on assignment and compute
326326
// logProbability.
327327
result = result + gm->logProbability(continuousValues);
@@ -369,7 +369,7 @@ HybridGaussianFactorGraph HybridBayesNet::toFactorGraph(
369369
if (conditional->frontalsIn(measurements)) {
370370
if (auto gc = conditional->asGaussian()) {
371371
fg.push_back(gc->likelihood(measurements));
372-
} else if (auto gm = conditional->asMixture()) {
372+
} else if (auto gm = conditional->asHybrid()) {
373373
fg.push_back(gm->likelihood(measurements));
374374
} else {
375375
throw std::runtime_error("Unknown conditional type");

gtsam/hybrid/HybridBayesTree.cpp

+2-2
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,7 @@ struct HybridAssignmentData {
109109

110110
GaussianConditional::shared_ptr conditional;
111111
if (hybrid_conditional->isHybrid()) {
112-
conditional = (*hybrid_conditional->asMixture())(parentData.assignment_);
112+
conditional = (*hybrid_conditional->asHybrid())(parentData.assignment_);
113113
} else if (hybrid_conditional->isContinuous()) {
114114
conditional = hybrid_conditional->asGaussian();
115115
} else {
@@ -205,7 +205,7 @@ void HybridBayesTree::prune(const size_t maxNrLeaves) {
205205

206206
// If conditional is hybrid, we prune it.
207207
if (conditional->isHybrid()) {
208-
auto hybridGaussianCond = conditional->asMixture();
208+
auto hybridGaussianCond = conditional->asHybrid();
209209

210210
hybridGaussianCond->prune(parentData.prunedDiscreteProbs);
211211
}

gtsam/hybrid/HybridConditional.cpp

+5-5
Original file line numberDiff line numberDiff line change
@@ -97,8 +97,8 @@ void HybridConditional::print(const std::string &s,
9797
bool HybridConditional::equals(const HybridFactor &other, double tol) const {
9898
const This *e = dynamic_cast<const This *>(&other);
9999
if (e == nullptr) return false;
100-
if (auto gm = asMixture()) {
101-
auto other = e->asMixture();
100+
if (auto gm = asHybrid()) {
101+
auto other = e->asHybrid();
102102
return other != nullptr && gm->equals(*other, tol);
103103
}
104104
if (auto gc = asGaussian()) {
@@ -119,7 +119,7 @@ double HybridConditional::error(const HybridValues &values) const {
119119
if (auto gc = asGaussian()) {
120120
return gc->error(values.continuous());
121121
}
122-
if (auto gm = asMixture()) {
122+
if (auto gm = asHybrid()) {
123123
return gm->error(values);
124124
}
125125
if (auto dc = asDiscrete()) {
@@ -134,7 +134,7 @@ double HybridConditional::logProbability(const HybridValues &values) const {
134134
if (auto gc = asGaussian()) {
135135
return gc->logProbability(values.continuous());
136136
}
137-
if (auto gm = asMixture()) {
137+
if (auto gm = asHybrid()) {
138138
return gm->logProbability(values);
139139
}
140140
if (auto dc = asDiscrete()) {
@@ -149,7 +149,7 @@ double HybridConditional::logNormalizationConstant() const {
149149
if (auto gc = asGaussian()) {
150150
return gc->logNormalizationConstant();
151151
}
152-
if (auto gm = asMixture()) {
152+
if (auto gm = asHybrid()) {
153153
return gm->logNormalizationConstant(); // 0.0!
154154
}
155155
if (auto dc = asDiscrete()) {

gtsam/hybrid/HybridConditional.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -151,7 +151,7 @@ class GTSAM_EXPORT HybridConditional
151151
* @return nullptr if not a conditional
152152
* @return HybridGaussianConditional::shared_ptr otherwise
153153
*/
154-
HybridGaussianConditional::shared_ptr asMixture() const {
154+
HybridGaussianConditional::shared_ptr asHybrid() const {
155155
return std::dynamic_pointer_cast<HybridGaussianConditional>(inner_);
156156
}
157157

gtsam/hybrid/HybridGaussianFactorGraph.cpp

+2-2
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,7 @@ void HybridGaussianFactorGraph::printErrors(
115115
} else {
116116
// Is hybrid
117117
auto conditionalComponent =
118-
hc->asMixture()->operator()(values.discrete());
118+
hc->asHybrid()->operator()(values.discrete());
119119
conditionalComponent->print(ss.str(), keyFormatter);
120120
std::cout << "error = " << conditionalComponent->error(values)
121121
<< "\n";
@@ -184,7 +184,7 @@ GaussianFactorGraphTree HybridGaussianFactorGraph::assembleGraphTree() const {
184184
} else if (auto gm = dynamic_pointer_cast<HybridGaussianConditional>(f)) {
185185
result = gm->add(result);
186186
} else if (auto hc = dynamic_pointer_cast<HybridConditional>(f)) {
187-
if (auto gm = hc->asMixture()) {
187+
if (auto gm = hc->asHybrid()) {
188188
result = gm->add(result);
189189
} else if (auto g = hc->asGaussian()) {
190190
result = addGaussian(result, g);

gtsam/hybrid/HybridSmoother.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -140,7 +140,7 @@ HybridSmoother::addConditionals(const HybridGaussianFactorGraph &originalGraph,
140140
/* ************************************************************************* */
141141
HybridGaussianConditional::shared_ptr HybridSmoother::gaussianMixture(
142142
size_t index) const {
143-
return hybridBayesNet_.at(index)->asMixture();
143+
return hybridBayesNet_.at(index)->asHybrid();
144144
}
145145

146146
/* ************************************************************************* */

gtsam/hybrid/hybrid.i

+1-1
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ virtual class HybridConditional {
6565
double logProbability(const gtsam::HybridValues& values) const;
6666
double evaluate(const gtsam::HybridValues& values) const;
6767
double operator()(const gtsam::HybridValues& values) const;
68-
gtsam::HybridGaussianConditional* asMixture() const;
68+
gtsam::HybridGaussianConditional* asHybrid() const;
6969
gtsam::GaussianConditional* asGaussian() const;
7070
gtsam::DiscreteConditional* asDiscrete() const;
7171
gtsam::Factor* inner();

gtsam/hybrid/tests/testHybridBayesNet.cpp

+7-7
Original file line numberDiff line numberDiff line change
@@ -144,13 +144,13 @@ TEST(HybridBayesNet, Choose) {
144144

145145
EXPECT_LONGS_EQUAL(4, gbn.size());
146146

147-
EXPECT(assert_equal(*(*hybridBayesNet->at(0)->asMixture())(assignment),
147+
EXPECT(assert_equal(*(*hybridBayesNet->at(0)->asHybrid())(assignment),
148148
*gbn.at(0)));
149-
EXPECT(assert_equal(*(*hybridBayesNet->at(1)->asMixture())(assignment),
149+
EXPECT(assert_equal(*(*hybridBayesNet->at(1)->asHybrid())(assignment),
150150
*gbn.at(1)));
151-
EXPECT(assert_equal(*(*hybridBayesNet->at(2)->asMixture())(assignment),
151+
EXPECT(assert_equal(*(*hybridBayesNet->at(2)->asHybrid())(assignment),
152152
*gbn.at(2)));
153-
EXPECT(assert_equal(*(*hybridBayesNet->at(3)->asMixture())(assignment),
153+
EXPECT(assert_equal(*(*hybridBayesNet->at(3)->asHybrid())(assignment),
154154
*gbn.at(3)));
155155
}
156156

@@ -280,9 +280,9 @@ TEST(HybridBayesNet, Pruning) {
280280
const DiscreteValues discrete_values{{M(0), 1}, {M(1), 1}};
281281
const HybridValues hybridValues{delta.continuous(), discrete_values};
282282
double logProbability = 0;
283-
logProbability += posterior->at(0)->asMixture()->logProbability(hybridValues);
284-
logProbability += posterior->at(1)->asMixture()->logProbability(hybridValues);
285-
logProbability += posterior->at(2)->asMixture()->logProbability(hybridValues);
283+
logProbability += posterior->at(0)->asHybrid()->logProbability(hybridValues);
284+
logProbability += posterior->at(1)->asHybrid()->logProbability(hybridValues);
285+
logProbability += posterior->at(2)->asHybrid()->logProbability(hybridValues);
286286
// NOTE(dellaert): the discrete errors were not added in logProbability tree!
287287
logProbability +=
288288
posterior->at(3)->asDiscrete()->logProbability(hybridValues);

gtsam/hybrid/tests/testHybridConditional.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ TEST(HybridConditional, Invariants) {
4444
CHECK(hc0->isHybrid());
4545

4646
// Check invariants as a HybridGaussianConditional.
47-
const auto conditional = hc0->asMixture();
47+
const auto conditional = hc0->asHybrid();
4848
EXPECT(HybridGaussianConditional::CheckInvariants(*conditional, values));
4949

5050
// Check invariants as a HybridConditional.

gtsam/hybrid/tests/testHybridGaussianISAM.cpp

+7-7
Original file line numberDiff line numberDiff line change
@@ -333,13 +333,13 @@ TEST(HybridGaussianElimination, Incremental_approximate) {
333333
// each with 2, 4, 8, and 5 (pruned) leaves respetively.
334334
EXPECT_LONGS_EQUAL(4, incrementalHybrid.size());
335335
EXPECT_LONGS_EQUAL(
336-
2, incrementalHybrid[X(0)]->conditional()->asMixture()->nrComponents());
336+
2, incrementalHybrid[X(0)]->conditional()->asHybrid()->nrComponents());
337337
EXPECT_LONGS_EQUAL(
338-
3, incrementalHybrid[X(1)]->conditional()->asMixture()->nrComponents());
338+
3, incrementalHybrid[X(1)]->conditional()->asHybrid()->nrComponents());
339339
EXPECT_LONGS_EQUAL(
340-
5, incrementalHybrid[X(2)]->conditional()->asMixture()->nrComponents());
340+
5, incrementalHybrid[X(2)]->conditional()->asHybrid()->nrComponents());
341341
EXPECT_LONGS_EQUAL(
342-
5, incrementalHybrid[X(3)]->conditional()->asMixture()->nrComponents());
342+
5, incrementalHybrid[X(3)]->conditional()->asHybrid()->nrComponents());
343343

344344
/***** Run Round 2 *****/
345345
HybridGaussianFactorGraph graph2;
@@ -354,9 +354,9 @@ TEST(HybridGaussianElimination, Incremental_approximate) {
354354
// with 5 (pruned) leaves.
355355
CHECK_EQUAL(5, incrementalHybrid.size());
356356
EXPECT_LONGS_EQUAL(
357-
5, incrementalHybrid[X(3)]->conditional()->asMixture()->nrComponents());
357+
5, incrementalHybrid[X(3)]->conditional()->asHybrid()->nrComponents());
358358
EXPECT_LONGS_EQUAL(
359-
5, incrementalHybrid[X(4)]->conditional()->asMixture()->nrComponents());
359+
5, incrementalHybrid[X(4)]->conditional()->asHybrid()->nrComponents());
360360
}
361361

362362
/* ************************************************************************/
@@ -548,7 +548,7 @@ TEST(HybridGaussianISAM, NonTrivial) {
548548

549549
// Test if pruning worked correctly by checking that we only have 3 leaves in
550550
// the last node.
551-
auto lastConditional = inc[X(3)]->conditional()->asMixture();
551+
auto lastConditional = inc[X(3)]->conditional()->asHybrid();
552552
EXPECT_LONGS_EQUAL(3, lastConditional->nrComponents());
553553
}
554554

gtsam/hybrid/tests/testHybridNonlinearISAM.cpp

+7-7
Original file line numberDiff line numberDiff line change
@@ -358,13 +358,13 @@ TEST(HybridNonlinearISAM, Incremental_approximate) {
358358
// each with 2, 4, 8, and 5 (pruned) leaves respetively.
359359
EXPECT_LONGS_EQUAL(4, bayesTree.size());
360360
EXPECT_LONGS_EQUAL(
361-
2, bayesTree[X(0)]->conditional()->asMixture()->nrComponents());
361+
2, bayesTree[X(0)]->conditional()->asHybrid()->nrComponents());
362362
EXPECT_LONGS_EQUAL(
363-
3, bayesTree[X(1)]->conditional()->asMixture()->nrComponents());
363+
3, bayesTree[X(1)]->conditional()->asHybrid()->nrComponents());
364364
EXPECT_LONGS_EQUAL(
365-
5, bayesTree[X(2)]->conditional()->asMixture()->nrComponents());
365+
5, bayesTree[X(2)]->conditional()->asHybrid()->nrComponents());
366366
EXPECT_LONGS_EQUAL(
367-
5, bayesTree[X(3)]->conditional()->asMixture()->nrComponents());
367+
5, bayesTree[X(3)]->conditional()->asHybrid()->nrComponents());
368368

369369
/***** Run Round 2 *****/
370370
HybridGaussianFactorGraph graph2;
@@ -382,9 +382,9 @@ TEST(HybridNonlinearISAM, Incremental_approximate) {
382382
// with 5 (pruned) leaves.
383383
CHECK_EQUAL(5, bayesTree.size());
384384
EXPECT_LONGS_EQUAL(
385-
5, bayesTree[X(3)]->conditional()->asMixture()->nrComponents());
385+
5, bayesTree[X(3)]->conditional()->asHybrid()->nrComponents());
386386
EXPECT_LONGS_EQUAL(
387-
5, bayesTree[X(4)]->conditional()->asMixture()->nrComponents());
387+
5, bayesTree[X(4)]->conditional()->asHybrid()->nrComponents());
388388
}
389389

390390
/* ************************************************************************/
@@ -569,7 +569,7 @@ TEST(HybridNonlinearISAM, NonTrivial) {
569569

570570
// Test if pruning worked correctly by checking that
571571
// we only have 3 leaves in the last node.
572-
auto lastConditional = bayesTree[X(3)]->conditional()->asMixture();
572+
auto lastConditional = bayesTree[X(3)]->conditional()->asHybrid();
573573
EXPECT_LONGS_EQUAL(3, lastConditional->nrComponents());
574574
}
575575

0 commit comments

Comments
 (0)