MathGroup Archive 2003

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: Simplify[Abs[x],x<0]]

  • To: mathgroup at smc.vnet.net
  • Subject: [mg39317] Re: [mg39303] Simplify[Abs[x],x<0]]
  • From: Adam Strzebonski <adams at wolfram.com>
  • Date: Tue, 11 Feb 2003 04:41:34 -0500 (EST)
  • References: <31D6F210-3CF7-11D7-81C3-003065718C9C@mimuw.edu.pl>
  • Sender: owner-wri-mathgroup at wolfram.com

This is an issue of deciding what is simpler. With the default
ComplexityFunction -x is not simpler than Abs[x]. Simplify's
built in complexity measure is based on FullForm of expressions,
rather than on the size of printed output.

In[1]:= LeafCount/@{-x, Abs[x]}
Out[1]= {3, 2}

In[2]:= -x // FullForm
Out[2]//FullForm= Times[-1, x]

In[3]:= Abs[x] // FullForm
Out[3]//FullForm= Abs[x]

With a ComplexityFunction attributing additional weight to Abs
Simplify will transform Abs[x] to -x.

In[4]:= f=1000 Count[#, _Abs, {0, Infinity}]+LeafCount[#]&;

In[5]:= Simplify[ Abs[x] , x<0, ComplexityFunction -> f ]
Out[5]= -x

Best Regards,

Adam Strzebonski
Wolfram Research

Andrzej Kozlowski wrote:
> Almost certainly an oversight. However, if you replace Abs by something 
> equivalent, things work as they should, e.g:
> 
> 
> Simplify[Sqrt[x*Conjugate[x]], x < 0]
> 
> -x
> 
> or
> 
> 
> Simplify[Sqrt[Im[x]^2 + Re[x]^2], x < 0]
> 
> -x
> 
> etc.
> 
> 
> 
> 
> On Monday, February 10, 2003, at 03:07 PM, Uri Zwick wrote:
> 
>> Hi,
>>
>> Simplify[ Abs[x] , x>0 ] returns x.
>> But, Simplify[ Abs[x] , x<0] returns Abs[x], and not -x.
>>
>> Why is that?
>>
>> Uri
>>
>>
>>
>>
> Andrzej Kozlowski
> Yokohama, Japan
> http://www.mimuw.edu.pl/~akoz/
> http://platon.c.u-tokyo.ac.jp/andrzej/
> 





  • Prev by Date: Re: I need some help about this error
  • Next by Date: RE: I need some help about this error
  • Previous by thread: RE: Simplify[Abs[x],x<0]]
  • Next by thread: Re: Simplify[Abs[x],x<0]]