On 11/4/06, Yigal Weinstein <yigal.weinstein at gmail.com> wrote:
> I mainly asked about the CLISP error to get an idea from programmers how
> usual these errors are. From Sen's and your response I see they are
> quite usual. I am personally trying to find useful applications of CAS
> to what historically has been numerical problems of the 1960s i.e.
> FORTRAN code for solving quantum few body scattering problems using NAG
> and other software. That is trying to replace a little bit of the
> number crunching with some intelligent code. It is just discouraging to
> see something like sin(7.25pi)=0 and realize how far it could be for
> practical use.
I share your frustration. We're doing what we can to close the gap,
but there are still a lot of bugs in Maxima.
Apropos of nothing here are some sources of errors in Maxima.
(1) Bugs in Lisp. For historical and political reasons, there are many
implementations of Common Lisp. Each one has its idiosyncrasies.
In the case of Clisp: for portability, they have implemented all of the
IEEE 754 operations in software, and, to the best of my knowledge,
implemented functions such as sin, cos, tan which might otherwise
be obtained from a C library. I reported this sin(7.25pi)=0 bug to their
bug tracker, and that's really all I'm willing to do with Lisp bugs;
there's only so much time in a day.
That said, I chose to post Clisp binaries to the Sourceforge file
manager because Clisp seems less idiosyncratic than the
alternatives. If anyone is inclined to quibble on this point,
I invite them to construct binaries using whatever Lisp
they like best & post them somewhere. We'll put a link on
the Maxima ports page.
(2) Bugs in major subsystems in Maxima. Limits, integration, and
Taylor series all have a lot of bugs. These are mostly more or less
independent of other parts of the system, so it seems possible that
someone could revise or replace some parts of the code and fix
a lot of those bugs without affecting other parts too much.
(3) Minor bugs scattered throughout Maxima. These are sometimes
easier to fix, sometimes harder because of interactions with the
rest of the system (e.g., bugs due to widespread use of special
(global) variables, assumptions about the structure of expressions).
Doubtless I'm leaving out a lot of stuff.
In these circumstances, how can we make progress? A couple of
suggestions. (1) The most important thing (IMNSHO) is to get more
people to use Maxima (at least to try it) and report bugs.
Bug reports from knowledgeable people are very valuable.
(2) If you have a lot of time on your hands, consider joining the
Maxima project. Or maybe your friends would consider it.
Thanks for your interest in Maxima & all the best,
Robert Dodier