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 <ld7...@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, rip...@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@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.