bool DifferentialEvolution::initialize(StateP state) { selRandomOp->initialize(state); donor_vector.clear(); // read parameters, check defined genotype (only a single FloatingPoint is allowed) voidP F = getParameterValue(state, "F"); Fconst_ = *((double*) F.get()); voidP CR = getParameterValue(state, "CR"); CR_ = *((double*) CR.get()); FloatingPointP flp (new FloatingPoint::FloatingPoint); if(state->getGenotypes()[0]->getName() != flp->getName() || state->getGenotypes().size() != 1) { state->getLogger()->log(1, "Error: DE algorithm accepts only a single FloatingPoint genotype!"); throw (""); } return true; }