and finally... still more grouping in documentation.

This commit is contained in:
Johann Dreo 2010-11-05 22:46:15 +01:00
commit 2104f5b7e9
76 changed files with 427 additions and 70 deletions

View file

@ -36,6 +36,10 @@
#include <utils/eoStat.h>
#include <eoScalarFitnessAssembled.h>
/** @addtogroup Stats
* @{
*/
/**
Average fitness values of a population, where the fitness is
of type eoScalarAssembledFitness. Specify in the constructor,
@ -109,4 +113,5 @@ private:
unsigned whichFitnessTerm;
};
/** @} */
#endif

View file

@ -32,6 +32,21 @@
#include <utils/eoMonitor.h>
#include <utils/eoStat.h>
/** @defgroup Checkpoints Checkpointing
*
* Checkpoints are supposed to be called perodically (for instance at each generation) and
* will call every functors you put in them.
*
* Use them with eoStats, eoUpdater and eoMonitor to get statistics at each generation.
*
* @see eoStats
* @see eoMonitor
* @see eoUpdater
*
* @ingroup Utilities
*
* @{
*/
/** eoCheckPoint is a container class.
It contains std::vectors of (pointers to)
@ -161,4 +176,5 @@ std::string eoCheckPoint<EOT>::allClassNames() const
return s;
}
/** @} */
#endif

View file

@ -27,9 +27,14 @@
#define _eoDistance_H
#include <eoFunctor.h>
/** @addtogroup Stats
* @{
* */
/**
This is a generic class for distance functors:
takes 2 things ane returns a double
takes 2 things and returns a double
*/
template< class EOT >
class eoDistance : public eoBF<const EOT &, const EOT &, double>
@ -94,5 +99,6 @@ public:
};
/** @} */
#endif

View file

@ -32,8 +32,12 @@
#include <utils/eoFileSnapshot.h>
/**
The FDC computation - stores the values into eoValueParam<EOT,double>
The Fitness Distance Correlation computation.
Stores the values into eoValueParam<EOT,double>
so they can be snapshot by some eoGnuplotSnapshot ...
@ingroup Stats
*/
template <class EOT>
class eoFDCStat : public eoStat<EOT, double>
@ -106,6 +110,8 @@ private:
* As I failed to have FDC stat as an eoStat, this is the trick
* to put the 2 eoParam<std::vector<double> > into a monitor
* This class does nothing else.
@ingroup Stats
*/
template <class EOT>
class eoFDCFileSnapshot : public eoFileSnapshot // is an eoMonitor

View file

@ -34,7 +34,10 @@ Authors:
#include "eoStat.h"
//! Ratio of the number of individuals with a feasible dual fitness in the population (@see eoDualFitness)
/** Ratio of the number of individuals with a feasible dual fitness in the population (@see eoDualFitness)
*
* @ingroup Stats
*/
template<class EOT>
class eoFeasibleRatioStat : public eoStat< EOT, double >
{

View file

@ -34,12 +34,14 @@
#include "utils/eoMonitor.h"
#include "eoObject.h"
/** Prints statistics to file
Modified the default behavior, so that it erases existing files. Can
be modified in the ctor.
@version MS 25/11/00
@ingroup Monitors
*/
class eoFileMonitor : public eoMonitor
{

View file

@ -48,8 +48,9 @@ so that you can pass e.g. an evalcounter (minor)
I failed to templatize everything so that it can handle eoParam<std::vector<T> >
for any type T, simply calling their getValue method ...
*/
@ingroup Monitors
*/
class eoFileSnapshot : public eoMonitor
{
public :

View file

@ -1,9 +1,16 @@
#ifndef eoFuncPtrStat_h
#define eoFuncPtrStat_h
#include <eoFunctorStore.h>
#include <utils/eoStat.h>
/** Wrapper to turn any stand-alone function and into an eoStat.
*
* The function should take an eoPop as argument.
*
* @ingroup Stats
*/
template <class EOT, class T>
class eoFuncPtrStat : public eoStat<EOT, T>
{
@ -25,6 +32,9 @@ private:
func_t func;
};
/**
* @ingroup Stats
*/
template <class EOT, class T>
eoFuncPtrStat<EOT, T>& makeFuncPtrStat( T (*func)(const eoPop<EOT>&), eoFunctorStore& store, std::string description = "func") {
return store.storeFunctor(

View file

@ -34,6 +34,8 @@ calls to plots what is already written by some eoMonitor into a file
@author Marc Schoenauer
@version 0.0 (2001)
@ingroup Monitors
*/
class eoGnuplot
{

View file

@ -43,6 +43,8 @@ eoGnuplot1DMonitor plots stats through gnuplot
Assumes that the same file is appened every so and so, and replots it
everytime
@ingroup Monitors
*/
class eoGnuplot1DMonitor : public eoFileMonitor, public eoGnuplot
{

View file

@ -47,6 +47,8 @@ This class plots through gnuplot the eoStat given as argument
Assumes that the same file is re-written every so and so, and plots it
from scratch everytime it's called
@ingroup Monitors
*/
class eoGnuplot1DSnapshot: public eoFileSnapshot, public eoGnuplot
{

View file

@ -29,6 +29,11 @@ Contact: http://eodev.sourceforge.net
#ifndef eoHowMany_h
#define eoHowMany_h
#include <sstream>
#include <utils/eoLogger.h>
/** A helper class, to determine a number of individuals from another one
* Typically, is used in selection / replacement procedures, e.g.
* the number of offspring from the number of parents, or
@ -65,12 +70,9 @@ Contact: http://eodev.sourceforge.net
* eoG3Repalcement)
*
* It is an eoPersistent because we need to be able to use eoParamValue<eoHowMany>
*
* @ingroup Core
*/
#include <sstream>
#include <utils/eoLogger.h>
class eoHowMany : public eoPersistent
{
public:

View file

@ -31,14 +31,15 @@
#include <utils/eoRNG.h>
/**
\defgroup EvolutionStrategies
\defgroup Real
*/
/**
\class eoIntBounds eoIntBounds.h es/eoIntBounds.h
\ingroup EvolutionStrategies
\ingroup Real
\ingroup Bounds
Defines bound classes for real numbers.
@ -149,6 +150,9 @@ public:
};
/** A default class for unbounded variables
*
* @ingroup Real
* @ingroup Bounds
*/
class eoIntNoBounds : public eoIntBounds
{
@ -221,11 +225,18 @@ public:
};
// one object for all - see eoIntBounds.cpp
/** one object for all - see eoIntBounds.cpp
*
* @ingroup Real
* @ingroup Bounds
*/
extern eoIntNoBounds eoDummyIntNoBounds;
/**
* fully bounded eoIntBound == interval
*
* @ingroup Real
* @ingroup Bounds
*/
class eoIntInterval : public eoIntBounds
{
@ -349,6 +360,9 @@ private :
/**
* an eoIntBound bounded from below only
*
* @ingroup Real
* @ingroup Bounds
*/
class eoIntBelowBound : public eoIntBounds
{
@ -453,6 +467,9 @@ private :
/**
An eoIntBound bounded from above only
*
* @ingroup Real
* @ingroup Bounds
*/
class eoIntAboveBound : public eoIntBounds
{
@ -560,6 +577,9 @@ private :
/** A class that encapsulate all possible eoIntBounds.
* Mandatory in order to read through the parser
*
* @ingroup Real
* @ingroup Bounds
*/
class eoGeneralIntBounds : public eoIntBounds
{

View file

@ -25,8 +25,12 @@ Caner Candan <caner.candan@thalesgroup.com>
*/
/** Here's an example explaning how to use eoLogger:
/** @defgroup Logging Logging
Global logger for EO.
Here's an example explaning how to use eoLogger:
\code
#include <iostream>
#include <utils/eoLogger.h>
#include <utils/eoParserLogger.h>
@ -77,7 +81,9 @@ Caner Candan <caner.candan@thalesgroup.com>
return 0;
}
\endcode
@{
*/
#ifndef eoLogger_h
@ -249,4 +255,7 @@ namespace eo
extern eoLogger log;
}
/** @} */
#endif // !eoLogger_h

View file

@ -1,7 +1,5 @@
// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
//-----------------------------------------------------------------------------
// eoMonitor.h
// (c) Marc Schoenauer, Maarten Keijzer and GeNeura Team, 2000
/*
This library is free software; you can redistribute it and/or
@ -21,10 +19,7 @@
Contact: todos@geneura.ugr.es, http://geneura.ugr.es
Marc.Schoenauer@polytechnique.fr
mak@dhi.dk
CVS Info: $Date: 2010-03-18 12:44:45 $ $Header: /home/nojhan/dev/eodev/eodev_cvs/eo/src/utils/eoMonitor.h,v 1.13 2010-03-18 12:44:45 paradiseo Exp $ $Author: paradiseo $
*/
//-----------------------------------------------------------------------------
#ifndef _eoMonitor_h
#define _eoMonitor_h
@ -34,6 +29,20 @@ CVS Info: $Date: 2010-03-18 12:44:45 $ $Header: /home/nojhan/dev/eodev/eodev_cvs
#include <iostream>
#include <eoFunctor.h>
/** @defgroup Monitors Monitoring
*
* Monitors take a set of value parameters (eoValueParam) objects and
* output them on a given stream, file, pipe, etc.
*
* They can be called from within an eoCheckPoint, to print different values
* of parameters or of eoStat at each generation.
*
* @see eoCheckPoint
* @see eoStat
* @ingroup Utilities
*/
class eoParam;
template <class EOT> class eoCheckPoint;
@ -43,6 +52,8 @@ template <class EOT> class eoCheckPoint;
Derived classes will then implement the operator()(void) which
will stream or pipe the current values of the parameters to wherever you
want it streamed or piped to.
@ingroup Monitors
*/
class eoMonitor : public eoF<eoMonitor&>
{

View file

@ -25,8 +25,6 @@ Authors:
Johann Dréo <johann.dreo@thalesgroup.com>
*/
#ifndef _eoOStreamMonitor_h_
#define _eoOStreamMonitor_h_
@ -39,6 +37,8 @@ Authors:
/**
Prints statistics to stdout
@ingroup Monitors
*/
class eoOStreamMonitor : public eoMonitor
{

View file

@ -35,6 +35,15 @@
#include <vector>
#include <eoScalarFitness.h>
/** @defgroup Parameters Parameters management
*
* A parameter is basically an object that stores a value and that can read/print it from/on streams.
*
* It is mainly used for command-line options (see eoParser) and eoStat.
*
* @ingroup Utilities
* @{
*/
/**
eoParam: Base class for monitoring and parsing parameters
@ -126,8 +135,9 @@ private:
/**
eoValueParam<ValueType>: templatized derivation of eoParam. Can be used to contain
any scalar value type. It makes use of std::strstream to get and set values. This
should be changed to std::stringstream when that class is available in g++.
any scalar value type. It makes use of std::strstream to get and set values.
@todo This should be changed to std::stringstream when that class is available in g++.
Note also that there is a template specialization for std::pair<double, double> and
for std::vector<double>. These stream their contents delimited with whitespace.
@ -458,4 +468,6 @@ public:
std::ostream & operator<<(std::ostream & _os, const eoParamParamType & _rate);
std::istream & operator>>(std::istream & _is, eoParamParamType & _rate);
/** @} */
#endif

View file

@ -36,6 +36,8 @@ Contact: http://eodev.sourceforge.net
eoParameterLoader is an abstract class that can be used as a base for your own
parameter loading and saving. The command line parser eoParser is derived from
this class.
@ingroup Parameters
*/
class eoParameterLoader
{
@ -96,6 +98,8 @@ private :
eoParser: command line parser and configuration file reader
This class is persistent, so it can be stored and reloaded to restore
parameter settings.
@ingroup Parameters
*/
class eoParser : public eoParameterLoader, public eoObject, public eoPersistent
{

View file

@ -29,6 +29,9 @@ Authors:
/**
* A parser that use the advanced logging system (@see eoLogger)
*
* @ingroup Parameters
* @ingroup Logging
*/
class eoParserLogger : public eoParser
{

View file

@ -46,6 +46,8 @@ This is the plain version - see eoPopString for the Sorted version
Note: this Stat should probably be used only within eoStdOutMonitor, and not
inside an eoFileMonitor, as the eoState construct will work much better there.
@ingroup Stats
*/
template <class EOT>
class eoPopStat : public eoStat<EOT, std::string>
@ -91,6 +93,8 @@ This is the Sorted version - see eoPopString for the plain version
Note: this Stat should probably be used only within eoStdOutMonitor, and not
inside an eoFileMonitor, as the eoState construct will work much better there.
@ingroup Stats
*/
template <class EOT>
class eoSortedPopStat : public eoSortedStat<EOT, std::string>

View file

@ -25,14 +25,18 @@ Old contact information: todos@geneura.ugr.es, http://geneura.ugr.es
#ifndef EO_RANDOM_NUMBER_GENERATOR
#define EO_RANDOM_NUMBER_GENERATOR
// uint32_t is an unsigned integer type capable of holding 32 bits.
//
// In the applicatione here exactly 32 are used.
// 64 bits might be better on an Alpha or other 64 bit systems with GCC at high
// optimization levels so feel free to try your options and see what's best for
// you.
/** @addtogroup Random
* @{
* */
# if (defined _MSC_VER)
/** uint32_t is an unsigned integer type capable of holding 32 bits.
In the applicatione here exactly 32 are used.
64 bits might be better on an Alpha or other 64 bit systems with GCC at high
optimization levels so feel free to try your options and see what's best for
you.
*/
typedef unsigned long uint32_t;
#else
#if (! defined __sun)
@ -444,6 +448,7 @@ namespace eo
}
using eo::rng;
/** @} */

View file

@ -31,7 +31,7 @@
#include <utils/eoRNG.h>
/**
\defgroup EvolutionStrategies Continuous vector
\defgroup Real Continuous vector
@ingroup Representations
@ -40,7 +40,7 @@
/**
\class eoRealBounds eoRealBounds.h es/eoRealBounds.h
\ingroup EvolutionStrategies
\ingroup Real
Defines bound classes for real numbers.
@ -73,6 +73,8 @@ eoRealAboveBound the half-bounded interval (-infinity, max]
THis file also contains the declaration of *the* global object that
is the unbounded bound
@ingroup Bounds
*/
class eoRealBounds : public eoPersistent
{
@ -131,6 +133,8 @@ public:
};
/** A default class for unbounded variables
@ingroup Bounds
*/
class eoRealNoBounds : public eoRealBounds
{
@ -196,11 +200,15 @@ public:
};
// one object for all - see eoRealBounds.cpp
/** one object for all - see eoRealBounds.cpp
@ingroup Bounds
*/
extern eoRealNoBounds eoDummyRealNoBounds;
/**
* fully bounded eoRealBound == interval
@ingroup Bounds
*/
class eoRealInterval : public eoRealBounds
{
@ -319,6 +327,8 @@ private :
/**
* an eoRealBound bounded from below only
@ingroup Bounds
*/
class eoRealBelowBound : public eoRealBounds
{
@ -518,6 +528,8 @@ private :
/** A class that encapsulate all possible eoIntBounds.
* Mandatory in order to read through the parser
@ingroup Bounds
*/
class eoGeneralRealBounds : public eoRealBounds
{

View file

@ -32,7 +32,7 @@
#include <utils/eoRealBounds.h>
/**
\defgroup EvolutionStrategies
\defgroup Real
*/
@ -54,6 +54,8 @@ eoRealBaseVectorBounds, base class that handles all useful functions
eoRealVectorBounds which derives from the preceding *and* eoPersistent
and also has a mechanism for memory handling of the pointers
it has to allocate
@ingroup Bounds
*/
class eoRealBaseVectorBounds : public std::vector<eoRealBounds *>
{
@ -226,6 +228,8 @@ public:
////////////////////////////////////////////////////////////////////
/** Now a derived class, for parser reading
* It holds some of the bounds (and destroy them when dying)
@ingroup Bounds
*/
class eoRealVectorBounds : public eoRealBaseVectorBounds, public eoPersistent
{
@ -350,6 +354,8 @@ private:// WARNING: there is no reason for both std::vector below
/** the dummy unbounded eoRealVectorBounds: usefull if you don't need bounds!
* everything is inlined.
* Warning: we do need this class, and not only a std::vector<eoRealNoBounds *>
@ingroup Bounds
*/
class eoRealVectorNoBounds: public eoRealVectorBounds
{
@ -422,6 +428,8 @@ public:
// one object for all - see eoRealBounds.cpp
/** one object for all - see eoRealBounds.cpp
@ingroup Bounds
*/
extern eoRealVectorNoBounds eoDummyVectorNoBounds;
#endif

View file

@ -33,6 +33,12 @@
#include <eoFunctor.h>
#include <stdexcept>
/** @defgroup Random Random number generation
*
* @ingroup Utilities
* @{
*/
using eo::rng;
/**
@ -146,4 +152,5 @@ template <class T = double> class eoNegExpGenerator : public eoRndGenerator<T>
eoRng& negexp;
};
/** @} */
#endif

View file

@ -32,6 +32,8 @@
/**
The fitnesses of a whole population, as a std::vector
@ingroup Stats
*/
template <class EOT, class FitT = typename EOT::Fitness>
class eoScalarFitnessStat : public eoSortedStat<EOT, std::vector<double> >

View file

@ -41,6 +41,22 @@ Contact: http://eodev.sourceforge.net
#include <utils/eoMonitor.h>
#include <utils/eoCheckPoint.h>
/** @defgroup Stats Statistic computation
*
* Compute various statistics on a population.
*
* Objects of those classes are generally called by an eoCheckPoint
* to compute statistics about the population at a given generation.
* As they inherit from eoValueParam, they can be printed drectly,
* for instance by an eoMonitor.
*
* @see eoCheckPoint
* @see eoMonitor
*
* @ingroup Utilities
* @{
*/
/**
Base class for all statistics that need to be calculated
over the (unsorted) population
@ -485,4 +501,6 @@ public:
virtual std::string className(void) const { return "eoInterquartileRangeStat"; }
};
/** @} */
#endif

View file

@ -50,6 +50,7 @@ class eoPersistent;
derived classes are not saved or loaded. To govern the creation of functors,
command-line parameters (which can be stored) are needed.
@ingroup Utilities
*/
class eoState : public eoFunctorStore
{

View file

@ -37,6 +37,8 @@ Authors:
/**
Prints statistics to stdout
@ingroup Monitors
*/
class eoStdoutMonitor : public eoOStreamMonitor
{

View file

@ -34,6 +34,8 @@
/**
An eoStat that simply gives the user time since first generation
It has to be tempatized by EOT because it must be an eoStat
@group Stats
*/
class eoTimeCounter : public eoUpdater, public eoValueParam<double>
{

View file

@ -36,6 +36,8 @@
/**
Holds a collection of monitors and only fires them when a time limit
has been reached
@ingroup Monitors
*/
class eoTimedMonitor : public eoMonitor
{

View file

@ -44,6 +44,11 @@
#include "eoRealBounds.h"
#include <stdexcept>
/** @addtogroup Initializators
* @{
*/
using eo::rng;
/**
@ -58,6 +63,7 @@ using eo::rng;
either in [0, _max) if only 1 value (_max) is given
(or none, as _max defaults to 1.0)
or in [_min,_max) if 2 values are given (_min, _max)
*/
template <class T = double> class eoUniformInit : public eoInit<T>
{
@ -152,4 +158,5 @@ template <class T = double> class eoNegExpInit : public eoInit<T>
eoRng& negexp;
};
/** @} */
#endif

View file

@ -32,6 +32,8 @@
/**
eoUpdatable is a generic class for adding updatation to an existing class
Just says it has an update() method
@ingroup Utilities
*/
class eoUpdatable
{
@ -47,6 +49,8 @@ public:
/**
A base class to actually update an eoUpdatable object
@ingroup Utilities
*/
class eoDynUpdater : public eoUpdater
{public :
@ -63,6 +67,8 @@ private:
/**
An eoUpdater to update an eoUpdatable object every given time interval
@ingroup Utilities
*/
class eoTimedDynUpdate : public eoDynUpdater
{
@ -89,6 +95,8 @@ private :
/**
An eoUpdater to update an eoUpdatable object every given tic
@ingroup Utilities
*/
class eoCountedDynUpdate : public eoDynUpdater
{

View file

@ -37,6 +37,8 @@ template <class EOT> class eoCheckPoint;
/**
eoUpdater is a generic procudere for updating whatever you want.
Yet again an empty name
@ingroup Utilities
*/
class eoUpdater : public eoF<void>
{
@ -50,6 +52,8 @@ public:
/**
an eoUpdater that simply increments a counter
@ingroup Utilities
*/
template <class T>
class eoIncrementor : public eoUpdater
@ -71,6 +75,8 @@ private:
/** an eoUpdater that is an eoValueParam (and thus OWNS its counter)
* Mandatory for generation counter in make_checkpoint
@ingroup Utilities
*/
template <class T>
class eoIncrementorParam : public eoUpdater, public eoValueParam<T>
@ -105,6 +111,8 @@ private:
/**
an eoUpdater that saves a state every given time interval
@ingroup Utilities
*/
class eoTimedStateSaver : public eoUpdater
{
@ -128,6 +136,8 @@ private :
/**
an eoUpdater that saves a state every given generations
@ingroup Utilities
*/
class eoCountedStateSaver : public eoUpdater
{

View file

@ -34,6 +34,10 @@
#include "eoRNG.h"
#include <stdexcept>
/** @addtogroup Random
* @{
*/
/**
The class uniform_generator can be used in the STL generate function
to easily generate random floats and doubles
@ -165,4 +169,5 @@ template <class T = double> class negexp_generator
eoRng& negexp;
};
/** @} */
#endif

View file

@ -43,7 +43,8 @@
#include "eoRNG.h"
#include <eoPop.h>
/**
\defgroup selectors
@addtogroup Selectors
@{
*/
template <class EOT>
@ -334,5 +335,6 @@ EOT& inverse_stochastic_tournament(eoPop<EOT>& _pop, double _t_rate, eoRng& _gen
return *inverse_stochastic_tournament(_pop.begin(), _pop.end(), _t_rate, _gen);
}
/** @} */
#endif