Excess simplifications (was tail-recursion)



On 2/17/06, Barton Willis <willisb at unk.edu> wrote:
> The simp-%sin function, for example, ignores the simp
> flag (not entirely anymore). I think this happens because
> several option variables (at least 7) modify the behavior
> of simp-%sin.

Maxima is not supposed to notice changes in simp flag settings for
already-simplified expressions.  For example:

   qq: (x+1)^3$
   block([expop:3], qq) => unexpanded form
   block([expop:3], expand(d1,expop,expon)) => expanded form; the
expand expression functions as "resimplify"
   block([expop:3, ?dosimp:true], d1) => expanded form (cheating)

but

   qq, expop:3 => expanded form   (the mysterious semantics of EV...)

Why isn't dosimp exposed to the user?  Or at least packaged as

  (defun $resimplify (ex) (let ((dosimp t)) (ssimplifya ex))) ; should
there be a specrepcheck in there? or do we leave spec reps alone?

             -s