[R] Precision level

Dimitri Liakhovitski ld7631 at gmail.com
Fri Mar 26 16:46:41 CET 2010


Thanks a lot - it's been helpful.
Look like it has to be pretty darn close to zero to be considered = 0.
D.

On Fri, Mar 26, 2010 at 3:22 AM, Prof Brian Ripley
<ripley at stats.ox.ac.uk> wrote:
> On Fri, 26 Mar 2010, Rolf Turner wrote:
>
>>
>> On 26/03/2010, at 12:38 PM, jim holtman wrote:
>>
>>> WHen using '==' or '%in%' it is a equality test -- it has to equal zero.
>>>  If
>>> you want a tolerance in the test, use 'all.equal'
>>>
>>> On Thu, Mar 25, 2010 at 5:29 PM, Dimitri Liakhovitski
>>> <ld7631 at gmail.com>wrote:
>>>
>>>> Hello!
>>>>
>>>> I am wondering at what point does R consider a numeric value to be
>>>> equal to zero - for statements of the type x==0 and x %in% 0.
>>>>
>>>> Thank you very much!
>>
>>
>> There is still perhaps a question to be answered here.  One can key in
>> a representation of a number, different from ``0'' and yet get a value
>> deemed to be 0 by the machine.
>>
>> E.g. on my machine
>>>
>>> 1e-324 == 0
>>
>> [1] TRUE
>>>
>>> 1e-323 == 0
>>
>> [1] FALSE
>>
>> The question of where the line is drawn is probably ill-posed or
>> meaningless
>> or something like that.  It's not clear to me what the issues are.  Also
>> the
>> answer, if there is a meaningful one, is likely to be machine dependent
>> rather
>> than R dependent.
>
> Nope, for OSes whose runtimes use the IEC 60559 standard (almost all of
> them, as these functions are mainly done in the FPU).
>
> The smallest normalized non-zero double is
>
>> .Machine$double.xmin
>
> [1] 2.225074e-308
>
> For numbers smaller than that there is gradual overflow to zero via
> denormalized numbers.
>
> The general principle is that when a number if parsed, the closest
> representable double is used: and for "1e-324" that is zero.
>
>>
>>        cheers,
>>
>>                Rolf Turner
>
>
> --
> Brian D. Ripley,                  ripley at stats.ox.ac.uk
> Professor of Applied Statistics,  http://www.stats.ox.ac.uk/~ripley/
> University of Oxford,             Tel:  +44 1865 272861 (self)
> 1 South Parks Road,                     +44 1865 272866 (PA)
> Oxford OX1 3TG, UK                Fax:  +44 1865 272595
>
> ______________________________________________
> R-help at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
>



-- 
Dimitri Liakhovitski
Ninah.com
Dimitri.Liakhovitski at ninah.com



More information about the R-help mailing list