//-----------------------------------------------------------------------------
// eo
// (c) GeNeura Team 1998 - 2000
/* 
    This library is free software; you can redistribute it and/or
    modify it under the terms of the GNU Lesser General Public
    License as published by the Free Software Foundation; either
    version 2 of the License, or (at your option) any later version.

    This library is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    Lesser General Public License for more details.

    You should have received a copy of the GNU Lesser General Public
    License along with this library; if not, write to the Free Software
    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA

    Contact: todos@geneura.ugr.es, http://geneura.ugr.es
 */
//-----------------------------------------------------------------------------

#ifdef _MSC_VER
// to avoid long name warnings
#pragma warning(disable:4786)
#endif 

#ifndef _eo_
#define _eo_

// some defines to make things easier to get at first sight

// tunigni the amount of output using a boolean argument: 
// true should always mean more output
#define eo_verbose true
#define eo_no_verbose false
// to be used in selection / replacement procedures to indicate whether 
// the argument (rate, a double) shoudl be treated as a rate (number=rate*popSize)
// or as an absolute integer (number=rate regardless of popsize).
// the default value shoudl ALWAYS be true (eo_as_a_rate).
//
// this construct is mandatory because in some cases you might not know the 
// population size that will enter the replacement for instance - so you 
// cannot simply have a pre-computed (double) rate of 1/popSize
#define eo_is_a_rate true
#define eo_is_an_integer false
//-----------------------------------------------------------------------------

#include <utils/eoData.h>
#include <eoObject.h>
#include <eoPrintable.h>
#include <eoPersistent.h>
#include <eoScalarFitness.h>
#include <EO.h>

#include <utils/rnd_generators.h>
#include <eoFunctor.h>
#include <apply.h>

// eo's
#include <eoVariableLength.h>
#include <eoFixedLength.h>

//#include <eoID.h>

//#include <eoVector.h>
//#include <eo1d.h>
#include <other/eoString.h>
#include <ga/eoBin.h>
#include <es/eoReal.h>

#include <eoInit.h>
//#include <eoUniform.h>
//#include <eoNormal.h>
//#include <eoNegExp.h>

#include <eoOp.h>

//#include <eoDup.h>
//#include <eoKill.h>
//#include <eoTranspose.h>
//#include <eoXOver2.h>
//#include <eoUniformXOver.h>
//#include <eoMutation.h>

#include <eoPop.h>
#include <ga/eoBitOp.h>
#include <es/eoRealOp.h>
#include <es/eoNormalMutation.h>

// Evaluation functions
#include <eoEvalFunc.h>
#include <eoEvalFuncPtr.h>

// Continuators
// #include <eoContinue.h>    // already included in the following
#include <eoCombinedContinue.h>
#include <eoGenContinue.h>
#include <eoSteadyFitContinue.h>
#include <eoFitContinue.h>

// Selection 
// the eoSelectOne
#include <eoRandomSelect.h>
#include <eoDetTournamentSelect.h>
#include <eoProportionalSelect.h>
#include <eoFitnessScalingSelect.h>
#include <eoRankingSelect.h>
#include <eoStochTournamentSelect.h>
// the batch selection - from an eoSelectOne
#include <eoSelectPerc.h>
#include <eoSelectNumber.h>
#include <eoSelectMany.h>
// other batch selections
#include <eoDetSelect.h>


// Replacement
// #include <eoReplacement.h>
#include <eoMergeReduce.h>
#include <eoReduceMerge.h>
#include <eoSurviveAndDie.h>

// Variation
#include <eoProportionalCombinedOp.h>
#include <eoProportionalOpSel.h>
#include <eoProportionalGOpSel.h>
#include <eoSequentialGOpSel.h>

//#include <eoLottery.h>
//#include <eoBreeder.h>
//#include <eoInsertion.h>
//#include <eoInclusion.h>
//#include <eoGeneration.h>

//#include <eoProportionalOpSel.h>

#include <eoSGATransform.h>

// Algorithms
#include <eoEasyEA.h>
#include <eoSGA.h>
#include <eoSteadyStateEA.h>
#include <eoEvolutionStrategy.h>

// Inserters
#include <eoDetTournamentInserter.h>
#include <eoStochTournamentInserter.h>

// Utils
#include <utils/checkpointing>

// aliens
//#include <eoNonUniform.h>
#include <eoCounter.h>

//-----------------------------------------------------------------------------
// to be continued ...
//-----------------------------------------------------------------------------
/*
//#include <eoFitness.h>
//#include <eoProblem.h>
*/
//-----------------------------------------------------------------------------

#endif _eo_

// Local Variables:
// mode: C++
// End:
