subst10 is the culprit. It removes the "array" property on k.
Perhaps it is intending to remove the simp
property. It removes all properties.
Here's a fix.
(defun subst10 (ex)
(cond ((atom ex) ex)
((and (eq (caar ex) 'mexpt) (eq (cadr ex) var))
(list '(mexpt) var (integerp2 (quotient (caddr ex) *d*))))
(t (cons (remove 'simp (car ex))
(mapcar #'(lambda (c) (subst10 c)) (cdr ex))))))
since subst10 is used exactly twice, once internally in subst10, and
again in
powerlist, I'm not sure it matters what other behaviors it may exhibit
in other
circumstances.
Could someone else could change this (in sin.lisp)? thnx
RJF
On 5/30/2012 5:32 AM, Barton Willis wrote:
> The bug is in subst10 (defined in sin.lisp). A possible fix is to change (atom ex) to ($mapatom ex):
>
> (defun subst10 (ex)
> (cond ((atom ex) ex)
> ((and (eq (caar ex) 'mexpt) (eq (cadr ex) var))
> (list '(mexpt) var (integerp2 (quotient (caddr ex) *d*))))
> (t (cons (ncons (caar ex))
> (mapcar #'(lambda (c) (subst10 c)) (cdr ex))))))
>
> The function subst10 doesn't commute with expand---thus subst10 is an accident waiting to happen:
>
> (%i22) :lisp(setf var '$x *d* 3)
> 3
>
> (%i22) e : x^9 * (x+x^6);
> (%o22) x^9*(x^6+x)
>
> (%i23) expand(?subst10(e));
> (%o23) x^5+x^4
>
> (%i24) ?subst10(expand(e));
> (%o24) x^5+x^3
>
> Also (less of a potential problem)
>
> (%i25) block([simp : false], ?subst10(x^1));
> (%o25) 1
>
> (%i27) ?subst10(x^1);
> (%o27) x
>
> Makes me wonder: Is subst10 buggy in other ways?
>
> --Barton
>
> ________________________________________
>
>> The result ends up with k[i] sometimes being replaced by k(i) for i=0,1. If this is reproducible it's a bug (there is no k(i) in my code).
> Another example:
>
> (%i1) x * (x^2 + k[0])/(1 + x^2);
> (%o1) (x*(x^2+k[0]))/(x^2+1)
>
> (%i2) integrate(%,x);
> (%o2) ((k(0)-1)*log(x^2+1))/2+x^2/2
>
> I'll file a bug report.
>
> --Barton
>
> _______________________________________________
> Maxima mailing list
> Maxima at math.utexas.edu
> http://www.math.utexas.edu/mailman/listinfo/maxima
>
>
> _______________________________________________
> Maxima mailing list
> Maxima at math.utexas.edu
> http://www.math.utexas.edu/mailman/listinfo/maxima