Question: simplify and function with arguments

Hi all,

I will use the following dummy example.

with function,f

f:=(xid,yid)->sum(x[i],i=1..xid)*sum(y[i],i=1..yid);

 

and a complicated term, myterm


myterm:=(f(3,4)+f(2,2))*f(1,1):
myterm:=expand(myterm);

 

'if' i have some previous knowledge, or know a bit of the term, i can find the structure by doing this


repar:=[f(1,1),f(2,2),f(3,4)];  # Or with more f(xid,yid) terms

tmp:=seq(repar[i]=ff[i],i=1..3);
simplify(myterm,{tmp});          # This is fine, gives me what i want

 

But, can we go further, and more 'obvious'

 

Given the fucntion f, same as before, and the same 'myterm'

can I have this
restart:
iwant:=(f(3,4)+f(2,2))*f(1,1);  # as a result, straightforward

so I dont have to go back to 'repar' and find that the terms exactly are.

 

Thanks,

 

Please Wait...