On 5/19/2006 8:25 AM, Gichangi, Anthony wrote: > Hi R-users, > > I have the following code: > > f <-function(x,p)sqrt(-(x^2)-2*log(1-p)) > > r1 <-sqrt(-2*log(1-0.95)) > > r2 <-sqrt(-2*log(0.05)) > > on executing i get the following results > >> f(r1,0.95) > [1] 0 >> f(r2,0.95) > [1] NaN > Warning message: > NaNs produced in: sqrt(-(x^2) - 2 * log(1 - p)) > > I tried to track the problem and found that the answer to > log(0.05) is different from the answer to log(1-0.95) which > is ofcourse not true and hence it causes problems in the code > > print(log(0.05),digit=22) > > [1] -2.9957322735539909 >> print(log(1-0.95),digit=22) > > [1] -2.99573227355399 > > > Any possible explanation ?
R uses finite precision arithmetic, usually giving around 15-16 digit accuracy. Your results agree in the first 15 digits. Duncan Murdoch ______________________________________________ [email protected] mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html
