Boost logo

Boost :

Subject: Re: [boost] Proposal for a Differential Evolution C++ library
From: Adrian Michel (adrian_at_[hidden])
Date: 2011-12-26 15:43:52

Hi everybody,

I released a new version of the DE library based on feedback I received
on the initial release - see the doc at

First of all, I updated the documentation to describe in more detail
what DE is, its use in one specific case, and links to descriptions of
several other use cases - see the Overview page at the link above. I
hope this will help make the case why a DE library would be worth being
included in boost. BTW, there are already implementations in several
languages and for several free or commercial products: Java, C, Matlab,
Scilab, Fortran90, Python, Labview, Pascal, C#, etc.

As far as the library itself, Thomas Heller noted that requiring the
objective functions to be derived from the de::objective_function
abstract class limited the user options by not allowing arbitrary
unnamed or plain functions to be passed as objective functions.

I followed his suggestion and reimplemented parts of the library as
template classes, in particular the de::processor class. It is now
possible to pass objective functions as: named functions, unnamed
functions, functors (all with the right prototype) or objective function
factories which create local copies of the objective function. All of
these can be passed as either references, plain pointers or

This change should make it easier to integrate the library within
existing code.

Your comments will be appreciated.


Boost list run by bdawes at, gregod at, cpdaniel at, john at