diff --git a/eo/src/eoOpContainer.h b/eo/src/eoOpContainer.h index 5dbd4569..b68665df 100644 --- a/eo/src/eoOpContainer.h +++ b/eo/src/eoOpContainer.h @@ -131,7 +131,7 @@ class eoSequentialOp : public eoOpContainer }; -/** The proportinoal verions: easy! */ +/** The proportional versions: easy! */ template class eoProportionalOp : public eoOpContainer { @@ -144,6 +144,7 @@ class eoProportionalOp : public eoOpContainer try { (*ops[i])(_pop); + ++_pop; } catch( typename eoPopulator::OutOfIndividuals&) {} diff --git a/eo/src/eoPerf2Worth.h b/eo/src/eoPerf2Worth.h index f5bffc4a..0807fb03 100644 --- a/eo/src/eoPerf2Worth.h +++ b/eo/src/eoPerf2Worth.h @@ -28,17 +28,22 @@ #define eoPerf2Worth_h #include +#include +#include + #include +#include +#include /** Base class to transform raw fitnesses into fitness for selection @see eoSelectFromWorth */ template -class eoPerf2Worth : public eoUF&, void>, public eoValueParam > +class eoPerf2Worth : public eoUF&, void>, public eoValueParam > { public: - eoPerf2Worth(std::string _description = "Worths"):eoValueParam >(vector(0), + eoPerf2Worth(std::string _description = "Worths"):eoValueParam >(std::vector(0), _description) {} /** @@ -46,7 +51,7 @@ class eoPerf2Worth : public eoUF&, void>, public eoValueParam& _pop) { // start with a vector of indices - vector indices(_pop.size()); + std::vector indices(_pop.size()); unsigned i; for (i = 0; i < _pop.size();++i) @@ -58,7 +63,7 @@ class eoPerf2Worth : public eoUF&, void>, public eoValueParam tmp_pop; tmp_pop.resize(_pop.size()); - vector tmp_worths(value().size()); + std::vector tmp_worths(value().size()); for (i = 0; i < _pop.size(); ++i) { @@ -75,7 +80,7 @@ class eoPerf2Worth : public eoUF&, void>, public eoValueParam& _worths) : worths(_worths) {} + compare_worth(const std::vector& _worths) : worths(_worths) {} bool operator()(unsigned a, unsigned b) const { @@ -84,7 +89,7 @@ class eoPerf2Worth : public eoUF&, void>, public eoValueParam& worths; + const std::vector& worths; }; virtual void resize(eoPop& _pop, unsigned sz) @@ -151,7 +156,7 @@ class eoPerf2WorthCached : public eoPerf2Worth */ virtual void sort_pop(eoPop& _pop) { // start with a vector of indices - vector indices(_pop.size()); + std::vector indices(_pop.size()); unsigned i; for (i = 0; i < _pop.size();++i) @@ -163,12 +168,12 @@ class eoPerf2WorthCached : public eoPerf2Worth eoPop tmp_pop; tmp_pop.resize(_pop.size()); - vector tmp_worths(value().size()); + std::vector tmp_worths(value().size()); #ifdef _MSC_VER - vector tmp_cache(_pop.size()); + std::vector tmp_cache(_pop.size()); #else - vector tmp_cache(_pop.size()); + std::vector tmp_cache(_pop.size()); #endif for (i = 0; i < _pop.size(); ++i) { @@ -188,7 +193,7 @@ class eoPerf2WorthCached : public eoPerf2Worth class compare_worth { public : - compare_worth(const vector& _worths) : worths(_worths) {} + compare_worth(const std::vector& _worths) : worths(_worths) {} bool operator()(unsigned a, unsigned b) const { @@ -197,7 +202,7 @@ class eoPerf2WorthCached : public eoPerf2Worth private : - const vector& worths; + const std::vector& worths; }; virtual void resize(eoPop& _pop, unsigned sz) @@ -208,7 +213,7 @@ class eoPerf2WorthCached : public eoPerf2Worth } private : - vector fitness_cache; + std::vector fitness_cache; }; /**