remove fixed values when keys are reintroduced in newFactors
							parent
							
								
									f401a9056e
								
							
						
					
					
						commit
						88fb8f7c65
					
				|  | @ -73,9 +73,10 @@ HybridBayesNet HybridBayesNet::prune( | |||
|     if (conditional->isDiscrete()) continue; | ||||
| 
 | ||||
|     // No-op if not a HybridGaussianConditional.
 | ||||
|     if (marginalThreshold) | ||||
|     if (marginalThreshold) { | ||||
|       conditional = std::static_pointer_cast<HybridConditional>( | ||||
|           conditional->restrict(fixed)); | ||||
|     } | ||||
| 
 | ||||
|     // Now decide on type what to do:
 | ||||
|     if (auto hgc = conditional->asHybrid()) { | ||||
|  |  | |||
|  | @ -118,6 +118,13 @@ void HybridSmoother::update(const HybridGaussianFactorGraph &newFactors, | |||
|   } | ||||
| #endif | ||||
| 
 | ||||
|   // Remove fixed values for discrete keys which are introduced in newFactors
 | ||||
|   for (Key key : newFactors.discreteKeySet()) { | ||||
|     if (fixedValues_.find(key) != fixedValues_.end()) { | ||||
|       fixedValues_.erase(key); | ||||
|     } | ||||
|   } | ||||
| 
 | ||||
| #ifdef DEBUG_SMOOTHER | ||||
|   // Print discrete keys in the bayesNetFragment:
 | ||||
|   std::cout << "Discrete keys in bayesNetFragment: "; | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue