|
Progress on Mathemagix |
|
1.What has been done
-
Basix
-
-
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.
-
Mmxlight
-
-
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.
-
Pack
-
-
Remote libraries packaging for quick installation and easy
update.
-
Gnumerix
-
-
Interfaces with Gmp and Mpfr.
-
Complexified numbers.
-
Intervals and balls for certified arithmetic.
-
Wrapper above intervals or balls for computable numbers.
-
Algebramix
-
-
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.
-
Symbolix
-
-
Basic arithmetic on symbolic expressions.
-
Basic calculus: differentiation, substitution and an overly
simple solver.
-
Analyzit
-
-
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
-
Basix
-
-
Dispatch frequently used functions (addition, multiplication,
etc.) from generic type.
-
Mmxlight
-
-
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).
-
Gnumerix
-
-
More semantics and several types of semantics for interval and
ball arithmetic.
-
Algebramix
-
-
Asymptotically fast implementations for all basic operations on
univariate (skew) polynomials.
-
Several versions of fast multivariate polynomials.
-
Symbolix
-
-
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.
-
Analyzit
-
-
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
-
Suscribe to the developers mailing lists and
participate to the design of the language and the elaboration of
good strategies for writing the compiler.
-
Write interfaces for standard mathematical (or other) libraries.
-
Help developing the standard libraries.
-
Help us writing a compiler for Mathemagix.
© 2003–2005 Joris van der Hoeven
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.