*
The woods are lovely, dark and deep. But I have promises to keep,
And lines to code before I sleep, And lines to code before I sleep.
*

As an open-source project, **GiNaC** allows
anybody to extend it. Please don't ask the developers
to implement any fancy stuff *you* might need. They wrote everything
they need (and quite a bit more) and they will continue extending it so it
keeps up with their needs. If you are interested in any of the tasks, please
subscribe to the mailing lists and let us all know.

Urgency | Difficulty | Task |
---|---|---|

low | low | Improve algorithms of matrix operations: Elimination could
use some Sasaki-Murao scheme in order to stay entirely within the
integral domain. There may be some potential. (Since 0.6.4 nobody
is actively working on this any more.) |

medium | medium | Field extensions are badly needed for some factorization
gymnastics and also if one really wants to tackle integration. It's
trivial in GiNaC to add a class representing a root of something. How
complicated it all gets depends on how cleverly they are supposted to
be at the end. |

low | low | Some systematic I/O-Philosophy. Currently, the normal
output cannot be pasted into ginaccint, but only into
ginsh. Also, things like formatting compatible with OpenMath would be
useful. Please contact Stefan Weinzierl if you
are interested, he has a need for this and may have some thoughts! |

medium | medium | More GiNaC Constants(?) like ComplexInfinity may be needed
in order to allow for calculations with infinity (1/0 wouldn't throw
any more). This may be quite involved if we want to get it right (but
really, we don't know, we havn't thought about it very much). |

low | high | Limits: Things like exp(x).limit(x==0) returning
1 would be a very nice features. This is doomed to be very
involved: consider left and right limits and so on. Note that in the
field of complex numbers some things are simpler due to analyticity:
(sin(x)/x).series(x,2) actually does return
1+Order(x) with the current version. (The article
"Computing Limits in Computer Algebra Systems" by Dominik
Gruntz in the book "Computer Algebra Systems - A Practical
Guide", edited by M. Wester, is highly recommended as an
introduction. The original is available here.) |

low | varying | Numeric evaluation for certain special functions. All trigonometric
functions come from CLN, which is ok. There is, however, no way to compute
the Gamma-function tgamma(x), the Digamma-function psi(x),
the Polygamma-functions psi(n,x) or the Zeta-function
zeta(x) in the whole complex plane. GiNaC already implements several
special function values like all integer and half-integer values of those
functions (where analytic results do exist) and all their series evaluations.
These things should better be implemented in CLN, however! |

very low | quite high | Symbolic Integration. A heuristic approach should not be
too difficult (one could readily write a primitive "derivative
divides").
It boils down to finding the right representation of the integrand in
a suitable differential field. Again, one needs an extension class,
this time a transcendental one for representing t=tan(x) by
its derivative Dt=1+t^2. See Manuel
Bronstein's quite readable course notes of the ISSAC'98
Symbolic Integration Tutorial (available from his web-page) and
also his book Symbolic Integration I - Transcendental Functions
if you are curious what this is all about. |