On May 26, 2014, at 9:42 AM, Prof Brian Ripley wrote: > On 26/05/2014 13:16, ritwi...@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. >
A related questi0n is why NaN^0 == 0 returns TRUE: http://stackoverflow.com/questions/17863619/why-does-nan0-1/17864651 -- David. > >> >> 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@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 .... > David Winsemius Alameda, CA, USA ______________________________________________ R-help@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.