ibex-team / ibex-lib

IBEX is a C++ library for constraint processing over real numbers.
http://ibex-team.github.io/ibex-lib/
GNU Lesser General Public License v3.0
67 stars 51 forks source link

Build Status Build status

ibex-lib

IBEX is a C++ library for constraint processing over real numbers.

It provides reliable algorithms for handling non-linear constraints. In particular, roundoff errors are also taken into account. It is based on interval arithmetic.

The main feature of Ibex is its ability to build strategies declaratively through the contractor programming paradigm. It can also be used as a black-box solver.

Two emblematic problems that can be addressed are:

Copyright: This software is under GNU Lesser General Public License.

Documentation

The documentation is available here

Credits

The Ibex project started in 2007. It grew up after various prototypes developed by Gilles Chabert during its thesis and was mainly developed by him during his tenure at IMT Atlantique in LS2N (UMR 6004) between 2008 and 2018. It is in standy-by since 2020.

Some people brought great help, in particular Luc Jaulin (UMR 6285, ENSTA Bretagne), Gilles Trombettoni (UMR 5506, Univ. Montpellier) and Alexandre Goldsztejn (UMR 6004, CNRS) for the underlying concepts and algorithms, Bertrand Neveu (UMR 8049, ENPC, Paris) for the development of global optimization routines and benchmarking, Cyril Bouvier (UMR 5506, Univ. Montpellier) for the Python installation scripts.

Some people also contributed by developing plugins, such as Jordan Ninin at UMR 6285 (affine arithmetic), Antoine Marendet at UMR 6004 (semi-infinite programming), Benjamin Martin at UMR 6004 (parametric continuation)... Plugins come as separate Github projects, see ibex-team for a more comprehensive list.