diff --git a/gtsam/hybrid/HybridNonlinearFactor.h b/gtsam/hybrid/HybridNonlinearFactor.h index d8e3990f0..742b4c162 100644 --- a/gtsam/hybrid/HybridNonlinearFactor.h +++ b/gtsam/hybrid/HybridNonlinearFactor.h @@ -33,6 +33,9 @@ namespace gtsam { +/// Alias for a NonlinearFactor shared pointer and double scalar pair. +using NonlinearFactorValuePair = std::pair; + /** * @brief Implementation of a discrete conditional mixture factor. * @@ -55,7 +58,7 @@ class HybridNonlinearFactor : public HybridFactor { * @brief typedef for DecisionTree which has Keys as node labels and * pairs of NonlinearFactor & an arbitrary scalar as leaf nodes. */ - using Factors = DecisionTree>; + using Factors = DecisionTree; private: /// Decision tree of Gaussian factors indexed by discrete keys. @@ -100,8 +103,7 @@ class HybridNonlinearFactor : public HybridFactor { const std::vector, double>>& factors, bool normalized = false) : Base(keys, discreteKeys), normalized_(normalized) { - std::vector> - nonlinear_factors; + std::vector nonlinear_factors; KeySet continuous_keys_set(keys.begin(), keys.end()); KeySet factor_keys_set; for (auto&& [f, val] : factors) { diff --git a/gtsam/hybrid/tests/Switching.h b/gtsam/hybrid/tests/Switching.h index f799168f2..9b7c44d02 100644 --- a/gtsam/hybrid/tests/Switching.h +++ b/gtsam/hybrid/tests/Switching.h @@ -162,7 +162,7 @@ struct Switching { for (size_t k = 0; k < K - 1; k++) { KeyVector keys = {X(k), X(k + 1)}; auto motion_models = motionModels(k, between_sigma); - std::vector> components; + std::vector components; for (auto &&f : motion_models) { components.push_back( {std::dynamic_pointer_cast(f), 0.0}); diff --git a/gtsam/hybrid/tests/testHybridBayesNet.cpp b/gtsam/hybrid/tests/testHybridBayesNet.cpp index bf3301d2f..cf4231dba 100644 --- a/gtsam/hybrid/tests/testHybridBayesNet.cpp +++ b/gtsam/hybrid/tests/testHybridBayesNet.cpp @@ -387,8 +387,8 @@ TEST(HybridBayesNet, Sampling) { std::make_shared>(X(0), X(1), 0, noise_model); auto one_motion = std::make_shared>(X(0), X(1), 1, noise_model); - std::vector> factors = { - {zero_motion, 0.0}, {one_motion, 0.0}}; + std::vector factors = {{zero_motion, 0.0}, + {one_motion, 0.0}}; nfg.emplace_shared>(X(0), 0.0, noise_model); nfg.emplace_shared( KeyVector{X(0), X(1)}, DiscreteKeys{DiscreteKey(M(0), 2)}, factors); diff --git a/gtsam/hybrid/tests/testHybridEstimation.cpp b/gtsam/hybrid/tests/testHybridEstimation.cpp index 76e5880ee..7204d819d 100644 --- a/gtsam/hybrid/tests/testHybridEstimation.cpp +++ b/gtsam/hybrid/tests/testHybridEstimation.cpp @@ -435,8 +435,8 @@ static HybridNonlinearFactorGraph createHybridNonlinearFactorGraph() { std::make_shared>(X(0), X(1), 0, noise_model); const auto one_motion = std::make_shared>(X(0), X(1), 1, noise_model); - std::vector> components = { - {zero_motion, 0.0}, {one_motion, 0.0}}; + std::vector components = {{zero_motion, 0.0}, + {one_motion, 0.0}}; nfg.emplace_shared(KeyVector{X(0), X(1)}, DiscreteKeys{m}, components); @@ -595,8 +595,8 @@ TEST(HybridEstimation, ModeSelection) { model1 = std::make_shared( X(0), X(1), 0.0, noiseModel::Isotropic::Sigma(d, noise_tight)); - std::vector> components = { - {model0, 0.0}, {model1, 0.0}}; + std::vector components = {{model0, 0.0}, + {model1, 0.0}}; KeyVector keys = {X(0), X(1)}; HybridNonlinearFactor mf(keys, modes, components); @@ -687,8 +687,8 @@ TEST(HybridEstimation, ModeSelection2) { model1 = std::make_shared>( X(0), X(1), Z_3x1, noiseModel::Isotropic::Sigma(d, noise_tight)); - std::vector> components = { - {model0, 0.0}, {model1, 0.0}}; + std::vector components = {{model0, 0.0}, + {model1, 0.0}}; KeyVector keys = {X(0), X(1)}; HybridNonlinearFactor mf(keys, modes, components); diff --git a/gtsam/hybrid/tests/testHybridNonlinearFactor.cpp b/gtsam/hybrid/tests/testHybridNonlinearFactor.cpp index fa31fbe7d..a4c1b4cc7 100644 --- a/gtsam/hybrid/tests/testHybridNonlinearFactor.cpp +++ b/gtsam/hybrid/tests/testHybridNonlinearFactor.cpp @@ -58,8 +58,7 @@ TEST(HybridNonlinearFactor, Printing) { std::make_shared>(X(1), X(2), between0, model); auto f1 = std::make_shared>(X(1), X(2), between1, model); - std::vector> factors{ - {f0, 0.0}, {f1, 0.0}}; + std::vector factors{{f0, 0.0}, {f1, 0.0}}; HybridNonlinearFactor mixtureFactor({X(1), X(2)}, {m1}, factors); @@ -87,8 +86,7 @@ static HybridNonlinearFactor getHybridNonlinearFactor() { std::make_shared>(X(1), X(2), between0, model); auto f1 = std::make_shared>(X(1), X(2), between1, model); - std::vector> factors{ - {f0, 0.0}, {f1, 0.0}}; + std::vector factors{{f0, 0.0}, {f1, 0.0}}; return HybridNonlinearFactor({X(1), X(2)}, {m1}, factors); } diff --git a/gtsam/hybrid/tests/testHybridNonlinearFactorGraph.cpp b/gtsam/hybrid/tests/testHybridNonlinearFactorGraph.cpp index 16098af7e..00d0d3a39 100644 --- a/gtsam/hybrid/tests/testHybridNonlinearFactorGraph.cpp +++ b/gtsam/hybrid/tests/testHybridNonlinearFactorGraph.cpp @@ -27,6 +27,7 @@ #include #include #include +#include #include #include #include @@ -867,7 +868,7 @@ static HybridNonlinearFactorGraph CreateFactorGraph( std::make_shared>(X(0), X(1), means[1], model1); // Create HybridNonlinearFactor - std::vector> factors{ + std::vector factors{ {f0, ComputeLogNormalizer(model0)}, {f1, ComputeLogNormalizer(model1)}}; HybridNonlinearFactor mixtureFactor({X(0), X(1)}, {m1}, factors);