Getting started

Compiling and installing ESKit

The ESKit source is available at https://github.com/marmakoide/eskit

Clone the repository:

git clone https://github.com/marmakoide/eskit
cd eskit

The compilation and installation rely on Waf, and is likely to be extremely simple. You just need to have Python 3 installed, nothing more.

./waf configure
./waf build
./waf install

To change the destination directory (/usr/local by default), use the –prefix=DIR argument at the Waf configure step.

./waf configure --prefix=DIR

If you want to uninstall what have been installed, just do

./waf uninstall

LAPACK support

ESKit can optionally rely on LAPACK to compute the eigenvalues and eigenvector of a real symetric matrix. It’s used in the CMA Evolution Strategy, by far the most expensive part of the algorithm. First of all, the LAPACK code is definitly more robust to numerical imprecisions than the default implementation provided in ESKit. Furthermore, if you use optimized version of LAPACK, as the one provided by CPU manufacturers, you might get a significant speed increase.

The LAPACK library is assumed to be in /usr/lib. The Waf configure step becomes

./waf configure --use_LAPACK

Compiling programs that use ESKit

ESKit involves one C header file, eskit.h, so it’s enough to put the line

#include <eskit.h>

in the beginning of every source file that uses ESKit.

There’s also just one library to link with, libeskit. Compile and link the program as follows:

cc -o prog prog.c -leskit

If you compile ESKit with LAPACK support, proceed as follows:

cc -o -DUSE_LAPACK prog prog.c -leskit

There’s also support for pkg-config, which handle such issues transparently:

cc -o prog prog.c `pkg-config --cflags --libs eskit`