#1085 Function "at" is overly cautious

open
nobody
Lisp Core (472)
5
2007-03-03
2007-01-22
Barton Willis
No

Compare

(%i1) at(f(x), x = 0);
(%o1) f(0)

with

(%i2) at('integrate(f(t),t,0,x),x=0);
(%o2) at(integrate(f(t),t,0,x),x=0)

Given (%o1), it would seem consistent for (%o2) to
evaluate to 0. Declaring f to be anaylic doesn't
help:

(%i3) declare(f,analytic);
(%o3) done
(%i4) at('integrate(f(t),t,0,x),x=0);
(%o4) at(integrate(f(t),t,0,x),x=0)

Does Maxima ever use the declare analytic data?

Discussion

  • Robert Dodier
    Robert Dodier
    2007-03-03

    • labels: --> Lisp Core
     
  • Logged In: NO

    At the botton of this problem is the difference between two types of arguments: Some of them are to be considered as a
    constant while other not.

    Example: Here in integrate(f(t),t,0,x) x should be considered as a constant argument that is: we can substitute before
    evaluating the integration.

    But in diff(f(x*y),x) at x=0. x should not be considered as a constant argument, so in this case we need first to compute the
    diff and then substitute.

    This can be accomplish in a case by case, or indicating the type (constant or not constant of the argument).