PR#929 and [R] matrix: suspected integer overflow

Prof Brian D Ripley ripley at
Thu May 10 08:32:16 CEST 2001

On Wed, 9 May 2001 andreas.krause at wrote:

> Is the following a known issue, in particular in terms of message clarity of the latter two?

Yes, bug PR#929.  It's a bug in asInteger, an internal C routine which
using (int) on a double.  coerce.c has better routines used to corce
vectors, and the comment

/* This section of code handles type conversion for elements */
/* of data vectors.  Type coercion throughout R should use these */
/* routines to ensure consistency. */


I have altered asInteger (etc) to use the same routines.

However, I am not happy with what IntegerFromReal does: it gives the
maximum integer and the message.  I think it would be much better to return
NA in that cirumstance, when most uses of asInteger would give up
(correctly) and generate a meaningful error.

Comments, R-core?

> > matrix(0, 10^8, 10^8)
> Error: cannot allocate vector of size 2064896 Kb
> > matrix(0, 20, 10^10)
> Error in matrix(0, 20, 10^10) : negative length vectors are not allowed
> > matrix(0, 10^10, 10^10)
> Error: cannot allocate vector of size 0 Kb


Brian D. Ripley,                  ripley at
Professor of Applied Statistics,
University of Oxford,             Tel:  +44 1865 272861 (self)
1 South Parks Road,                     +44 1865 272860 (secr)
Oxford OX1 3TG, UK                Fax:  +44 1865 272595

r-help mailing list -- Read
Send "info", "help", or "[un]subscribe"
(in the "body", not the subject !)  To: r-help-request at

More information about the R-help mailing list