Removing MAC line endings, because Windows VS 8.0 does not accept them.

This commit is contained in:
okoenig 2006-11-28 17:14:05 +00:00
commit 2558aa33fa
2 changed files with 158 additions and 158 deletions

View file

@ -1,104 +1,104 @@
/* -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- /* -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
----------------------------------------------------------------------------- -----------------------------------------------------------------------------
eoScalarFitness.h eoScalarFitness.h
(c) Maarten Keijzer (mkeijzer@mad.scientist.com) and GeNeura Team, 1999, 2000 (c) Maarten Keijzer (mkeijzer@mad.scientist.com) and GeNeura Team, 1999, 2000
This library is free software; you can redistribute it and/or This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either License as published by the Free Software Foundation; either
version 2 of the License, or (at your option) any later version. version 2 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful, This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details. Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software License along with this library; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
Contact: todos@geneura.ugr.es, http://geneura.ugr.es Contact: todos@geneura.ugr.es, http://geneura.ugr.es
*/ */
#ifndef eoScalarFitness_h #ifndef eoScalarFitness_h
#define eoScalarFitness_h #define eoScalarFitness_h
#include <functional> #include <functional>
#include <iostream> #include <iostream>
/** /**
* eoScalarFitness<ScalarType, Compare = less<ScalarType> >: * eoScalarFitness<ScalarType, Compare = less<ScalarType> >:
* Wraps a scalar fitness values such as a double or int, with the option of * Wraps a scalar fitness values such as a double or int, with the option of
* maximizing (using less<ScalarType>) or minimizing (using greater<ScalarType>) * maximizing (using less<ScalarType>) or minimizing (using greater<ScalarType>)
* It overrides operator<() to use the Compare template argument * It overrides operator<() to use the Compare template argument
* *
* Suitable constructors and assignments and casts are defined to work * Suitable constructors and assignments and casts are defined to work
* with this quantity as if it were a ScalarType. * with this quantity as if it were a ScalarType.
*/ */
template <class ScalarType, class Compare > template <class ScalarType, class Compare >
class eoScalarFitness class eoScalarFitness
{ {
public : public :
eoScalarFitness() : value() {} eoScalarFitness() : value() {}
eoScalarFitness(const eoScalarFitness& other) : value(other.value) {} eoScalarFitness(const eoScalarFitness& other) : value(other.value) {}
eoScalarFitness(const ScalarType& v) : value(v) {} eoScalarFitness(const ScalarType& v) : value(v) {}
eoScalarFitness& operator=(const eoScalarFitness& other) eoScalarFitness& operator=(const eoScalarFitness& other)
{ value = other.value; return *this; } { value = other.value; return *this; }
eoScalarFitness& operator=(const ScalarType& v) eoScalarFitness& operator=(const ScalarType& v)
{ value = v; return *this; } { value = v; return *this; }
operator ScalarType(void) const { return value; } operator ScalarType(void) const { return value; }
/// Comparison, using less by default /// Comparison, using less by default
bool operator<(const eoScalarFitness& other) const bool operator<(const eoScalarFitness& other) const
{ return Compare()(value, other.value); } { return Compare()(value, other.value); }
/// Comparison, using less by default /// Comparison, using less by default
// needed for MSVC 8 (MSVC 2005) added by J.Eggermont 20-11-2006 // needed for MSVC 8 (MSVC 2005) added by J.Eggermont 20-11-2006
bool operator<(const ScalarType& other) const bool operator<(const ScalarType& other) const
{ return Compare()(value, other); } { return Compare()(value, other); }
// implementation of the other operators // implementation of the other operators
bool operator>( const eoScalarFitness<ScalarType, Compare>& y ) const { return y < *this; } bool operator>( const eoScalarFitness<ScalarType, Compare>& y ) const { return y < *this; }
// implementation of the other operators // implementation of the other operators
bool operator<=( const eoScalarFitness<ScalarType, Compare>& y ) const { return !(*this > y); } bool operator<=( const eoScalarFitness<ScalarType, Compare>& y ) const { return !(*this > y); }
// implementation of the other operators // implementation of the other operators
bool operator>=(const eoScalarFitness<ScalarType, Compare>& y ) const { return !(*this < y); } bool operator>=(const eoScalarFitness<ScalarType, Compare>& y ) const { return !(*this < y); }
private : private :
ScalarType value; ScalarType value;
}; };
/** /**
Typedefs for fitness comparison, Maximizing Fitness compares with less, Typedefs for fitness comparison, Maximizing Fitness compares with less,
and minimizing fitness compares with greater. This because we want ordinary and minimizing fitness compares with greater. This because we want ordinary
fitness values (doubles) to be equivalent with Maximizing Fitness, and fitness values (doubles) to be equivalent with Maximizing Fitness, and
comparing with less is the default behaviour. comparing with less is the default behaviour.
*/ */
typedef eoScalarFitness<double, std::less<double> > eoMaximizingFitness; typedef eoScalarFitness<double, std::less<double> > eoMaximizingFitness;
typedef eoScalarFitness<double, std::greater<double> > eoMinimizingFitness; typedef eoScalarFitness<double, std::greater<double> > eoMinimizingFitness;
template <class F, class Cmp> template <class F, class Cmp>
std::ostream& operator<<(std::ostream& os, const eoScalarFitness<F, Cmp>& f) std::ostream& operator<<(std::ostream& os, const eoScalarFitness<F, Cmp>& f)
{ {
os << (F) f; os << (F) f;
return os; return os;
} }
template <class F, class Cmp> template <class F, class Cmp>
std::istream& operator>>(std::istream& is, eoScalarFitness<F, Cmp>& f) std::istream& operator>>(std::istream& is, eoScalarFitness<F, Cmp>& f)
{ {
F value; F value;
is >> value; is >> value;
f = value; f = value;
return is; return is;
} }
#endif #endif

View file

@ -1,54 +1,54 @@
/** -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- /** -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
----------------------------------------------------------------------------- -----------------------------------------------------------------------------
eoSelectOne.h eoSelectOne.h
(c) Maarten Keijzer, GeNeura Team, 2000 (c) Maarten Keijzer, GeNeura Team, 2000
This library is free software; you can redistribute it and/or This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either License as published by the Free Software Foundation; either
version 2 of the License, or (at your option) any later version. version 2 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful, This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details. Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software License along with this library; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
Contact: todos@geneura.ugr.es, http://geneura.ugr.es Contact: todos@geneura.ugr.es, http://geneura.ugr.es
*/ */
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
#ifndef _eoSelectOne_h #ifndef _eoSelectOne_h
#define _eoSelectOne_h #define _eoSelectOne_h
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
#include <eoPop.h> #include <eoPop.h>
#include <eoFunctor.h> #include <eoFunctor.h>
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
/** eoSelectOne selects only one element from a whole population. /** eoSelectOne selects only one element from a whole population.
Most selection techniques are simply repeated applications Most selection techniques are simply repeated applications
of eoSelectOne. of eoSelectOne.
@see eoSelectMany, eoSelectRandom, eoDetTournament, eoStochTournament, eoProportional @see eoSelectMany, eoSelectRandom, eoDetTournament, eoStochTournament, eoProportional
*/ */
#if defined(_MSC_VER) && (_MSC_VER < 1300) #if defined(_MSC_VER) && (_MSC_VER < 1300)
template<class EOT, class WorthT = EOT::Fitness> template<class EOT, class WorthT = EOT::Fitness>
#else #else
template<class EOT, class WorthT = typename EOT::Fitness> template<class EOT, class WorthT = typename EOT::Fitness>
#endif #endif
class eoSelectOne : public eoUF<const eoPop<EOT>&, const EOT&> class eoSelectOne : public eoUF<const eoPop<EOT>&, const EOT&>
{ {
public : public :
/// virtual function to setup some population stats (for instance eoProportional can benefit greatly from this) /// virtual function to setup some population stats (for instance eoProportional can benefit greatly from this)
virtual void setup(const eoPop<EOT>& _pop) virtual void setup(const eoPop<EOT>& _pop)
{} {}
}; };
#endif #endif