(%i26) at(diff(f(x),x),[x=b]);
(%o26) at('diff(f(x),x,1),[x=b])
(%i27) at(%,[b=a]);
(%o27) at('diff(f(x),x,1),[x=b])
(%o27) should either be at('diff(f(x),x,1),[x=a]) or at(at('diff(f(x),x,1),[x=b]),[b=a])
Also, I think 'at' should be a simplifying function.
Barton Willis
2008-07-10
Logged In: YES
user_id=895922
Originator: YES
Another thing: 'at' doesn't check for the "freeof" case; for example:
(%i24) diff(f(z),z);
(%o24) 'diff(f(z),z,1)
(%i25) at(%,[x=1]);
(%o25) at('diff(f(z),z,1),[x=1])
Barton Willis
2008-07-10
Logged In: YES
user_id=895922
Originator: YES
And yet another thing: Maxima should sort the second argument to 'at.' This
would allow more expressions to simplify to zero; example:
(%i29) diff(f(x,y),x,1,y,1);
(%o29) 'diff(f(x,y),x,1,y,1)
(%i30) at(%,[x=a,y=b]) - at(%,[y=b,x=a]);
(%o30) at('diff(f(x,y),x,1,y,1),[x=a,y=b])-at('diff(f(x,y),x,1,y,1),[y=b,x=a])
Since 'at' does multiple substitutions in series, not parallel, the logic could be
complicated. Should the subs be done in parallel?
Dieter Kaiser
2010-06-19
Fixed in comm2.lisp revision 1.38. The composition of AT is more correct and the list of equations is sorted.
There is one open problem: AT doesn't check for the "freeof" case. This topic needs more discussions and perhaps a new bug report.
Closing this bug report as fixed.
Dieter Kaiser
Dieter Kaiser
2010-06-19