[Rd] Surprising results from INTEGER_GET_REGION with ALTREP object
Ralf Stubner
r@||@@tubner @end|ng |rom d@q@n@@com
Fri Mar 1 13:52:43 CET 2019
Dear Listmembers,
wanting to learn more about ALTREP I wrote the following function to
extract a subsequence from an integer vector:
#include <Rinternals.h>
SEXP integer_get_region(SEXP _x, SEXP _i, SEXP _n) {
int i = INTEGER(_i)[0];
int n = INTEGER(_n)[0];
SEXP result = PROTECT(Rf_allocVector(INTSXP, n));
INTEGER_GET_REGION(_x, i, n, INTEGER(result));
UNPROTECT(1);
return result;
}
For "shorter" vectors, the result is as expected:
> dyn.load("altrep_int_region.so")
> .Call("integer_get_region", 1:1e9, 0L, 10L)
[1] 1 2 3 4 5 6 7 8 9 10
But not for "longer" vectors:
> .Call("integer_get_region", 1:1e10, 0L, 10L)
[1] 0 1072693248 0 1073741824 0 1074266112
[7] 0 1074790400 0 1075052544
Am I doing something wrong or is this a bug? I am using
> R.version.string
[1] "R version 3.5.2 (2018-12-20)"
Thanks
Ralf
--
Ralf Stubner
Senior Software Engineer / Trainer
daqana GmbH
Dortustraße 48
14467 Potsdam
T: +49 331 23 61 93 11
F: +49 331 23 61 93 90
M: +49 162 20 91 196
Mail: ralf.stubner using daqana.com
Sitz: Potsdam
Register: AG Potsdam HRB 27966
Ust.-IdNr.: DE300072622
Geschäftsführer: Dr.-Ing. Stefan Knirsch, Prof. Dr. Dr. Karl-Kuno Kunze
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: OpenPGP digital signature
URL: <https://stat.ethz.ch/pipermail/r-devel/attachments/20190301/c60d0a1a/attachment.sig>
More information about the R-devel
mailing list