Workshop on Open Source Computer Algebra
Report
by the organization committee:
Daniel Duparc,
Bernard Mourrain, Bernard Parisse, Fabrice Rouillier,
Marie-Françoise Roy, Nicolas Thiéry et Paul Zimmermann
June 17, 2002
There were
registered participants, and altogether about
participants, counting people who did not register or local auditors.
The average audience to the talks and to the day-3 discussions
was about
people.
Among the participants were 2 people from the USA, one from Australia,
and 3 from Germany, one from Ghana, one from Italy (the last two being
real participants, i.e. not invited speakers).
There were also 4 teachers from French ``Classes préparatoires'',
several persons from a French ``IREM'' (Research Institute about Teaching
Mathematics) mostly (but not only) interested in teaching problems with CAS.
- 14h
- Opening session (Bernard Mourrain).
Recall of the objectives of the workshop (state of the art of the existing
free systems in computer algebra, and discussion about a collaborative effort
for a free computer algebra system or platform).
- 15h
- Open source software, licenses, and legal issues (Bernard Lang).
Different forms of protection: (1) copyright (protects only the form, i.e.
text, not the idea, technique or algorithm that it implements);
(2) patent (to protect a particular technique, for example displaying a
cursor on a white or black screen using the xor function);
(3) industrial secret (not relevant here);
(4) trade marks (this is the basis for the free software economy: trade marks
make the real difference from modified version, for example between different
distributions of Linux, Mandrake, RedHat, ...).
About patents: people often patent (i.e. make public) only the trivial parts
of their systems, and keep secret the hard techniques.
For free software,
trade marks are the only way to guarantee the specification or content of a
given distribution.
Bernard Lang proposes the following model: first accept all open-source
contributions, then make the selection at the distribution level, with possibly
several trade-marks competing.
Parallel with the process for scientific publication: we are slowly going
from a ``select then publish'' process (first selection by editorial board
of a journal, then publication in the given journal) to a ``publish then
select'' process (first put your preprint on the web, then selections/reviews
are made by different groups).
What about the protection of languages? Bernard Lang: they are usually not
protected, since it is the best way to kill them (example of Simula 67).
Software licenses: remember the difference between a patent (forbids the use
of a technique, even for people who invented it independently) and a
copyright (only applies to a real program, and derived work).
A license is a way to give rights: (a) legal rights, and (b) technical
rights (relative to the source code for example).
Open Source: source code is given, and permission to use, modify, and
redistribute, plus no discrimination is made (if there is a restriction for
military use, or use by employees of Microsoft, then it is no longer an
open-source license).
Copyleft: same as open-source + additional requirement that
redistributed work remains under the same license (example the GPL, or
Gnu General Public License).
The BSD license has no copyleft item.
Bernard Lang: you should find a way to mix licenses, to have maximal
cooperations, and have the possibility to include components under
proprietary licenses.
- 16h30
- TeXmacs (Joris van der Hoeven).
GNU TeXmacs (http://www.texmacs.org)
is a graphical interface for computer algebra systems,
distributed under the GPL.
Joris van der Hoeven demonstrates its nice capabilities (for example
line-breaking facilities) and some interfaces with Axiom,
GIAC, MuPAD, GP, ...
Main features: a wysiwyg (what you see is what you get) editor which is
close to the mathematical notation, with an easy interface to computer
algebra systems (about 6 hours according to Joris van der Hoeven).
- 17h15
- GINAC (Richard Kreckel).
GINAC (http://www.ginac.de) is a free (GPL) system for the manipulation
of very large symbolic expressions (for example series), with mainly
applications to physics. It is distributed with Debian, SuSe and FreeBSD,
and interfaced with gTybald, pyginac, Symbolic Octave, Purrs.
The original motivation was the limitations of existing systems
(for example Maple V could not deal with polynomials/series of more than
terms).
Even new versions of proprietary software contain serious pitfalls that are
not fixed by the developers;
Richard Kreckel points out the Maple 7 bug of
that
simplifies to
.
Main feature: designed for very large and huge expressions.
- 17h45
- GIAC (Bernard Parisse).
GIAC (http://www-fourier.ujf-grenoble.fr/~parisse/giac.html)
is a free (GPL) general purpose
computer algebra system with interactive geometry. It is developed by
Bernard Parisse, and Renée de Graeve for the documentation.
GIAC is the C++ library, and XCAS the interface.
First target is educational (runs on small IPAC pocket-computer),
it is 2 years old, 70k lines of code (C++), built over
GMP and the C++ STL, compiled over Unix/Linux (x86, ARM) and
Windows, user interface with GNU readline.
Main features: an interface with Maple and MuPAD,
a symbolic step-by-step debugger, a localization for French and Spanish.
- 18h15
- Linbox (Pascal Giorgi).
Linbox (http://www.linalg.org) is a C++ library,
which is specialized for linear algebra computations.
It is built by people in Lyon/Grenoble (around Gilles Villard) and the
group of Kaltofen at North Carolina State University.
It contains about 40k lines of code.
Coefficients domains are external to the library (with wrappers), enabling a
common interface.
The overhead of wrappers for coefficients is rather small (a few percents
to maximum 20% on the given examples).
Example: take a
sparse matrix
, with
being the
th prime,
if
is a power of
, and
otherwise. Now compute
. Then
is a rational
with numerator and denominator of more than
digits, that Linbox
can compute in about 180 CPU hours.
A beta-version of Linbox is under development, but it is not yet
available, so its license is not yet clear.
Main features: it contains many optimized representations for matrices
(dense, column-sparse, global-sparse), and almost all classical algorithms
(Gaussian elimination, black-box algorithms).
- 18h45
- TRIP (Jacques Laskar and Mickael Gastineau).
TRIP is a software dedicated to celestial mechanics computation, which is
developed at ``Bureau des Longitudes'' in France (http://www.bdl.fr).
It is not (yet) distributed.
Mainly used to study the stability of solar system: Newton's equations
and relativity.
First approach:
about one page equations, step size about half a day, simulation
on 3 millions years takes 4 months.
With perturbation methods (secular equations): 150.000 monomials,
about 800 pages, human work about 500 years, simulation on
3 millions years takes
5 minutes, on 1 billion years takes 1 day (computation done in 1985,
with 500k memory).
Contains generalized power series with several variables, and
now a general algebraic manipulator: while, for loops, if-then-else, macros,
recursivity, different representations (dense recursive, sparse
recursive, block homogeneous, block d'Alembert, block Fourier).
Operations on series: derivation, integration, inversion, exponentiation,
fast evaluation, substitution, coefficient selection, ...
Coefficients: double-precision floating-point,
quadruple precision, rationals with
limitation, interval arithmetic with double or quadruple precision, ...
Matlab-like module, uses Gnuplot for graphs, communication with MathML 2.0.
About 140k lines of C, interface with bison/(f)lex, ensures portability.
Works under AIX, Tru64, Unix, Windows, MacOS, and uses BIAS 2.0a.
Main feature: special data representation for multiseries, that reduces
memory usage and simplifies computations, thus faster computations.
- 9h
- Objective Caml (Pierre Weis).
Objective Caml (http://caml.inria.fr/ocaml)
is a ML dialect developed at INRIA Rocquencourt.
It is distributed under the LGPL for the run-time system and libraries,
and under the QPL (Q Public License) for the compilers and tools.
It includes a run-time (interpreter), and a compiler, which can compile
both in byte-code or in native code.
The native code produced is as efficient as that obtained with
cc -O2, and somewhat more efficient than that obtained with
c++.
It could be a basis to implement a computer algebra system.
A question arises about the overloading of operators, for example
.
Main feature: very efficient and highly portable!
- 9h45
- SYNAPS (Philippe Trébuchet).
SYNAPS (http://www-sop.inria.fr/galaad/logiciels/synaps/)
is an environment for the integration of computer algebra components.
That project started in 1996 (formerly based on ALP), and is distributed under
the LGPL (GNU Lesser General Public License).
Main features: a bridge between different computer algebra systems and
specialized libraries (like GMP), but also numerical software
(for example LAPACK, BLAS).
- 10h45
- Scilab (Claude Gomez).
Scilab (http://www-rocq.inria.fr/scilab)
is a system for numerical/scientific computations (similar to Matlab).
It is distributed with source code, under a special ad-hoc license.
It is a huge system: 265k lines of Fortran, plus 200k lines of C, and
75k lines in the Scilab language itself.
A consortium will be soon created around Scilab, where industrials pay to
support the further development of the system, and participate through an
executive committee to the future of the system. In particular this
executive committee could propose to change the Scilab license to a ``more
open'' license like the GPL.
Main feature: only ``free alternative'' to Matlab, which is proprietary
and highly expensive.
- 11h30
- GAP (Alexander Hulpke).
GAP (http://www.gap-system.org)
is a system specialized for group theory. It contains an interpreter
with a Maple-like language. Since version 4.3, GAP is distributed under
the GPL. The distribution contains a huge database of groups.
Main features: Algorithms for algebraic structurs, efficient versions of
many basic algorithms, flexible type system for mathematics, a formal
process for the inclusion of new external contributions (GAP packages),
through some kind of refereeing process.
- 14h
- MuPAD 2.5 (Oliver Kluge).
Presentation of the new features of MuPAD 2.5 (http://www.mupad.de):
a new statistics package,
an interface with Scilab, the combinat package.
New graphics using a XML-based protocol.
MuPAD is not free in the sense of freedom to use, modify, and redistribute it,
although there is no charge for academic personal use.
Oliver Kluge suggests interesting possibilities to be considered
by the MuPAD developers to make the system more open:
the library could become open source (every MuPAD user has free access to
the whole library through expose(foo)), and the language could
become free (this means that it may be possible to develop a clone of the
MuPAD kernel).
- 14h45
- Magma (Allan Steel).
Magma (http://magma.maths.usyd.edu.au/magma)
is a general purpose computer algebra system developed at the University
of Sydney, by the group of John Cannon. It is the successor of the Cayley
system developed in the 1980's in the same group.
While Cayley was originally specialized in group theory, Magma is now a
general algebra system (number theory, linear algebra and matrices, lattice
theory, integer and polynomial factorization, ...)
Main features: includes very efficient implementations of state-of-the-art
algorithms (NFS for integer factorization, FFT for integer and matrix
multiplication,
and Kronecker for solving polynomial systems,
Xavier Gourdon's implementation of Schönhage's algorithm for approximating
roots of univariate polynomials), and has a nice object-oriented language,
near from the mathematics.
Magma is commercial mainly to support the group and the grants that allow
to invite researchers from all the world to implement their latest algorithms
in Magma. If another way to keep those revenues is found,
the system might evolve to an open source one.
- 15h30
- Axiom (Tim Daly). Axiom is the successor of Scratchpad
which was first developed by IBM starting in 1973. It was later sold
to the Numerical Algorithms Group (NAG). NAG stopped selling Axiom in
October 2001 and searched for someone to open-source the code. Tim
Daly proposed to take over Axiom under an open source
license. Discussions between IBM and NAG about license issues are
ongoing. Tim Daly is quite confident that someday Axiom will be open
source. (He already has the sources from NAG, and got some agreement
so that Joris van der Hoeven got a binary for his TeXmacs-Axiom
demonstration).
Tim Daly makes a classification of computer algebra systems in three
categories: (1) systems made by programmers, characterized with a
kernel (mostly in C++) and a library, for which the most important
issue is speed; (2) systems made by engineers, with a full
interpreter, for which the most important issue is that the results
are made to work regardless of correctness (e.g.
where
is a polynomial gives
as an integer); and (3) systems made by
mathematicians, with an interpreter and an algebra oriented language
that is based on theory.
Axiom represents 30 years of development (23 at IBM research) involving
70 people and a large code base. As a research platform Axiom was a
success but as a commercial platform it was a failure.
Tim Daly proposes several ways to motivate the development of free
software (1) Developing Academic degrees (BA in Computer Algebra or
open source) (2) Grants made to project moderators to pay per line
of accepted code (3) Awards such as a Schelter Award (4) Pay for
developing new features.
Tim Daly maintains a web page (http://home.earthlink.net/~jgg964/axiom.html)
with discussions about Axiom.
Main feature of Axiom: a new-generation system, closer to the
mathematics, with a huge man-year investment, but surely not a
commercial success!
- 16h45
- Maxima (presented by Marc Giusti, slides prepared together
with Annick Valibouze).
Marc Giusti also presented at the end of his talk some slides prepared by
James Amundson.
Maxima (http://maxima.sourceforge.net)
is one of the systems derived by the system developed at MIT
using MacLisp. Maxima was maintained by Bill Schelter, who obtained that
the US Department of Energy (DOE), who owned the rights of the original
Macsyma, did allow a free version named Maxima.
Since the death of Bill Schelter in 2001, James Amundson took over the
development of Maxima, and created a source forge project.
Main work currently is to clean the code and improve the installation
process (based on GCL, the GNU Common Lisp implementation, also maintained
by Bill Schelter).
A first development release will appear as Maxima 5.9.0.
The main goal is a ``rock-solid'' Maxima 6.0.
Main feature: currently the only system which is both general purpose and
open source.
- 17h30
- FOC (Renaud Rioboo).
FOC (http://www-calfor.lip6.fr/~foc)
is a system to develop certified computer algebra algorithms.
The language design looks that of Axiom. The main idea is to compile
each algorithm into the Objective Caml language, and the benefit from the
efficient Objective Caml compiler.
In parallel, the correctness of the algorithm can be checked using the Coq
proof assistant.
FOC is not (yet) available, a first distribution is expected at the end of
the year. The license under which it will be distributed is not yet clear.
Main feature: a solid foundation (like Axiom) with an addition a way to
certify the correctness of algorithms.
- 18h15
- PARI (Karim Belabas).
PARI (http://www.parigp-home.de)
is a system specialized for number theory. It is distributed under
GPL since 2000. It contains a run-time interpreter (GP) and a library
(libpari). The GP interpreter has a fairly simple script-like language.
PARI/GP contains some functions for symbolic computation (factorization
of univariate polynomials, truncated power series) but it is not
a general purpose system. Any expression is fully evaluated, for example
evaluates to the truncated power series at
.
A companion program, named GP2C, is developped by Bill Allombert;
GP2C is a compiler from a subset of the GP script-language to the C (libpari)
language, equiped with a wrapper around the system's build toolchain. It
transparently builds and loads shared modules, providing speedups up to a
factor of
on some applications without dealing with the intricacies of
C programming or Makefile writing.
The PARI arithmetic is used by several computer algebra systems, since it
implements multiple-precision complex floating-point numbers, and many
elementary and special functions: it is used by MuPAD (a version before 2000,
which was not under GPL), by Magma and at least by former versions of
GCL and Maxima.
One of the main objectives of the PARI group is to rewrite completely
the system, replacing its own arithmetic by GMP, with better-structured
source code, ...
Main features: fast, very portable (just requires that
sizeof(long) == sizeof(void*)),
contains a number of unique algorithms in algebraic number
theory, used by many researchers (also outside of number theory).
- 19h
- Singular (Gerhard Pfister).
Singular (http://www.singular.uni-kl.de)
is a system specialized for computations involving polynomials
(solving systems of polynomial equations, primary decomposition, computing
triangular sets, ...)
It has been distributed under the GPL license for 2 years.
A new software dealing with non-commutative algebra will be called Plural.
- 9h
- g++ (Gabriel Dos Reis).
Gabriel Dos Reis detailed the development model of g++, and the future
directions of the compiler and tools.
He is quite confident in the future of g++ since it has
many users, even in the industry. The maintenance is active
and effective.
- 9h30
- ACE, mu-EC, mupad-combinat (Florent Hivert).
Florent Hivert described a set of tools for combinatorics, developed
at University of Marne-la-Vallée and University of Lyon 1.
These packages have a long history and were fist developed with
Maple. However some problems are to be solved, in particular the
maintenance of packages like ACE when the main authors go to industry.
- 10h
- Main discussion.
- Talk by Fabrice Rouillier
- Objectives of the workshop
- study the feasibility of a free CAS.
- list requirements for a CAS or a set of CAS (from scratch or existing)
- state of the art.
- The workshop
Presentation of : dedicated libraries, dedicated or general systems,
programming languages.
Comments:
- constraints of development (objectives, research/code production,
users requirements, technical choices, collaborative
development, ...).
- project management (financial constraints, initial/current
objectives, licenses, ...).
- missing components (interfaces, graphical tools, ...).
- The next step
Are there realistic choices [according to the requirements]?
Who, when, where, how?
- Potential users and their needs
- students, teachers, professors : user friendly, easy to learn,
robust, illustrated documentation, ...
(leads to library system).
- researchers : powerful computation, powerful mathematical
programming, flexible
(leads to theory-based system).
- industry : documentation, hot-line, maintenance, robustness
(leads to engineering system).
- Gabriel Dos Reis:
We want something working. For example, many old Maple
programs no longer work.
- Tim Daly:
- Tim Daly:
A theory based system permits the transfer to engeneering systems.
Aldor will eventually be able to generate Maple-code.
- Richard Kreckel:
Isn't Maple a sloopy/bad system? We must take in count sloopyness.
- Alexander Hulpke:
In the development of GAP we've encountered several times problems
stemming from sloppyness (for example unique zero)`. People can deal
with ambiguities, computers are not that intelligent.
- Joris van der Hoeven:
Success of Mathematica/Maple has not something to do
with sloopyness, but with the price of Axiom.
Axiom was too expensive, not targeted at commercial usage,
needed support.
There is a possibility of a theory-based system with a
toplevel which is
closer to the user/more flexible.
Theory-based system are more scalable and more robust.
- Richard Kreckel:
Doesn't the algebraic approach get in the way when developing a sloppy
system?
- Allan Steel:
Coercion is the biggest issue! We try to provide [in Magma] many automatic
coercions.
The question is also how much we gain: usable system, theory based system?
- Joris van der Hoeven:
It is not true that mathematical rigor is contradictory with easyness
to use.
One can imagine two levels: one theory-based development-level,
and one exported level with a nice user-interface
- Discussion on a collaborative development
- Technical points. Front end: strong kernel or
light mathematical shell?
- Tim Daly:
- Tim Daly:
Cf three-system category in Tim's talk (made by programmers,
engineers, mathematicians).
- Gabriel Dos Reis:
If you look at existing software, started from very monolithic, now
plug and play: for a CAS to be successful, give the possibility to
extend the system to the user by a sort of glue.
- Alexander Hulpke:
It will have a strong impact on this!
One have to choose between long years of development
followed by the release of a complete software or
one can use initially existing software, then later
replace them by new or nicer one.
- Joris van der Hooven:
I agree, but I would like to know how much time people would be ready to
spend to develop glue code? For TeXmacs for example,
1/3 of the people reply to proposals, but only 1/6 of
the people really do the job!
- Gilles Kahn:
Will you believe what people will answer?
- Tim Daly:
Two comments:
1 - in any project, assuming that more than two people help,
there will need to be a list/graph maintained of the priorities, on
some website ? Ex: I want to interface to Texmacs.
2 - this community has no choice but to take an existing system
Axiom since 1973, GAP 1984, Cayley 1970, ...
extremely difficult to develop a new system.
- Daniel Duparc:
About finding contributors: the main problem
is documentation of the source code (example of TeXmacs and Maxima).
- Alexander Hulpke:
Must be some incentive that we help the glued system
must be well documented, how to interface it.
- John Abbott:
It is the good time to mention OpenMath, which in theory supplies
the glue.
- Jacques Laskar:
I would have liked to find a system able to access types at
a very low level, a light kernel with a language allowing to use it
completely and to design specialized routines. Existing languages
will not allow to access to the very low level.
- Gabriel Dos Reis:
We are at a point where we want to redesign the language!
It is difficulty to start from existing
language (standards/evolution)?
- Renaud Rioboo:
If you think to redesign a language? CAS languages are not very
adapted.
- contributions :
- internal libraries programming language
- external libraries/modules, IPC (specifications)
- diffusion: cvs server, ftp, cdrom?
- Tim Daly:
Is it possible that French code is not public?
- Gilles Kahn:
Yes, if the employeer does not agree (it is the French law).
- Joris van der Hoeven:
We need an explicit agreement from our employeer.
- Bill Allombert:
Lots of developers of specialized system, make a library
with a small interface to incorporate all existing stuff?
- Project management
Rules for contributions: referee process (as for scientific publication)?
- Joris van der Hoeven:
Very important from the institutional point of view to have not only
the scientific publication, but also the evaluation which comes with
it, with free documentation.
- Tim Daly:
Raising the issue of interaction between free software and scientific
publication: both can learn from the other. We need to develop methods
of reviewing software and standards for publication.
- Richard Kreckel:
This is a non-issue. Just don't sign the copyright agreement.
- John Abbott:
ACM Transactions on Math. Soft. for numerical software.
- Tim Daly:
Open source projects are generally controlled by a single moderator.
Contributions are made to a moderator. Later when people have shown
that they can be trusted and show good judgement people certain
developers are given write acces to make changes.
- Gabriel Dos Reis:
People contribute to g++, then formal review before check in.
- Michel Lavaud:
What about a central archive where everybody can see every information
about any software?
For quality control and tests, documentation: a small committee for
inclusion of contributions?
- Joris van der Hoeven:
Inclusion of contributions does not always need to pass through a formal
process (example of documentation).
- Tim Daly:
Quality control and test issues; we need standardized test suites
(ex. between Axiom and MuPAD). Test suites need to be validated by
mathematicians We also need license compatibility.
- Discussion about long term development
- knowledge transmission
- manpower + long term contracts/permanent positions!
- Presentation by Gilles Kahn (scientific director of INRIA):
- Building a new system : is it a good idea ?
- Macsyma, Maple, MuPAD, Magma, Axiom/Aldor and their history; also Matlab,
Scilab: why is their history so similar, with strengths and
weaknesses?
- but specialized system as well (GMP, RS, Pari, etc)
- remembering previous collective efforts: European projects, not very
successful, can we do better another time?
- is there a (latent) demand? volume, nature? our demand to be able to do
more research? education?
Physicists? Engineers? People so unsatisfied of Mathematica/Maple?
Can we change the education system?
- what is the "vision" in this area? marketing effort (ex. Java)?
- Building a new system: is it a good idea for us in research?
- big plunge, chain gang, motive for quarreling?
- cost, control of investment?
- international impact, individual recognition?
- ability to motivation many, trump cards, pitfalls
- vehicle for new scientific advances, new partnerships?
Does it leads to mandatory vehicle for our research?
How we will convince new researchers to join?
- Technical and organisational challenges
- original sufficiently ambitious technical objectives
(interfaces) ?
- licenses, agreement among partners
- any effort implies that people involved agree to open their work
- some of the sub-libraries are of commercial interest
- forgive the royalties income for researchers?
- coordination, communication, open structure
- system issues (Windows), technical strategy
- incrementality (big plunge with no result for 2 years?, or incremental
results?) Anybody waiting for Godot (Good Axiom)?
- survival through time, versions
- measuring success, how to control allocation of resources?
By number of people, licenses? 70 customers?
- Tim Daly:
Copy of the slides? We had this discussion about success when Axiom
being sold. Long term vision: the CA community is attempting
to define and develop a notation for math which is effective.
If I can take Barry Trager's thesis on integration and
integrate it, it's written down in a way which is usable by
many people, and will still be there in 15 years.
- Gilles Kahn:
You try to appropriate mathematics.
- Frédéric Lehobey:
Almost all the important question, except the cost.
You examine costs for the
researchers community to build such a system, but there
is also the cost of not having it.
What would be the cost for not having libraries, a review system?
The main reason I did not follow an academic carreer is that I missed
a free CAS (lack of cooperation in the computer algebra community).
It's only a question of time that a free CAS will exist,
with or without this community.
- Gilles Kahn:
If you can argue that not having it prevents scientific advances, it's ok,
but this argument is difficult to defend. You have to prove that you
can do it! The situation is indeed not so good, but it's the same as
in scientific computation.
- Fabrizio Caruso:
Logical system embedeed in the CAS? (to give proofs).
- Joris van der Hoeven:
I misses the moral/philosophical point of view. Science is sharing
knowledge, making knowledge public.
- Gilles Kahn:
My problem is to allocate resources, I have many demands, I have to make
choices.
- Discussion about technical points
- Joris van der Hoeven:
Different strategies : build a new language, or reuse existing ones:
we can do both!
Main objectives:
- look what exists? Corba, OpenMath/MathML/XML, RPMs, Debian packages,
WebMath, ...
- scalability: to plug-in as many systems as you want.
- communicate: upgradability and transitivity of the protocol(s).
Upgradability: if you change the system, you have a new version.
Transitivity: if you have a good interface between A and B, and a
good one between B and C, then you get a good one between A
and C
- simplicity: when I looked at OpenMath, I wanted to have the same
thing in TexMacs, but when I looked at the documentation...
OpenMath is an order of magnitude too complicated.
- expressive power (we are mathematicians!)
- efficiency
- genericity/encapsulation
- dynamic: you have some kind of central system, and you can connect
another system for it at runtime
- Gabriel Dos Reis:
Ask language designers to give us inputs!
- scalability implies a good and flexible type system, so
we should ask
experts in type systems
- be careful not to let language experts give us something very
powerful, but not implementable!
- dynamic and efficiency may be conflicting
- scalability also from the system's point of view
- we should also be realistic
- dynamic loading: cf ELF format
- John Abbott:
OpenMath could in theory respond to some of the requirements.
- was chief technical designer of OpenMath
- somewhat disatisfied, but still believes in it
- my aim is to create a language to exchange mathematical
data between
computer processes (not humans):
not designed to be easy
to read. Aims to preserve the semantics.
Basic concept is
that math. objects (directed acyclic graphs for example) are
linearized, and transferred in ascii/binary mode.
Four types of internal nodes, several leaves.
It is easy to criticize OpenMath. They have done a number of
mistakes. Concept of a broker: a system that dispatches
requests (computation orders) then either simplify, or print,
or numerically integrate, factor, ...
Experimental work in CoCoA and the GAP group.
I would take what they have (for example polynomial content
dictionary), then revise it (6 months), and let them decide
if they modify it or not.
It's very much under development. I would like to encourage
people here to write.
- Renaud Rioboo:
This is the only structured system (with several presentation
levels for mathematics) I know, whereas Corba et al. are brokers.
- Gilles Kahn:
Relation between OpenMath and MathML?
- John Abbott:
Non empty intersection. There exists also Content MathML.
MathML is more oriented to display, Content MathML to semantics.
- Alexander Hulpke:
MathML was designed to display maths in the web.
- Gilles Kahn:
This implies the system communicate through a standard
representation, versus different protocols between different
components then different layers.
- Discussion about interoperability (between components, good plotting interface)
- we need specialists (languages)!
Not only take them system, but talk
with them (real cooperation).
- type system
- modules
- interface levels
- and requirements list (smaller basic requirements) / user interface
- Gilles Kahn:
Performance: not all buses are able to send message at a high
rate.
- Tim Daly:
Message from the French community: ability to keep their mathematics
(example of code given to Maple and lost). Control of the
packages that people add (to keep them open in the long
run). Packages need to be associated with researchers for
valorization.
- Nicolas François:
Different levels of computation (interpreter, compiler).
- Richard Kreckel:
Double work for interpreter/compiler?
- Gabriel Dos Reis:
Yes and no. Depends on the architecture. Link against the library to
get a interpreter.
- Michel Lavaud:
It would be useful to have well-documented code (weave).
- Loïc Tessier:
Future users still need to have intuitive/easy-to-use interfaces.
- Michel Lavaud:
Different packages for different users (ex. student in Maple).
- Gilles Kahn:
Needing machine more than 4GB and more than 64 bits of memory address?
Octoprocessors on their desk, grid computing. Include control:
invert a matrix on the grid without specifying processors. Ability to
stop a system that is running.
- Richard Kreckel:
Possible out-of-core computations.
- Gabriel Dos Reis:
Distributed computations are possible.
- John Abbott:
The correctness is an important issue.
- Tim Daly:
Well-known test suites exist and have been used to test Axiom.
We need good test suites.
- Gilles Kahn:
Do you want proviso's issue? (... provided x <> 0)
- Discussion about teaching and free computer algebras
- Daniel Duparc:
I had the project to have a discussion on this issue.
Time did not permit it. At least, I was able to read a letter
from Michel Mizony about the special French needs in a near future.
We intend to be able to make intelligent proposals to the French
government.
Perhaps discussions in the future list will give brilliant ideas!
- End of discussion
- Tim Daly:
How do we continue?
- control of what is done/included
- manpower
- valorisation
- decisions / making sure boring stuff gets done
- mailing list provided as a mailing-list address
- name of the project/mailing list: two proposals are made,
FIASCO (French and International Initiative to Activate
Symbolic COmputation) ;-)
and OSCAR : (Open Source Computer Algebra Resources)?
- the Medicis center (represented by Marc Giusti)
can offer free access, to maintain all the existing free software,
and the mailing-list fiasco@medicis.polytechnique.fr or oscar@medicis.polytechnique.fr
- the group of organizers will propose a report of the workshop
- A steering committee will be composed of Joris van der Hoeven,
Tim Daly, Paul Zimmermann,
Gabriel Dos Reis, Michel Lavaud, Fabrice Rouillier.
- A next meeting is planned in September or October.
This workshop did bring together many people interested in free computer
algebra software, and people from different fields of computer algebra
(number theory, combinatorics, linear algebra, group theory)
who did not know each other previously.
The state of the art objective was successful, in so far that most participants
did not know all the systems presented at the workshop.
Even some possible collaborations between existing systems did appear during
the workshop: there were some discussions between MuPAD and GIAC,
which share common interest for the school market and PDAs;
also GAP plans to use the GMP library and may use the MPFR
library for its large integer and floating-point computations
Most speakers invited to present a software did really answer to the questions
asked by the organizers: What makes the strength of your system? What are its
weaknesses? What development model was used? What difficulties were
encountered? Why did your system succeed or fail? What is the future of your
system? Are you ready to distribute your system under an open source license?
There were some really great moments during the workshop: when Tim Daly
remembered to everybody his friend Bill Schelter's memory,
and when Gerhard Pfister did a demonstration of one of the
first versions of Singular, from the 1980's, using a Sinclair's computer
emulator!
A special thanks to Tim Daly who made and brought with him 60 copies of
a Rosetta-stone CDROM with Aldor, CoCoA, GAP, GCL, GIAC, GINAC, GMP,
GnuPlot, Maxima, MPFR, NTL, Octave, Pari/GP, Gnu Readline, Scilab,
Singular, TeXmacs, Yacas, and a file explaining how to define a matrix
in each system.
Questions were numerous after the talks, and the chairman often had to stop
them or delay them to the coffee break or the lunch or dinner, to be able to
go on with the next presentation!
One of the aims of the workshop was to push existing non-free systems to
become (more) free. This was successful since Oliver Kluge
seemed not uninterested by making MuPAD more free.
Some main computer algebra systems that were not presented at the workshop
are Maple and Mathematica, since we thought those systems are more commercial,
and it would be harder for them to evolve towards a free system.
However the possibility of developing clones of these systems should be
considered, or developing front-end interfaces for those systems (this may
solve the problem of switching to a new language). However legal
issues carry great problems, to be considered carefully.
However,we are currently only in a preparation stage; so we
don't want to discard potential approaches and collaborators too
early.
Among the specificities of the domain is the fact that the user
community is fairly thin, especially if we look for power users and
potential contributers. This is mainly due to the simultaneous
requirements for mathematical knowledge and programming experience,
and to the fact that researchers often cannot afford to spend time on
user interfaces/maintainance/... out of the scope of their research
interests because this is not "rewarded" by their employers.
Please don't see these final conclusions
as some kind of contempt w.r.t. the rest of the
world; it just comes from the practical experience
of some of us of several GPL
projects like PARI who have a fairly large user base ( 10 000), but
still don't really get any external contributions.
Also teaching problems were not really discussed. They are often
very dependent of the country. Maybe the future discussion list
will permit exchanges and new ideas from different countries.
Another point was that the presented softwares (and discussions) were more
centered about algebra than analysis (or 'calculus' at large).
It was pointed out by Gabriel Dos Reis that FIASCO is yet
the name of a project under GPL. So we have to avoid
this name!
The real work of the steering committee didn't begin yet.
However Tim Daly had recently a very positive idea.
Here is his email announcing a new mailing list devoted
to Open Source Computer Algebra Systems (published,
of course, with his permission):
Date: Tue, 4 Jun 2002 23:21:35 -0400
Subject: [oscas] Open Source Computer Algebra Systems Mailing List
As a result of the Open Source Computer Algebra conference in Lyon
in May, 2002 we have decided that there needs to be a list of
requirements gathered for an open source computer algebra system.
The purpose of this mailing list is to discuss and distill a list
of requirements. You are invited to participate if you wish.
There are 3 different communities that need to be served by such
a system (or group of systems).
First is the education community. We need to collect requirements
related to the teaching of computer algebra or teaching with a
computer algebra system.
Second is the engineering community. We need to collect requirements
related to using a computer algebra system across many disciplines.
Third is the mathematics community. We need to collect requirements
related to doing research in mathematics.
Discussions of existing systems provided they highlight a particular
requirement.
Proposals for new features or future systems are appropriate provided
they highlight a particular requirement.
It is expected that this information will be used for setting
direction and prioritizing work in current systems. It will also
be used to propose new work to funding agencies on existing or
future systems. These requirements will also form the basis of
discussion at the next open source computer algebra conference.
To subscribe to the list send email to LISTSERV@ACM.ORG
with one line in the body:
subscribe OSCAS FirstName LastName
Once you have subscribed you can send mail to everyone by sending
mail to OSCAS@ACM.ORG
Tim Daly
daly@idsi.net
Workshop on Open Source Computer Algebra
Report
This document was generated using the
LaTeX2HTML translator Version 2K.1beta (1.62)
Copyright © 1993, 1994, 1995, 1996,
Nikos Drakos,
Computer Based Learning Unit, University of Leeds.
Copyright © 1997, 1998, 1999,
Ross Moore,
Mathematics Department, Macquarie University, Sydney.
The command line arguments were:
latex2html -no_subdir -split 0 -show_section_numbers report.tex
The translation was initiated by Duparc Daniel on 2003-01-17
Duparc Daniel
2003-01-17