From 5fa04d7622548a8072ac621ff355a8caa622930d Mon Sep 17 00:00:00 2001 From: Varun Agrawal Date: Sun, 5 Jan 2025 09:08:57 -0500 Subject: [PATCH] small improvements --- gtsam/discrete/DiscreteConditional.cpp | 6 ++---- gtsam/discrete/DiscreteFactorGraph.cpp | 2 +- gtsam/discrete/tests/testDiscreteFactorGraph.cpp | 10 +++++----- gtsam/discrete/tests/testTableFactor.cpp | 14 ++++++++------ 4 files changed, 16 insertions(+), 16 deletions(-) diff --git a/gtsam/discrete/DiscreteConditional.cpp b/gtsam/discrete/DiscreteConditional.cpp index be0f42bea..26f38e278 100644 --- a/gtsam/discrete/DiscreteConditional.cpp +++ b/gtsam/discrete/DiscreteConditional.cpp @@ -24,13 +24,13 @@ #include #include +#include #include #include #include #include #include #include -#include using namespace std; using std::pair; @@ -45,9 +45,7 @@ template class GTSAM_EXPORT /* ************************************************************************** */ DiscreteConditional::DiscreteConditional(const size_t nrFrontals, const DecisionTreeFactor& f) - : BaseFactor(f / (*std::dynamic_pointer_cast( - f.sum(nrFrontals)))), - BaseConditional(nrFrontals) {} + : BaseFactor(f / f.sum(nrFrontals)), BaseConditional(nrFrontals) {} /* ************************************************************************** */ DiscreteConditional::DiscreteConditional(size_t nrFrontals, diff --git a/gtsam/discrete/DiscreteFactorGraph.cpp b/gtsam/discrete/DiscreteFactorGraph.cpp index 8c950050b..678c70e2d 100644 --- a/gtsam/discrete/DiscreteFactorGraph.cpp +++ b/gtsam/discrete/DiscreteFactorGraph.cpp @@ -128,7 +128,7 @@ namespace gtsam { auto denominator = product.max(product.size()); // Normalize the product factor to prevent underflow. - product = product / (*denominator); + product = product / denominator; return product; } diff --git a/gtsam/discrete/tests/testDiscreteFactorGraph.cpp b/gtsam/discrete/tests/testDiscreteFactorGraph.cpp index cbcf5234e..4ee36f0ab 100644 --- a/gtsam/discrete/tests/testDiscreteFactorGraph.cpp +++ b/gtsam/discrete/tests/testDiscreteFactorGraph.cpp @@ -117,9 +117,9 @@ TEST(DiscreteFactorGraph, test) { *std::dynamic_pointer_cast(newFactorPtr); // Normalize newFactor by max for comparison with expected - auto normalizer = newFactor.max(newFactor.size()); + auto denominator = newFactor.max(newFactor.size()); - newFactor = newFactor / *normalizer; + newFactor = newFactor / denominator; // Check Conditional CHECK(conditional); @@ -131,9 +131,9 @@ TEST(DiscreteFactorGraph, test) { CHECK(&newFactor); DecisionTreeFactor expectedFactor(B & A, "10 6 6 10"); // Normalize by max. - normalizer = expectedFactor.max(expectedFactor.size()); - // Ensure normalizer is correct. - expectedFactor = expectedFactor / *normalizer; + denominator = expectedFactor.max(expectedFactor.size()); + // Ensure denominator is correct. + expectedFactor = expectedFactor / denominator; EXPECT(assert_equal(expectedFactor, newFactor)); // Test using elimination tree diff --git a/gtsam/discrete/tests/testTableFactor.cpp b/gtsam/discrete/tests/testTableFactor.cpp index 147c3aea9..4f6ec2f39 100644 --- a/gtsam/discrete/tests/testTableFactor.cpp +++ b/gtsam/discrete/tests/testTableFactor.cpp @@ -194,15 +194,17 @@ TEST(TableFactor, Conversion) { TEST(TableFactor, Empty) { DiscreteKey X(1, 2); - TableFactor single = *TableFactor({X}, "1 1").sum(1); + auto single = TableFactor({X}, "1 1").sum(1); // Should not throw a segfault - EXPECT(assert_equal(*DecisionTreeFactor(X, "1 1").sum(1), - single.toDecisionTreeFactor())); + auto expected_single = DecisionTreeFactor(X, "1 1").sum(1); + EXPECT(assert_equal(expected_single->toDecisionTreeFactor(), + single->toDecisionTreeFactor())); - TableFactor empty = *TableFactor({X}, "0 0").sum(1); + auto empty = TableFactor({X}, "0 0").sum(1); // Should not throw a segfault - EXPECT(assert_equal(*DecisionTreeFactor(X, "0 0").sum(1), - empty.toDecisionTreeFactor())); + auto expected_empty = DecisionTreeFactor(X, "0 0").sum(1); + EXPECT(assert_equal(expected_empty->toDecisionTreeFactor(), + empty->toDecisionTreeFactor())); } /* ************************************************************************* */