Re: {Precision@N[2^1024],N[2^1024]===$MaxMachineNumber}
- To: mathgroup at smc.vnet.net
- Subject: [mg80729] Re: [mg80685] {Precision@N[2^1024],N[2^1024]===$MaxMachineNumber}
- From: Daniel Lichtblau <danl at wolfram.com>
- Date: Thu, 30 Aug 2007 02:35:29 -0400 (EDT)
- References: <200708290810.EAA26797@smc.vnet.net>
Chris Chiasson wrote: > on my computer, this command gives > {15.9546,False} > > However, I think the result is supposed to be > {MachinePrecision,True} > > Is there something wrong with N? Not in this example. Looking at the bit pattern of $MaxMachineNumber should give an idea of what it actually is. In[14]:= InputForm[rr = RealDigits[$MaxMachineNumber,2]] Out[14]//InputForm= {{1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, 1024} In[18]:= Length[rr[[1]]] Out[18]= 53 So we have a string of 53 1's, to the right of the radix, times 2^1024. To get an integer equivalent one would do In[19]:= ii = Sum[2^j, {j,1024-53,1024-1}]; In[20]:= N[ii]===$MaxMachineNumber Out[20]= True > My computer is an Athlon XP running Windows XP SP2. > > Also, why does > ByteCount@$MaxMachineNumber > give > 16 > ? I'm sure I am missing something, but I thought a double precision > floating point number would only take up 8 bytes. > > Thanks. > The floating point number requires 8 bytes and, as every Mathematica entity is stored in an "expr" construct with various fields, the other 8 bytes are the expr overhead. Daniel Lichtblau Wolfram Research
- References:
- {Precision@N[2^1024],N[2^1024]===$MaxMachineNumber}
- From: "Chris Chiasson" <chris@chiasson.name>
- {Precision@N[2^1024],N[2^1024]===$MaxMachineNumber}