Skip to content
Snippets Groups Projects

Resolve "Min num of iterations in iteration_update_callback"

3 files
+ 17
8
Compare changes
  • Side-by-side
  • Inline
Files
3
@@ -16,10 +16,11 @@ namespace wolf {
class IterationUpdateCallback : public ceres::IterationCallback
{
public:
explicit IterationUpdateCallback(ProblemPtr _problem, bool verbose = false)
explicit IterationUpdateCallback(ProblemPtr _problem, const int& min_num_iterations, bool verbose = false)
: problem_(_problem)
, verbose_(verbose)
, min_num_iterations_(min_num_iterations)
, initial_cost_(0)
, verbose_(verbose)
{}
~IterationUpdateCallback() {}
@@ -29,8 +30,9 @@ class IterationUpdateCallback : public ceres::IterationCallback
if (summary.iteration == 0)
initial_cost_ = summary.cost;
if (problem_->getStateBlockNotificationMapSize() != 0 or
problem_->getFactorNotificationMapSize() != 0)
else if (summary.iteration >= min_num_iterations_ and
(problem_->getStateBlockNotificationMapSize() != 0 or
problem_->getFactorNotificationMapSize() != 0))
{
if (summary.cost >= initial_cost_)
{
@@ -48,8 +50,9 @@ class IterationUpdateCallback : public ceres::IterationCallback
private:
ProblemPtr problem_;
bool verbose_;
int min_num_iterations_;
double initial_cost_;
bool verbose_;
};
}
Loading