       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