MathGroup Archive 2013

[Date Index] [Thread Index] [Author Index]

Search the Archive

Record computation of the MRB constant

See (page 28 and 29) and S. R. Finch, Mathematical Constants, Cambridge, 2003, page 450.
Would anybody here be interested in improving, or just using, a little Mathematica program by the late Richard Crandall to break a record? He used it to compute 1,048,576 digits in 275,000 seconds, or 76.4 hours. That's on a 2.93 Ghz 8-core Nehalem. I computed a  much slower 2,009,991 digits using only around 10GB of RAM taking  3,215,207.1870579 seconds or 893.1131075161 hours on a 3.2 GH 6 core Intel(R) Core(TM) i7-3930K.

Here is the program as he left it, where MRBtest3 is any known approximation. The computation is saved as MRBtest2.
(*Fastest(at RC's end)as of 30Nov2012.*)prec=500000;(*Numberof \ required decimals.*)ClearSystemCache[];T0 
SessionTime[];expM[pre_]:=Module[{a,d,s,k,bb,c,n,end,iprec,xvals,x,pc,cores =4,tsize =2^7,chunksize,start =1,ll,ctab,pr =Floor[1.02pre]},chunksize =cores*tsize;n =Floor[1.32pr];end =Ceiling[n/chunksize];Print["Iterations required: ",n];Print["end ",end];Print[end*chunksize];d = N[(3+Sqrt[8])^n,pr +10];d =Round[1/2(d +1/d)];{b,c,s}={SetPrecision[-1,1.1*n],-d,0};iprec =Ceiling[pr/27];Do[xvals =Flatten[ParallelTable[Table[ll =start +j*tsize +l;x =N[E^(Log[ll]/(ll)),iprec];pc =iprec;While[pc <pr,pc =Min[3pc,pr];x =SetPrecision[x,pc];y =x^ll -ll;x =x (1-2y/((ll +1)y +2ll ll));];(*N[Exp[Log[ll]/ll],pr]*)x,{l,0,tsize -1}],{j,0,cores -1},Method->"EvaluationsPerKernel"->1]];ctab =Table[c =b -c;ll =start +l -2;b *=2(ll +n)(ll -n)/((ll +1)(2ll +1));c,{l,chunksize}];s +=ctab.(xvals -1);start +=chunksize;Print["done iter ",k*chunksize,"
 ",SessionTime[]-T0];,{k,0,end -1}];N[-s/d,pr]];t2 =Timing[MRBtest2=expM[prec];];MRBtest2-MRBtest3

  • Prev by Date: Re: Cubic Bezier Curves Intersection
  • Previous by thread: LocatorPane and tooltips for the locators