## Section: Software

### Mathemagix , a free computer algebra environment

Participant : Bernard Mourrain.

algebra, univariate polynomial, multivariate polynomial, matrices, series, fast algorithm, interpreter, compiler, hybrid software.

Mathemagix is a free computer algebra system which consists of a general
purpose interpreter, which can be used for non-mathematical tasks as well,
and efficient modules on algebraic objects.
It includes the development of standard libraries for basic arithmetic on
dense and sparse objects (numbers, univariate and multivariate polynomials, power series,
matrices, etc., based on FFT and other fast algorithms).
These developments, based on C++, offer generic programming without losing
effectiveness, via the parameterization of the code (*template*) and the
control of their instantiations.

The language of the interpreter is imperative, strongly typed and high level. A compiler of this language is available. A special effort has been put on the embeding of existing libraries written in other languages like C or C++. An interesting feature is that this extension mechanism supports template types, which automatically induce generic types inside Mathemagix. Connections with gmp, mpfr for extended arithmetic, lapack for numerical linear algebra are currently available in this framework.

The project aims at building a bridge between symbolic computation and numerical analysis. It is structured by collaborative software developments of different groups in the domain of algebraic and symbolic-numeric computation.

In this framework, we are working more specifically on the following components:

realroot : a set of solvers using subdivision methods to isolate the roots of polynomial equations in one or several variables; continued fraction expansion of roots of univariate polynomials; Bernstein basis representation of univariate and multivariate polynomials and related algorithms; exact computation with real algebraic numbers, sign evaluation, comparison, certified numerical approximation.

shape : tools to manipulate curves and surfaces of different types including parameterised, implicit with different type of coefficients; algorithms to compute their topology, intersection points or curves, self-intersection locus, singularities, ...

These packages are integrated from the former library Synaps (SYmbolic Numeric APplicationS) dedicated to symbolic and numerical computations. There are also used in the algebraic-geometric modeler axel .

Collaborators: Grégoire Lecerf, Joris van der Hoeven and Philippe Trébuchet.