> On Jul 3, 2015, at 8:08 AM, John Nash <john.n...@uottawa.ca> wrote: > > > > > Third try -- I unsubscribed and re-subscribed. Sorry to Ravi for extra > traffic. > > In case anyone gets a duplicate, R-help bounced my msg "from non-member" (I > changed server, but not email yesterday, > so possibly something changed enough). Trying again. > > JN > > I got the Wolfram answer as follows: > > library(Rmpfr) > n163 <- mpfr(163, 500) > n163 > pi500 <- mpfr(pi, 500) > pi500 > pitan <- mpfr(4, 500)*atan(mpfr(1,500)) > pitan > pitan-pi500 > r500 <- exp(sqrt(n163)*pitan) > r500 > check <- "262537412640768743.99999999999925007259719818568887935385..." > savehistory("jnramanujan.R") > > Note that I used 4*atan(1) to get pi.
RK got it right by following the example in the help page for mpfr: Const("pi", 120) The R `pi` constant is not recognized by mpfr as being anything other than another double . There are four special values that mpfr recognizes. — Best; David > It seems that may be important, > rather than converting. > > JN > > On 15-07-03 06:00 AM, r-help-requ...@r-project.org wrote: > >> Message: 40 >> Date: Thu, 2 Jul 2015 22:38:45 +0000 >> From: Ravi Varadhan <ravi.varad...@jhu.edu> >> To: "'Richard M. Heiberger'" <r...@temple.edu>, Aditya Singh >> <aps...@yahoo.com> >> Cc: r-help <r-help@r-project.org> >> Subject: Re: [R] : Ramanujan and the accuracy of floating point >> computations - using Rmpfr in R >> Message-ID: >> <14ad39aaf6a542849bbf3f62a0c2f...@dom-eb1-2013.win.ad.jhu.edu> >> Content-Type: text/plain; charset="utf-8" >> >> Hi Rich, >> >> The Wolfram answer is correct. >> http://mathworld.wolfram.com/RamanujanConstant.html >> >> There is no code for Wolfram alpha. You just go to their web engine and >> plug in the expression and it will give you the answer. >> http://www.wolframalpha.com/ >> >> I am not sure that the precedence matters in Rmpfr. Even if it does, the >> answer you get is still wrong as you showed. >> >> Thanks, >> Ravi >> >> -----Original Message----- >> From: Richard M. Heiberger [mailto:r...@temple.edu] >> Sent: Thursday, July 02, 2015 6:30 PM >> To: Aditya Singh >> Cc: Ravi Varadhan; r-help >> Subject: Re: [R] : Ramanujan and the accuracy of floating point computations >> - using Rmpfr in R >> >> There is a precedence error in your R attempt. You need to convert >> 163 to 120 bits first, before taking >> its square root. >> >>>> exp(sqrt(mpfr(163, 120)) * mpfr(pi, 120)) >> 1 'mpfr' number of precision 120 bits >> [1] 262537412640768333.51635812597335712954 >> >> ## just the last four characters to the left of the decimal point. >>>> tmp <- c(baseR=8256, Wolfram=8744, Rmpfr=8333, wrongRmpfr=7837) >>>> tmp-tmp[2] >> baseR Wolfram Rmpfr wrongRmpfr >> -488 0 -411 -907 >> You didn't give the Wolfram alpha code you used. There is no way of >> verifying the correct value from your email. >> Please check that you didn't have a similar precedence error in that code. >> >> Rich >> >> >> On Thu, Jul 2, 2015 at 2:02 PM, Aditya Singh via R-help >> <r-help@r-project.org> wrote: >>>> Ravi >>>> >>>> I am a chemical engineer by training. Is there not something like law of >>>> corresponding states in numerical analysis? >>>> >>>> Aditya >>>> >>>> >>>> >>>> ------------------------------ >>>> On Thu 2 Jul, 2015 7:28 AM PDT Ravi Varadhan wrote: >>>> >>>>>> Hi, >>>>>> >>>>>> Ramanujan supposedly discovered that the number, 163, has this >>>>>> interesting property that exp(sqrt(163)*pi), which is obviously a >>>>>> transcendental number, is real close to an integer (close to 10^(-12)). >>>>>> >>>>>> If I compute this using the Wolfram alpha engine, I get: >>>>>> 262537412640768743.99999999999925007259719818568887935385... >>>>>> >>>>>> When I do this in R 3.1.1 (64-bit windows), I get: >>>>>> 262537412640768256.0000 >>>>>> >>>>>> The absolute error between the exact and R's value is 488, with a >>>>>> relative error of about 1.9x10^(-15). >>>>>> >>>>>> In order to replicate Wolfram Alpha, I tried doing this in "Rmfpr" but I >>>>>> am unable to get accurate results: >>>>>> >>>>>> library(Rmpfr) >>>>>> >>>>>> >>>>>>>> exp(sqrt(163) * mpfr(pi, 120)) >>>>>> 1 'mpfr' number of precision 120 bits >>>>>> >>>>>> [1] 262537412640767837.08771354274620169031 >>>>>> >>>>>> The above answer is not only inaccurate, but it is actually worse than >>>>>> the answer using the usual double precision. Any thoughts as to what I >>>>>> am doing wrong? >>>>>> >>>>>> Thank you, >>>>>> Ravi >>>>>> >>>>>> >>>>>> >>>>>> [[alternative HTML version deleted]] >>>>>> >>>>>> ______________________________________________ >>>>>> R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see >>>>>> 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. >>>> ______________________________________________ >>>> R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see >>>> 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. >> ------------------------------ > > > ______________________________________________ > R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see > 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. David Winsemius, MD Alameda, CA, USA ______________________________________________ R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see 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.