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
solveand 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
- DiscriminantVariety.jl (contribution: architect): Julia version of DV, solving parametric algebraic systems.
- RationalUnivariateRepresentation.jl (contribution: architect and contributor)
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.