From c5d6cd5466c01f0a985406cd377b852724c52606 Mon Sep 17 00:00:00 2001 From: Varun Agrawal Date: Wed, 3 Apr 2024 16:13:55 +0530 Subject: [PATCH 1/5] wrap DiscreteConditional which takes a vector of doubles --- gtsam/discrete/discrete.i | 3 +++ 1 file changed, 3 insertions(+) diff --git a/gtsam/discrete/discrete.i b/gtsam/discrete/discrete.i index a1731f8e56..0deeb80331 100644 --- a/gtsam/discrete/discrete.i +++ b/gtsam/discrete/discrete.i @@ -104,6 +104,9 @@ virtual class DiscreteConditional : gtsam::DecisionTreeFactor { DiscreteConditional(const gtsam::DecisionTreeFactor& joint, const gtsam::DecisionTreeFactor& marginal, const gtsam::Ordering& orderedKeys); + DiscreteConditional(const gtsam::DiscreteKey& key, + const gtsam::DiscreteKeys& parents, + const std::vector& table); // Standard interface double logNormalizationConstant() const; From c05d17dedfc4d4f943efeb8396f5fb947dac8f71 Mon Sep 17 00:00:00 2001 From: Varun Agrawal Date: Wed, 3 Apr 2024 16:14:19 +0530 Subject: [PATCH 2/5] minor formatting in linear.i --- gtsam/linear/linear.i | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gtsam/linear/linear.i b/gtsam/linear/linear.i index 6862646aeb..8bd3dcb889 100644 --- a/gtsam/linear/linear.i +++ b/gtsam/linear/linear.i @@ -489,7 +489,7 @@ virtual class GaussianConditional : gtsam::JacobianFactor { GaussianConditional(size_t key, Vector d, Matrix R, size_t name1, Matrix S, size_t name2, Matrix T, const gtsam::noiseModel::Diagonal* sigmas); - GaussianConditional(const vector> terms, + GaussianConditional(const std::vector> terms, size_t nrFrontals, Vector d, const gtsam::noiseModel::Diagonal* sigmas); @@ -751,4 +751,4 @@ class KalmanFilter { Vector z, Matrix Q); }; -} \ No newline at end of file +} From bd241f61ecc35560f0f5b958639fcc3515a121b8 Mon Sep 17 00:00:00 2001 From: Varun Agrawal Date: Wed, 3 Apr 2024 16:14:46 +0530 Subject: [PATCH 3/5] wrap logProbability and evaluate methods of GaussianMixtureFactor --- gtsam/hybrid/hybrid.i | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/gtsam/hybrid/hybrid.i b/gtsam/hybrid/hybrid.i index c1d57715ec..85c34e5755 100644 --- a/gtsam/hybrid/hybrid.i +++ b/gtsam/hybrid/hybrid.i @@ -92,7 +92,10 @@ class GaussianMixture : gtsam::HybridFactor { const std::vector& conditionalsList); - gtsam::GaussianMixtureFactor* likelihood(const gtsam::VectorValues &frontals) const; + gtsam::GaussianMixtureFactor* likelihood( + const gtsam::VectorValues& frontals) const; + double logProbability(const gtsam::HybridValues& values) const; + double evaluate(const gtsam::HybridValues& values) const; void print(string s = "GaussianMixture\n", const gtsam::KeyFormatter& keyFormatter = From 8dd2bed6c100b9c576b8fa8b2c7d9aa7bb622e1d Mon Sep 17 00:00:00 2001 From: Varun Agrawal Date: Wed, 3 Apr 2024 16:15:21 +0530 Subject: [PATCH 4/5] don't check for 0 continuous keys when printing GaussianMixtureFactor as it is possible to have non-zero discrete keys --- gtsam/hybrid/GaussianMixtureFactor.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gtsam/hybrid/GaussianMixtureFactor.cpp b/gtsam/hybrid/GaussianMixtureFactor.cpp index 4e138acfa8..fd7cec0669 100644 --- a/gtsam/hybrid/GaussianMixtureFactor.cpp +++ b/gtsam/hybrid/GaussianMixtureFactor.cpp @@ -66,7 +66,7 @@ void GaussianMixtureFactor::print(const std::string &s, [&](const sharedFactor &gf) -> std::string { RedirectCout rd; std::cout << ":\n"; - if (gf && !gf->empty()) { + if (gf) { gf->print("", formatter); return rd.str(); } else { From 8333c25dab31ad83aaa4d89fc62d140bf2abc004 Mon Sep 17 00:00:00 2001 From: Varun Agrawal Date: Wed, 3 Apr 2024 16:15:54 +0530 Subject: [PATCH 5/5] Fix slam module README --- gtsam/slam/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gtsam/slam/README.md b/gtsam/slam/README.md index ae5edfdac0..018126a663 100644 --- a/gtsam/slam/README.md +++ b/gtsam/slam/README.md @@ -63,6 +63,6 @@ A RegularJacobianFactor that uses some badly documented reduction on the Jacobia A RegularJacobianFactor that eliminates a point using sequential elimination. -### JacobianFactorQR +### JacobianFactorSVD -A RegularJacobianFactor that uses the "Nullspace Trick" by Mourikis et al. See the documentation in the file, which *is* well documented. \ No newline at end of file +A RegularJacobianFactor that uses the "Nullspace Trick" by Mourikis et al. See the documentation in the file, which *is* well documented.