Fixed tests
							parent
							
								
									9cf3e5c26a
								
							
						
					
					
						commit
						beda6878aa
					
				| 
						 | 
					@ -206,9 +206,8 @@ hybridElimination(const HybridGaussianFactorGraph &factors,
 | 
				
			||||||
  };
 | 
					  };
 | 
				
			||||||
  sum = GaussianMixtureFactor::Sum(sum, emptyGaussian);
 | 
					  sum = GaussianMixtureFactor::Sum(sum, emptyGaussian);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  using EliminationPair =
 | 
					  using EliminationPair = std::pair<boost::shared_ptr<GaussianConditional>,
 | 
				
			||||||
      std::pair<boost::shared_ptr<GaussianConditional>,
 | 
					                                    GaussianMixtureFactor::FactorAndConstant>;
 | 
				
			||||||
                std::pair<boost::shared_ptr<GaussianFactor>, double>>;
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
  KeyVector keysOfEliminated;  // Not the ordering
 | 
					  KeyVector keysOfEliminated;  // Not the ordering
 | 
				
			||||||
  KeyVector keysOfSeparator;   // TODO(frank): Is this just (keys - ordering)?
 | 
					  KeyVector keysOfSeparator;   // TODO(frank): Is this just (keys - ordering)?
 | 
				
			||||||
| 
						 | 
					@ -216,7 +215,7 @@ hybridElimination(const HybridGaussianFactorGraph &factors,
 | 
				
			||||||
  // This is the elimination method on the leaf nodes
 | 
					  // This is the elimination method on the leaf nodes
 | 
				
			||||||
  auto eliminate = [&](const GaussianFactorGraph &graph) -> EliminationPair {
 | 
					  auto eliminate = [&](const GaussianFactorGraph &graph) -> EliminationPair {
 | 
				
			||||||
    if (graph.empty()) {
 | 
					    if (graph.empty()) {
 | 
				
			||||||
      return {nullptr, std::make_pair(nullptr, 0.0)};
 | 
					      return {nullptr, {nullptr, 0.0}};
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifdef HYBRID_TIMING
 | 
					#ifdef HYBRID_TIMING
 | 
				
			||||||
| 
						 | 
					@ -236,11 +235,7 @@ hybridElimination(const HybridGaussianFactorGraph &factors,
 | 
				
			||||||
    gttoc_(hybrid_eliminate);
 | 
					    gttoc_(hybrid_eliminate);
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    std::pair<boost::shared_ptr<GaussianConditional>,
 | 
					    return {conditional_factor.first, {conditional_factor.second, 0.0}};
 | 
				
			||||||
              std::pair<boost::shared_ptr<GaussianFactor>, double>>
 | 
					 | 
				
			||||||
        result = std::make_pair(conditional_factor.first,
 | 
					 | 
				
			||||||
                                std::make_pair(conditional_factor.second, 0.0));
 | 
					 | 
				
			||||||
    return result;
 | 
					 | 
				
			||||||
  };
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  // Perform elimination!
 | 
					  // Perform elimination!
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -12,7 +12,7 @@
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
 * @file   HybridGaussianFactorGraph.h
 | 
					 * @file   HybridGaussianFactorGraph.h
 | 
				
			||||||
 * @brief  Linearized Hybrid factor graph that uses type erasure
 | 
					 * @brief  Linearized Hybrid factor graph that uses type erasure
 | 
				
			||||||
 * @author Fan Jiang, Varun Agrawal
 | 
					 * @author Fan Jiang, Varun Agrawal, Frank Dellaert
 | 
				
			||||||
 * @date   Mar 11, 2022
 | 
					 * @date   Mar 11, 2022
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -38,6 +38,7 @@ class HybridBayesTree;
 | 
				
			||||||
class HybridJunctionTree;
 | 
					class HybridJunctionTree;
 | 
				
			||||||
class DecisionTreeFactor;
 | 
					class DecisionTreeFactor;
 | 
				
			||||||
class JacobianFactor;
 | 
					class JacobianFactor;
 | 
				
			||||||
 | 
					class HybridValues;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
 * @brief Main elimination function for HybridGaussianFactorGraph.
 | 
					 * @brief Main elimination function for HybridGaussianFactorGraph.
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -128,9 +128,9 @@ TEST(GaussianMixture, Error) {
 | 
				
			||||||
  // Regression for non-tree version.
 | 
					  // Regression for non-tree version.
 | 
				
			||||||
  DiscreteValues assignment;
 | 
					  DiscreteValues assignment;
 | 
				
			||||||
  assignment[M(1)] = 0;
 | 
					  assignment[M(1)] = 0;
 | 
				
			||||||
  EXPECT_DOUBLES_EQUAL(0.5, mixture.error(values, assignment), 1e-8);
 | 
					  EXPECT_DOUBLES_EQUAL(0.5, mixture.error({values, assignment}), 1e-8);
 | 
				
			||||||
  assignment[M(1)] = 1;
 | 
					  assignment[M(1)] = 1;
 | 
				
			||||||
  EXPECT_DOUBLES_EQUAL(4.3252595155709335, mixture.error(values, assignment),
 | 
					  EXPECT_DOUBLES_EQUAL(4.3252595155709335, mixture.error({values, assignment}),
 | 
				
			||||||
                       1e-8);
 | 
					                       1e-8);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -188,7 +188,7 @@ TEST(GaussianMixtureFactor, Error) {
 | 
				
			||||||
  DiscreteValues discreteValues;
 | 
					  DiscreteValues discreteValues;
 | 
				
			||||||
  discreteValues[m1.first] = 1;
 | 
					  discreteValues[m1.first] = 1;
 | 
				
			||||||
  EXPECT_DOUBLES_EQUAL(
 | 
					  EXPECT_DOUBLES_EQUAL(
 | 
				
			||||||
      4.0, mixtureFactor.error(continuousValues, discreteValues), 1e-9);
 | 
					      4.0, mixtureFactor.error({continuousValues, discreteValues}), 1e-9);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* ************************************************************************* */
 | 
					/* ************************************************************************* */
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue