ritwik_r at isical.ac.in
2014-May-26 12:16 UTC
[R] 0^0 computation in R : Why it is defined 1 in R ?
Dear R helpers, today I found something interesting in R. 0^0 gives value 1 in R. But it is undefined in mathematics. During debugging a R code, I found it and it effects my program severely. So my question is why it is defined 1 in R? Is there any particular reason or its a bug in the R software? Here is one demo: ************************************************* ff=function(u){ return( x^0 * u) } x=0 zz=integrate(ff,lower=0,upper=1)$value zz> source('~/.active-rstudio-document') > zz[1] 0.5>************************************************* Looking forward to hear any response. Regards, Ritwik Bhattacharya Indian Statistical Institute Kolkata
Prof Brian Ripley
2014-May-26 16:42 UTC
[R] 0^0 computation in R : Why it is defined 1 in R ?
On 26/05/2014 13:16, ritwik_r at isical.ac.in wrote:> Dear R helpers, > > > today I found something interesting in R. 0^0 gives value 1 in R. But it > is undefined in mathematics. During debugging a R code, I found it and it > effects my program severely. So my question is why it is defined 1 in R? > Is there any particular reason or its a bug in the R software?Try reading the help: Users are sometimes surprised by the value returned, for example why ?(-8)^(1/3)? is ?NaN?. For double inputs, R makes use of IEC 60559 arithmetic on all platforms, together with the C system function ?pow? for the ?^? operator. The relevant standards define the result in many corner cases. In particular, the result in the example above is mandated by the C99 standard. On many Unix-alike systems the command ?man pow? gives details of the values in a large number of corner cases. See ?F9.4.4 of the C99 standard.> > Here is one demo: > > ************************************************* > > ff=function(u){ > return( x^0 * u) > } > > x=0 > zz=integrate(ff,lower=0,upper=1)$value > zz > > > >> source('~/.active-rstudio-document') >> zz > [1] 0.5 >> > > ************************************************* > > Looking forward to hear any response. > > Regards, > > Ritwik Bhattacharya > Indian Statistical Institute Kolkata > > ______________________________________________ > R-help at r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide http://www.R-project.org/posting-guide.html > and provide commented, minimal, self-contained, reproducible code. >PLEASE do .... -- Brian D. Ripley, ripley at stats.ox.ac.uk Professor of Applied Statistics, http://www.stats.ox.ac.uk/~ripley/ University of Oxford, Tel: +44 1865 272861 (self) 1 South Parks Road, +44 1865 272866 (PA) Oxford OX1 3TG, UK Fax: +44 1865 272595
Jeff Newmiller
2014-May-26 17:17 UTC
[R] 0^0 computation in R : Why it is defined 1 in R ?
You might find searching the web on this topic educational. Consider [1] and [2], for example. I doubt this will be changing, so you should do your exponentiation in a function that handles your special case. By the way, as nice as RStudio might be, it is not R... it USES R. Examples like yours won't run as-is in vanilla R so are not really reproducible for (probably most) readers of this list. Please (re-)read the Posting Guide. [1] http://mathforum.org/dr.math/faq/faq.0.to.0.power.html [2] http://www.askamathematician.com/2010/12/q-what-does-00-zero-raised-to-the-zeroth-power-equal-why-do-mathematicians-and-high-school-teachers-disagree/ --------------------------------------------------------------------------- Jeff Newmiller The ..... ..... Go Live... DCN:<jdnewmil at dcn.davis.ca.us> Basics: ##.#. ##.#. Live Go... Live: OO#.. Dead: OO#.. Playing Research Engineer (Solar/Batteries O.O#. #.O#. with /Software/Embedded Controllers) .OO#. .OO#. rocks...1k --------------------------------------------------------------------------- Sent from my phone. Please excuse my brevity. On May 26, 2014 5:16:21 AM PDT, ritwik_r at isical.ac.in wrote:>Dear R helpers, > > >today I found something interesting in R. 0^0 gives value 1 in R. But >it >is undefined in mathematics. During debugging a R code, I found it and >it >effects my program severely. So my question is why it is defined 1 in >R? >Is there any particular reason or its a bug in the R software? > >Here is one demo: > >************************************************* > >ff=function(u){ > return( x^0 * u) >} > >x=0 >zz=integrate(ff,lower=0,upper=1)$value >zz > > > >> source('~/.active-rstudio-document') >> zz >[1] 0.5 >> > >************************************************* > >Looking forward to hear any response. > >Regards, > >Ritwik Bhattacharya >Indian Statistical Institute Kolkata > >______________________________________________ >R-help at r-project.org mailing list >https://stat.ethz.ch/mailman/listinfo/r-help >PLEASE do read the posting guide >http://www.R-project.org/posting-guide.html >and provide commented, minimal, self-contained, reproducible code.