MathGroup Archive 2005

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

Search the Archive

What we get from (0.0*x), (0.0^x) and similar stuff

Many users will see nothing wrong with what we get from the following:

In[1]:=  Clear[x,y];
{x^0.0, x^0, 0*x*y}

Out[2]= {1., 1, 0}

But the kernel does nothing to simplify the next input.  I suppose this is
because the result is Indeterminate in the case of (0.0*Infinity), or
(0^0).  So then why didn't the kernel account for that with the previous

In[3]:= {0.0*x*y,0^x,0.0^x}

Out[3]= {0. x y, 0^x, 0.^x}

We can use the definitions below to ensure the input above returns {0. ,
1, 0.} and some will consider this a nice improvement.

In[4]:= Unprotect[Times,Power];

In[9]:=  {0.0*x*y, 0^x, 0.0^x}

Out[9]= {0., 0, 0.}

After making the above definitions we still get Indeterminate or
ComplexInfinity whenever we should.  See the next input as an example.

In[10]:= {0*x*¥, 0*x*Indeterminate, 0^0, 0^Indeterminate, 0^(I-3)}

Out[10]= {Indeterminate, Indeterminate, Indeterminate, Indeterminate,

However some users might want to always acount for the possibity that we
might have (0*Infinity) or (0^0) and so prefer that  the list below would
return itself.  However, I think it isn't possible to do that because
since Mathematica Version 3 Times and Power use built-in definitions
before user definitions.  Am I wrong?  Can anyone change the outcome

In[11]:= Clear[Times,Power];

Out[11]= {1., 1, 0}

   Ted Ersek

  • Prev by Date: Re: ListDensityPlot Legend?
  • Next by Date: Superscript Problem
  • Previous by thread: Re: ListDensityPlot Legend?
  • Next by thread: Re: What we get from (0.0*x), (0.0^x) and similar stuff