# [R] integer overflow error problem

Martin Maechler maechler at stat.math.ethz.ch
Mon Mar 31 09:12:00 CEST 2003

```>>>>> "Robin" == Robin Hankin <r.hankin at auckland.ac.nz>
>>>>>     on Mon, 31 Mar 2003 16:00:23 +1200 writes:

Robin> Hi List Try the following simple set of functions
Robin> (R-1.6.1):

Robin>  square <- function(x){x*x} cube <- function(x)
Robin> {x*x*x} f1 <- function(x){square(x)*(x+1)} f2 <-
Robin> function(x){square(x)+cube(x)} error <-
Robin> function(x){f1(x)-f2(x)}

Robin> [see how f1() and f2() are algebraically identical].
Robin> Then:

R> error(cube(20))
Robin> [1] 0
>>

Robin> no problem.  Then:

R> error(cube(1:20))
Robin>  [1] 0 0 0 0 0 0 0 0 0 0 NA NA NA NA NA NA NA NA NA
Robin> NA Warning message: NAs produced by integer overflow
Robin> in: x * x * x

Robin> See how error() fails for the vector but not for the
Robin> single number argument.  Is R being reasonable here?

yes,  `as always' :-)

The clue is:  20 is not integer, but 20:20 or as.integer(20) is

Martin

Robin> --

Robin> Robin Hankin, Lecturer, School of Geography and
Robin> Environmental Science Tamaki Campus Private Bag 92019
Robin> Auckland New Zealand

Robin> r.hankin at auckland.ac.nz tel 0064-9-373-7599 x6820;
Robin> FAX 0064-9-373-7042

Robin> ______________________________________________
Robin> R-help at stat.math.ethz.ch mailing list
Robin> https://www.stat.math.ethz.ch/mailman/listinfo/r-help

```