Re: Bugs in Abs and Sign !?

*To*: mathgroup at smc.vnet.net*Subject*: [mg25727] Re: [mg25674] Bugs in Abs and Sign !?*From*: "Mark Harder" <harderm at ucs.orst.edu>*Date*: Thu, 19 Oct 2000 04:35:58 -0400 (EDT)*Sender*: owner-wri-mathgroup at wolfram.com

Jack, In this case, the Trace function was helpful: In[121]:= Trace[ Abs[x^2] /. Abs[q_] -> fnt[q] ] Out[121]= 2 2 2 2 {{Abs[x ], Abs[x] }, {Abs[q_] -> fnt[q], Abs[q_] -> fnt[q]}, Abs[x] /. Abs[q_] -> fnt[q], fnt[x] } In other words, the first thing Mathematica did was "simplify" the Abs[x^2] to Abs[x]^2, and go completely wrong from then on. I found that Abs[x^2]/.Abs[q_^2]->fnt[q^2] gives you what you want, but that's a little too specific. Maybe there's some way Mathematica allows you to specify a pattern that stands for a compound expression like x^2, but I don't know what it is. To avoid the "bug", try Hold[]-ing the expression to be simplified: In[125]:= ReleaseHold[Hold[Abs[x^2]] /. Abs[q_] -> fnt[q] ] Out[125]= fnt[x^2] -mark harder From: Jack Goldberg <jackgold at umich.edu> To: mathgroup at smc.vnet.net Subject: [mg25727] [mg25674] Bugs in Abs and Sign !? >Hi group. > >Try, > >Abs[x^2] /. Abs[u_] -> fnt[u] > >and > >Sign[x^2] /. Sign[u_] -> fnt[u] > >In each case I get fnt[x]^2. Shouldn't I get fnt[x^2]? After all, >g[x^2] /. g[u_] -> fnt[u] returns fnt[x^2] which is what I have been led >to expect from Mathematica. I am using ver 4.01 on a PowerMac. > >These peculiarities are driving me crazy. This is the fourth "bug" I have >found in just 2 weeks. Please tell me I'm wrong. > >Thanks guys. > >Jack > > >