[Date Index] [Thread Index] [Author Index]
Re: Mathematica 8: first impressions
On Nov 20, 6:25 pm, Joseph Gwinn <joegw... at comcast.net> wrote: > In article <ic8ag0$83... at smc.vnet.net>, blamm64 <blam... at charter.net> > wrote: > > > > > First Impressions: > .... > > > 2) 64-bit has been around long enough to be pretty well received: In > > Mathematica 8.0 $MachinePrecision is still 15.9.... on my Intel, > > Windows XP x64 machine (2x 4-core Intel Xeon X5570, nVidia Quadro FX > > 4800, 24 GB RAM) . Yeah, sure, Wolfram a good while back implemented > > Mathematica to use 64 bit addressable memory (which really helps since > > it's such a RAM hog), but still not to have implemented using 64-bit > > available 'precision' is very disappointing ... . Yeah, Mathematica > > uses double precision 32 bit to get 15.9... machine "precision", but > > by now I think Mathematica, if installed on a 64-bit system, should > > have $MachinePrecision of 31.8.... , or something close to that on a > > 64-bit system. > > Umm, 15.9 decimal digits *is* double precision floating point, which is > what is meant by a machine real. > > An IEEE single (32-bit) float has a 24-bit mantissa (including the > hidden bit), so its machine precision is Log[10,2^24]= 7.22 decimal > digits. > > An IEEE double (64-bit) float (called a double in C/C++) has a 53-bit > mantissa (including the hidden bit), so its Log[10,2^53]= 15.95 decimal > digits. > > To achieve 31.8 decimal digits would require use of IEEE quad (128-bit) > floats, for 34 decimal digits. The only computer I know of that offere= d > 128-bit floating-point arithmetic in hardware was the DEC VAX series, at > least the larger members. > > A recent application where this kind of precision was truly needed was > doing the ray-tracing of the laser beams in LIGO (Laser Interferometer > Gravitational Wave Observatory), where the interferometer beams are > kilometers long. To get 1/100 wavelength resolution using 1064 nanometer > light over 20 Km total path requires precision of at least 10.64nm/20km= = > Log[10,5.32*10-13]= 12.3 digits. > > They did use VAXen for this, at least in the early days. More recent > articles show them using Optica (which is a Mathematica package > <http://www.opticasoftware.com/>), possibly in Mathematica's multiprecisi= on mode. > > While integers can achieve higher precisions for a given size (because > no space is spent on exponents), integers are pretty awkward to use > unless one knows in advance what the allowed range of values is. For > the record, Log[10,2^32]= 9.63 digits and Log[10,2^64]= 19.27 digits. > > Joe Gwinn > > Ref: <http://en.wikipedia.org/wiki/IEEE_754-2008> Umm, 15.9 digits is double precision (64 bit) in *32* bit. Umm, double precision in *64* (128 bit) bit is quad precision in 32 bit.