Re: a finicky rule
- To: mathgroup at smc.vnet.net
- Subject: [mg41759] Re: a finicky rule
- From: Jens-Peer Kuska <kuska at informatik.uni-leipzig.de>
- Date: Wed, 4 Jun 2003 08:34:41 -0400 (EDT)
- Organization: Universitaet Leipzig
- References: <bbf2n7$q0v$1@smc.vnet.net>
- Reply-to: kuska at informatik.uni-leipzig.de
- Sender: owner-wri-mathgroup at wolfram.com
Hi,
x^(p_.) and x^(q_.) match to -1
and c is bound to x^3, you can see this form:
pullx = c_. + (a_.) x_^(p_.) + (b_.)x_^(q_.) :> (Print[c];
c + x (a x^(p - 1) + b x^(q - 1)))
and
pullx = c_. + (a_.) x_^(p_.) + (b_.)x_^(q_) /; FreeQ[c, x] :>
c + x (a x^(p - 1) + b x^(q - 1))
will work as you expect.
Regards
Jens
Selwyn Hollis wrote:
>
> Group,
>
> I'm having a difficult time understanding the following behavior.
>
> I define this rule:
>
> pullx := c_. + (a_.) x_^(p_.) + (b_.)x_^(q_.) ->
> c + x (a x^(p-1) + b x^(q-1))
>
> and it works here:
>
> x^3 + x^2 - 1 /. pullx
>
> -1 + x*(x + x^2)
>
> but not here:
>
> x^3 - x^2 - 1 /. pullx
>
> -1 - x^2 + x^3
>
> even though the pattern matches:
>
> MatchQ[x^3 - x^2 - 1, pullx[[1]]]
>
> True
>
> I thought perhaps some simplification was being done on the result, but:
>
> (x^2 - x)*x - 1
>
> -1 + x (-x + x^2)
>
> Any ideas? (This is 4.1, Mac OS X.)
>
> Thanks.
>
> -----
> Selwyn Hollis
> http://www.math.armstrong.edu/faculty/hollis