Logo Mantella

An efficiency-focused, modern C++ library for analysing
and solving optimisation problems.

Download Get Started

Mantella is fast and scales with your (parallel) hardware
We are not in the 90’s, support of SIMD vectorisation, multi-cores and HPC are a given!

Mantella is built upon Armadillo C++, supporting 64 bit operation systems and speedups by
SIMD vectorisation (e.g. SSE2, SSE3, SS4 and AVX).

When compiled with MPI-support, Mantella automatically uses
high performance cluster algorithms, no need for source code changes.

Mantella is new, but easy to use and master
Mantella helps you being productive and lets you focus on your own application.

#include <mantella>

int main() {
  // 1. Setup the optimisation problem.
  unsigned int numberOfDimensions = 2;
  mant::bbob::SphereFunction optimisationProblem(numberOfDimensions);

  // 2. Run the solver.
  mant::HookeJeevesAlgorithm optimisationAlgorithm;
  optimisationAlgorithm.optimise(optimisationProblem);

  // 3. Get your result!
  std::cout << "bestParameter:\n" << optimisationAlgorithm.getBestParameter() << std::endl;

  return 0;
}

Mantella also provides a wide range of competitive, state of the art optimisation algorithms
and can easily be extended using functional programming.

Painless installation within a few minutes
Mantella is keeping a small dependency footprint,
only requiring Armadillo C++ and C++11.

git clone --depth 1 --branch master https://github.com/SebastianNiemann/Mantella.git
cd Mantella
cmake .
make -j 4
sudo make install

Install Armadillo C++, Install Mantella, Done!

Mantella has a permissive license
No need to be restrictive.

Mantella is licensed under the MIT license.

So, what are you waiting for?
Download Mantella and get started.

Download Mantella and Get Started