MathGroup Archive 2010

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

Search the Archive

Re: Mathematica 8: first impressions

  • To: mathgroup at
  • Subject: [mg114158] Re: Mathematica 8: first impressions
  • From: David Bailey <dave at>
  • Date: Thu, 25 Nov 2010 05:59:52 -0500 (EST)
  • References: <icg6nd$94b$>

On 23/11/10 10:57, Daniel Lichtblau wrote:
> blamm64 wrote:
>> On Nov 20, 6:25 pm, Joseph Gwinn<joegw... at>  wrote:
>>> In article<ic8ag0$83... at>, blamm64<blam... at>
>>> 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.
>>>   [...]
>>> Joe Gwinn
>>> Ref:<>
>> 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.
> That's not really the case. You might be thinking that integer and real
> sizes are equated, but they are not. The IEEE standard makes clear that
> binary32 is single precision, binary64 double, binary128 quad. Caverat:
> standards change, and I do not claim to have seen the most recent one.
> Daniel Lichtblau
> Wolfram Research
Indeed, Mathematica seems to have followed the lead of most other 
languages - e.g. Java - where the potential address space has become 
astronomical, but the sizes of integers and reals have remained the 
same. Some years back, this seemed strange to me, but I realised it 
really makes sense - because default 64-bit integers simply waste too 
much space, and are hardly ever necessary. It has also made the 
transition between 32/64 bit software incredibly easy.

This makes particular sense on the IA64 architecture (as opposed to 
Itanium) because there is no speed penalty for manipulating 32-bit integers.

In Mathematica, where integers change between hardware and software 
implementations, this difference will be almost invisible. I would guess 
that a fair proportion of applications that spill into 64-bit integers, 
will also spill into even larger sizes.

David Bailey

  • Prev by Date: Re: Plot function at specific points
  • Next by Date: Re: Exporting .eps file, screen doesn't match .eps file
  • Previous by thread: Re: Mathematica 8: first impressions
  • Next by thread: Re: Mathematica 8: first impressions