Hey Robert,
your suggestions were very helpful indeed. I seem to have found a viable
workaround to my problem with the commands
matchdeclare( [arg,t,i] ,all);
tellsimp( 'idiff( 'diff( arg,t,1) ,i,1), diff( idiff( arg,i) ,t));
Thank you very much,
Marcello
On Tue, 11 Mar 2008, Robert Dodier wrote:
> On 3/11/08, Marcello Musso <musso at physics.utexas.edu> wrote:
>
>> defmatch(check,'idiff(arg,t));
>> disprule(check);
>> => check:idiff(arg,t)->[]
>
>> check(idiff(diff(N([],[]),t),i));
>> => false
>>
>> even if idiff(diff(N([],[]),t),i) doesnt evaluate idiff.
>
> Looks like idiff (as with diff also) has a third argument which is
> the order of the derivative. When order = 1, it is suppressed.
> But it needs to be present in the pattern.
>
> load (itensor);
> matchdeclare ([arg, t], all);
> defmatch (check, 'idiff (arg, t, 1));
> depends (N, t);
> check (idiff (diff (N ([], []), t), i));
> => [t = i, arg = d/dt (N([], []))]
>
>> I am doing this because i want maxima to display
>>
>> idiff(diff(N([],[]),t),i)
>>
>> as
>>
>> (d/dt) N([],[],i)
>>
>> so any other way to achieve this would help too.
>
> I don't know much about tensors. Maybe someone else can
> weigh in here. I suspect pattern matching is probably not the
> most effective method, but I don't know about anything else.
>
> best
>
> Robert Dodier
>
************************************************
* Marcello Musso *
* University of Texas at Austin *
* Department of Physics - Theory group *
* 1, University Station C1608 *
* Austin, TX 78712-0269 - USA *
* office phone: (512)-471-4108 *
* VoIP phone: +39-02-303129852 *
************************************************