3 #include <geneial/algorithm/criteria/BaseStoppingCriterion.h>
4 #include <geneial/core/population/Population.h>
7 geneial_private_namespace(geneial)
9 geneial_private_namespace(algorithm)
11 geneial_private_namespace(stopping_criteria)
13 using ::geneial::population::management::BaseManager;
15 geneial_export_namespace
21 template<
typename FITNESS_TYPE>
22 class NegationDecorator:
public BaseStoppingCriterion<FITNESS_TYPE>
25 typedef typename BaseStoppingCriterion<FITNESS_TYPE>::ptr criterion;
27 NegationDecorator(
typename BaseStoppingCriterion<FITNESS_TYPE>::ptr criterion) :
32 virtual ~NegationDecorator()
36 virtual inline bool wasReached(BaseManager<FITNESS_TYPE> &manager)
38 return !(_criterion->wasReached(manager));
41 virtual void print(std::ostream& os)
const
43 os <<
"Negated (" << _criterion <<
")";
46 const criterion& getCriterion()
const
51 void setCriterion(
const criterion& criterion)
53 _criterion = criterion;