Progress on Mathemagix
Welcome | Download | Progress | Mailing lists | Contact

1.What has been done


  • Basic data types: symbols, lists, arrays, hash tables, etc.
  • 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.
  • Important operators and categories for systematic use throughout the project.
  • The Mathemagix glue facility, both for interpreters and functionality.

  • The basic interpreter: most control structures, declarations, function applications, loading files and dynamic libraries.
  • A rudimentary type system with overloading, implicit conversion and a first form of genericity based on the generic type.
  • An Emacs mode for Mathemagix.

  • Remote libraries packaging for quick installation and easy update.

  • Interfaces with Gmp and Mpfr.
  • Complexified numbers.
  • Intervals and balls for certified arithmetic.
  • Wrapper above intervals or balls for computable numbers.

  • Vectors, matrices and dense polynomials.
  • A start of modular arithmetic, algebraic numbers and quotient structures.
  • Skew polynomials.
  • Formal power series and a start of transseries and moulds.

  • Basic arithmetic on symbolic expressions.
  • Basic calculus: differentiation, substitution and an overly simple solver.

  • Some first and improvable routines for numerical matrices and polynomials.
  • Some basic utilities for holonomic functions.
  • First slow version of analytic functions and analytic continuation.
More packages are to be found in the Mathemagix root directory

2.What has to be done


  • Dispatch frequently used functions (addition, multiplication, etc.) from generic type.

  • Template types (as in an older version of the interpreter, which did not have generic types or implicit type conversion).
  • User definable types and modules.
  • Full exception system.
  • Higher level constructs such as (limited) generators, continuations.
  • Make the interpreter more efficient (byte-code?).
  • Writing a compiler (already in progress).

  • More semantics and several types of semantics for interval and ball arithmetic.

  • Asymptotically fast implementations for all basic operations on univariate (skew) polynomials.
  • Several versions of fast multivariate polynomials.

  • Basic differential and exterior calculus.
  • Efficient manipulation of exp-log expressions and Risch' integration algorithm.
  • Symbolic interfaces for standard data types, i.e. solve a differential equation using power series.

  • Systematic implementation of numeric and certified versions of standard data types.
  • Full library for holonomic and special functions.
  • Progress on the subject of effective analytic continuation.

3.How to help

Permission is granted to copy, distribute and/or modify this document under the terms of the GNU General Public License. If you don't have this file, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.