diff --git a/mapmap/source/termination_instances/stop_when_returns_diminish.impl.h b/mapmap/source/termination_instances/stop_when_returns_diminish.impl.h index 68348e9..592f044 100755 --- a/mapmap/source/termination_instances/stop_when_returns_diminish.impl.h +++ b/mapmap/source/termination_instances/stop_when_returns_diminish.impl.h @@ -54,6 +54,10 @@ check_termination( /* determine improvement in the last couple of iterations */ newest_val = history->energy_history->back(); + /* terminate if objective is already 0 */ + if (newest_val == static_cast<_s_t>(0)) + return true; + luint_t oldest_pos = 0; if(hist_size > m_iteration_span) oldest_pos = (hist_size - 1) - m_iteration_span;