From: Richard B. Kreckel <kreckel_at_zino.physik.Uni-Mainz.de>

Date: Wed, 8 Sep 1999 11:42:50 +0200 (CEST)

Date: Wed, 8 Sep 1999 11:42:50 +0200 (CEST)

Hello folks;

I am rather new to this list and I am impressed about how lofty some of

the goals for the future of Genius are. Don't get me wrong, I wish you a

lot of success!

While I cannot contribute to the layout of your language or even work on

the code (I have my own baby to care for) I would like to draw your

attention to something that might be useful for you.

First, I think that sticking to GMP is not worth while. GMP is a

wonderful library for arbitrary precision/long integers that comes with

some good implementations of fast asymptotically ideal algorithms it is

too low-level for your effort. May I suggest to look into CLN instead,

which is built on top of GMP? It provides complex numbers over the

rationals Q and such things and automatic conversion from rationals to

integers when the denominator becomes unity (and conversion from complex

to reals if the imaginary part becomes zero). It also provides

state-of-the-art algorithms for testing of roots (which means it will

simplify 8^(1/3) to 2 and not 2.0000000134213 and the like, even for

complex rationals like (-11/4 + 15*I)^(1/2) == 5/2 + 3*I) as well as all

relevant trigonometric functions. Please have a look at its URL

<http://clisp.cons.org/~haible/packages-cln.html>. Oh, yes, it is GPLed

(intentionally not LGPLed, though it's a library).

For those of you who were talking about symbolic integration: The

rule-based approach is fine but works only within certain limits. All

CASs use it but fall back to a more or less clean implemantation of the

Risch Algorithm if heuristics fail. After all, integration can be

formulated as an algorithmic problem, though it is almost never tought

this way. (It will then require things like polynomial factorization.)

If you are serious I suggest to have a look at the wonderful book by

Keith Geddes, Stephen Czapor and George Labahn called "Algorithms for

Computer Algebra" (ISBN 0-7923-9259-0) or, if that turns out to be too

difficult, at the one by J. Davenport, Y. Siret and E. Tournier called

"Systems and Algorithms for Algebraic Computation" (ISBN 0-12-204230-1).

Integration ought to be considered a long-term goal of course and

factorization of multivariate polynomials a medium-term goal. The other

stuff might be close at hand, though. We have been developing a

library for doing symbolic manipulations directly within C++. It is

currently able to differentiate symbolically all functions it knows of and

(of course) Taylor-expand them. In addition it may Series-expand

expressions about poles (consider e.g. a rational function)! It can also

efficiently expand, collect multivariate polynomials and even normalize

them (Mathematica's Together[]) by using a good implementation of the

heuristic GCD, in this fashion:

2 2

4 x y + x z + 20 y + 21 y z + 4 z 4 y + z

----------------------------------- => -------

2 2 y + 3 z

x y + 3 x z + 5 y + 19 y z + 12 z

For our calculations in Quantum Field Theory we do not want any frontend

since we prefer to do everything in C++ (which is somewhat radical) but

maybe others might wish one and the design of our library (called GiNaC,

for GiNaC is Not a CAS) should easily allow for one.

I am just suggesting it to you, maybe it might help Genius to become a

symbolic package really soon now(tm). Note, that GiNaC is heavily using

CLN but it is not released yet. We are going to release it this year

under either LGPL or---more probably---plain GPL (LGPL would be funny,

since you need CLN beside it and that is GPL). If somebody is showing

interest I am, however, more than happy to send over (or put somewhere on

FTP) a snapshot from our CVS tree so you can start playing around with it.

Regards

-richy.

PS: There is some very preliminary information on

<http://wwwthep.physik.uni-mainz.de/GiNaC/>.

-- Richard Kreckel <Richard.Kreckel_at_Uni-Mainz.DE> <http://wwwthep.physik.uni-mainz.de/~kreckel/>Received on Wed Sep 08 1999 - 02:43:11 CDT

*
This archive was generated by hypermail 2.2.0
: Sun Apr 17 2011 - 21:00:02 CDT
*