[R] exactly representable numbers
Robin Hankin
r.hankin at noc.soton.ac.uk
Mon Sep 11 12:15:04 CEST 2006
Hi Sundar
thanks for this. But I didn't make it clear that I'm interested in
extreme numbers
such as 1e300 and 1e-300.
Then
> f(1e300)
[1] 7.911257e+283
is different from
1e300*.Machine$double.eps
[I'm interested in the gap between successive different exactly
representable
numbers right across the IEEE range]
rksh
On 11 Sep 2006, at 10:50, Sundar Dorai-Raj wrote:
>
>
> Robin Hankin said the following on 9/11/2006 3:52 AM:
>> Hi
>> Given a real number x, I want to know how accurately R can
>> represent numbers near x.
>> In particular, I want to know the infimum of exactly representable
>> numbers greater than x, and the supremum of exactly representable
>> numbers
>> less than x. And then the interesting thing is the difference
>> between these two.
>> I have a little function that does some of this:
>> f <- function(x,FAC=1.1){
>> delta <- x
>> while(x+delta > x){
>> delta <- delta/FAC
>> }
>> return(delta*FAC)
>> }
>> But this can't be optimal.
>> Is there a better way?
>
> I believe this is what .Machine$double.eps is. From ?.Machine
>
> double.eps: the smallest positive floating-point number 'x' such that
> '1 + x != 1'. It equals 'base^ulp.digits' if either 'base'
> is 2 or 'rounding' is 0; otherwise, it is
> '(base^ulp.digits)
> / 2'.
>
> See also .Machine$double.neg.eps. Is this what you need?
>
> --sundar
--
Robin Hankin
Uncertainty Analyst
National Oceanography Centre, Southampton
European Way, Southampton SO14 3ZH, UK
tel 023-8059-7743
More information about the R-help
mailing list