full discrete elimination
parent
bf4c0bd72d
commit
0e2e8bb8ce
|
|
@ -356,13 +356,17 @@ discreteElimination(const HybridGaussianFactorGraph &factors,
|
||||||
gttoc_(EliminateDiscreteSum);
|
gttoc_(EliminateDiscreteSum);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
// Ordering keys for the conditional so that frontalKeys are really in front
|
||||||
|
Ordering orderedKeys;
|
||||||
|
orderedKeys.insert(orderedKeys.end(), frontalKeys.begin(), frontalKeys.end());
|
||||||
|
orderedKeys.insert(orderedKeys.end(), sum->keys().begin(), sum->keys().end());
|
||||||
|
|
||||||
#if GTSAM_HYBRID_TIMING
|
#if GTSAM_HYBRID_TIMING
|
||||||
gttic_(EliminateDiscreteFormDiscreteConditional);
|
gttic_(EliminateDiscreteFormDiscreteConditional);
|
||||||
#endif
|
#endif
|
||||||
// Finally, get the conditional
|
// Finally, get the conditional
|
||||||
auto c = product / (*sum);
|
|
||||||
auto conditional = std::make_shared<DiscreteConditional>(
|
auto conditional = std::make_shared<DiscreteConditional>(
|
||||||
frontalKeys.size(), c.toDecisionTreeFactor());
|
product.toDecisionTreeFactor(), sum->toDecisionTreeFactor(), orderedKeys);
|
||||||
#if GTSAM_HYBRID_TIMING
|
#if GTSAM_HYBRID_TIMING
|
||||||
gttoc_(EliminateDiscreteFormDiscreteConditional);
|
gttoc_(EliminateDiscreteFormDiscreteConditional);
|
||||||
#endif
|
#endif
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue