Skip to content


Choose a tag to compare
@gchabert gchabert released this 08 Sep 19:27
· 15 commits to master since this release

Release notes v 2.8.8

Main changes

  • cmake: the compilation of ibex with cmake has made significant progresses. Now it works well under linux and MacOS both in static/dynamic. It also works under Windows but the LP library cannot be set yet. Note that binaries for Windows are now also periodically published. With cmake, plugins become packages and are installed differently, as separate libraries. See the installation documentation. However, the java, sip or affine plugins are not yet ready to be compiled with cmake.

    waf is still the official way to compile ibex.

  • project organization. Plugins have been moved to different repositories. The global optimization has been reintegrated into the core library. There is no ibex-optim plugin anymore.

  • new symbolic simplification engine. Now there is an option --simpl in ibexsolve and ibexopt that allows to choose the "level" of symbolic simplification. The new engine is more powerful as it allows to merge equivalent terms in a polynomial of expressions. Unfortunately, the process can be slow (and even blowup if you chose the full-developing variant) and part of the DAG structure may also be lost. Which means that the running time may be worse, even if we leave aside the symbolic processing time.
    For these reasons, the default simplification level (=1) in ibexsolve and ibexoptcorresponds to the old algorithm, which has been slightly improved.

  • mutable constants. Now, if you precede a constant by a star '*' in a Minibex file, e.g.,

     * x = 1;   // ---> mutable constant
       y = 2;   //        regular constant

    the constant is accessible in c++ and can be dynamically changed! See the System::constant(char*) function. But be aware that a mutable constant also hinders the simplification process... to be used with parsimony!

  • definition domain. It is possible now to generate from a Function object the system that characterizes its definition domain. See #456

Minor changes

  • important bug fixes in ibexsolve (#470) and operator& (#463)
  • Fix COV format id/version mixup
  • Fix of a bug when comparing expressions with mutable constants
  • Fix #468, #454, #425, #452, #450, #446
  • Fix #437. The "infeasible" return status of ibexopt also includes the case of all feasible points outside the definition domain of the goal function. See the discussion (in French)
  • iterators for Array, Map keys with template type