- assume C++ standard-conforming environment
- add a user-option for gnuplot-support
- separate gnuplot-code into declaration and implementation,
so we can define at EO-build-time whether to use it or not.
Adopt code and Makefiles to above changes.
Some minor fixes.
Remove support for (outdated) <strstream>, require <sstream>.
Require uint32_t for now, defined in stdint.h according to C99.
Some general cleanup and more documentation.
For the tutorial the old Makefiles are saved as Makefile.simple in all
the respective directories.
Use generated config.h instead of command-line passing of preprocessor
flags.
Updated support files from current automake.
in some files (and some bugs were fixed as well [Marc: eoOneToOneBreeder was a mess])
eoFunctor.h now contains static functor_category members, this shouldn't hurt anyone.
to make t-eoGA work (you should NOT have separate functions in .h files!)
I also included everything related to Ctrl C handling in #ifndef _MSC_VER
until someone tells me how to do it in MSVC
Also: introducing eoRndGenerators.h for eoRndGenerator derived classes:
eoNormalGenerator
eoUniformGenerator
eoBooleanGenerator
eoNegExpGenerator
Note the suffix that are added to aid in determining what these classes do
Changed the signature of eoMon, eoBin and eoQuadOp to return a bool,
without invalidating fitness. Added a set of invalidators to take over
that job (see for instance eoSGA and eoSGATransform how this can transparantly used)
Derived eoState from eoFunctorStore (for convenience, from a design perspective this may sound wrong)
Added a wrap_op function that does the wrapping for you (see eoOpContainer how this made this functor
exceedingly less hairy). Checked all the tests removed the eoGeneric*Op family (not needed anymore)
and of course changed all the operators to reflect the change (and found a few that didn't
invalidate the fitness, thus really pointing out the advantage of the current approach)
I also changed
- the eoQuadratic into eoQuad (as dicussed with Maarten)
- the eoBin into eoBit, with more appropriate names for the "binary"
operators (that can be unary!) as no one protested when I posted on
eodev list
The interface for eoReplacement is now eoPop<EOT>&, eoPop<EOT>&
(i.e. no const) and the result must be in the first argument in the end.
Hence it is possible to do SSGA and all intermediate replacmeent procedures
The classes derived from eoMergeReduce.h are now in a separate file
The SSGA-like replcaement procedures are in eoReduceMerge.h
A more general replacement can be found in eoSurviveAndDie.h
(it could be made a littel more general - still open for upgrades).
Also some accessors have been added to the eoPop (best and worse individuals)
And include file eo has been updated