small improvements to HybridGaussianFactorGraph
							parent
							
								
									59539ffe6c
								
							
						
					
					
						commit
						26642f1ba0
					
				|  | @ -186,6 +186,7 @@ DiscreteValues HybridBayesNet::mpe() const { | |||
|       } | ||||
|     } | ||||
|   } | ||||
| 
 | ||||
|   return discrete_fg.optimize(); | ||||
| } | ||||
| 
 | ||||
|  |  | |||
|  | @ -327,6 +327,8 @@ discreteElimination(const HybridGaussianFactorGraph &factors, | |||
|     gttic_(EliminateDiscreteFormDiscreteConditional); | ||||
| #endif | ||||
|     // Check type of product, and get as TableFactor for efficiency.
 | ||||
|     // Use object instead of pointer since we need it
 | ||||
|     // for the TableDistribution constructor.
 | ||||
|     TableFactor p; | ||||
|     if (auto tf = std::dynamic_pointer_cast<TableFactor>(product)) { | ||||
|       p = *tf; | ||||
|  | @ -334,11 +336,12 @@ discreteElimination(const HybridGaussianFactorGraph &factors, | |||
|       p = TableFactor(product->toDecisionTreeFactor()); | ||||
|     } | ||||
|     auto conditional = std::make_shared<TableDistribution>(p); | ||||
| 
 | ||||
| #if GTSAM_HYBRID_TIMING | ||||
|     gttoc_(EliminateDiscreteFormDiscreteConditional); | ||||
| #endif | ||||
| 
 | ||||
|     DiscreteFactor::shared_ptr sum = product->sum(frontalKeys); | ||||
|     DiscreteFactor::shared_ptr sum = p.sum(frontalKeys); | ||||
| 
 | ||||
|     return {std::make_shared<HybridConditional>(conditional), sum}; | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue