# [Rd] sum overflow (PR#1091)

**Bill Simpson
**
wsi@gcal.ac.uk

*Thu, 13 Sep 2001 11:59:30 +0100 (BST)*

>* It's not a problem with sum:
*>*
*>* > sum(a*a)
*>* [1] 333833500
*>* > sum(b*b)
*>* [1] 333833500
*>*
*>* are accurate.
*>*
*>* The overflow is in the integer arithmetic for *. That's a question for
*>* your C run-time system. On a 64-bit machine you might get different
*>* results (although most use 32-bit ints, including mine).
*>*
*>* If you use integers you need to be aware of the consequences. It's a
*>* feature not a bug.
*I thought R used an internal rep that was double in all cases.
Now I'm confused:
>* a<-(1:1000)
*>* b<-(1:1000)
*>* sum(a*a)*sum(b*b)
*[1] -652010736
>* a<-(1:1000)/1.0
*>* b<-(1:1000)/1.0
*>* sum(a*a)*sum(b*b)
*[1] 1.114448e+17
So R somehow decides whether to use an integer or a double
representation? Please tell me the rule used by R so I will know in the
future.
Thanks!
Bill
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
r-devel mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html
Send "info", "help", or "[un]subscribe"
(in the "body", not the subject !) To: r-devel-request@stat.math.ethz.ch
_._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._