MathGroup Archive 2003

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

Search the Archive

RE: Re: Re: Lower Floor

  • To: mathgroup at smc.vnet.net
  • Subject: [mg39144] RE: [mg39097] Re: [mg39040] Re: [mg39004] Lower Floor
  • From: "Wolf, Hartmut" <Hartmut.Wolf at t-systems.com>
  • Date: Fri, 31 Jan 2003 04:36:59 -0500 (EST)
  • Sender: owner-wri-mathgroup at wolfram.com

Dear Selwyn, dear Andrzej,

some further observations:

 
In[46]:= Through[{InputForm, Floor}[#]] & /@ 
    Table[SetPrecision[3, prec], {prec, 10 + Log[10, 3.], 23 + 1, 1}]
    // TableForm
Out[46]//TableForm=
	3.`10.4771		3
	3.`11.4771		3
	3.`12.4771		3
	3.`13.4771		3
	3.`14.4771		3
	3.`15.4771		3
	3.`16.4771		3
	3.`17.4771		3
	3.`18.4771		3
	3.`19.4771		3
	3.`20.4771		3
	3.`21.4771		3
	3.`22.4771		3
	3.`23.4771		3

In[47]:=
Through[{InputForm, Floor, FromDigits[RealDigits[#, 2], 2] &}[#]] & /@ 
    ToExpression[Take[NestList[# <> "0" &, "3.", 23], -14]] // TableForm
Out[47]//TableForm=
	3.0
3	3
	3.0
3	3
	3.0
3	3
	3.0
3	3
	3.0
3	3
	3.0
3	3
	3.0
3	3
	2.999999999999999999999999999991459`17.6021		2	3
	2.999999999999999999999999999994387`18.6021		2	3
	2.999999999999999999999999999988124`19.6021		2	3
	2.99999999999999999999999999999999997894`20.6021	2	3
	2.99999999999999999999999999999999987137`21.6021	2	3
	2.999999999999999999999999999999999943`22.6021		2	3
	2.99999999999999999999999999999999988492`23.6021	2	3


In[48]:= (ii = Interval /@ 
        ToExpression[Take[NestList[# <> "0" &, "3.", 23], -14]])
    // TableForm
Out[48]//TableForm=
	Interval[{3., 3.}]
	Interval[{3., 3.}]
	Interval[{3., 3.}]
	Interval[{3., 3.}]
	Interval[{3., 3.}]
	Interval[{3., 3.}]
	Interval[{3., 3.}]
	Interval[{2.99999999999999999, 3.00000000000000001}]
	Interval[{2.999999999999999999, 3.000000000000000001}]
	Interval[{2.9999999999999999999, 3.0000000000000000001}]
	Interval[{2.99999999999999999999, 3.00000000000000000001}]
	Interval[{2.999999999999999999999, 3.000000000000000000001}]
	Interval[{2.9999999999999999999999, 3.0000000000000000000001}]
	Interval[{2.99999999999999999999999, 3.00000000000000000000001}]

In[50]:=
InputForm[(10^((#1 + #2)/2))] & @@@ Log[10, Flatten[List @@@ ii, 1]]
Out[50]=
  {2.9999999999999996, 
   2.9999999999999996, 
   2.9999999999999996,
   2.9999999999999996, 
   2.9999999999999996, 
   2.9999999999999996,
   2.9999999999999996,
   2.999999999999999999995164569285922`17.6002,
   2.999999999999999999999398436196254`18.6003, 
   2.999999999999999999999997528327083`19.6003, 
   2.999999999999999999999997528966012`20.6003, 
   2.999999999999999999999997529010859`21.6003, 
   2.99999999999999999999999999063078546595`22.6003, 
   2.99999999999999999999999999063078491591`23.6003}

Some differences in detail notwithstanding, this gives an idea of how the
inputs are treated! See also the differences for machine numbers. In
particular this explains Floor[3.0...0] == 2 for any Input with more than 16
zeros trailing.

Oh, I nearly forgot, look at

BaseForm[#, 2] & /@ 
    ToExpression[Take[NestList[# <> "0" &, "3.", 23], -14]] // TableForm

--
Hartmut Wolf



>-----Original Message-----
>From: Andrzej Kozlowski [mailto:andrzej at bekkoame.ne.jp]
To: mathgroup at smc.vnet.net
>Sent: Wednesday, January 29, 2003 3:11 PM
>To: Selwyn Hollis; Hartmut.Wolf at t-systems.com
>Cc: mathgroup at smc.vnet.net
>Subject: [mg39144] Re: [mg39097] Re: [mg39040] Re: [mg39004] Lower Floor
>
>
>But at least it seems to be just the question of the way you input 
>them. If instead of typing typing 20 zeros you simply enter 3.`20 
>everything works fine:
>
>
>Floor[3.`20]
>
>3
>
>It also saves you some typing!
>
>Andrzej Kozlowski
>Yokohama, Japan
>http://www.mimuw.edu.pl/~akoz/
>http://platon.c.u-tokyo.ac.jp/andrzej/
>
>
>
>On Wednesday, January 29, 2003, at 05:37 PM, Selwyn Hollis wrote:
>
>> I realize that we're dealing with the vagaries of internal 
>arithmetic,
>> but it is highly disquieting that 3.000... (with any number of zeros)
>> would ever be anything but the binary floating-point number 
>.11 * 2^2 !
>>
>> Selwyn
>>
>>
>> On Monday, January 27, 2003, at 02:55  AM, Wolf, Hartmut wrote:
>>
>>> Selwyn,
>>>
>>> things aren't, what they appear to be:
>>>
>>> In[2]:= Through[{InputForm, Floor}[#]] & /@
>>>             {3.0000000000000000, 3.00000000000000000}
>>> Out[2]= {{3., 3},
>>>          {2.999999999999999999999999999991459`17.6021, 2}}
>>>
>>> You're right, of course, perhaps, except for wow.
>>>
>>> --
>>> Hartmut
>>>
>>>
>>>> -----Original Message-----
>>>> From: Selwyn Hollis [mailto:selwynh at earthlink.net]
To: mathgroup at smc.vnet.net
>> To: mathgroup at smc.vnet.net
>>>> Sent: Saturday, January 25, 2003 7:27 AM
>>>> To: mathgroup at smc.vnet.net
>>>> Subject: [mg39144] [mg39097] [mg39040] Re: [mg39004] Lower Floor
>>>>
>>>>
>>>> Wow. But apparently it has nothing to do with Log. Look:
>>>>
>>>> Floor[3.0000000000000000]
>>>>
>>>>   3
>>>>
>>>> Floor[3.00000000000000000]
>>>>
>>>>   2
>>>>
>>>> ---
>>>> Selwyn Hollis
>>>>
>>>>
>>>>
>>>> On Friday, January 24, 2003, at 05:05  AM, André Giroux wrote:
>>>>
>>>>> Hi All.
>>>>> With Mathematica 4.1 on Windows98:
>>>>> N[Log[8]/Log[2]]
>>>>> 3.
>>>>> Floor[N[Log[8]/Log[2]]]
>>>>> 2
>>>>> Beware!
>>>>>
>>>>>
>>>>
>>>>
>>>
>>
>>
>>
>>
>



  • Prev by Date: Re: mathematica on a palmtop?
  • Next by Date: Export Gif animation bug?
  • Previous by thread: Re: Re: Re: Lower Floor
  • Next by thread: Simple Syntax Question