Fabrice Rouillier

Research Director · Inria Paris research center

Algorithms are only useful once implemented. The critical operations (real root isolation, Rational Univariate Representation) are written in C; higher-level objects (discriminant varieties, curve topology) in Maple, calling the C layer. A long-term collaboration between Inria and Waterloo Maple Inc. (2006–2010, and since 2016) brings these tools to a wide audience: they are part of the official Maple distribution.

C-libraries

  • RS (sole developer): real root isolation for algebraic systems with rational coefficients and finitely many complex roots. About 200,000 lines of C, CeCILL licence. Part of Maple since version 11 (2006); used indirectly by solve and directly through:
  • RS3 (sole developer): experimental open-source successor of RS for some functions, without any Gröbner engine (about 20,000 lines, CeCILL). It contains the complete bivariate solver used as the algebraic engine of ISOTOP, and multi-threaded variants of several algorithms.
  • RS4 (sole developer): experimental bivariate solver. See the prototypes.
  • MPFI (contribution: the first version, with the basic operations and comparisons, extracted from RS): multi-precision interval arithmetic based on MPFR, LGPL. Widely distributed, including in Linux distributions.
  • ANewDsc (contribution: architect, adaptation of RS and RS3 routines; with A. Kobel and M. Sagraloff): real roots of polynomials with real coefficients, mixing Descartes' method and Newton iteration, with near-optimal complexity. Part of Maple since Maple 2019.
  • usp.c: a collaborative open-source, simple variant of Descartes' method for univariate polynomials with rational coefficients.
  • UDX: Universal Data Exchange — a binary protocol.

Maple-libraries

  • DV (contribution: the first prototype, generic case including the open CAD): real roots of parametric algebraic systems through discriminant varieties. It became the Maple package RootFinding[Parametric], part of Maple since 2009.
  • ISOTOP (contribution: the bivariate solver based on RS3 and the Maple interface): topology of real plane algebraic curves.
  • SIROPA (contribution: early versions of the computational tools, geometric modelling and interfaces with algebraic tools): modelling, analysis and design of mechanical manipulators — our main tool for studying mechanisms, including in industrial collaborations.

PACE software

The PACE laboratory gathers our current developments in a single ecosystem:

  • PACE.jl (contribution: architect and contributor) — the main Julia package, integrating all PACE components;
  • LACE — C library for the certified solving of polynomial systems: RUR, real root isolation, bivariate systems, interval Newton and Kantorovich tests, in multiple precision. Available in Julia through LACE.jl and in Maple through LACE for Maple (RealSolving and RS4);
  • RS.jl, MPFI.jl, PWPoly.jl — wrappers for root isolation and plotting, interval arithmetic, and complex root finding;
  • PaceRobots.jl and PaceControl.jl — tools for robotics and control theory built on the core algorithms;
  • UDX.jl — exchange of Julia results with Maple and MATLAB, through the UDX C library below.

Julia-libraries

Transfer

  • Waterloo Maple Inc. — 2006–2010: integration into Maple of libraries from the SALSA team (FGb by J.-C. Faugère, RS, RagLib by M. Safey El Din, DV by G. Moroz), the first integration of external low-level code sharing dynamic libraries with Maple. Since 2016: a broader collaboration including joint prospective work and external developers (ANewDsc; a complex root isolator by R. Imbach and G. Moroz).
  • Safran Electronics & Defense — contracts since 2021 (design of parallel robots for line-of-sight stabilisation, certified simulation of their control, with D. Chablat), which led to the joint laboratory PACE: robotics, robust control and geolocation, with CIFRE PhD students.
  • CMW Marioni — 1997–2002: diagnosis and correction of the control of a parallel machine-tool robot designed by J.-P. Merlet, through the PhD of L. Rolland.
  • Patents — see Activities.