|Bill Allombert on Fri, 22 Sep 2006 11:17:56 +0200|
[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]
|Re: Multiple substitutions (wishlist)|
On Thu, Sep 21, 2006 at 04:37:19PM +0200, Jeroen Demeyer wrote: > Hello list, > > Many times I have wanted to do some kind of "multiple simultaneous > subst()" in PARI/GP. I mean the following: > > gp> subst(x^2 + 3*y, x,y, y,z) > %1 = y^2 + 3*z > > Where the 2nd argument is replaced by the 3rd, the 4th by the 5th, and > so on... You are looking for the function substvec() ? ??substvec substvec(x,v,w): v being a vector of monomials (variables), w a vector of expressions of the same length, replace in the expression x all occurences of v_i by w_i. The substitutions are done simultaneously; more precisely, the v_i are first replaced by new variables in x, then these are replaced by the w_i: ? substvec([x,y], [x,y], [y,x]) %1 = [y, x] ? substvec([x,y], [x,y], [y,x+y]) %2 = [y, x + y] \\ not [y, 2*y] The library syntax is gsubstvec(x,v,w). > I have absolutely no idea how easy/difficult it would be to implement > this, but I would appreciate it :-) This is not possible to implement in a robust way in the old variable priority model. I hope to introduce a new model that allow that. The patch I posted recently is a part of that. > One non-trivial point it that the subst()s have to happen > simultaneously, to make things like subst(f, x,y, y,x) possible (which > would swap x and y in the expression f). This actually works. Cheers, Bill.