>No, this isn't a bug.
>
> (%i37) load(pdiff)$
> (%i38) depends(g,x)$
> (%i39) diff(f(g(x)),x);
> (%o39) g[(1)](x)*f[(1)](g(x))
>
> (%i40) convert_to_diff(%);
> (%o40) ('diff(g(x),x,1))*(at('diff(f(g34216),g34216,1),[g34216=g(x)]))
>
>The variable g34216 differs from the way it's printed :(
So if g34216 should be printed as g(x), how does this differ from a bug ;-)
Also, convert_to_diff should not return a trivial 'at', the result should just be the same as when you type
depends(f,g(x),g,x);
diff(f,x), use_pdiff:false;
Or is this intended behavior?
>
> (%i41) subst([g(x)=g, part(%,2,1,2) = g],%);
> (%o41) ('diff(g,x,1))*(at('diff(f(g),g,1),[g=g]))
>
>The 'at' stubbornly refuses to evaluate :(
>
> (%i42) ev(%,at);
> (%o42) ('diff(g,x,1))*(at('diff(f(g),g,1),[g=g]))
>
So now the problem shifts to: how to simplify df/dg[g=g] to df/dg ?
actually, you can do
%i48) d1:diff(h(x),x);
%i49) d2:at(d1,[x=x]);
And you are stuck with the trivial 'at'. Shouldn't there be a check to see if lhs==rhs in 'at', or maybe in 'ev'?
Regards,
Nijso
_________________________________________________________________
Express yourself instantly with MSN Messenger! Download today it's FREE!
http://messenger.msn.click-url.com/go/onm00200471ave/direct/01/