Excess simplifications (was tail-recursion)



If you trace simplifya  you will see how many times it is called.
It returns quickly if the SIMP flag is set in the
CAR of the expression. Some other systems (in particular Maple)
do not tag the simplified versions this way; instead they copy
the simplified result to a hash table in which every entry
is the canonical simplified result.

This makes some programs run very fast, and when it botches
the answer, the Maple people tend to view that as a "feature".

I wrote a revision of the Maxima simplifer to do something similar,
and it is many times faster on sufficiently large expression of
particular kinds of complexity.

Unfortunately this kind of change is tricky, and bugs are difficult
to find. 

rjf




Stavros Macrakis wrote:

>I suspect that Maxima makes many unnecessary calls to the simplifier,
>both in the interpreter and in translated code.  Many of these are
>probably because there is not a uniform, clear convention on when
>simplification should happen, and it is better to err on the safe side
>(though unsimplified expressions still crop up in bug reports). Some
>of these calls may be unnecessary in normal operation, but necessary
>if the SIMP flag is being manipulated (which is rare, but occasionally
>necessary).
>
>        -s
>
>_______________________________________________
>Maxima mailing list
>Maxima at math.utexas.edu
>http://www.math.utexas.edu/mailman/listinfo/maxima
>  
>