diff --git a/include/core/ceres_wrapper/solver_ceres.h b/include/core/ceres_wrapper/solver_ceres.h index 0673207bc47e1873084e3f4d711628a67b322f3c..4bf6f7de661059e7c9f96e7f12bb444f18bed013 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 58d21a5cf834cc18372a197b3bbbead9894e46f6..f3fbeefb3dce65e58ad82d3c604ba3e554169624 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 a2d7616c58181be35b9aae642e0e8e9f956b4879..5914b40a8bc67e44bbc392b146766331e344ced7 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 aab56cd1ab532a6a7d3e4b876f2de6dea0ea1b7b..cf45c71c94167f934504e5f97f91080d4d011ce8 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: