Mathematica 9 is now available
Services & Resources / Wolfram Forums / MathGroup Archive
-----

MathGroup Archive 2010

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

Search the Archive

Re: Mathematica 8: first impressions

  • To: mathgroup at smc.vnet.net
  • Subject: [mg114017] Re: Mathematica 8: first impressions
  • From: Joseph Gwinn <joegwinn at comcast.net>
  • Date: Sat, 20 Nov 2010 18:25:36 -0500 (EST)
  • References: <ic34r0$5rv$1@smc.vnet.net> <ic8ag0$83s$1@smc.vnet.net>

In article <ic8ag0$83s$1 at smc.vnet.net>, blamm64 <blamm64 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 offered 
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 multiprecision 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>


  • Prev by Date: Re: CUDA Support Issues on Current Laptops
  • Next by Date: Re: Mathematica 8
  • Previous by thread: Re: Mathematica 8: first impressions
  • Next by thread: Re: Mathematica 8: first impressions