> > Finally, I'd like to ask why simpsum does not call the Gosper
> > algorithm (nusum)? I guess that simpsum is only called on demand,
> > when the user REALLY wants to have a simple answer and believes
> > that there is one?
There are two main issues here.
One is how much simplification you do on 'fun(...). Even in the case of
integrate, limit, diff, etc., the quoted form still does some
simplification, e.g. 'integrate(1,x,1,3) => 2, limit(x,y,0) => x. Along
those lines, 'sum(1,i,1,10^7) => 10^7. In general, Maxima tries not to
be too aggressive in simplifying, because the original form of the
expression may have some value. Also, nusum (for example) is not robust
when it fails -- though I suppose it should be.
The other is what does fun(...) mean. In the case of integrate, limit,
diff, etc., it invokes a good algorithm for finding closed-form
solutions. This is not necessarily the most powerful algorithm known,
or even the best or most powerful one available within Maxima.
For most of these operators, there are the two possibilites for exact
answers: light simplification or finding a closed-form solution. There
is also the possibility of numerical evaluation, but that is no longer
exact. In the case of sum, there are three possibilities with exact
answers: light simplification, carrying out the sum term-by-term (in
some cases), and finding a closed-form solution. All three are useful,
and there is no obvious way to mark the difference within existing
Maxima conventions.
Of course, another part of the answer is simply history....
As for Zeilberger, I have written to the RISC Combinatorics group in
Austria to request a clarification of the license terms of their
implementation of the Zeilberger algorithm. One interpretation of their
conditions prohibits the commercial *use* of the implementation (e.g. an
engineer at General Electric using Maxima with Zeilberger.mc) -- this
restriction is incompatible with the GPL; another interpretation of
their conditions prohibits the *incorporation* of the implementation in
a commercial product (e.g. Maple or Mathematica), which of course Maxima
is not and cannot be (because of the GPL).
Even if they don't wish to license its use within Maxima, presumably
someone could reimplement the algorithm, unless it's patented (which I
doubt).... Of course, that may be non-trivial.
-s