# Differential Evolution for global numerical optimization
Simple implementations of the differential evolution algorithm in C++ and python from the algorithm described in https://en.wikipedia.org/wiki/Differential_evolution .
## Dependencies
It requires the **Eigen** library for the C++ version, and the **numpy** package for python.
## Examples
### C++
The **Eigen** library is used to deal with vectors. The variable type `double` has been chosen to implement the algorithm, and the `Eigen::VectorXd` type is used for vectors.
If another type of variable needs to be used, such as a type in `boost::multiprecision`, the code can easily be adapted to use a template parameter instead of `double`.
The prototype of the function `differential_evolution_minimize` is the following :