# Re: [Rd] Computing means, variances and sums

From: Prof Brian Ripley <ripley_at_stats.ox.ac.uk>
Date: Sun 19 Feb 2006 - 20:18:13 GMT

>> p.s. If my computations are correct, 0.2 = 0*/2 + 0/4 + 1/8 + 1/16 +
>> 0/32 + 0/64 + 1/128 + 1/256 + 0/512 + 0/1024 + 1/2048 + 1/4096 + ... =
>> 0.3333333333333h. Perhaps someone can extend this to an FAQ to help
>> explain finite precision arithmetic and rounding issues.
>
> This is drifting a bit off topic, but the other day I discovered this
> rather nice illustration of the perils of finite precision arithmetic
> while creating a contrast matrix:
>
>> n <- 13
>> a <- matrix(-1/n, ncol=n, nrow=n) + diag(n)
>> rowSums(a)
> [1] 2.775558e-16 2.775558e-16 5.551115e-17 5.551115e-17 5.551115e-17
> [6] 5.551115e-17 0.000000e+00 -5.551115e-17 0.000000e+00 5.551115e-17
> [11] 1.110223e-16 1.665335e-16 2.220446e-16
>
> Not only do most of the rows not sum to 0, they do not even sum to the
> same number! It is hard to remember the familiar rules of arithmetic
> do not always apply.

I think you will find this example does give all 0's in R-devel, even on platforms like Sparc. But users do need to remember that computer arithmetic is inexact except in rather narrowly delimited cases.

```--
Brian D. Ripley,                  ripley@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-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel
```
Received on Mon Feb 20 07:21:55 2006

This archive was generated by hypermail 2.1.8 : Mon 20 Feb 2006 - 03:21:41 GMT