13#ifndef _RBTNMCRITERIA_H_
14#define _RBTNMCRITERIA_H_
32 template <
class State>
bool operator()(
const State &state) {
33 bool result = state.iteration < m_maxIterations;
34 LOG_F(1,
"IterationCriteria: {}", result);
46 template <
class State>
bool operator()(
const State &state) {
48 2 * std::abs(state.currentValue - state.formerValue) /
49 (std::abs(state.currentValue) + std::abs(state.formerValue) +
50 std::numeric_limits<DataType>::epsilon()) >
52 LOG_F(1,
"RelativeValueCriterion: {}", result);
57template <
class Criteria1,
class Criteria2>
class AndCriteria {
59 Criteria1 m_criteria1;
60 Criteria2 m_criteria2;
63 AndCriteria(
const Criteria1 &criteria1,
const Criteria2 &criteria2)
64 : m_criteria1(criteria1), m_criteria2(criteria2) {}
66 template <
class State>
bool operator()(
const State &state) {
67 return m_criteria1(state) && m_criteria2(state);
71template <
class Criteria1,
class Criteria2>
73CreateAndCriteria(
const Criteria1 &criteria1,
const Criteria2 &criteria2) {
Definition NMCriteria.h:57
Definition NMCriteria.h:25
Definition NMCriteria.h:39