It doesn’t appear to me that mpfr was ever designed to handle expressions as the first argument.
— David > On Jul 3, 2015, at 12:01 PM, Ravi Varadhan <ravi.varad...@jhu.edu> wrote: > > Thank you all. I did think about declaring `pi' as a special constant, but > for some reason didn't actually try it. > Would it be easy to have the mpfr() written such that its argument is > automatically of extended precision? In other words, if I just called: > mpfr(exp(sqrt(163)*pi, 120), then all the constants, 163, pi, are > automatically of 120 bits precision. > > Is this easy to do? > > Best, > Ravi > ________________________________________ > From: David Winsemius <dwinsem...@comcast.net> > Sent: Friday, July 3, 2015 2:06 PM > To: John Nash > Cc: r-help; Ravi Varadhan > Subject: Re: [R] : Ramanujan and the accuracy of floating point computations > - using Rmpfr in R > >> 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 > 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.