[R] Ramanujan and the accuracy of floating point computations - using Rmpfr in R

Ravi Varadhan ravi.varadhan at jhu.edu
Thu Jul 2 16:28:19 CEST 2015


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]]



More information about the R-help mailing list