What is pyIbex

pyIbexpyibex is set of python modules for solving nonlinear problems using Interval Arithmetic tools. It provides high-level functionalities such as Contractors and Separators programming.
Initially based on the core part of Ibex-lib, it aims at combining the flexibility of python with the speed of C++ algorithms.

Generic placeholder image

Get Started

Quick Install

To install pyibex enter in a terminal :

$ python -m pip install pyibex


If you don't have any python install or you faced troubles with your existing installation, we recommend using Miniconda. The download link and the installation instructions are available at miniconda website

See also Installation manual for more details.


To drawn results, we encourage to use VIBes-viewer which provides a simple and fast GUI tool for people working with intervals. The last releases for Window, OSX, and Linux are available here.


Do not forget to install the python interface with

$ python -m pip install vibes

The documentation and a quick introduction can be found here.

Example : set inversion of a non linear function.

Copy the code on the right into "example.py" and enter in a terminal:

# launch before vibes viewer
$ python ./example.py

You should get this figure which corresponds to set of all (x,y) such as f(x,y) < 0

from pyibex import *
from vibes import vibes
# define the function (x,y) -> sin(x+y)
f = Function('x', 'y', 'x*cos(x-y)+y')
# build the Forward / backward separator f(x,y) < 0
sep = SepFwdBwd(f, [-oo, 0])
# define the initial domain [-10,10]x[-10,10]
X0 = IntervalVector(2, [-10, 10] )
#initialize vibes display
# run the set inversion algorithm
pySIVIA(X0, sep, 0.1)

Next Step

Generic placeholder image

Read the documentation

Examples and tutorials

Generic placeholder image

Learn intervals with IAMOOC

a free MOOC focused on Interval Analysis with application to parameter estimation, robot localization and SLAM