• Main Page
  • Modules
  • Classes
  • Files
  • File List

D:/Projekt/ECF_trunk/ECF/TermFitnessValOp.cpp

00001 #include "ECF_base.h"
00002 #include "TermFitnessValOp.h"
00003 
00004 
00005 void TermFitnessValOp::registerParameters(StateP state)
00006 {
00007     double *value = new double(0);
00008     state->getRegistry()->registerEntry("term.fitnessval", (voidP) value, ECF::DOUBLE,
00009         "fitness value for termination (default: none)");
00010 }
00011 
00012 
00013 bool TermFitnessValOp::initialize(StateP state)
00014 {
00015     if(!state->getRegistry()->isModified("term.fitnessval"))
00016         return false;
00017 
00018     voidP sptr = state->getRegistry()->getEntry("term.fitnessval");
00019     termValue_ = *((double*) sptr.get());
00020 
00021     return true;
00022 }
00023 
00024 
00025 bool TermFitnessValOp::operate(StateP state)
00026 {
00027     double minFitness = state->getStats()->getFitnessMin();
00028     double maxFitness = state->getStats()->getFitnessMax();
00029 
00030     if(termValue_ >= minFitness && termValue_ <= maxFitness) {
00031         state->setTerminateCond();
00032         ECF_LOG(state, 1, "Termination: fitness value (" + dbl2str(termValue_) + ") reached");
00033     }
00034 
00035     return true;
00036 }

Generated on Tue Nov 4 2014 13:04:31 for ECF by  doxygen 1.7.1