search for: integer_pointer

Displaying 8 results from an estimated 8 matches for "integer_pointer".

2013 Jun 27
3
Read a text file into R with .Call()
Hi, I want to read a text file into R with .Call(). So I define some NEW_CHARACTER() to store the chracters read and use SET_STRING_ELT to fill the elements. e.g. PROTECT(qNames = NEW_CHARACTER(10000)); char *foo; // This foo holds the string I want. while(foo = readLine(FN)){ SET_STRING_ELT(qNames, i, mkChar(foo))); } In this way, I can get the desired character from qNames. The only problem
2004 Feb 11
1
.Call setAttrib(ans,R_DimSymbol,dim); Crashes.
...n a matrix. The code does the R interfacing. This version does it fine. SEXP ans,dim; PROTECT(ans = NEW_NUMERIC(count*2)); memcpy(NUMERIC_POINTER(ans),result,count*sizeof(double)); memcpy(&(NUMERIC_POINTER(ans)[count]),occur,count*sizeof(double)); /** PROTECT(dim=NEW_INTEGER(2)); INTEGER_POINTER(dim)[0]=2; INTEGER_POINTER(dim)[1]=count; setAttrib(ans,R_DimSymbol,dim); */ UNPROTECT(7); If I uncomment the lines 5 to 8 than all is working fine four small count's (tested 10,20). But if the result is an array with about 2000 entries R crashes vicious and violently with the lax co...
2005 Sep 13
3
NUMERIC_POINTER question
...ot;) xx at data<-matrix(1:12+0.1,3,4). (data is double) However it prints 0.0000 if xx at data are integers ( xx at data<-matrix(1:12,3,4) ). Can anyone explain it to me why? I thought that NUMERIC_POINTER makes it clear that i expect datatype numeric. (Why otherwise the distinction with INTEGER_POINTER) cheers Eryk
2004 Jan 09
1
Call and memory
...point out the error in my thinking or suggest a way to accomplish my goal? My code follows: "mListTest" <- function(X,N,k) { .Call("mList",as.double(X),as.integer(N),as.integer(k)); } SEXP mList( SEXP Xi, SEXP Ni, SEXP ki ) { double *pX=NUMERIC_POINTER(Xi); int N=INTEGER_POINTER(Ni)[0]; int k=INTEGER_POINTER(ki)[0]; SEXP alist; SEXP avector; SEXP nvector; SEXP rvector; SEXP kvector; int n; int i; transposeMatrix(pX,N,k); n=4; PROTECT(alist=NEW_LIST(n)); PROTECT(avector=NEW_NUMERIC(200)); for (i=0;i<200;i++) { NUMERIC_POINTER(avector)[i]=pX[i]; } SET_...
2003 Dec 10
0
C++: SET_LENGTH() Over Many Iterations?
...R object too big to be handled by R within the context of my OS's available memory. Here's some simple test code I've been running: <CPP Code> #define PUSH_BACK_INTEGER(v, x) \ do {\ UNPROTECT_PTR(v);\ SET_LENGTH(v, GET_LENGTH(v) + 1);\ PROTECT(v);\ INTEGER_POINTER(v)[GET_LENGTH(v) - 1] = x;\ }\ while (false) SEXP R_SimplePushBackTest(SEXP args) { SEXP arg1, arg2, int_vect; PROTECT(arg1 = AS_INTEGER(CADR(args))); int n_reps = INTEGER_POINTER(arg1)[0]; PROTECT(arg2 = AS_LOGICAL(CADDR(args))); bool full_alloc = (LOGICAL_POINTER...
2005 Apr 14
1
question about "R get vector from C"
...: /* useCall3.c */ /* Getting an integer vector from C using .Call */ #include <R.h> #include <Rdefines.h> SEXP setInt() { SEXP myint; int *p_myint; int len = 5; PROTECT(myint = NEW_INTEGER(len)); // Allocating storage space p_myint = INTEGER_POINTER(myint); p_myint[0] = 7; UNPROTECT(1); return myint; } then type at the command prompt: R CMD SHLIB useCall3.c to get useCall3.so In windows platform ,how can I create right dll to let dyn.load use and for .c ,.call ,external ,what are the differece? which one is better for getting vect...
2003 Dec 12
3
C++: Appending Values onto an R-Vector.
Hi folks. I posted this question a few days ago, but maybe it got lost because of the code I included with it. I'm having a problem using the SET_LENGTH() macro in an R extension I'm writing in C++. In a function within the extension I use SET_LENGTH() to resize R vectors so as to allow the concatenation of single values onto the vectors -- it's a "push back" function to
2004 Jun 22
3
[Q] GET_DIM() crash on Windows only
...indoze ******/ PROTECT(vntXdim = GET_DIM(vntX)); #ifdef DEBUG_GETDIM REprintf("\tgot dimension object\n"); #endif nX = GET_LENGTH(vntXdim); #ifdef DEBUG_GETDIM REprintf("\tgot length from dimension object\n"); #endif if (nX == 2) { int *piXdim = INTEGER_POINTER(vntXdim); *nrow = piXdim[0]; *ncol = piXdim[1]; } else { *nrow = -1; *ncol = -1; } UNPROTECT(1); return nX; } SEXP getdim(SEXP vntX) { SEXP vntOut; int m, n; #ifdef DEBUG_GETDIM REprintf("In getdim(x)...\n"); #endif...