Removed eoEsBase and created an eoFixedLength

This commit is contained in:
mac 2000-06-13 09:43:34 +00:00
commit 152d42d41e
5 changed files with 20 additions and 20 deletions

View file

@ -24,25 +24,25 @@
*/ */
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
#ifndef _eoEsBase_h #ifndef _eoFixedLength_h
#define _eoEsBase_h #define _eoFixedLength_h
/** /**
\ingroup EvolutionStrategies \ingroup EvolutionStrategies
Base class for evolution strategies, just derives from EO and vector and Base class for fixed length chromosomes, just derives from EO and vector and
redirects the operator< to EO (fitness based comparison) redirects the smaller than operator to EO (fitness based comparison)
*/ */
template <class FitT> template <class FitT, class GeneType>
class eoEsBase : public EO<FitT>, public std::vector<double> class eoFixedLength : public EO<FitT>, public std::vector<GeneType>
{ {
public : public :
typedef double Type; typedef double Type;
/// to avoid conflicts between EO::operator< and vector<double>::operator< /// to avoid conflicts between EO::operator< and vector<double>::operator<
bool operator<(const eoEsBase<FitT>& _eo) const bool operator<(const eoFixedLength<FitT, GeneType>& _eo) const
{ {
return EO<FitT>::operator<(_eo); return EO<FitT>::operator<(_eo);
} }
@ -50,8 +50,8 @@ class eoEsBase : public EO<FitT>, public std::vector<double>
}; };
/// to avoid conflicts between EO::operator< and vector<double>::operator< /// to avoid conflicts between EO::operator< and vector<double>::operator<
template <class FitT> template <class FitT, class GeneType>
bool operator<(const eoEsBase<FitT>& _eo1, const eoEsBase<FitT>& _eo2) bool operator<(const eoFixedLength<FitT, GeneType>& _eo1, const eoFixedLength<FitT, GeneType>& _eo2)
{ {
return _eo1.operator<(_eo2); return _eo1.operator<(_eo2);
} }

View file

@ -27,7 +27,7 @@
#ifndef _eoEsFull_h #ifndef _eoEsFull_h
#define _eoEsFull_h #define _eoEsFull_h
#include <es/eoEsBase.h> #include <eoFixedLength.h>
/** /**
\ingroup EvolutionStrategies \ingroup EvolutionStrategies
@ -37,11 +37,11 @@ rates and correlated mutations.
*/ */
template <class Fit> template <class Fit>
class eoEsFull : public eoEsBase<Fit> class eoEsFull : public eoFixedLength<Fit, double>
{ {
public : public :
eoEsFull(void) : eoEsBase<Fit>() {} eoEsFull(void) : eoFixedLength<Fit, double>() {}
std::string className(void) const { return "eoEsFull"; } std::string className(void) const { return "eoEsFull"; }

View file

@ -218,7 +218,7 @@ public:
keepInBounds(_eo); keepInBounds(_eo);
} }
void keepInBounds(eoEsBase<FitT>& _eo) const void keepInBounds(eoFixedLength<FitT, double>& _eo) const
{ {
for (unsigned i = 0; i < _eo.size(); ++i) for (unsigned i = 0; i < _eo.size(); ++i)
{ {

View file

@ -30,7 +30,7 @@
#include <EO.h> #include <EO.h>
#include <vector> #include <vector>
#include <es/eoEsBase.h> #include <eoFixedLength.h>
/** /**
\ingroup EvolutionStrategies \ingroup EvolutionStrategies
@ -44,11 +44,11 @@ see also eoEsStdev eoEsFull
*/ */
template <class Fit> template <class Fit>
class eoEsSimple : public eoEsBase<Fit> class eoEsSimple : public eoFixedLength<Fit, double>
{ {
public : public :
eoEsSimple(void) : eoEsBase<Fit>() {} eoEsSimple(void) : eoFixedLength<Fit, double>() {}
std::string className(void) const { return "eoEsSimple"; } std::string className(void) const { return "eoEsSimple"; }

View file

@ -27,7 +27,7 @@
#ifndef _eoEsStdev_h #ifndef _eoEsStdev_h
#define _eoEsStdev_h #define _eoEsStdev_h
#include <es/eoEsBase.h> #include <eoFixedLength.h>
/** /**
\ingroup EvolutionStrategies \ingroup EvolutionStrategies
@ -37,11 +37,11 @@ deviations.
*/ */
template <class Fit> template <class Fit>
class eoEsStdev : public eoEsBase<Fit> class eoEsStdev : public eoFixedLength<Fit, double>
{ {
public : public :
eoEsStdev(void) : eoEsBase<Fit>() {} eoEsStdev(void) : eoFixedLength<Fit, double>() {}
std::string className(void) const { return "eoEsStdev"; } std::string className(void) const { return "eoEsStdev"; }