From 1dd7523f355cef49906b1da6cf7ee17e064ae9bb Mon Sep 17 00:00:00 2001 From: joanvallve <jvallve@iri.upc.edu> Date: Tue, 5 Oct 2021 13:18:29 +0200 Subject: [PATCH] added a getter of time spent in solving --- include/core/ceres_wrapper/solver_ceres.h | 2 ++ include/core/solver/solver_manager.h | 2 ++ src/ceres_wrapper/solver_ceres.cpp | 5 +++++ test/dummy/solver_manager_dummy.h | 1 + 4 files changed, 10 insertions(+) diff --git a/include/core/ceres_wrapper/solver_ceres.h b/include/core/ceres_wrapper/solver_ceres.h index 0673207bc..4bf6f7de6 100644 --- a/include/core/ceres_wrapper/solver_ceres.h +++ b/include/core/ceres_wrapper/solver_ceres.h @@ -119,6 +119,8 @@ class SolverCeres : public SolverManager double finalCost() override; + double totalTime() override; + ceres::Solver::Options& getSolverOptions(); const Eigen::SparseMatrixd computeHessian() const; diff --git a/include/core/solver/solver_manager.h b/include/core/solver/solver_manager.h index 58d21a5cf..f3fbeefb3 100644 --- a/include/core/solver/solver_manager.h +++ b/include/core/solver/solver_manager.h @@ -131,6 +131,8 @@ class SolverManager virtual double finalCost() = 0; + virtual double totalTime() = 0; + /** * \brief Updates solver's problem according to the wolf_problem */ diff --git a/src/ceres_wrapper/solver_ceres.cpp b/src/ceres_wrapper/solver_ceres.cpp index a2d7616c5..5914b40a8 100644 --- a/src/ceres_wrapper/solver_ceres.cpp +++ b/src/ceres_wrapper/solver_ceres.cpp @@ -612,6 +612,11 @@ double SolverCeres::finalCost() return double(summary_.final_cost); } +double SolverCeres::totalTime() +{ + return double(summary_.total_time_in_seconds); +} + ceres::CostFunctionPtr SolverCeres::createCostFunction(const FactorBasePtr& _fac_ptr) { assert(_fac_ptr != nullptr); diff --git a/test/dummy/solver_manager_dummy.h b/test/dummy/solver_manager_dummy.h index aab56cd1a..cf45c71c9 100644 --- a/test/dummy/solver_manager_dummy.h +++ b/test/dummy/solver_manager_dummy.h @@ -60,6 +60,7 @@ class SolverManagerDummy : public SolverManager SizeStd iterations() override { return 1; } double initialCost() override { return double(1); } double finalCost() override { return double(0); } + double totalTime() override { return double(0); } protected: -- GitLab