Re: Getting rid of annoying zeroes in algebraic expressions

*To*: mathgroup at smc.vnet.net*Subject*: [mg15239] Re: Getting rid of annoying zeroes in algebraic expressions*From*: Rolf Mertig <rolf at mertig.com>*Date*: Sun, 27 Dec 1998 03:58:31 -0500*Organization*: Mertig Research & Consulting*References*: <75q1n1$23s@smc.vnet.net>*Sender*: owner-wri-mathgroup at wolfram.com

Ross, Sean wrote: > > Let xx be the result of some algebraic manipulations which, for some > reason, mathematica thinks the real zeroes ought to be kept and I think > they ought to be dropped. > > xx=0. + (a*f)/(0. + f) + (b*f)/(0. + f) + (c*f)/(0. + f) > > xx/.Plus[0.,q_]->q > > returns > > 0. + (a*f)/(0. + f) + (b*f)/(0. + f) + (c*f)/(0. + f) > > while > > 0. + (a*f)/(0. + f) + (b*f)/(0. + f) + (c*f)/(0. + f)/.Plus[0.,q_->q] > > returns the expected > > a+b+c. > > xx is supposed to be equivalent to the expression, but in this case, it > is not. > I can't write a function to automatically drop zeroes if expressions > behave differently when they are alone on an input line and when they > are set equal to a symbol. Does anyone know how to eliminate this kind > of behavior? I am sure it has something to do with some obscure step > in the "standard evaluation cycle" and that there is probably a long, > convoluted explanation as to why someone would want this behavior, but > I don't and I would appreciate it if someone could tell me how to get > rid of it or circumvent it. > > Thanks, > > Sean Ross > > Please reply to rosss at plk.af.mil as I no longer subscribe to the > mathgroup. RTFM ... : -- In[3]:= 0. + (a*f)/(0. + f) + (b*f)/(0. + f) + (c*f)/(0. + f)//Chop Out[3]= a + b + c In[4]:= ?Chop Chop[expr] replaces approximate real numbers in expr that are close to zero by the exact integer 0. Rolf Mertig Mertig Research & Consulting Mathematica training and programming Development and distribution of FeynCalc Amsterdam, The Netherlands http://www.mertig.com