|
Note: This work has been partly supported by the
French ANR-09-JCJC-0098-01
Symbolic computation is usually associated with computer algebra systems
such as
In the recent years, appeared general purpose open source software such
as
to provide a coherent open source framework for the development and publication of efficient and stand-alone packages;
to provide packages, which implement in a very efficient way the elementary operations needed in algebraic and numeric computation;
to provide tools for the connection of these packages to other
interpreters, in particular to the
to provide a high-level programming language, adapted to mathematical computation, along with both an interpreter and a compiler for that language;
to provide high level user interfaces, based on external tools such
as TeXmacs (available from http://www.texmacs.org)
for a graphical front-end with high quality typesetting for
mathematical formulas and
Mathemagix is freely distributed mainly under the GPL license. It can be
downloaded from http://www.mathemagix.org. Automatic
configuration and building is ensured via either the
To achieve modularity and scalability,
To generate automatically the glue for the interpreter, the tool autoglue (also written in the
Most of the packages are written in C++, the remaining code is written
in the
This package contains the basics, that is data structures for symbols, lists, arrays, hash tables, etc. It also provides a system for generic objects. Parsers and pretty printers, together with a system for keeping track of locations in the source code and generating error messages are also available. Important operators for systematic use throughout the project and the glue facility, both for interpreters and functionality can also be found in this package.
It provides a C++ interface for extended arithmetic over integers,
over rational numbers based on
This package aims to provide basic routines on univariate
polynomials, series, -adic
numbers and matrices with state-of-the-art asymptotic time
complexities.
This package is dedicated to transseries and optimized computation on dense and sparse multivariate polynomials and series.
This package contains tools for effective analytic computation, including analytic continuation and manipulation of effective analytic functions.
This package provides basic linear algebra tools on dense
matrices, with any suitable coefficients (float,
double, long double, extended
precision, and modular arithmetic where it makes sense). Its
interface is fully compliant with the standard
The main tool provided by this package is a multivariate polynomial system solver, which uses the well known border bases technique for solving polynomial systems. It can compute a representation of the quotient algebra, and when the input system admit only finitely many solution, it can output numerical approximations of the roots, and a certificate for the precision of the root approximations.
Subdivision solvers for univariate polynomials using Bernstein or monomial basis representation are implemented here. This package also includes a very efficient univariate solver, which computes the continued fraction expansion of the real roots of a polynomial. Subdivision solvers for multivariate polynomials using Bernstein basis representation, sleeve approximation and preconditioner are also available in this package.
In this package, tools for the manipulation of polytopes
(represented by inequalities or by generators) and connection with
multivariate polynomial supports are available. The polytope
manipulations are based on the
This package provides data structures to manipulate algebraic curves and surfaces which are given by equations or by parameterizations. It also contains tools to compute, in a certified way, the topology of algebraic sets, arrangements, (self-)intersection curves of parameterized surfaces, singularities…
Other packages are still in development, for finite fields, symbolic expressions, asymptotic analysis, numeric homotopy continuation for polynomial system solving, and polynomial factorization.
The aim of the
It is strongly typed, with support for overloading, implicit conversions, generic objects, compile-time type checking and, possibly, built-in support for expression types which interact with the type system.
High level control structures, like coroutines, generators, exceptions, continuations, etc.
Besides achieving runtime efficiency of
Currently, a rather slow interpreter of only a part of the full
language, the mmxlight package, is provided. A compiler
and a new faster interpreter, written in the
It can be used within GNU TeXmacs as a primary graphical
interface. This offers a unified and user friendly framework for
editing structured documents with different types of content
(text, graphics, mathematics, etc.), including
interactive content such as
The program is connected to the algebraic-geometric modeler
Mmx] | use "asymptotix"; |
Mmx] |
x == infinity ('x); 1 / (1 + x + exp x) |
Mmx] |
|