[Date Index] [Thread Index] [Author Index]
Re: algebraic ReplaceAll?
Richard Fateman wrote: > On 10/22/2011 3:10 AM, Dushan Mitrovich wrote: >> Is there a way to get ReplaceAll to act algebraically, so it recognizes >> the negative of a replaced quantity as well as the positive? For >> example, this works >> In: x-w /. x-w->y >> Out: y >> >> but these don't >> In: -x+w /. x-w->y >> w-x /. x-w->y >> Out: w-x >> w-x >> >> - Dushan >> >> >> > How would you wish the replacement to work on this: > > -x /. x-w->y ?? > > would -y-w be ok with you? > No, it would not be OK: I was only asking about the _negative_ of a quantity being recognized, and I meant only when that negative quantity is a match for the pattern specified. Your example is too complicated, I think, to be practical. > If so, try > > -x /. x-> y+w. > > x-w /. x-> y+w > > w-x /. x-> y+w > > etc. > > You can make the pattern work from w-> x-y alternatively. > > > Or if you want to know if some expression e can be expressed as > Q*(x-w)+R, you can do this by polynomial division. > > Three points: > 1. Your request is ambiguous. > 2. The pattern matcher basically sucks for this, as Andrzej observes. > 3. Alternatives (e.g. semantica, or > http://www.cs.berkeley.edu/~fateman/papers/better-rules.pdf ) > exist, but item 1. above needs some thought either way. Thanks for the 'better-rules' link. I'll give both these a read. - Dushan