diff --git a/examples/PlanarSLAMSelfContained_advanced.cpp b/examples/PlanarSLAMSelfContained_advanced.cpp index 70a26e261..2928139a6 100644 --- a/examples/PlanarSLAMSelfContained_advanced.cpp +++ b/examples/PlanarSLAMSelfContained_advanced.cpp @@ -122,7 +122,7 @@ int main(int argc, char** argv) { initial.print("initial estimate"); - // optimize using Levenburg-Marquadt optimization with an ordering from colamd + // optimize using Levenberg-Marquardt optimization with an ordering from colamd // first using sequential elimination OptimizerSeqential::shared_values resultSequential = OptimizerSeqential::optimizeLM(graph, initial); diff --git a/examples/Pose2SLAMExample_advanced.cpp b/examples/Pose2SLAMExample_advanced.cpp index 26d35d7fa..f62d2f4cf 100644 --- a/examples/Pose2SLAMExample_advanced.cpp +++ b/examples/Pose2SLAMExample_advanced.cpp @@ -76,11 +76,12 @@ int main(int argc, char** argv) { Values result = *optimizer_result.values(); result.print("final result"); - Vector mean; Matrix covariance; - boost::tie( mean, covariance) = optimizer_result.marginalStandard(x1); + /* Get covariances */ + Matrix covariance1 = optimizer_result.marginalStandard(x1); + Matrix covariance2 = optimizer_result.marginalStandard(x2); - print(mean, "Mean"); - print(covariance, "Covariance"); + print(covariance1, "Covariance1"); + print(covariance2, "Covariance2"); return 0; } diff --git a/nonlinear/NonlinearOptimizer.h b/nonlinear/NonlinearOptimizer.h index de2e0618c..58bd62c57 100644 --- a/nonlinear/NonlinearOptimizer.h +++ b/nonlinear/NonlinearOptimizer.h @@ -161,8 +161,8 @@ namespace gtsam { /** * Return mean and covariance on a single variable */ - std::pair marginalStandard(Symbol j) const { - return solver_->marginalStandard((*ordering_)[j]); + Matrix marginalStandard(Symbol j) const { + return solver_->marginalStandard((*ordering_)[j]).second; } /**